230 likes | 400 Views
DB - Modello relazionale dei dati. Definizione. Un modello dei dati è un insieme di meccanismi di astrazione per definire una base di dati, con associato un insieme predefinito di operatori e di vincoli di integrità .
E N D
DB - Modello relazionale dei dati DB - Modello Relazionale
Definizione • Un modello dei dati è un insieme di meccanismi di astrazione per definire una base di dati, con associato un insieme predefinito di operatori e di vincoli di integrità. • Questi meccanismi di astrazione costituiscono l’equivalente delle strutture dati nella programmazione. DB - Modello Relazionale
Modelli di dati • Alcuni modelli: • Gerarchico • Reticolare • Relazionale • I modelli reticolare e gerarchico rispecchiano (in qualche modo) l’architettura fisica dei dati • Il relazionale e’ basato solo sul valore dei dati • Recentemente: modello a oggetti DB - Modello Relazionale
Caratteristiche di un buon modello • Espressività: permette di rappresentare in modo semplice e naturale i dati e le loro proprietà. • Semplicità: basato su un numero minimo di meccanismi semplici da utilizzare e capire. • Realizzabilità: deve essere realizzabile in modo efficiente su di un calcolatore. DB - Modello Relazionale
Il modello relazionale dei dati • Introdotto da Codd nel 1970 • Implementa bene il concetto di indipendenza dei dati • Oggi e’ di gran lunga il modello dei dati più diffuso • Implementato nei DBMS commerciali dal 1981 • E’ basato sul concetto matematico di RELAZIONE DB - Modello Relazionale
Relazioni • Una Relazione n-aria è un sottoinsieme del prodotto cartesiano D1 X D2 X ... Dn di insiemi di valori di tipo elementare detti domini. • Ogni elemento < d1, d2, …, dn> si chiama n-upla (o tupla) DB - Modello Relazionale
Schema di relazione • Uno schema di relazione R : {T} e’ una coppia formata dal nome di una relazione R e da un tipo relazione T DB - Modello Relazionale
Definizione Tipo Relazione • Interi,Reali,Booleani,Stringhe sono tipi primitivi; • se T1, T2, …, Tn sono tipi primitivi e A1, A2, …, An sono etichette, dette attributi, allora (A1 :T1 , A2 :T2 , …, An :Tn) e’ un tipo n-upla di grado n(l’ordine non è significativo). • se T è un tipo n-upla allora {T} e’ un tipo relazione (tipo insieme di n-uple) DB - Modello Relazionale
Schemi Relazionali • Uno Schema Relazionale è costituito da un insieme di schemi di relazioneRi : {Ti}, i=1, 2,…, k e da un insieme di vincoli di integrità relativi a tali schemi. • Costituisce l’aspetto intensionaledel dato modello relazionale dei dati. DB - Modello Relazionale
Aspetto estensionale • Una n-upla t=(A1:= v1,A2:= v2,…, An:= vn) di tipo (A1 :T1 , A2 :T2 , …, An :Tn) è un insieme di coppie (Ai , vi) con vi di tipo Ti. • Una Relazione R di tipo {(A1 :T1 , A2 :T2 , …, An :Tn)} è un insieme finito di n-uple di tipo (A1 :T1 , A2 :T2 , …, An :Tn). • La cardinalita’ di una relazione e’ il numero di n-uple DB - Modello Relazionale
Esempio di relazione • E’ una relazione di tipo {(Nome: char, Matricola: int,Indirizzo: char, Telefono:int)} e ciascuna riga è una n-upla della relazione. DB - Modello Relazionale
Esempio di schema relazionale {Studenti : { (Nome: char, Matricola: int(6),Indirizzo: char, Telefono:int(6)) } Esami : { (Corso: char, Matricola: int(6),Voto: {18,19,…,30} } Corsi : { (Corso:char, Professore:char) } } • Che si abbrevia (se non interessa riportare il tipo degli attributi) in: • Studenti( Nome, Matricola, Indirizzo, Telefono);Esami( Corso, Matricola,Voto);Corsi( Corso, Professore); DB - Modello Relazionale
Dominio di un attributo • dom(Ai)e’ l’insieme dei possibili valori dell’attributo Ai • ad esempio nella tabella Studenti(Corso,Matricola,Voto) , dom(Voto) = {18,19,…,30} DB - Modello Relazionale
Vincoli di integrità • I vincoli di integrita’ servono a migliorare la qualita’ delle informazioni contenute nella base di dati • Un vincolo e’ un predicato che dev’essere soddisfatto da ogni n-upla nella base di dati • Un’istanza valida di uno schema di relazione è una relazione dello schema che soddisfa tutti i vincoli di integrità. DB - Modello Relazionale
Esempio di vincoli d’integrita’ • Il voto dev’essere compreso tra 18 e 30 • La lode puo’ apparire solo se voto=30 • Ogni studente deve avere un numero di matricola • Il numero di matricola di uno studente dev’essere univoco • Esami dati devono fare riferimento solo a corsi offerti DB - Modello Relazionale
Vincoli d’integrita’ • I tre tipi piu’ importanti specificano: • Quali attributi non possono assumere il valore NULL • Quali attributi sono chiave • Quali attributi sono chiavi esterne DB - Modello Relazionale
Mancanza di informazione • Il modello relazionale impone una struttura rigida ai dati, in quanto: • L’informazione viene rappresentata per mezzo di n-uple • Le n-uple hanno uno schema ben definito • Come rappresentare quindi, ad esempio, il fatto che di uno studente non si conosce il numero di cellulare? • Usanza comune: • Usare valori non utilizzati (es. 0 per eta’ studente) • Problemi: • Possono non esserci valori inutilizzati • Il valore inutilizzato puo’ diventare utile • In alcuni casi bisogna ricordarsi di distinguere i valori reali dei “riempiposto”, esempio: media dell’eta’ degli studenti (se rappresentiamo il fatto di non conoscere l’eta’ dello studente con 0) DB - Modello Relazionale
Valori nulli (NULL) • Il modello relazionale include il “NULL value” come tecnica per modellare la mancanza di informazione • NULL non fa parte del dominio dell’attributo • Quando si da ad un attributo la possibilità di avere valore null, si ammette che quell’attributo in qualche n-upla può rimanere non specificato e/o venire assegnato in un secondo momento • Il valore NULL per un certo attributo puo’ indicare: • Il valore non c’e’; • Il valore c’e’ ma non lo si conosce al momento; • Non si sa se il valore c’e’; • I DBMS non modellano il perche’ manca il dato, si limitano a denotarne la sua mancanza DB - Modello Relazionale
Esempio di valori nulli DB - Modello Relazionale
Chiavi • Superchiave X di uno schema di relazione è un insieme di attributi dello schema tale che in ogni istanza dello schema se due n-uple coincidono su X allora sono uguali. • Chiave è una superchiave minimale rispetto alla relazione . • Chiave Primaria è una delle chiavi scelta per un dato schema. DB - Modello Relazionale
Esempi di chiavi • {Nome,Matricola} è una superchiave ma non è una chiave, infatti • {Matricola} è una chiave e si sceglie anche come primaria per accedere ai vari record • {Indirizzo} non è superchiave DB - Modello Relazionale
Chiavi esterne • Un insieme di attributi {A1, A2 , …, An} di uno schema di relazione R è una chiave esterna che riferisce una chiave primaria {B1, B2 , …, Bn} di un altro schema S se in ogni istanza valida della base di dati, per ogni n-upla r dell’istanza di R esiste una n-upla s (riferita da r) dell’istanza di S tale che r.Ai = s.Bi... DB - Modello Relazionale
Esempio chiave esterna Esami • Una chiave esterna associa a certe n-uple della relazione r (quelle aventi la stessa chiave esterna) una ben determinata n-upla della relazione s a cui si riferisce determinata dai valori della chiave primaria(cioè della chiave esterna) • Cosi’ {Matricola} per Esami e’ chiave esterna che si riferisce a Studenti Studenti DB - Modello Relazionale