PIL - 2008 Percorsi di Inserimento Lavorativo Basi di Dati - Lezione 2 Il Modello Relazionale Il modello relazionale rappresenta il database come un insieme di relazioni. Ogni RELAZIONE è una tabella con: un numero fisso di colonne (ATTRIBUTI) un numero variabile ma finito di righe (TUPLE). Si basa su definizioni e concetti matematici Docente Dott.ssa Franchini Gloria 2 1 Una relazione può essere rappresentata come una tabella Il grado della relazione è n La cardinalità della relazione è il numero di record Docente Dott.ssa Franchini Gloria 3 Database … Il database è una collezione di tabelle Una tabella è una collezione di record Una cartella dello schedario Un record è una collezione di campi Uno schedario contenente varie cartelle (fornitori, clienti, dipendenti, giacenze, …) Una scheda dello schedario Ogni campo conserva un solo valore Uno “spazio” della scheda da riempire (nome, cognome, data di nascita… ) Docente Dott.ssa Franchini Gloria 4 2 Le Tabelle Le righe della tabella rappresentano i record Le colonne della tabella rappresentano i campi Più tabelle correlate tra loro formano l’intero database Esempio: Docente Dott.ssa Franchini Gloria 5 Il Record Il record contiene informazioni relative ad un soggetto Ogni soggetto deve essere descritto da caratteristiche, chiamate attributi, che lo differenziano dagli altri Gli attributi determinano i campi del record Docente Dott.ssa Franchini Gloria 6 3 Dominio, Grado, Cardinalità Ciascuna COLONNA assume valori estratti da uno stesso DOMINIO: ossia da un insieme predefinito di possibili valori, che deve essere di tipo elementare. In generale un DBMS consente di utilizzare un numero limitato di domini. GRADO di una relazione: numero di colonne (prefissato). CARDINALITÀ di una relazione: numero di righe (varia nel tempo). 7 Docente Dott.ssa Franchini Gloria Passaggio dal Modello Concettuale al Modello Logico Modello E/A Algebra Entità Relazione Modello Relazionale Tabella Istanza n-upla Riga Attributi elemento n Colonne Dominio dominio insieme valori Docente Dott.ssa Franchini Gloria 8 4 Regole di Derivazione Entità Ogni entità diventa una relazione (tabella) Ogni attributo di un’entità diventa un attributo della relazione e quindi un nome di una colonna della tabella (campo) Ogni colonna della relazione eredita le caratteristiche dell’attributo dell’entità da cui deriva L’identificatore univoco di un’entità (chiave) diventa la chiave primaria della relazione Docente Dott.ssa Franchini Gloria 9 Chiave di una Relazione CHIAVE di una relazione R è un sottoinsieme K degli attributi tale che: in una qualunque istanza di R non possano esistere due tuple distinte che ristrette a K sono uguali (unicità); non è possibile sottrarre a K un attributo in modo che la condizione di unicità si mantenga (minimalità). La chiave identifica univocamente un record. Docente Dott.ssa Franchini Gloria 10 5 Chiave di una Relazione – cont. Se una relazione non contiene tuple identiche (come richiesto dalla definizione di DB relazionale) essa deve avere almeno una chiave, che può coincidere con l’insieme di tutti gli attributi. Una relazione può avere più di una chiave (saranno dette chiavi candidate). In particolare: Una chiave composta da un solo attributo è detta chiave semplice; Una chiave composta da più attributi è detta chiave composta. Docente Dott.ssa Franchini Gloria 11 Entità: attributi semplici/composti, attributi multipli Un tipo di ENTITA’ con attributi semplici A1, A2,…,An trova immediata rappresentazione come RELAZIONE R(A1,A2,…,An), ossia mediante una tabella con colonne costituite dagli attributi indicati. Se una ENTITA’ ha attributi composti, essi vengono sostituiti con quelli componenti, fino ad avere tutti attributi semplici rappresentabili come colonne di una tabella. Nel caso di attributi multipli, si procede a una procedura di normalizzazione Docente Dott.ssa Franchini Gloria 12 6 Normalizzazione La normalizzazione consiste nello spezzare la relazione in due relazioni normalizzate equivalenti a quella originaria (ossia aventi complessivamente lo stesso contenuto di informazione): la prima relazione è uguale a quella originaria senza l’attributo multiplo; la seconda contiene le coppie che associano ad ogni singolo sottocampo dell’attributo multiplo il valore della chiave della prima relazione. (L’attributo chiave è sottolineato) Docente Dott.ssa Franchini Gloria 13 DBMS e Integrità Il DBMS può mantenere l’integrità del DB in vari modi: Impedendo a più utenti di modificare lo stesso record contemporaneamente; Impedendo l’immissione di due record duplicati; Garantendo l’assenza di valori nulli dalle chiavi primarie (Integrità sulle entità); Garantendo l’inserimento dei valori appartenenti al dominio consentito e degli attributi obbligatori (integrità sull’attributo) Garantendo un insieme di regole di integrità dei dati sulle chiavi esterne (integrità referenziale) Docente Dott.ssa Franchini Gloria 14 7 Chiavi Esterne Le chiavi esterne servono a mettere in relazione due entità. Se K è chiave primaria di R e chiave esterna di S, allora per ogni stato del database: L’insieme dei valori di S.K deve essere contenuto nell’insieme dei valori R.K. S.K S.K R.K Docente Dott.ssa Franchini Gloria 15 Integrità Referenziale Regole generali 1. Non deve essere possibile immettere un valore nella chiave esterna che non esiste nella chiave primaria della relazione associata 2. Non deve essere consentito cancellare l’istanza di una chiave primaria se esistono delle istanze associate attraverso una chiave esterna nella relazione correlata Docente Dott.ssa Franchini Gloria 16 8 Integrità Referenziale – cont. 3. Non deve essere possibile modificare il valore di una chiave primaria se ad essa corrispondono istanze nella relazione associata attraverso una chiave esterna Ciò fa sì che: Le associazioni tra tabelle siano valide; Non siano possibili errori di inserimento, modifica o cancellazione di dati correlati. Docente Dott.ssa Franchini Gloria 17 Normalizzazione delle relazioni La NORMALIZZAZIONE è una metodologia di progetto che trasforma lo schema iniziale di una base di dati in uno schema finale contenente solo RELAZIONI (tabelle) NORMALIZZATE. Le tabelle vengono trasformate in altre tabelle in modo tale che ciascuna rappresenti un singolo oggetto della realtà di interesse. Docente Dott.ssa Franchini Gloria 18 9 Livelli di Normalizzazione La Normalizzazione è necessaria per evitare inconsistenze dei dati e anomalie nelle operazioni di aggiornamento. Occorre prestare attenzione affinché nel processo di normalizzazione non si abbia perdita di dati. Esistono vari LIVELLI DI NORMALIZZAZIONE: 1FN, 2FN, 3FN… Uno schema relazionale è ritenuto accettabile se tutte le sue relazioni sono almeno in Terza Forma Normale. Docente Dott.ssa Franchini Gloria 19 Prima forma normale (1FN) Una relazione è in 1FN quando rispetta tutti i requisiti del modello relazionale: 1. 2. 3. 4. 5. Tutte le righe della tabella contengono lo stesso numero di colonne; Gli attributi rappresentano informazioni atomiche; I valori che compaiono in una colonna sono dello stesso tipo; Ogni riga è diversa da tutte le altre; L’ordine con il quale le righe compaiono nella tabella è irrilevante. Docente Dott.ssa Franchini Gloria 20 10 Seconda forma normale (2FN) Una relazione è in 2FN: se è in 1FN e tutti gli attributi non-chiave dipendono dall’intera chiave, cioè non possiede attributi che dipendono soltanto da una parte della chiave. Docente Dott.ssa Franchini Gloria 21 Terza forma normale (3FN) Una relazione è in 3FN se è in 2FN e tutti gli attributi non-chiave dipendono direttamente dalla chiave, cioè non possiede attributi non-chiave che dipendono da altri attributi non-chiave. La 3FN elimina le dipendenze transitive. Gli attributi che non fanno parte di nessuna chiave devono dipendere direttamente da tutta la chiave. Docente Dott.ssa Franchini Gloria 22 11 Query o Interrogazioni È sinonimo di interrogazione ed indica il processo di estrazione dei dati da un database secondo determinati criteri. Da una o più tabelle se ne costruisce un’altra che soddisfa dei criteri prestabiliti, in modo tale da rispondere ad una certa interrogazione. Le query innanzitutto devono essere progettate usando gli operatori di Algebra Relazionale. Docente Dott.ssa Franchini Gloria 23 Operazioni relazionali Docente Dott.ssa Franchini Gloria 24 12 Selezione Selezione (SELECT) Genera una relazione costituita dalle n-uple della relazione di partenza che soddisfano una determinata condizione (selezione di alcune righe): Grado uguale, Cardinalità minore o uguale Docente Dott.ssa Franchini Gloria 25 Proiezione Proiezione (PROJECT) Genera una relazione estraendo dalla tabella iniziale due o più colonne corrispondenti agli attributi prefissati (selezione di alcune colonne): Grado minore o uguale, Cardinalità minore o uguale Docente Dott.ssa Franchini Gloria 26 13 Congiunzione (Join) Congiunzione (join) Genera una relazione combinando due relazioni aventi uno o più attributi in comune. R ><p S è una relazione T = R ><p S che si ottiene concatenando le tuple di R e S che soddisfano p, il predicato di selezione. Schema di T: ottenuto concatenando gli schemi di R e S (si considerano tutti gli attributi di R e S). Istanza di T: data dall’insieme delle tuple ottenute concatenando in tutti i modi possibili le tuple di R con quelle di S purché soddisfino p. Docente Dott.ssa Franchini Gloria 27 Unione L'unione di due relazioni è una relazione T = R ∪ S ottenuta facendo l’unione delle istanze di due relazioni con schema compatibile, ossia in cui i domini degli attributi sono ordinatamente uguali. T ha lo stesso schema di R L’istanza di T è l’unione delle tuple di R e S. GRADO (T) = GRADO (R) (o di S) CARDINALITÀ (T) ≤ CARDINALITÀ(R) + CARDINALITÀ(S) Docente Dott.ssa Franchini Gloria 28 14 Intersezione L'intersezione di due relazioni è una relazione T = R ∩ S ottenuta facendo l’intersezione delle istanze di due relazioni con schema compatibile, ossia in cui i domini degli attributi sono ordinatamente uguali. T ha lo stesso schema di R L’istanza di T è l’intersezione delle tuple di R e S. GRADO (T) = GRADO (R) (o di S) CARDINALITÀ (T) ≤ MIN(CARDINALITÀ (R), CARDINALITÀ(S)) Docente Dott.ssa Franchini Gloria 29 Differenza La differenza di due relazioni è la relazione T = R – S costituita a partire da due relazioni con schema compatibile mediante le tuple che appartengono a R e non a S. T ha lo stesso schema di R L’istanza di T è data dalla differenza delle tuple di R che non appartengono ad S GRADO (T) = GRADO (R) (o S) CARDINALITÀ (T) ≤ CARDINALITÀ (R) Docente Dott.ssa Franchini Gloria 30 15 Prodotto Il prodotto di due relazioni è una relazione T = R x S ottenuta concatenando tutte le tuple di R con tutte quelle di S. T ha uno schema che è la concatenazione degli schemi di R ed S. L’istanza di T è la concatenazione delle tuple di R con quelle di S. GRADO (T) = GRADO (R) + GRADO (S) CARDINALITÀ (T) ≤ CARDINALITÀ (R)* CARDINALITÀ (S) Docente Dott.ssa Franchini Gloria 31 Maschere o Form Durante l’applicazione, l’informazione che viene scambiata con l’utente ha una organizzazione particolare detta SCHERMO (detto anche MASCHERA o FORM). Uno SCHERMO organizza l’informazione in una struttura fissa che presenta CAMPI destinati a contenere: l’informazione che l’utente deve digitalizzare (informazione in ingresso) e l’informazione fornita dall’applicazione (informazione in uscita). Docente Dott.ssa Franchini Gloria 32 16 Progettazione di Maschere La progettazione della struttura degli schermi è essenziale per il successo dell’applicazione. Esistono strumenti standard per costruire schermi (FORM MANAGEMENT) e per agganciare a ciascuno schermo le operazioni da effettuare sulla base dei dati. In Access è possibile usare l’Autocomposizione Maschera oppure crearla direttamente in Visualizzazione Struttura. Docente Dott.ssa Franchini Gloria 33 Generare Report RAPPORTI: permettono di estrarre grandi quantità di informazioni dalle basi di dati, costruite mediante aggregazioni. La costruzione dei rapporti è richiesta periodicamente e non comporta interazioni con gli utenti. Esistono strumenti standard per costruire rapporti (report generator) che consentono di impostare un formato, componendo l’impostazione grafica con l’informazione estratta dalla base di dati. Docente Dott.ssa Franchini Gloria 34 17