1 / 23

DB - Modello relazionale dei dati

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à .

mirabelle
Download Presentation

DB - Modello relazionale dei dati

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. DB - Modello relazionale dei dati DB - Modello Relazionale

  2. 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

  3. 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

  4. 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

  5. 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

  6. 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

  7. 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

  8. 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

  9. 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

  10. 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

  11. 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

  12. 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

  13. 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

  14. 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

  15. 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

  16. 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

  17. 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

  18. 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

  19. Esempio di valori nulli DB - Modello Relazionale

  20. 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

  21. 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

  22. 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

  23. 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

More Related