Fondamenti di Informatica Archivi e basi di dati MEMORIA DI MASSA Dispositivi per la memorizzazione di massa … sequenziali nastri magnetici tape cassette … ad accesso diretto floppy-disk dischi magnetici CD-ROM DVD La memorizzazione L’archivio (file) Il record fisico Il record logico Il campo G. Piscitelli Politecnico di Bari pag. 1/33 Fondamenti di Informatica Archivi e basi di dati L’ORGANIZZAZIONE DELLA MEMORIZZAZIONE … sequenziale il campo chiave e l’ordinamento la ricerca di un record logico (algoritmo dicotomico) l’inserimento di nuovi elementi (archivio variazionale) … ad accesso calcolato l’allocazione dei record (algoritmo di hashing) la risoluzione dei conflitti di sinonimia (primo posto libero e aree di overflow) … ad indice il file indice l’indice unique e l’indice multiple G. Piscitelli Politecnico di Bari pag. 2/33 Fondamenti di Informatica Archivi e basi di dati BASE DI DATI definizione e proprietà … è una collezione di dati 9 organizzati in maniera da poter soddisfare agevolmente le “interrogazioni” o “ricerche” riferite ai dati stessi, 9 gestiti da “procedure pubbliche” (o programmi standard) costituenti il Data Base Management System (DBMS). Le procedure di un DBMS garantiscono: ¾ consistenza e minima ridondanza dei dati; ¾ privatezza dei dati; ¾ integrità dei dati; ¾ disciplina della concorrenza nell’accesso ai dati. G. Piscitelli Politecnico di Bari pag. 3/33 Fondamenti di Informatica Archivi e basi di dati BASE DI DATI punti di vista e indipendenza Un DBMS fornisce tre diversi “punti di vista” sui dati contenuti nel data-base: 9 lo schema esterno, che presenta i dati che interessano un particolare utente o gruppo di utenti in forma compatibile con le necessità degli utilizzatori Ö la vista sui dati 9 lo schema logico, che evidenza l’organizzazione dei dati in ragione della loro struttura e delle relazioni tra di essi esistenti; 9 lo schema fisico, che guarda alla base di dati come insieme di record e archivi dislocati sulle memorie di massa. Un DBMS deve garantire: l’indipendenza fisica della base di dati, intesa come capacità di modificare lo schema fisico (cambio della memoria di massa, diversa dislocazione degli spazi dedicati ad ospitare la base di dati, ecc.) senza dover modificare lo schema logico, cioè l’organizzazione dei dati e, conseguentemente, i programmi; l’indipendenza logica della base di dati, intesa come capacità di “estendere” lo schema logico o quello esterno, senza dover apportare modificazioni alle viste pre-esistenti. G. Piscitelli Politecnico di Bari pag. 4/33 Fondamenti di Informatica Archivi e basi di dati BASE DI DATI modelli dei dati e linguaggi Un DBMS prevede l’organizzazione e strutturazione dei dati in base ad uno dei seguenti modelli: • gerarchico, basato sulla struttura gerarchica dei rapporti tra dati; • reticolare (o Codasyl), basato sulla struttura a grafo dei rapporti tra dati; • relazionale, che si rifà agli insiemi ed alle relazioni tra insiemi (algebra relazionale), strutturando i dati tramite tabelle; • ad oggetti, che si fonda sui concetti di base della progettazione e programmazione ad oggetti (classe, oggetto, ecc.). La progettazione dello schema logico della base di dati (data-base design) secondo un particolare modello è un’attività delicata e complessa, che precede la fase di utilizzo del data-base, durante la quale il valore dei dati viene istanziato o modificato. G. Piscitelli Politecnico di Bari pag. 5/33 Fondamenti di Informatica Archivi e basi di dati BASE DI DATI modelli dei dati e linguaggi Il DBMS deve fornire quindi: − un linguaggio per definire lo schema logico della base di dati (Data Definition Language o DDL); − un linguaggio per manipolare la base di dati (Data Manipulation Language o DML). G. Piscitelli Politecnico di Bari pag. 6/33 Fondamenti di Informatica Archivi e basi di dati BASE DI DATI la progettazione Il design di una base di dati comporta, una volta deciso il modello organizzativo, lo svolgimento delle seguenti principali attività: 9 definizione dello schema concettuale, attraverso la individuazione dei particolari aspetti della realtà di cui si vogliono descrivere le caratteristiche; 9 normalizzazione dello schema, intesa come raffinamento dello schema concettuale, al fine di meglio garantire consistenza e riduzione della ridondanza dei dati; 9 definizione dello schema logico, intesa come assestamento ed organizzazione dei dati che sono presenti nella base di dati. Se si assume di far uso del modello relazionale, lo schema concettuale viene realizzato costruendo il modello Entità-Relazioni della specifica base di dati da realizzare. G. Piscitelli Politecnico di Bari pag. 7/33 Fondamenti di Informatica Archivi e basi di dati BASE DI DATI fasi della progettazione LO SCHEMA CONCETTUALE • • Cosa è: una rappresentazione di alto livello dei dati • • Come si definisce: mediante il modello Entità - Relazioni (Entity-Relationship) Cosa contiene: una descrizione dettagliata dei dati, delle relazioni e dei vincoli, ma non dei dettagli fisici relativi alla memorizzazione dei dati Come si descrive: mediante il diagramma Entità - Relazioni (Entity-Relationship Diagram o ERD) G. Piscitelli Politecnico di Bari pag. 8/33 Fondamenti di Informatica Archivi e basi di dati IL DIAGRAMMA ENTITÀ - RELAZIONI Entità: una classe (o insieme) di oggetti omogenei (astratti o tangibili) appartenenti alla realtà e capaci di rappresentarne gli aspetti di interesse Attributi: le proprietà che caratterizzano ciascuna entità nel contesto di interesse Definizione: un attributo A di una entità E il cui insieme di valori è V, è definibile come: A : E -> P(V) dove P(V) è l’insieme dei sotto-insiemi di V. Cognome Numero_ matricola Indirizzo Nome Data_di_ nascita STUDENTE Telefono La singola occorrenza di una entità (1 singolo esemplare della classe) sarà caratterizzata da valori assunti dagli attributi. G. Piscitelli Politecnico di Bari pag. 9/33 Fondamenti di Informatica Archivi e basi di dati IL DIAGRAMMA ENTITÀ - RELAZIONI Esempio: {STUDENTE}1 Cognome = Genchi Nome = Nicola Numero_matricola = 546381V ...... {STUDENTE}2 Cognome = Paradiso Nome = Germana Numero_matricola = 582245S ...... G. Piscitelli Politecnico di Bari pag. 10/33 Fondamenti di Informatica Archivi e basi di dati IL DIAGRAMMA ENTITÀ - RELAZIONI Tipi particolari di attributo: Attributo Composto: è suddivisibile in parti più piccole che hanno ancora una propria specificità. esempio: Indirizzo Ö Via, Civico, CAP, Città, Stato. Utile quando preveda riferimenti a singole parti dell’attributo (via e civico). Attributo Multivalore: può assumere più di un singolo valore per ciascuna occorrenza di una entità. esempio: Telefono, titoli_di_studio, sedi. Attributo derivato: attributo che è possibile o conveniente determinare a partire da altri attributi. esempio: G. Piscitelli Età è derivabile da data di nascita (è anche conveniente?) Politecnico di Bari pag. 11/33 Fondamenti di Informatica Archivi e basi di dati IL DIAGRAMMA ENTITÀ - RELAZIONI Il dominio di un attributo: è l’insieme dei valori che possono essere assegnati ad un attributo di una entità. esempio: altezza Ö mt 1.00 - 1.65 nome Ö insieme delle stringhe di caratteri. Il valore nullo: quando per un attributo in un esemplare di entità non sia possibile determinare un valore, viene creato il valore Null. Il suo significato può essere duplice: 1-Ignoto; 2- Non applicabile. esempio: 1- Voto_di_maturità = null (non è noto il valore, ma la maturità è stata conseguita). 2- Civico = null (non esiste una numerazione poiché l’urbanizzazione non è completa). G. Piscitelli Politecnico di Bari pag. 12/33 Fondamenti di Informatica Archivi e basi di dati IL DIAGRAMMA ENTITÀ - RELAZIONI La chiave di una entità Come distinguere tra occorrenze di una stessa entità? Assumiamo l’esistenza di un vincolo di unicità sugli attributi. Esiste cioè un sotto-insieme di attributi (che può ridursi ad uno) di una entità, la cui combinazione di valori è distinta per ciascuna occorrenza di una entità. Tale sotto-insieme viene detto chiave dell’entità. Il vincolo di unicità è relativo allo schema dell’entità, non ad un particolare insieme di occorrenze di entità. Essa pertanto vale sempre. La chiave va determinata quindi sulla base delle proprietà della realtà che la base di dati rappresenta. Una entità può avere più di un insieme di attributi che verificano il vincolo di chiave. Esempio: Numero di telaio e numero di targa per l’entità AUTOVETTURA. Numero di matricola e Cognome-Nome-Data_di_nascita per l’entità STUDENTE. G. Piscitelli Politecnico di Bari pag. 13/33 Fondamenti di Informatica Archivi e basi di dati IL DIAGRAMMA ENTITÀ - RELAZIONI Relazione: associazione o legame logico esistente tra due o più entità. Formalmente è una funzione che associa ad uno o più esemplari di un insieme-entità, uno o più esemplari dell’altro insieme-entità. Una entità può essere in relazione con se stessa. In tal caso si utilizzano esplicitamente nomi di ruolo per chiarire la partecipazione Studente Studente Studente frequenta Corso_di_ Laurea Corso_di_ Laurea elegge Studente Grado di una relazione: numero di entità partecipanti. G. Piscitelli frequenta frequenta Corso_di_ Laurea Disciplina_di_ studio Politecnico di Bari pag. 14/33 Fondamenti di Informatica Archivi e basi di dati IL DIAGRAMMA ENTITÀ - RELAZIONI Cardinalità di una relazione: specifica il numero di occorrenze di relazione cui le occorrenze di entità possono partecipare. Le cardinalità vengono espresse normalmente come 1:1, 1:N, M:N. • 1:1 (uno a uno), alla relazione partecipa una singola occorrenza di entità per ciascuna delle 2 entità partecipanti; • 1:N (uno a molti), alla relazione possono partecipare, per una singola occorrenza di entità di una delle entità partecipanti, svariate occorrenze dell’altra entità; • M:N (molti a molti), vale anche il viceversa della precedente definizione. La relazione può essere interpretata in senso inverso. Docente presidenza La cardinalità può anche prevedere l’assenza di corrispondenza. Corso_di_ Laurea iscrizione Studente G. Piscitelli Politecnico di Bari frequenza Corso_di_ Laurea Studente Disciplina_di_ studio pag. 15/33 Fondamenti di Informatica Archivi e basi di dati IL DIAGRAMMA ENTITÀ - RELAZIONI Gerarchie ISA (o entità deboli) Rappresentano legami logici tra una entità E (padre o entità forte) e una o più entità E1, E2, .. , EN (figli o entità deboli). Il padre è più generale dei figli, che sono considerabili specializzazioni. ISA ≡ IS-A → “è un” esempio: Un liceale è uno studente; un universitario è uno studente. G. Piscitelli Politecnico di Bari pag. 16/33 Fondamenti di Informatica Archivi e basi di dati LO SCHEMA CONCETTUALE Riepilogo: • Va costruito dopo una adeguata attività di raccolta di requisiti. • Consente una descrizione ad alto livello dei dati. • Aiuta a chiarire ulteriormente i requisiti • Consente di esplicitare numerosi vincoli • E’ soggettivo: numerose scelte sono possibili e vanno adeguatamente ponderate. • Se costruito in modo adeguato consente la mappatura immediata nel modello logico relazionale. • Richiede comunque ulteriori raffinamenti e verifiche (normalizzazione). G. Piscitelli Politecnico di Bari pag. 17/33 Fondamenti di Informatica Archivi e basi di dati BASE DI DATI fasi della progettazione LO SCHEMA LOGICO Il modello relazionale − Basato sul lavoro di Codd (~1970) − E’ attualmente il modello più utilizzato nel mondo dei database (Oracle, Informix, IBM, Microsoft, etc.) − E’ basato su una struttura dati semplice ed uniforme, la relazione. − Ha solide basi teoriche. Concetti base del modello 9 Una base di dati è rappresentata come una collezione di relazioni. 9 Possiamo informalmente considerare una relazione come una tabella. 9 Ciascuna riga rappresenta una collezione di valori di dati tra loro collegati 9 Il nome della relazione e quelli delle colonne consentono di comprendere il significato dei valori delle righe. 9 Tutti i valori di una colonna sono del medesimo tipo, appartengono cioè ad un medesimo dominio. Cognome Genchi Paradiso G. Piscitelli Nome Nicola Germana Politecnico di Bari Matricola 546381V 582245S pag. 18/33 Fondamenti di Informatica Archivi e basi di dati BASE DI DATI LO SCHEMA LOGICO Dominio: un insieme di valori atomici, cioè indivisibili. Esempio: voti_università Ö valori tra 0 e 30. nomi_propri Ö l’insieme dei nomi di persona. A ciascun dominio si associa un tipo di dato o formato. Schema di una relazione: è specificato come un nome R e una lista di attributi (A1, A2, .. , AN). Ciascun attributo Ai corrisponde ad un dominio D(Ai) nello schema relazionale. Esempio: Studente (nome, cognome, matricola, data_nascita, data_immatr) Grado della relazione: numero di attributi. Istanza di R: r(R), è un insieme di tuple r = (t1, t2, .. , tm). Ciascuna tupla t è una lista ordinata di valori t = < v1, v2, .., vn>; Ciascun valore vi ∈ dom(Ai) ∪ null (dove null rappresenta uno speciale valore, sconosciuto, inapplicabile). G. Piscitelli Politecnico di Bari pag. 19/33 Fondamenti di Informatica Archivi e basi di dati BASE DI DATI LO SCHEMA LOGICO Cardinalità: il numero di tuple nella estensione r(R). Vincolo di dominio: i valori di ciascun attributo sono valori atomici appartenenti al corrispondente dominio. Vincolo di chiave: per ogni relazione R esiste un sotto-insieme di attributi sk tale che t1[sk] ≠ t2 [sk]. Il sottoinsieme sk dicesi superchiave. Dicesi chiave un sottoinsieme di attributi che goda della ulteriore proprietà di essere minimo, cioè privo di attributi ridondanti. Es.: studente(nome, cognome, matricola, data_nascita) Il sottoinsieme nome, cognome, matricola è superchiave, come pure cognome, matricola. Matricola è chiave (non ridondante) In genere possono esserci più sotto-insiemi di attributi che verificano le due proprietà: chiavi candidate. La chiave designata è detta chiave primaria (PK). Integrità di entità: nessuna chiave primaria può assumere valore null. Integrità referenziale: una tupla in una relazione R1 che si riferisca ad un’altra relazione R2 deve riferirsi ad una tupla esistente in R2. G. Piscitelli Politecnico di Bari pag. 20/33 Fondamenti di Informatica Archivi e basi di dati BASE DI DATI Dal modello concettuale al modello relazionale ¾ Creare una relazione per ogni entità con gli attributi semplici della stessa entità, scegliendo come chiave primaria una delle chiavi dell’entità. ¾ Per le entità deboli, creare una relazione con gli attributi dell’entità e includere, inoltre, come chiave esterna, la chiave primaria dell’entità “proprietaria”. La chiave primaria della nuova relazione sarà la combinazione della chiave esterna più la chiave parziale. ¾ Per ogni associazione binaria 1:1, identificare le entità partecipanti S e D. Scegliere una entità S con partecipazione totale ed includere in essa, come chiave esterna, la PK di D. Includere in S anche eventuali attributi dell’associazione. ¾ Per ogni associazione binaria 1:N, identificare le entità partecipanti. Scegliere l’ entità S dal lato N ed includere in essa, come chiave esterna, la PK dell’altra. Includere in S anche eventuali attributi dell’associazione. ¾ Per ogni associazione R di tipo M:N creare una nuova relazione R. Includere le chiavi esterne delle entità partecipanti; la loro combinazione formerà la PK di R; includere eventuali attributi di R. ¾ Per ogni attributo multivalore A, creare una nuova relazione che include A e la chiave primaria della entità di partenza come chiave esterna. La PK sarà la combinazione della chiave esterna e di A. G. Piscitelli Politecnico di Bari pag. 21/33 Fondamenti di Informatica Archivi e basi di dati L’ALGEBRA RELAZIONALE … è un linguaggio procedurale: le operazioni vengono specificate descrivendo il procedimento da seguire … è un’algebra chiusa: e’ costituita da un insieme di operatori definiti su relazioni che producono relazioni. … il risultato di una operazione può essere ulteriormente manipolato. … i principali operatori sono la selezione, la proiezione (operatori unari) e il join (operatore binario). … esistono le operazioni tipiche dell’insiemistica: unione, intersezione, differenza e il prodotto cartesiano G. Piscitelli Politecnico di Bari pag. 22/33 Fondamenti di Informatica Archivi e basi di dati L’ALGEBRA RELAZIONALE Selezione (SELECT) Consente di selezionare un sotto-insieme delle tuple di una relazione che soddisfino una condizione di selezione. L’operazione è espressa in generale come: σ<condizione_di_selezione> (<relazione>) La condizione di selezione può prevedere comparazione tra attributi compatibili o con costanti, oltre a essere ottenuta collegando varie condizioni mediante connettivi logici (and, or, not). Esempio σdata_nasc>1/1/1960.and.data_ass>1/6/1994(impiegato) L’operazione viene applicata a ciascuna tupla individualmente. La relazione risultante mantiene lo schema di quella di partenza, i.e. il grado rimane invariato. La cardinalità risultante è invece ≤ di quella di partenza. La selezione è commutativa: σ<cond1> (σ<cond2> (<R>) ≡ σ<cond2> (σ<cond1> (<R>) G. Piscitelli Politecnico di Bari pag. 23/33 Fondamenti di Informatica Archivi e basi di dati ALGEBRA RELAZIONALE Esempio di Selezione S = σdata_nasc>1/1/1960.and.data_ass>1/6/1994(impiegato) La relazione Impiegato Cognome Davolio Laforet Esposito Kranz Taylor Da Silva Fonseca D’Amico Francavilla Al Housseini Nome Nancy Gennaro Giulio Silvana William Cristobal Gabriel Sergio Stefano Ali Mustafa Data_nasc 14/10/1958 1/3/1975 28/7/1969 22/11/1972 30/9/1967 31/7/1955 22/12/1950 14/1/1963 11/4/1961 15/8/1971 Titolo Data_ass Dott.essa 12/3/1987 Ing. 15/9/2000 Dott. 30/10/1996 Ing. 25/11/1999 Sig. 21/6/1997 Dott. 7/9/1986 Sig. 11/3/1985 Ing. 2/1/1993 Dott. 1/5/1990 Dott. 31/10/1999 Il risultato dell’operazione di selezione La relazione S Cognome Laforet Esposito Kranz Taylor Al Housseini G. Piscitelli Nome Gennaro Giulio Silvana William Ali Mustafa Data_nasc 1/3/1975 28/7/1969 22/11/1972 30/9/1967 15/8/1971 Politecnico di Bari Titolo Ing. Dott. Ing. Sig. Dott. Data_ass 15/9/2000 30/10/1996 25/11/1999 21/6/1997 31/10/1999 pag. 24/33 Fondamenti di Informatica Archivi e basi di dati L’ALGEBRA RELAZIONALE Proiezione (PROJECT) Consente di selezionare un sotto-insieme degli attributi di una relazione elencati in una lista di attributi di proiezione. L’operazione è espressa in generale come: π<lista_di_attributi> (<relazione>) L’operazione modifica, in generale, il grado, i.e. il numero di attributi. L’operazione modifica, in generale, anche la cardinalità (perché?) L’operazione non è commutativa. esempio πCognome, Nome (impiegato) Trattando operazioni in una algebra chiusa è ovviamente possibile scrivere espressioni come sequenza di operazioni. πCognome, Nome (σTitolo = “Dott.” (impiegato)) Cognome Esposito Da Silva Francavilla Al Housseini G. Piscitelli Nome Giulio Cristobal Stefano Ali Mustafa Politecnico di Bari pag. 25/33 Fondamenti di Informatica Archivi e basi di dati ALGEBRA RELAZIONALE Esempi di Proiezione πCognome, Nome (impiegato) ----- πTitolo (impiegato) La relazione Impiegato Cognome Davolio Laforet Esposito Kranz Taylor Da Silva Fonseca D’Amico Francavilla Al Housseini Nome Nancy Gennaro Giulio Silvana William Cristobal Gabriel Sergio Stefano Ali Mustafa Data_nasc 14/10/1958 1/3/1975 28/7/1969 22/11/1972 30/9/1967 31/7/1955 22/12/1950 14/1/1963 11/4/1961 15/8/1971 Titolo Dott.essa Ing. Dott. Ing. Sig. Dott. Sig. Ing. Dott. Dott. Data_ass 12/3/1987 15/9/2000 30/10/1996 25/11/1999 21/6/1997 7/9/1986 11/3/1985 2/1/1993 1/5/1990 31/10/1999 Il risultato delle operazioni di proiezione Cognome Davolio Laforet Esposito Kranz Taylor Da Silva Fonseca D’Amico Francavilla Al Housseini G. Piscitelli Nome Nancy Gennaro Giulio Silvana William Cristobal Gabriel Sergio Stefano Ali Mustafa Titolo Dott.essa Ing. Dott. Sig. Politecnico di Bari pag. 26/33 Fondamenti di Informatica Archivi e basi di dati L’ALGEBRA RELAZIONALE Join R ><< condizione > S = σ < condizione > ( R × S) ove <condizione> è dello stesso tipo di quella già vista per la selezione. E’ l’operazione utilizzata per combinare coppie di tuple provenienti da relazioni collegate in singole tuple. Consente di elaborare le “associazioni” tra relazioni. Il join con una condizione generica è detto theta join. Quando la condizione sia una uguaglianza l’operazione è detta equi join. Questa operazione includerà due volte, nella tabella risultante, gli attributi su cui è posta la condizione di uguaglianza. Quando l’operazione si limita a riportare una volta l’attributo di comparazione nella tabella risultante parleremo di join naturale. G. Piscitelli Politecnico di Bari pag. 27/33 Fondamenti di Informatica Archivi e basi di dati ALGEBRA RELAZIONALE Esempio di Join Relazione R Cognome Davolio Esposito Kranz Taylor Nome Nancy Giulio Silvana William Titolo Dott.essa Dott. Ing. Sig. Data_nasc 14/10/1958 28/7/1969 22/11/1972 30/9/1967 Relazione S Cognome Davolio Laforet Esposito Kranz Taylor Da Silva Al Housseini Titolo Dott.essa Ing. Dott. Ing. Sig. Dott. Dott. Data_ass 12/3/1987 15/9/2000 30/10/1996 25/11/1999 21/6/1997 7/9/1986 31/10/1999 <condizione> ≡ Cognome (R) = Cognome (S) .and. Titolo (R) = Titolo (S) Cognome Davolio Esposito Kranz Taylor G. Piscitelli Nome Nancy Giulio Silvana William Data_nasc 14/10/1958 28/7/1969 22/11/1972 30/9/1967 Politecnico di Bari Titolo Dott.essa Dott. Ing. Sig. Data_ass 12/3/1987 30/10/1996 25/11/1999 21/6/1997 pag. 28/33 Fondamenti di Informatica Archivi e basi di dati L’ALGEBRA RELAZIONALE Unione (UNION): R∪S produce una relazione che include tutte le tuple presenti in R o in S o in entrambe. Intersezione (INTERSECTION): R∩S produce una relazione che include tutte le tuple presenti sia in R che in S. Differenza (DIFFERENCE): R-S produce una relazione che include tutte le tuple presenti in R, ma non in S. Sono operazioni binarie dell’insiemistica. Hanno senso su relazioni compatibili, cioè con identici attributi o almeno appartenenti al medesimo dominio. Prodotto cartesiano: è una operazione binaria su insiemi, ma non richiede la compatibilità delle relazioni partecipanti. E’ denotata con il simbolo X. Il grado della relazione risultante è pari alla somma dei gradi delle due relazioni partecipanti. La cardinalità è pari al prodotto di quelle delle due relazioni partecipanti. G. Piscitelli Politecnico di Bari pag. 29/33 Fondamenti di Informatica Archivi e basi di dati BASI DI DATI fasi della progettazione LA NORMALIZZAZIONE La modellazione E-R ci ha consentito di descrivere schemi relazionali. Lo strumento base per la modellizzazione è all’inizio “la ragionevolezza”. Scelta degli attributi: Progettare lo schema in modo che sia semplice descrivere il suo significato, prestare cioè attenzione alla semantica degli attributi. Evitare di riunire in uno schema di relazione attributi propri di entità diverse del mondo reale. Ridurre la ridondanza: Ha un duplice scopo: ridurre la “storage area” e evitare le anomalie da aggiornamento Ridurre il numero di valori null nelle tuple: Valori null possono essere variamente interpretati: non applicabile, sconosciuto, non inserito In molti casi conviene creare nuove relazioni per ridurre i null. Evitare le tuple spurie: Una tupla spuria (cioè con informazioni non corrette) può essere generata a seguito di un join naturale. G. Piscitelli Politecnico di Bari pag. 30/33 Fondamenti di Informatica Archivi e basi di dati LA NORMALIZZAZIONE Esistono però metodi formali per assicurare la scelta di “buoni” schemi relazionali. Tali metodi vengono essenzialmente utilizzati per verificare e raffinare lo schema. Dipendenze funzionali Una dipendenza funzionale è un vincolo tra due insiemi di attributi di una base di dati e dipende dalla semantica dello schema. Data uno schema relazionale R e due sotto-insiemi non vuoti di attributi X e Y esiste una dipendenza funzionale X→Y (o Y dipende funzionalmente da X) se per ogni istanza r di R: t1∈ r, t2 ∈ r, Πx(t1) = Πx(t2) ⇒ Πy(t1) = Πy(t2) Una dipendenza funzionale X→Y è piena quando non esiste alcun attributo di Y che dipenda funzionalmente da un sotto-insieme degli attributi di X. In tal caso si dice che Y dipende pienamente da X. Una dipendenza funzionale X→Y è transitiva se esiste un insieme di attributi W per cui valgono le dipendenze funzionali X→W e W→Y. In tal caso si dice che Y dipende transitivamente da X tramite W. Un attributo primo è un attributo che fa parte di almeno una chiave. G. Piscitelli Politecnico di Bari pag. 31/33 Fondamenti di Informatica Archivi e basi di dati LA NORMALIZZAZIONE Le forme normali − Un metodo formale per analizzare le relazioni − Consentono una eventuale decomposizione di relazioni in schemi che godono di migliori proprietà. 1a forma normale Coincide in pratica con la definizione di relazione. Il dominio di ciascun attributo deve consistere di valori atomici e il valore di un attributo in una tupla deve essere un valore singolo del dominio. Ogni attributo non chiave dipende funzionalmente dalla chiave. 2a forma normale Uno schema R è in questa forma se ogni attributo non primo ha una dipendenza piena dalla chiave di R. 3a forma normale Uno schema R è in questa forma se è in seconda forma normale e se ogni suo attributo non primo non dipende transitivamente dalla chiave. G. Piscitelli Politecnico di Bari pag. 32/33 Fondamenti di Informatica Archivi e basi di dati SQL Il DDL … … si basa sulle istruzioni CREATE TABLE CREATE INDEX DROP TABLE DROP INDEX Il DML … … si basa sulle istruzioni SELECT (attributi) FROM (relazioni) WHERE (condizioni) INSERT INTO (relazione): <tupla1>, <tupla2>, … DELETE FROM (relazione) WHERE (condizioni) UPDATE (relazione) SET (attributo = espressione) WHERE (condizioni) G. Piscitelli Politecnico di Bari pag. 33/33