Archivi e Basi di Dati



Похожие документы
Organizzazione degli archivi

DBMS (Data Base Management System)

Lezione V. Aula Multimediale - sabato 29/03/2008

Basi di dati. Il Linguaggio SQL. K. Donno - Il Linguaggio SQL

Introduzione. Elenco telefonico Conti correnti Catalogo libri di una biblioteca Orario dei treni aerei

INFORMATICA. Applicazioni WEB a tre livelli con approfondimento della loro manutenzione e memorizzazione dati e del DATABASE.

Informatica per le discipline umanistiche 2 lezione 10

Elena Baralis 2013 Politecnico di Torino 1

Corso di Informatica Generale 1 IN1. Linguaggio SQL

Sistemi Informativi e Basi di Dati

PROGRAMMAZIONE MODULARE. Periodo mensile. Ore previste

Basi di dati. Il Modello Relazionale dei Dati. K. Donno - Il Modello Relazionale dei Dati

Progettazione di Basi di Dati

PROGRAMMA DI CLASSE 5AI

Corso di Laboratorio di Basi di Dati

Introduzione al data base

DATABASE RELAZIONALI

Informatica Generale Andrea Corradini Sistemi di Gestione delle Basi di Dati

Il linguaggio SQL. è di fatto lo standard tra i linguaggi per la gestione di data base relazionali.

Definizione di domini

Organizzazione delle informazioni: Database

SQL SQL. Definizione dei dati. Domini. Esistono 6 domini elementari:

Esercitazione query in SQL L esercitazione viene effettuata sul database viaggi e vacanze che prevede il seguente modello E/R:

Basi di Dati: Corso di laboratorio

I Sistemi Informativi

DDL, VINCOLI D INTEGRITÁ, AGGIORNAMENTI E VISTE. SQL è più di un semplice linguaggio di interrogazione

Abilità Informatiche A.A. 2010/2011 Lezione 9: Query Maschere Report. Facoltà di Lingue e Letterature Straniere

TEORIA sulle BASI DI DATI

BASI DI DATI - : I modelli di database

Le Basi di Dati. Le Basi di Dati

SQL: concetti base SQL. Definizione dei dati in SQL. SQL: "storia"

Basi di dati. Concetti introduttivi ESEMPIO. INSEGNAMENTI Fisica, Analisi, Aule. Docenti. Entità Relazioni Interrogazioni. Ultima modifica: 26/02/2007

Uso delle basi di dati DBMS. Cos è un database. DataBase. Esempi di database

Lo schema concettuale risultante dalla progettazione concettuale è l input alla fase di progettazione logica.

UN PROGRAMMA APPLICATIVO: ACCESS Access è un programma del pacchetto Office che permette di realizzare database

ITI M. FARADAY Programmazione modulare a.s

Volumi di riferimento

Corso di Informatica (Basi di Dati)

Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci

Data Base. Prof. Filippo TROTTA

DBMS. Esempi di database. DataBase. Alcuni esempi di DBMS DBMS. (DataBase Management System)

DATABASE.

MODELLO RELAZIONALE. Introduzione

Capitolo 13. Interrogare una base di dati

Sistemi per la gestione di database: MySQL ( )

Linguaggio SQL. Structured Query Language

Sistemi Informativi Aziendali II

Access. P a r t e p r i m a

I database relazionali (Access)

Linguaggi per basi di dati

Basi di dati. Concetti Introduttivi ESEMPIO. Fisica, Analisi, Informatica. Entità Relazioni Interrogazioni. Database 2

ECDL - Database. European Computer Driving Licence - Modulo 5 - Database LEZIONE 2

DATA BASE MANAGEMENT SYSTEM

Modello Relazionale dei DBMS - Vincoli Tradizionalmente, esistono quattro modelli logici: Gerarchico Reticolare Relazionale A oggetti XML I modelli

SQL. Linguaggio di interrogazione per basi di dati relazionali. Relazione = tabella con attributi (a 1, a 2,, a n ): Funzionalità principali di SQL:

Corso Sistemi Informativi Avanzati. Programma 30 set Installazione Macchina Virtuale. Introduzione alla BI nelle Aziende.

Introduzione ai database relazionali

Data Base. Master "Bio Info" Reti e Basi di Dati Lezione 6

Lorenzo Braidi. Database design. Libro_datadesign.indb :06:17

Modello Relazionale. Modello Relazionale. Relazioni - Prodotto Cartesiano. Relazione: tre accezioni. Es. Dati gli insiemi

Basi di Dati e Microsoft Access

Basi di dati e Sistemi informativi aziendali

SQL prima parte D O C E N T E P R O F. A L B E R T O B E L U S S I. Anno accademico 2011/12

PROGRAMMAZIONE DISCIPLINARE D ISTITUTO a.s. 2015/2016 SECONDO BIENNIO LICEO SCIENTIFICO OPZIONE SCIENZE APPLICATE

Laboratorio di Basi di Dati e Web

Il Modello Relazionale

Laboratorio di Basi di Dati

Basi di dati. L Algebra Relazionale. K. Donno - L Algebra Relazionale

INFORMATICA PER LE APPLICAZIONI ECONOMICHE PROF.SSA BICE CAVALLO

PIANO DI LAVORO EFFETTIVAMENTE SVOLTO IN RELAZIONE ALLA PROGRAMMAZIONE DISCIPLINARE

Introduzione alle basi di dati. Gestione delle informazioni. Gestione delle informazioni. Sistema informatico

Corso di Access. Prerequisiti. Modulo L2A (Access) 1.1 Concetti di base. Utilizzo elementare del computer Concetti fondamentali di basi di dati

Informatica (Basi di Dati)

SISTEMI INFORMATIVI AVANZATI -2010/ Introduzione

Appunti sulle basi di dati. Cos è una base base di dati? Introduzione. D. Gubiani. 19 Luglio 2005

Corso di Informatica (Basi di Dati)

Facoltà di Farmacia - Corso di Informatica

I comandi del linguaggio DDL (Data Definition Language): CREATE E ALTER

Attributi e domini. A per {A}; XY per X Y (pertanto A 1 A 2 A 3 denota

Database: collezione di fatti, registrabili e con un ben preciso significato, relazionati fra di loro

SQL (STRUCTURED QUERY LANGUAGE)

Esame di Stato Istituto Tecnico Industriale Soluzione della Seconda Prova Indirizzo: INFORMATICA Tema: INFORMATICA Anno Scolastico:

Introduzione all Algebra Relazionale

Introduzione alle Basi di Dati

Database. Si ringrazia Marco Bertini per le slides

DB - Modello relazionale dei dati. DB - Modello Relazionale 1

DATABASE. A cura di Massimiliano Buschi

Base Dati Introduzione

INFORMATICA GENERALE Prof. Alberto Postiglione. Scienze della Comunicazione Università di Salerno. INFORMATICA GENERALE Prof. Alberto Postiglione

corso di Access MICROSOFT ACCESS Docente: Andrea Mereu Università degli studi di Cagliari 16 aprile 9 maggio 2012

L architettura di un DBMS

Introduzione Ai Data Bases. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San giovanni

Informatica I per la. Fisica

Basi di Dati prof. Letizia Tanca lucidi ispirati al libro Atzeni-Ceri-Paraboschi-Torlone. SQL: il DDL

Cultura Tecnologica di Progetto

I database relazionali sono il tipo di database attualmente piu diffuso. I motivi di questo successo sono fondamentalmente due:

Informatica B. Contenuti. Introduzione alle Basi di Dati e ai DBMS. Introduzione a dati e basi dati DBMS Modello dei dati

Istruzioni DML di SQL

Транскрипт:

Archivi e Basi di Dati A B C File Programma 1 Programma 2 A B C File modificati Programma 1 DBMS DB Programma 2 Informatica Generale (CdL in E&C), A.A. 2000-2001 55 Problemi nella gestione di archivi separati in applicazioni gestionali complesse Inconsistenza e ridondanza dei dati Riservatezza dei dati Integrità dei dati Concorrenza Informatica Generale (CdL in E&C), A.A. 2000-2001 56 1

Software di gestione di basi di dati strutturati DBMS = Database Management System Si occupa di organizzazione e gestione fisica dei dati accesso ai dati (interrogazioni) condivisione dei dati fra utenti diversi integrità e protezione Informatica Generale (CdL in E&C), A.A. 2000-2001 57 Il modello dei dati Regole per organizzare e strutturare i dati Gerarchico Reticolare Relazionale Orientato agli oggetti (object oriented) Schema di una base dati: descrizione dei dati (utilizzando un linguaggio opportuno) di una particolare applicazione in accordo al modello Informatica Generale (CdL in E&C), A.A. 2000-2001 58 2

Il modello relazionale Basato su teoria degli insiemi e su relazioni Esempio: relazione conto_corrente Numero-cc Nome Indirizzo Saldo 1 Abriani v. Roma 2.356.700 2 Bianchi p. Verdi 3.214.430 3 Sommella v. Bari 2.543.890 4 Leoncini c. Italia 1.246.400 5 D Ecclesia p. Libertà 3.542.270 Informatica Generale (CdL in E&C), A.A. 2000-2001 59 Alcune proprietà delle relazioni Ogni relazione è una tabella Ogni colonna di una tabella è detta attributo Il numero di attributi è detto grado della relazione Ad ogni attributo è associato un dominio Il numero di righe (dette anche tuple) è la cardinalità della relazione Schema di una relazione: nome della relazione più nomi e domini degli attributi Istanza di una relazione: insieme delle tuple presenti ad un dato istante Informatica Generale (CdL in E&C), A.A. 2000-2001 60 3

Schemi di relazioni relation conto-corrente (numero-cc: integer, nome: array[1..20] of char, indirizzo: array[1..20] of char, saldo: integer). relation movimento (numero-cc: integer, data-mov: data, numero-mov: integer, importo: integer, causale: char). Informatica Generale (CdL in E&C), A.A. 2000-2001 61 Istanza di una relazione movimento Numero-cc Data-mov Numero-mov Importo Causale 1 26-2-99 1 200.000 V 1 26-2-99 2-300.000 P 1 15-3-99 1 2.300.000 S 4 15-3-99 1-400.000 A 3 10-3-99 1 3.100.000 S V=versamento, P=prelievo, A=pagamento assegni, S=accredito stipendio Informatica Generale (CdL in E&C), A.A. 2000-2001 62 4

Il concetto di chiave Chiave primaria: insieme di attributi i cui valori identificano univocamente e in modo minimale una riga Esempi Per la relazione conto_corrente: numero-cc Per la relazione movimento: (numero-cc, data-mov, numero-mov) Chiave esterna: uno o più attributi che costituiscono una chiave primaria per un altra relazione Informatica Generale (CdL in E&C), A.A. 2000-2001 63 Chiavi primarie ed esterne Numero-cc Tipo-cc Nome Indirizzo Saldo 1 Verde Abriani v. Roma 2.356.700 2 Oro Bianchi p. Verdi 3.214.430 3 Blu Sommella v. Bari 2.543.890 4 Blu Leoncini c. Italia 1.246.400 5 Oro D Ecclesia p. Libertà 3.542.270 Chiave primaria Tipo-cc Descrizione Tasso-c Tasso-d Chiave esterna Verde CC Giovani 3.0 5.0 Blu CC Standard 2.0 4.0 Oro CC Privilegiato 2.5 4.0 Informatica Generale (CdL in E&C), A.A. 2000-2001 64 5

Normalizzazione Obiettivo della normalizzazione è di evitare ridondanza dei dati (dati duplicati) e conseguenti inconsistenze Esistono più forme normali prima f.n.: attributi ad un solo valore seconda f.n.: attributi dipendenti dall intera chiave terza f.n.: attributi dipendenti direttamente dalla chiave Informatica Generale (CdL in E&C), A.A. 2000-2001 65 Prima forma normale relation conto-corrente (numero-cc: integer, nome: array[1..20] of char, indirizzo: array[1..20] of char, movimento:??????? saldo: integer). Più valori possibili relation conto-corrente relation movimento (numero-cc: integer, (numero-cc: integer, nome: array[1..20] of char, data-mov: date, indirizzo: array[1..20] of char, numero-mov: integer, saldo: integer). importo: integer, causale: char). Informatica Generale (CdL in E&C), A.A. 2000-2001 66 6

Seconda forma normale relation movimento (numero-cc: integer, data-mov: date, numero-mov: integer, importo: integer, causale: char estratto-conto: integer). La chiave è la terna (numero-cc,data-mov,numero-mov), ma il numero di estratto conto dipende solo dalla data relation movimento (numero-cc: integer, data-mov: date, numero-mov: integer, importo: integer, causale: char). relation estratto-conto (data-mov: date, periodo: integer). Informatica Generale (CdL in E&C), A.A. 2000-2001 67 Terza forma normale relation movimento (numero-cc: integer, data-mov: date, numero-mov: integer, importo: integer, causale: char valuta: integer). La chiave è la terna (numero-cc,data-mov,numero-mov), ma il numero digiorni per la valuta dipende solo dalla causale relation movimento (numero-cc: integer, data-mov: date, numero-mov: integer, importo: integer, causale: char). relation valuta (causale: char, num-giorni: integer). Informatica Generale (CdL in E&C), A.A. 2000-2001 68 7

Formalismi per la descrizione dei dati Linguaggi DDL (Data Definition Language) descrizione tabelle, attributi, chiavi DML (Data Manipulation Language) inserimento, cancellazione e modifica dei dati QL (Query Language) interrogazioni Ausili grafici Informatica Generale (CdL in E&C), A.A. 2000-2001 69 Il linguaggio SQL (Structured Query Language) Standard per il modello relazionale (presente in tutti i DBMS relazionali) Linguaggio completo: definizione di relazioni ed espressione di interrogazioni e modifiche ad una BD relazionale (cioè, include DDL, DML e QL) Sintassi semplice ed intuitiva Ausili grafici in tutti i DBMS moderni Informatica Generale (CdL in E&C), A.A. 2000-2001 70 8

Creazione di relazioni in SQL CREATE TABLE CONTO-CORRENTE (NUMERO-CC: integer, PRIMARY KEY, NOT NULL, NOME: char(20), NOT NULL, INDIRIZZO: char(20), SALDO: integer, NOT NULL ). CREATE TABLE MOVIMENTO (NUMERO-CC: integer, NOT NULL, DATA-MOV: date, NOT NULL, NUMERO-MOV: integer, NOT NULL, IMPORTO: integer, CAUSALE: char(1), PRIMARY KEY (NUMERO-CC, DATA-MOV, NUMERO-MOV) ). Informatica Generale (CdL in E&C), A.A. 2000-2001 71 Manipolazione dati ed interrogazioni in SQL Nel modello relazionale si basano su tre operazioni fondamentali di algebra relazionale selezione (SELECT) di righe da una tabella su condizione fusione (JOIN) di due tabelle rispetto ad un attributo comune proiezione (PROJECT) di colonne e costruzione di tabelle ridotte Informatica Generale (CdL in E&C), A.A. 2000-2001 72 9

L istruzione SQL SELECT Permette di effettuare le tre operazioni fondamentali La forma generale contiene tre tipi di clausole: SELECT, FROM e WHERE SELECT attributi da selezionare FROM relazione/i da cui selezionare WHERE condizioni che devono essere soddisfatte dai dati Informatica Generale (CdL in E&C), A.A. 2000-2001 73 Esempi di uso dell istruzione SELECT SELECT nome, saldo FROM conto-corrente Il risultato è una relazione che costituisce una proiezione della relazione conto-corrente su due dei suoi attributi Nome Saldo Abriani 2.356.700 Bianchi 3.214.430 Sommella 2.543.890 Leoncini 1.246.400 D Ecclesia 3.542.270 Informatica Generale (CdL in E&C), A.A. 2000-2001 74 10

Esempi di uso dell istruzione SELECT (2) SELECT nome, saldo FROM conto-corrente WHERE saldo < 2000000 Il risultato è una selezione della proiezione di conto-corrente sugli attributi nome e saldo Nome Saldo Leoncini 1.246.400 Informatica Generale (CdL in E&C), A.A. 2000-2001 75 Esempi di uso dell istruzione SELECT (3) SELECT nome, data, importo FROM conto-corrente, movimento WHERE conto-corrente.numero-cc = movimento.numero-cc AND importo>2000000 AND data-mov >1-1-99 Il risultato è dapprima la tabella unione, cui viene applicata la proiezione e, infine, la selezione Nome Data-mov Importo Abriani 15-3-99 2.300.000 Sommella 10-3-99 3.100.000 Informatica Generale (CdL in E&C), A.A. 2000-2001 76 11

Esempi di uso dell istruzione SELECT (4) SELECT data-mov, importo, causale FROM conto-corrente, movimento WHERE conto-corrente.numero-cc = movimento.numero-cc AND data-mov >=1-1-99 AND nome = Abriani ORDER BY importo Il risultato è ordinato rispetto al campo importo Data-mov Importo Causale 26-2-99-300000 P 26-2-99 200000 V 15-3-99 2300000 S Informatica Generale (CdL in E&C), A.A. 2000-2001 77 Altre operazioni Applicabili solo a tabelle omogenee (cioè con gli stessi attributi) Unione insiemistica: C=A? B? = Intersezione insiemistica: C=A? B? = Differenza insiemistica: C=A-B - = Informatica Generale (CdL in E&C), A.A. 2000-2001 78 12

Esempi di uso dell istruzione SELECT (5) SELECT numero-cc FROM conto-corrente WHERE saldo>3000000 UNION SELECT numero-cc FROM movimento WHERE importo>3000000; Il risultato è l unione di due tabelle composte dal solo campo numero-cc Numero-cc Informatica Generale (CdL in E&C), A.A. 2000-2001 79 2 3 5 DDL in Access Informatica Generale (CdL in E&C), A.A. 2000-2001 80 13

DDL in Access (2) Informatica Generale (CdL in E&C), A.A. 2000-2001 81 DML in Access Informatica Generale (CdL in E&C), A.A. 2000-2001 82 14

QL in Access Informatica Generale (CdL in E&C), A.A. 2000-2001 83 QL in Access (2) Informatica Generale (CdL in E&C), A.A. 2000-2001 84 15

Indici Tabella ordinata rispetto ad uno o più attributi? se chiave primaria, l indice è univoco Facilitano l accesso ad una tabella (come l indice di un libro facilita la consultazione e il reperimento di informazione) Contiene due soli attributi valore dell attributo sul quale si effettua l ordinamento posizione nella tabella indicizzata Informatica Generale (CdL in E&C), A.A. 2000-2001 85 Indici: esempio Indice Cognome Pos. Abriani 9 Bianchi 5 D Ecclesia 2 Leoncini 8 Maddalena 3 Murat 7 Nicoletti 4 Sommella 6 Spada 1 Tabella studenti Cognome Spada D Ecclesia Maddalena Nicoletti Bianchi Sommella Murat Leoncini Abriani Informatica Generale (CdL in E&C), A.A. 2000-2001 86 16

Ricerca in un indice Ricerca dicotomica (o logaritmica ) Formalizza la ben nota procedura di ricerca di una voce in un dizionario o un elenco Efficiente tabella di N righe?log 2 N? accessi al più con ricerca dicotomica N accessi al più con ricerca sequenziale Esempio: N=1000000? solo 20 accessi Informatica Generale (CdL in E&C), A.A. 2000-2001 87 Esempio (ricerca della riga dell indice con nome Sommella ) controlla il nome nella posizione intermedia I=?(1+9)/2?=5; poiché tale nome ( Maddalena ) precede Sommella, la ricerca prosegue nella seconda metà della tabella controlla il nome nella posizione I=?(6+9)/2?=7; poiché tale nome ( Nicoletti ) precede Sommella, la ricerca prosegue nell ultima parte della tabella controlla il nome nella posizione I=?(8+9)/2?=8; poiché tale nome è Sommella la ricerca termina Informatica Generale (CdL in E&C), A.A. 2000-2001 88 17

Rappresentazione ad albero di un indice Maddalena Bianchi Nicoletti Abriani D Ecclesia Murat Sommella Leoncini Spada Informatica Generale (CdL in E&C), A.A. 2000-2001 89 Integrità dei dati Integrità semantica valori di tipo corretto, controllo duplicazioni, ecc. Integrità di contesa blocco risorse contese (? problema del deadlock) Integrità referenziale correttezza dei riferimenti fra tabelle Informatica Generale (CdL in E&C), A.A. 2000-2001 90 18

Strumenti applicativi Gestione di maschere (form): determina formato e modalità di interazione dell utente con la base dati Generazione di rapporti (report) Strumenti più generali: linguaggi di IV generazione (includono gestione maschere e generazione di rapporti) Informatica Generale (CdL in E&C), A.A. 2000-2001 91 Uso di maschere per inserimento dati Informatica Generale (CdL in E&C), A.A. 2000-2001 92 19

Creazione automatica di rapporti Informatica Generale (CdL in E&C), A.A. 2000-2001 93 20