Progettazione di Basi di Dati Prof. Nicoletta D’Alpaos & Prof. Andrea Borghesan Entità-Relazione Progettazione Logica E’ il modo attraverso il quale i dati sono rappresentati : Progettazione concettuale Schema concettuale fa riferimento al modello logico dei dati prescelto; si usano criteri di ottimizzazione delle operazioni da fare sui dati; qualità dello schema verificata mediante tecniche formali (normalizzazione); 2 Progettazione logica Schema logico Progettazione fisica Schema fisico Modello Logico La scelta del modello del database influisce i passi successivi della progettazione: Spesso, specialmente negli anni passati, è stata una scelta obbligata; Il modello relazionale è, al momento attuale, il più usato; 3 Scelte modello gerarchico modello reticolare modello relazionale modello orientato ad oggetti modello relazionale ad oggetti 4 Modello Gerarchico I dati e le corrispondenze sono rappresentate per mezzo di una struttura ad albero: corrispondenza uno a molti Esempio: “pezzi – fornitori – forniture” Cod.pezzo p1 Cod.fornitore 100 Nome pinco Descrizione bullone Colore verde Quantita 1000 200 120 5 Costo 0.01 pallino 500 tizio 2000 Modello Gerarchico Nel modello gerarchico ogni occorrenza di un dato record ha un suo significato ben preciso solo se vista nel suo contesto; Questo significa che un’occorrenza di un record dipendente non può esistere se non esiste una occorrenza di un record superiore; Nell’esempio un fornitore non può essere descritto se non ha già fornito almeno un pezzo; 6 Modello Reticolare I dati sono rappresentati da record e le corrispondenze sono rappresentate da legami (records connettori) Ogni record può avere un numero qualunque di records superiori e un numero qualunque di records inferiori Non ha il limite di un solo record superiore: corrispondenza molti a molti 7 Modello Reticolare p1 bullone verde 0.01 p2 500 15/5/2006 8 caio blu 0.02 2000 7/6/2006 1000 6/5/2006 100 dado 120 pallino 2000 7/6/2006 200 tizio 2000 7/6/2006 Modello Relazionale Tutte le informazioni, sia dati che corrispondenze, sono trattate in forma di relazioni fornitura Cod.ar t Cod.for n quantit à dat a p1 100 1000 … p1 120 500 p2 100 350 articolo 9 Cod.art . Descrizion e Costo P1 Bullone 0,01 P2 Dado 0,02 fornitore Nome … Cod.for n. …. 100 Caio 120 Pallino 200 Tizio Modello Relazionale La relazione viene comunemente rappresentata come una tabella bidimensionale composta da righe e colonne. Ciascuna riga (tupla) rappresenta un‘istanza. Le caratteristiche di ciascuna entita' (attributi) sono definite dalle colonne delle relazioni. Entita' con caratteristiche comuni, cioe' descritti dallo stesso insieme di attributi, fanno parte della stessa relazione. 10 Modello Object-Oriented Gli oggetti memorizzati nel database contengono sia i dati che le operazioni possibili su tali dati. Lo schema e' rappresentato da un insieme di classi, che definiscono le caratteristiche ed il comportamento degli oggetti che popoleranno il database. 11 Modello Relazionale 12 Modello Relazionale Si basa sui concetti di: Relazione Tabella …riconducibili uno all‟altro 13 Modello Relazionale Relazione: A2 …… An a1 a2 ….. an tupla grado 14 domini cardinalità A1 Modello Relazionale Dal punto di vista matematico, dati n insiemi A1, A2,…, An, si dice relazione un sottoinsieme dell’insieme di tutte le n-uple a1, a2,…, an, che si possono costruire prendendo nell’ordine un elemento a1 dal primo insieme A1, a2 da A2, e così via; Il numero n si chiama grado della relazione; Gli insiemi Ai si chiamano domini della relazione Il numero delle n-uple (tuple) si chiama cardinalità della relazione; 15 Modello Relazionale Vincoli Non è vero che qualsiasi insieme di tuple sullo schema rappresenta un’informazione corretta per l’applicazione; Vincoli di integrità : Vincoli di dominio Vincoli di tupla Vincoli di chiave Vincoli di chiave esterna o di integrità referenziale 16 Modello Relazionale Vincoli di dominio Vincolo intrarelazionale; A ciascuna occorrenza di dominio è associato un nome (attributo); Gli attributi sono utilizzati come intestazioni delle colonne; Ogni dominio deve essere definito; La colonna “costo” contiene un numero con 2 posizioni decimali 17 Modello Relazionale Vincoli di tupla Vincolo intrarelazionale; Tramite espressioni booleane più o meno complesse si condizionano i valori di ciascuna tupla, indipendentemente dalle altre tuple; Esempi: Voto>=18 AND Voto <= 30 Voto = 30 OR NOT (Lode=„Si‟) 18 Matricola Corso Voto 53421 A10 20 54791 B05 27 44853 A10 30 53567 B04 30 Lode Si Modello Relazionale chiave La chiave della relazione è un attributo o una combinazione di attributi che identificano in modo univoco le n-uple all’interno della relazione, cioè ogni riga della tabella possiede valori diversi per l’attributo (o gli attributi) chiave; Esempio: il codice articolo identifica l‟articolo 19 Modello Relazionale Vincoli di chiave Un vincolo di chiave è l’imposizione che un certo sottoinsieme minimale di campi di una relazione sia un identificatore unico per una tupla; Un insieme di campi che identificano univocamente una tupla secondo un vincolo di chiave si chiama una chiave candidata per la relazione; 20 Modello Relazionale Vincoli di chiave Una relazione può avere più di una chiave candidata; Tra tutte le chiavi candidate se ne sceglie una come chiave primaria effettiva, le altre sono dette chiavi primarie alternative; Una relazione ha sempre almeno una chiave primaria; La chiave primaria non può assumere valori nulli 21 Modello Relazionale Integrità referenziale Vincolo interrelazionale; Si applica quando le informazioni memorizzate in una relazione sono collegate alle informazioni memorizzate in un’altra tabella; Corso 22 Descrizione A01 Informatica A10 Base dati I B04 Analisi I B05 Analisi II Matricola Corso Voto 53421 C10 20 54791 B05 27 44853 B04 30 53567 B04 30 Lode errore Si DBMS 23 Progettazione fisica Specifica dei parametri fisici di memorizzazione dei dati : Progettazione concettuale Schema concettuale organizzazione dei files e degli indici; dipende dallo specifico sistema di gestione scelto; Progettazione logica Schema logico Progettazione fisica 24 Schema fisico DBMS Data Base Management System è un sistema software in grado di gestire collezioni di dati aventi le seguenti caratteristiche Grandi • dimensioni (molto) maggiori della memoria centrale dei sistemi di calcolo utilizzati • il limite deve essere solo quello fisico dei dispositivi Condivise utilizzabili cioè da utenti diversi, con esigenze, interessi, priorità diversi, che possono accedere solo a parte delle informazioni e potrebbero essere in concorrenza fra loro Persistenti hanno un tempo di vita indipendente dalle singole esecuzioni dei programmi che le utilizzano assicurando la loro affidabilità i dati sono integrati riducendo al minimo la ridondanza (informazioni ripetute) e massimizzando la consistenza (versioni diverse non devono coesistere); e privatezza 25