LE BASI DI DATI Seconda parte – La progettazione di database Relazionali SCHEMA LOGICO e SCHEMA FISICO Costruzione delle tabelle LA PROGETTAZIONE LOGICA Lo scopo della fase di progettazione logica è quello di produrre uno schema logico applicando le regole e i concetti del modello concettuale che si è adottato. (si utilizzano le regole di derivazione studiate nelle lezioni precedenti). Esempio di costruzione di un database Si vuole creare un database bibliografico. L’esigenza è quella di salvare le informazioni sui libri. Un libro è scritto da uno o più autori ed è pubblicato da una casa editrice. 2 SCHEMA CONCETTUALE (1° FASE) Dall’analisi del problema si è ricavato il seguente schema concettuale : Si sono individuate le entità, le associazioni e gli attributi (i nomi sono al singolare! ) 3 SCHEMA LOGICO (2° FASE) Dallo schema concettuale precedente, si è ottenuto il seguente schema logico : Autori(codice, Cognome, Nome, Indirizzo, Città, Cap) CaseEditrici(codice, Nome, Città) Libri(codice, titolo, tipo, prezzo, codiceCasaEditrice) con ‘codiceCasaEditrice’ chiave esterna sul campo ‘codice’ della tabella ‘CaseEditrici’ AutoriLibri(codiceAutore, codiceLibro) con ‘codiceAutore’ chiave esterna sul campo ‘codice’ della tabella ‘Autori’ con ‘codiceLibro’ chiave esterna sul campo ‘codice’ della tabella ‘Libri’ 4 SCHEMA LOGICO (2° FASE) Lo schema Logico dei dati definisce la struttura logica dei dati, cioè il modo in cui le informazioni contenute negli archivi vengono aggregate, indipendentemente dagli archivi fisici in cui esse sono contenute. Nel modello relazionale, un database è una collezione di tabelle. Ogni tabella è definita come una relazione (fra i campi che la costituiscono e che corrispondono alle colonne della tabella). Lo schema logico ottenuto al punto precedente è costituito da un insieme di relazioni ognuna delle quali corrisponde ad una tabella (dal punto di vista del DBMS ) 5 SCHEMA LOGICO (2° FASE) Quindi scrivere Autori(codice, Cognome, Nome, Indirizzo, Città, Cap) (forma testuale) oppure creare la seguente tabella Autori Codice(pk) Cognome Nome Indirizzo Città Cap 6 sono due modi analoghi per rappresentare la stessa relazione. PROPRIETÀ DELLE TABELLE RELAZIONALI Le tabelle relazionali hanno sei proprietà : 1. 2. 3. 4. 5. 6. I valori sono atomici I valori di una colonna appartengono al medesimo dominio Ogni riga è univoca La sequenza delle colonne non è significativa La sequenza delle righe non è significativa Ogni colonna deve avere un nome univoco Vediamole brevemente…. 7 PROPRIETÀ DELLE TABELLE RELAZIONALI I valori sono atomici Significa che le colonne non sono ulteriormente scomponibili. Esempio : Il nome e il cognome di un autore nella tabella Autori non possono essere raggruppati in un’unica colonna Fanno eccezione i campi ‘Indirizzo’ e ‘Telefono’ Sbagliato! Corretto 8 PROPRIETÀ DELLE TABELLE RELAZIONALI I valori di una colonna appartengono al medesimo dominio Questo significa che i valori di una colonna devono essere di uno stesso tipo . Ad esempio nella colonna ‘nome’ della tabella ‘Autori’ ci saranno solo valori di tipo alfanumerici e non numerici o altri dati. Ogni riga è univoca Non possono esistere due righe identiche. La sequenza delle colonne/righe non è significativa L’ordine delle colonne o delle righe non è rilevante Ogni colonna deve avere un nome univoco All’interno di una tabella il nome di una colonna deve essere unico. 9 CHIAVE PRIMARIA E CHIAVE ESTERNA Definizione – chiave primaria Una chiave primaria è una colonna(1), o un insieme di colonne(1) , che identificano univocamente una riga nella tabella. Definizione – chiave esterna Una chiave esterna è una colonna(1), o un insieme di colonne(1) , i cui valori sono gli stessi della chiave primaria di un’altra tabella. 10 (1) O in modo equivalente un campo o un attributo CHIAVE PRIMARIA E CHIAVE ESTERNA La chiave esterna serve ad effettuare l’associazione (o la relazione in termini non matematici) fra due tabelle. La relazione avviene tra due tabelle relazionali confrontando i valori della chiave esterna di una tabella con i corrispondenti valori della chiave primaria dell’altra. 11 SCHEMA FISICO (3° FASE) Popolare le tabelle Una volta definite le tabelle è utile inserire dei dati di prova per verificare se il progetto corrisponde alle specifiche richieste. Esempio – Database bibliografico Se si riprende l’esempio visto in precedenza, che riguarda l’archiviazione dei dati relativi ai libri, agli autori e alle case editrici e se si popolano le tabelle con alcuni dati di prova, si vede come le chiavi delle tabelle relazionali vengano usate per “navigare” dalla tabella Autori a Titoli, a CaseEditrici 12 13 VERIFICA DELLE REGOLE DI INTEGRITÀ E NORMALIZZAZIONE (4° FASE) Questo argomento sarà trattato nelle prossime lezioni… 14