1 / 78

Corso di Laurea in Biotecnologie Informatica (Basi di Dati)

Corso di Laurea in Biotecnologie Informatica (Basi di Dati). Modello Relazionale Anno Accademico 2009/2010. Da : Atzeni, Ceri, Paraboschi, Torlone - Basi di Dati Lucidi del Corso di Basi di Dati 1, Prof. Carlo Batini, Laurea in Informatica, AA 2007-2008. Il modello relazionale.

Download Presentation

Corso di Laurea in Biotecnologie Informatica (Basi di 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. Corso di Laurea in BiotecnologieInformatica(Basi di Dati) Modello Relazionale Anno Accademico 2009/2010 • Da: • Atzeni, Ceri, Paraboschi, Torlone - Basi di Dati • Lucidi del Corso di Basi di Dati 1, Prof. Carlo Batini, Laurea in Informatica, AA 2007-2008

  2. Il modello relazionale … è il modello logico attualmente più diffuso per i DBMS ed è stato proposto nel 1970 da E. F. Codd. Ricordiamo che un modello logico fornisce l’insieme dei costrutti per descrivere l’organizzazione dei dati all’interno di una Base di Dati.

  3. Relazione e tabella • Il modello relazionale si basa sui due concetti fondamentali di: • relazione, inteso come concetto matematico proveniente dalla teoria degli insiemi • tabella, concetto semplice e intuitivo a cui si riconduce il concetto di relazione (infatti una relazione è rappresentabile da una tabella)

  4. Relazione matematica Prima di definire una relazione matematica, dobbiamo dare la definizione di prodotto cartesiano di due insiemi D1 e D2: dati due insiemi D1 e D2, il prodotto cartesiano D1xD2 è l’insieme di tutte le coppie (v1,v2) tali che v1 è un elemento di D1 e v2 è un elemento di D2.

  5. Relazione matematica Ad esempio se D1={1,2,4} e D2={a,b}, il prodotto cartesiano D1xD2 è l’insieme delle 3x2=6 coppie: {(1,a), (1,b), (2,a), (2,b), (4,a), (4,b)}

  6. Relazione matematica Una relazione matematica su due insiemi D1 e D2 (chiamati domini della relazione) è un sottoinsieme r del prodotto cartesiano D1xD2. Ad esempio dati i due insiemi D1={1,2,4} e D2={a,b}, una possibile relazione matematica sui domini D1 e D2 è r={(1,a), (1,b), (4,b)}, in cui si specifica il legame tra 1 e a, tra 1 e b, tra 4 e b.

  7. 1 a 1 a 1 b 1 b 4 b 2 a 2 b 4 a 4 b Relazione matematica Il prodotto cartesiano e la relazione matematica degli esempi precedenti possono anche essere rappresentati in forma tabellare: D1xD2 r

  8. Relazione matematica In generale, dati n insiemi D1, D2, …, Dn (anche non distinti) il prodotto cartesiano D1xD2x…xDn è l’insieme di tutte le n-ple (o ennuple) (v1,v2,…,vn) tali che vi è un elemento di Di per ogni i che va da 1 a n. Una relazione matematica sui domini D1, D2, …, Dn è un sottoinsieme r del prodotto cartesiano D1xD2x…xDn. Il numero n è chiamato grado della relazione (e del prodotto cartesiano), il numero di n-ple che compongono la relazione r è chiamato cardinalità della relazione.

  9. Relazione matematica • Quindi una relazione matematica è: • un insieme din-ple al loro interno ordinate (v1 appartiene a D1, v2 appartiene a D2, …, vn appartiene a Dn) • un insieme, e pertanto: • non esiste ordinamento tra le diverse n-ple • le n-ple sono tutte distinte

  10. Juve Lazio Juve Roma Milan Lazio Milan Roma 0 0 3 0 1 1 2 2 Relazione matematica Esempio di relazione matematica rappresentata in forma tabellare: I domini sono 4 (grado della relazione): D1: insieme di tutte le possibili stringhe di caratteri D2: insieme di tutte le possibili stringhe di caratteri D3: insieme degli interi >= 0 D4: insieme degli interi >= 0

  11. Relazione matematica Nell’esempio precedente si ha una relazione matematica con 4 n-ple (cardinalità della relazione). Si noti però che i due domini D1 e D2 , pur rappresentando lo stesso insieme, hanno un ruolo che dipende dalla posizione nella relazione. Infatti, D1 fa riferimento alla squadra che gioca in casa e il D2 fa riferimento alla squadra che gioca fuori casa. Lo stesso vale per i due domini D3 e D4. Il primo è il punteggio realizzato dalla squadra che gioca in casa, mentre il 

  12. Relazione matematica  secondo è il punteggio realizzato dalla squadra che gioca fuori casa. La struttura di una relazione matematica è dunque posizionale, nel senso che ogni dominio della relazione ha un ruolo dipendente dalla sua posizione nella relazione stessa. Nelle Basi di Dati relazionali si vogliono però organizzare i dati in relazioni che non abbiano una struttura di tipo posizionale. Cosa si può fare? Si può associare a ciascun dominio 

  13. Relazione matematica • della relazione matematica (cioè ad ogni colonna) un attributo (cioè un nome) aggiuntivo che specifichi il ruolo che il dominio ricopre. • Ad esempio nella relazione matematica dell’esempio delle squadre si può associare: • il nome SquadraCasa al dominio D1 • il nome SquadraOspite al dominio D2 • il nome RetiCasa al dominio D3 • il nome RetiOspite al dominio D4

  14. Relazione matematica • e nella rappresentazione tabellare si aggiungono i nomi (o attributi) come intestazione delle colonne della tabella che rappresenta la relazione.

  15. SquadraCasa SquadraOspite RetiCasa RetiOspite Juve Lazio 3 1 Lazio Milan 0 2 Juve Roma 0 2 Roma Milan 0 1 Relazione/tabella Esempio di relazione matematica rappresentata in forma tabellare con attributi dei domini

  16. SquadraOspite SquadraCasa RetiOspite RetiCasa Lazio Juve 1 3 Milan Lazio 2 0 Roma Juve 2 0 Milan Roma 1 0 Relazione/tabella Si ottiene dunque una struttura relazionale non più posizionale. Modificando infatti l’ordine delle colonne il significato dell’informazione contenuta non cambia (come si vede sotto in cui la prima colonna è stata scambiata con la seconda e la terza con la quarta)

  17. Il termine relazione • Il termine relazione viene dunque usato, in questo corso di Basi di Dati, secondo tre accezioni differenti: • relazione intesa come legame logico tra entità nel modello E-R • relazione matematica proveniente dalla teoria degli insiemi • relazione/tabella del modello relazionale

  18. Relazione/tabella • Una relazione (o tabella) nel modello relazionale è una relazione matematica in cui: • i valori di ogni colonna appartengono allo stesso dominio • le righe (n-ple o tuple) sono diverse tra loro • le intestazioni delle colonne (attributi) sono diverse tra loro 

  19. Relazione/tabella •  • l’ordinamento tra le righe è irrilevante • l’ordinamento tra le colonne è irrilevante Una Base di Dati relazionale è, dal punto di vista logico, costituita da un insieme di relazioni (o tabelle). Nel seguito, il termine “relazione” sarà considerato equivalente al termine “tabella”.

  20. Matricola Cognome Voto Codice Titolo Studente Corso (0,N) (0,N) Esame Data di nascita Docente Nome Un esempio Si consideri una Base di Dati che organizza i dati relativi all’università descritta dal seguente modello E-R:

  21. Un esempio •  Essa può prevedere: • una relazione (o tabella), che organizza i dati relativi all’entità Studente, avente colonne con attributi: Matricola, Cognome, Nome, DataNascita • una relazione (o tabella), che organizza i dati relativi all’entità Corso, avente colonne con attributi: Codice, Titolo, Docente • una relazione (o tabella), che organizza i dati relativi alla relationship Esame, 

  22. Un esempio  avente colonne con attributi: CodiceCorso, Voto, MatricolaStudente Si noti che nella relazione (o tabella) che si riferisce alla relationship Esame, gli attributi CodiceCorso e MatricolaStudente permettono di tradurre il legame logico esistente tra le due entità Studente e Corso nel modello E-R.

  23. Matricola Cognome Nome DataNascita 276545 Rossi Maria 25/11/1971 485745 Neri Anna 23/04/1972 200768 Verdi Fabio 12/02/1972 587614 Rossi Luca 10/10/1971 Un esempio Esempio di tabella relativa all’entità Studente: tabella Studenti Studenti

  24. Codice Titolo Docente 01 Analisi Giani 03 Chimica Melli 04 Chimica Belli Un esempio Esempio di tabella relativa all’entità Corso: tabella Corsi Corsi

  25. MatricolaStudente Voto CodiceCorso 276545 28 01 276545 27 04 200768 24 04 Un esempio Esempio di tabella relativa alla relationship Esame: tabella Esami Esami

  26. Codice Matricola Titolo Cognome Docente Nome DataNascita 01 276545 Rossi Analisi Maria Giani 25/11/1971 03 485745 Neri Chimica Anna Melli 23/04/1972 MatricolaStudente Voto CodiceCorso 200768 04 Chimica Verdi Belli Fabio 12/02/1972 276545 28 01 587614 276545 Rossi 27 04 Luca 10/10/1971 200768 24 04 Un esempio Studenti Esami Corsi

  27. Definizioni relative al modello relazionale Uno schema di relazione specifica il nome R associato alla relazione e l’insieme dei suoi attributi X={A1,A2, …,An}: R(X)=R(A1,A2,…,An) Ad esempio lo schema della relazione (o tabella) che organizza i dati degli studenti nell’esempio precedente è: Studenti(Matricola,Cognome,Nome,DataNascita) A ciascun attributo Ai è associato un dominio Di, che è l’insieme dei valori possibili per Ai

  28. Matricola Cognome Nome DataNascita 276545 Rossi Maria 25/11/1971 485745 Neri Anna 23/04/1972 200768 Verdi Fabio 12/02/1972 587614 Rossi Luca 10/10/1971 Definizioni relative al modello relazionale Lo schema della tabella Studenti è evidenziato in rosso Studenti

  29. Definizioni relative al modello relazionale Uno schema di base di dati è un insieme di schemi di relazione: {R1(X1),R2(X2),…,R3(Xm)} Ad esempio lo schema della base di dati nell’esempio precedente è: {Studenti(Matricola,Cognome,Nome,DataNascita),Corsi(Codice,Titolo,Docente) Esami(MatricolaStudente,Voto,CodiceCorso)}

  30. Codice Matricola Titolo Cognome Docente Nome DataNascita 01 276545 Rossi Analisi Giani Maria 25/11/1971 485745 03 Neri Chimica Anna Melli 23/04/1972 MatricolaStudente Voto CodiceCorso 200768 04 Chimica Verdi Belli Fabio 12/02/1972 276545 28 01 587614 276545 Rossi 27 04 Luca 10/10/1971 200768 24 04 Definizioni relative al modello relazionale Lo schema della Base di Dati precedente è evidenziato in rosso

  31. Definizioni relative al modello relazionale Una ennupla (o n-pla, o tupla) su un insieme X di n attributi è una funzione t che associa a ciascun attributo A in X un valore appartenente al dominio di A. Data una ennupla t sull’insieme X di attributi e un attributo A di X, si indichi con t[A] il valore che l’attributo A assume in t. Data una ennupla t sull’insieme X di attributi e un sottoinsieme Y di X, si indichi con t[Y] l’insieme dei valori che gli attributi di Y assumono in t.

  32. Definizioni relative al modello relazionale  Ad esempio se X={Codice,Titolo,Docente} è l’insieme degli attributi della tabella Corsi, indicando con t la ennupla (01,Analisi,Giani) su X, si ha t[Codice] è 01 e t[Codice,Docente] è (01, Giani).

  33. Codice Titolo Docente 01 Analisi Giani 03 Chimica Melli 04 Chimica Belli Definizioni relative al modello relazionale Esempio di ennupla per la tabella Corsi Corsi ennupla

  34. Matricola Cognome Nome DataNascita 276545 Rossi Maria 25/11/1971 485745 Neri Anna 23/04/1972 200768 Verdi Fabio 12/02/1972 587614 Rossi Luca 10/10/1971 Definizioni relative al modello relazionale Un’istanza di relazione su di uno schema R(X) è un insieme r di ennuple su X Ad esempio un’istanza della relazione Studenti che organizza i dati degli studenti nell’esempio precedente è evidenziata in rosso Studenti

  35. Definizioni relative al modello relazionale Un’istanza di Base di Dati su di uno schema {R1(X1),R2(X2),…,R3(Xm)} è un insieme di istanze di relazione r1, r2, …, rm, dove ri (per i da 1 a m) è un’istanza di relazione sullo schema Ri(Xi)

  36. Codice Matricola Titolo Cognome Docente Nome DataNascita 01 276545 Rossi Analisi Giani Maria 25/11/1971 485745 03 Neri Chimica Anna Melli 23/04/1972 MatricolaStudente Voto CodiceCorso 200768 04 Chimica Verdi Belli Fabio 12/02/1972 276545 28 01 587614 276545 Rossi 27 04 Luca 10/10/1971 200768 24 04 Definizioni relative al modello relazionale L’istanza della Base di Dati precedente è evidenziato in rosso

  37. Definizioni relative al modello relazionale • In sintesi: • lo schema (di una relazione o di una Base di Dati) è la parte che non varia nel tempo (a meno che lo schema stesso non venga ridefinito…) • l’istanza (di una relazione o di una Base di Dati) è la parte che varia nel tempo in quanto le Basi di Dati vengono aggiornate costantemente

  38. Nota Bene! La stessa realtà può essere rappresentata mediante schemi relazionali differenti. Ad esempio i dati relativi all’entità Studente e alla relationship Esame dell’esempio precedente possono essere organizzati in un’unica tabella Studenti2 avente schema: Studenti2(Matricola,Cognome,Nome,DataNascita,CodiceCorso,Voto) eliminando quindi la tabella Esami dello schema precedente

  39. Codice Titolo Docente 01 Analisi Giani 03 Chimica Melli 04 Chimica Belli Nota Bene! La nuova Base di Dati diventa quindi: Studenti2 Matricola Cognome Nome DataNascita CodiceCorso Voto 276545 Rossi Maria 25/11/1971 01 28 276545 Rossi Maria 25/11/1971 04 27 485745 Neri Anna 23/04/1972 200768 Verdi Fabio 12/02/1972 04 24 587614 Rossi Luca 10/10/1971 Corsi

  40. Nota Bene! • Quali sono però gli svantaggi di questo secondo schema? • ci possono essere dati ripetuti (si vedano le ennuple riguardanti la studentessa Maria Rossi che ha sostenuto due esami) • ci possono essere ennuple in cui i valori per alcuni attributi sono nulli (si vedano le ennuple relative a studenti che non hanno sostenuto esami)

  41. Vincoli di integrità Le strutture del modello relazionale (viste nella lezione precedente) permettono di organizzare i dati relativi alla realtà di interesse. Non è vero però che qualsiasi istanza su di uno schema (così definito, fino a questo punto) di una Base di Dati rappresenti informazioni corrette per l’applicazione. Si consideri ad esempio la seguente istanza sullo schema di Base di Dati definito nella lezione precedente (con le tre tabelle Studenti, Corsi ed Esami), modificato aggiungendo l’attributo Lode alla tabella Esami.

  42. Matricola Cognome Nome DataNascita 200768 Verdi Fabio 12/02/1972 937653 Rossi Luca 10/10/1971 Codice Titolo Docente 937653 Bruni Mario 01/12/1971 01 Analisi Giani 03 Chimica Melli MatricolaStudente Voto Lode CodiceCorso 200768 36 05 04 Chimica Belli 937653 28 lode 01 937653 30 lode 04 276545 25 01 Vincoli di integrità Studenti Esami Corsi

  43. Vincoli di integrità • Quali sono gli aspetti scorretti nell’istanza precedente? • nella tabella Esami • il valore di Voto, in corrispondenza dello studente con matricola 200768, è 36 (e il voto deve essere <= 30!) • il valore dell’attributo Lode, per lo studente con matricola 937653, non è nullo nonostante il valore di Voto sia 28 (e la lode si ha solo per un voto pari a 30!)

  44. Vincoli di integrità • Quali sono gli aspetti scorretti nell’istanza precedente? • nella tabella Esami • lo studente con matricola 200768 ha sostenuto un esame con codice 05 che però non compare nella tabella Corsi • lo studente con matricola 276545 non compare nella tabella Studenti e quindi non si hanno informazioni su di esso • nella tabella Studenti ci sono due studenti che hanno lo stesso numero di matricola

  45. Vincoli di integrità • Un vincolo di integrità è una proprietà che deve essere soddisfatta da tutte le istanze della Base di Dati al fine di rappresentare un’informazione corretta. • Un vincolo è un predicato che associa ad un’istanza un valore booleano: • VERO se l’istanza è corretta • FALSO se l’istanza NON è corretta

  46. Vincoli di integrità • I vincoli di integrità sono dunque proprietà dello schema, cioè si riferiscono a tutte le istanze dello schema e: • permettono una rappresentazione più accurata della realtà • contribuiscono alla qualità dei dati, cioè fanno in modo che i dati rappresentino correttamente la realtà • portano in fase di progettazione alla definizione di uno schema di qualità

  47. Vincoli di integrità • I vincoli di integrità sono possono essere di tipo: • intrarelazionale, cioè definiti all’interno di una relazione (o tabella) • interrelazionale, cioè definiti tra due o più relazioni (o tabelle)

  48. Vincoli di integrità • I vincoli di tipo intrarelazionale che vedremo sono: • vincoli su singolo valore di attributo (o vincoli di dominio) • vincoli di ennupla (o di tupla) • vincoli di chiave e di chiave primaria Il vincolo di tipo interrelazionale che vedremo è il vincolo di integrità referenziale

  49. Vincoli su singolo valore I vincoli su singolo valore coinvolgono un singolo attributo di una relazione. Ad esempio il valore di Voto delle ennuple della tabella Esami, definito sul dominio degli interi, può assumere valori che vanno da 18 a 30. Il vincolo è quindi esprimibile dalla seguente espressione booleana: (Voto >= 18) AND (Voto <= 30)

  50. Vincoli di ennupla I vincoli di ennupla coinvolgono l’insieme dei valori di un’intera ennupla di una relazione. Ad esempio le ennuple della relazione Esami devono soddisfare il seguente vincolo: (Voto = 30) OR NOT (Lode = lode)

More Related