Università degli Studi di Torino Facoltà di Economia · yè progettato per consentire una...

23
© Diego Magro 1 Information and Communication Technnology II a.a. 2006-2007 Dipartimento Informatica Università degli Studi di Torino Facoltà di Economia Corso di Information and Communication Technology II -- a.a. 2006-2007 -- Diego Magro © Diego Magro 2 Information and Communication Technnology II a.a. 2006-2007 Dipartimento Informatica Modulo 2 : Introduzione alle basi di dati Testi consigliati : P. Atzeni, S. Ceri, S. Paraboschi, R. Torlone, Basi di dati – modelli e linguaggi di interrogazione, McGraw-Hill 2002 oppure oppure P. Atzeni, S. Ceri, S. Paraboschi, R. Torlone, Basi di dati (seconda edizione) McGraw-Hill 1999 © Diego Magro 3 Information and Communication Technnology II a.a. 2006-2007 Dipartimento Informatica Generalità, modelli dei dati, linguaggi © Diego Magro 4 Information and Communication Technnology II a.a. 2006-2007 Dipartimento Informatica Introduzione Molte organizzazioni umane necessitano di quantità considerevoli di “dati” e “informazioni” Difficile definire formalmente i concetti di “dato” e di “informazione” Informalmente (in questo contesto): l’ “informazione” è parte di conoscenza su porzioni di realtà; i “dati” sono elementi di informazione. Per fornire informazione, i dati devono essere opportunamente correlati e interpretati Es. “Mario Rossi” e “23445” sono due dati. Se non sappiamo come interpretarli, essi non ci danno informazione. Se sappiamo che sono la risposta alla richiesta di avere il nome e il numero interno del responsabile vendite dell’azienda ACME, allora siamo in grado di interpretarli correttamente e abbiamo l’informazione cercata

Transcript of Università degli Studi di Torino Facoltà di Economia · yè progettato per consentire una...

© Diego Magro

1

Information and Communication Technnology II a.a. 2006-2007Dipartimento

Informatica

Università degli Studi di TorinoFacoltà di Economia

Corso di

Information and Communication Technology II

-- a.a. 2006-2007 --

Diego Magro

© Diego Magro

2

Information and Communication Technnology II a.a. 2006-2007Dipartimento

Informatica

Modulo 2: Introduzione alle basi di dati

Testi consigliati:

P. Atzeni, S. Ceri, S. Paraboschi, R. Torlone, Basi di dati – modelli e linguaggi di interrogazione, McGraw-Hill 2002

oppureoppure

P. Atzeni, S. Ceri, S. Paraboschi, R. Torlone, Basi di dati (seconda edizione)

McGraw-Hill 1999

© Diego Magro

3

Information and Communication Technnology II a.a. 2006-2007Dipartimento

Informatica

Generalità, modelli dei dati, linguaggi

© Diego Magro

4

Information and Communication Technnology II a.a. 2006-2007Dipartimento

Informatica

Introduzione

• Molte organizzazioni umane necessitano di quantità considerevoli di “dati” e “informazioni”

• Difficile definire formalmente i concetti di “dato” e di “informazione”• Informalmente (in questo contesto): l’ “informazione” è parte di

conoscenza su porzioni di realtà; i “dati” sono elementi di informazione. Per fornire informazione, i dati devono essere opportunamente correlati e interpretati

• Es. “Mario Rossi” e “23445” sono due dati. Se non sappiamo come interpretarli, essi non ci danno informazione. Se sappiamo che sono la risposta alla richiesta di avere il nome e il numero interno del responsabile vendite dell’azienda ACME, allora siamo in grado diinterpretarli correttamente e abbiamo l’informazione cercata

© Diego Magro

5

Information and Communication Technnology II a.a. 2006-2007Dipartimento

Informatica

Introduzione

• Nelle organizzazioni, informazione è organizzata nei “sistemi informativi” (es: i sistemi informativi aziendali)

• La porzione automatizzata di un sistema informativo è detta “sistema informatico” (N.B.: “sistema informativo” e “sistema informatico” sono concetti distinti)

• “Base di dati”: in generale, collezione di dati utilizzati per rappresentare le informazioni gestite da un sistema informativo

• Faremo riferimento ad un’accezione più ristretta di base di dati, riferendoci ad una collezione di dati facente parte del sistema informatico e gestita da particolari sistemi software (detti Database Management Systems o DBMS – Sistemi per la gestione delle basi di dati)

• N.B. “sistema informatico” e “sistemi per la gestione delle basi di dati” sono concetti distinti

© Diego Magro

6

Information and Communication Technnology II a.a. 2006-2007Dipartimento

Informatica

“Quante storie!”

• “Perché tutta quest’enfasi su ’ste basi di dati? Non si potrebbememorizzare i dati su semplici file e fine del discorso?”

• Innanzi tutto parte dell’enfasi sui dati deriva sia dalla notevole importanza che questi rivestono in molte organizzazioni umane sia dalla loro “quantità”

• …e poi…è proprio così: i dati sono effettivamente memorizzati su file, ma i sistemi di gestione di basi di dati consentono di evitare l’accesso diretto ai file e offrono una visione dei dati più “ad alto livello”, oltre ad altre funzionalità

© Diego Magro

7

Information and Communication Technnology II a.a. 2006-2007Dipartimento

Informatica

Non sono storie!

• Un DBMS consente e facilita la gestione di basi di datigrandi (considerevole quantità di dati memorizzati in memoria secondaria)condivise (accesso ai dati da parte di più utenti e più applicazioni)persistenti (dati esistono indipendentemente dalle esecuzioni delle procedure che li usano)

• Un DBMS, inoltregarantisce affidabilità (conservazione intatta della base di dati anche in caso di malfunzionamenti software o hardware)garantisce privatezza (offre meccanismi per stabilire le azioni consentite a ciascun utente)è progettato per consentire una gestione efficiente delle basi di dati (cioè uso di quantità accettabili di risorse spazio [di memoria principale e secondaria] e tempo)è volto all’efficacia, cioè mira a rendere produttive le attività dei propri utenti

© Diego Magro

8

Information and Communication Technnology II a.a. 2006-2007Dipartimento

Informatica

Modelli dei dati

• Modello dei dati: insieme di concetti utilizzati per descrivere la struttura e l’organizzazione dei dati

• Vari modelli:Modelli logici (basati su strutture come alberi, grafi, relazioni, oggetti; sono disponibili su DBMS commerciali)

gerarchico (anni Sessanta)reticolare o CODASYL (inizio anni Settanta)relazionale (definito inizi anni Settanta, affermatosi anni Ottanta, è attualmente il più diffuso)ad oggetti (evoluzione del modello relazionale, sviluppato anni Ottanta)

Modelli concettuali (descrivono i dati indipendentemente dalla scelta del modello logico; non sono disponibili su DBMS commerciali)

Entity-Relationship (E-R, Entità-Relazioni)…

© Diego Magro

9

Information and Communication Technnology II a.a. 2006-2007Dipartimento

Informatica

Livelli di astrazione

• I DBMS si articolano in tre livelli: interno, logico, esterno• Schema interno (o fisico): descrive le strutture fisiche di memorizzazione dei

dati (tipi di file, indici per l’accesso ai file, ecc.)• Schema logico: descrive la base di dati per mezzo del modello logico

adottato dal DBMS (es. per mezzo del modello relazionale)• Schema esterno: descrive una porzione della base di dati di interesse per un

utente o un gruppo di utenti. Ad uno stesso schema logico possono essere associati più schemi esterni. Lo schema esterno può coincidere con quello logico. Gli accessi alla base di dati avvengono solo attraverso il livello esterno

Nei moderni sistemi, questo livello non è esplicitamente presente, ma è realizzato attraverso il meccanismo delle viste (o views) + quello delle autorizzazioni di accesso. Le viste consentono di definire rappresentazioni diverse per gli stessi dati; le autorizzazioni di accesso consentono di specificare politiche per l’accesso ai dati. Es. Si può stabilire che un certo (tipo di) utente può leggere, ma non modificare, solo una specifica parte dei dati

© Diego Magro

10

Information and Communication Technnology II a.a. 2006-2007Dipartimento

Informatica

Indipendenza dei dati

• Indipendenza dei dati è la principale proprietà dei DBMS• Indipendenza fisica: interazione con il DBMS può prescindere dalla

struttura fisica dei dati ( è possibile cambiare la struttura dei file che memorizzano alcuni dati, senza dover cambiare la descrizione dei dati ad alto livello, senza dover modificare i programmi che utilizzano i dati)

• Indipendenza logica: l’interazione con il livello esterno può prescindere dal livello logico sottostante ( possibile modificare il modello logico senza modificare quello esterno e viceversa)

© Diego Magro

11

Information and Communication Technnology II a.a. 2006-2007Dipartimento

Informatica

Linguaggi per le basi di dati

• Due categorie di linguaggi1. Data Definition Language (DDL) o linguaggi per la

definizione dei dati: consentono di definire gli schemischemi(cioè le strutture) logico, esterno e fisico dei dati più le autorizzazioni di accesso

2. Data Manipulation Language (DML) o linguaggi per la manipolazione dei dati: consentono l’introduzione, la modifica o la lettura dei dati veri e propri (interagiscono con le istanzeistanze delle basi di dati)

© Diego Magro

12

Information and Communication Technnology II a.a. 2006-2007Dipartimento

Informatica

Utenti di un DBMS

Diverse tipologie di utenti:• Database Administrator (DBA) o amministratore della base di dati:

responsabile progettazione, controllo e amministrazione della base di dati

• Progettisti e programmatori di applicazioni: definiscono e realizzano i programmi che accedono alla base di dati

• Utenti finali: utilizzano programmi che realizzano attività frequenti e predefinite

• Utenti “casuali”: sono in grado di impiegare linguaggi per l’accesso alla base di dati e compiere operazioni non predefinite (di qui il termine “casuali”)

© Diego Magro

13

Information and Communication Technnology II a.a. 2006-2007Dipartimento

Informatica

Il modello relazionale:

relazioni e tabelle, schemi e istanze, vincoli di integrità

© Diego Magro

14

Information and Communication Technnology II a.a. 2006-2007Dipartimento

Informatica

Il modello relazionale

• Proposto da Codd nel 1970 (E.F. Codd, A relational model for large shared data banks, Communications of the ACM, Vol. 13, n. 6, pp. 377-387, 1970)

• Si proponeva di superare le limitazioni dei modelli esistenti, soprattutto per quanto riguardava l’effettiva realizzazione dell’indipendenza dei dati

• Si afferma solo negli anni Ottanta• E’ attualmente il più diffuso• Si fonda sul concetto matematico di relazione (che, leggermente

modificato, diviene tabella)•• La corrispondenza tra i dati è realizzata attraverso i dati stesLa corrispondenza tra i dati è realizzata attraverso i dati stessisi

(meccanismo basato su valori)…sarà più chiaro in seguito

© Diego Magro

15

Information and Communication Technnology II a.a. 2006-2007Dipartimento

Informatica

Qualche concetto matematico (ma proprio pochi!)

• Per capire il modello relazionale abbiamo bisogno di conoscere il significato del concetto matematico di relazionerelazione

• Per definire il concetto di relazione, abbiamo bisogno di conoscere i concetti di: elemento, (mult)insieme, appartenenza, sottoinsieme, coppia (n-upla) ordinata e prodotto cartesiano

• elemento: nessuna definizione: assumiamo di sapere cosa sia un “elemento”

• insieme: nessuna definizione formale: un insieme è una collezione di elementi in cui non vi sono elementi ripetuti

• multinsieme: è una collezione di elementi in cui possono esservi elementi ripetuti (N.B.: “possono” non significa “devono”!)Quindi: ogni insieme è un multinsieme, ma non è vero il viceversa.

© Diego Magro

16

Information and Communication Technnology II a.a. 2006-2007Dipartimento

Informatica

Es.: {a,b,c,d} è un (mult)insieme i cui elementi sono a, b, c, d. {a,b,b,c,d,d,d} è un multinsieme, ma non un insieme (infatti gli elementi b e d sono ripetuti)N.B. Negli insiemi (e nei multinsiemi), non conta l’ordine in cui compaiono gli elementi: Es: {a,b,c}, {a,c,b}, {b,a,c}, {b,c,a}, {c,a,b}, {c,b,a} sono lo stesso insiemeL’insieme che non contiene elementi è detto “insieme vuoto” ed èindicato con la lettera “∅∅∅∅ (phi maiuscolo)” dell’alfabeto greco: ∅∅∅∅ = { }

Qualche concetto matematico (ma proprio pochi!)

© Diego Magro

17

Information and Communication Technnology II a.a. 2006-2007Dipartimento

Informatica

• Appartenenza: siano x un elemento e A un (mult)insieme; si dice che “xappartiene ad A” (e si scrive “x ∈∈∈∈ A”) se e solo se x compare in A.Al contrario, si dice che “x non appartiene ad A” (e si scrive “x ∉∉∉∉ A”) se e solo se x non compare in A. Es. Se A = {giallo, blu, verde}, allora blu ∈∈∈∈ A, mentre rosso ∉∉∉∉ A

• Sottoinsieme: Siano A e B due insiemi; si dice che “A è sottoinsieme di B” oche “A è incluso in B” (e si scrive “A ⊆⊆⊆⊆ B”) se e solo se ogni elemento di A è elemento di B (cioè per ogni elemento x, se x ∈∈∈∈ A, allora x ∈∈∈∈ B). Al contrario, si dice che “A non è un sottoinsieme di B” o che “A non è incluso in B” (e si scrive “A ⊆⊆⊆⊆ B”) se e solo se esiste almeno un elemento di A che non è elemento di B (cioè esiste almeno un elemento x tale che x ∈∈∈∈ A e x ∉∉∉∉ B)Es. {a,b,c} ⊆⊆⊆⊆ {a,b,c,d,e} e {a,b,c,f} ⊆⊆⊆⊆ {a,b,c,d,e}Si noti che per ogni insieme A, l’insieme vuoto e A stesso sono sottoinsiemi(banali) di A: ∅∅∅∅ ⊆⊆⊆⊆ A e A ⊆⊆⊆⊆ A. Ogni sottoinsieme non banale di A è detto sottoinsieme proprio di A

Qualche concetto matematico (ma proprio pochi!)

© Diego Magro

18

Information and Communication Technnology II a.a. 2006-2007Dipartimento

Informatica

• Coppia (n-upla) ordinata: informalmente, una coppia ordinata è un multinsieme di due elementi, in cui conta l’ordine (cioè c’è un primo elemento e un secondo elemento): es. (a,b) è una coppia ordinata, in cui a è il primo elemento e b è il secondo. Si noti che (a,b) e (b,a) sono due coppie ordinate distinte e che l’elemento può essere ripetuto, cioè (a,a) è una coppia ordinata

Generalizzando: una n-upla ordinata è un multinsieme di n elementi in cui conta l’ordine, es: (a,b,b,d,e,h,f,f) è una n-pla ordinata di otto elementi

Qualche concetto matematico (ma proprio pochi!)

© Diego Magro

19

Information and Communication Technnology II a.a. 2006-2007Dipartimento

Informatica

• Prodotto cartesiano: siano A e B due insiemi (non necessariamente distinti); si dice “prodotto cartesiano di A e B” (e si scrive “A××××B”) l’insieme di tutte e sole le coppie ordinate (x,y) di elementi, in cui x ∈∈∈∈ A e y ∈∈∈∈ B. Es. A={a,b,c}, B={1,2}, A××××B={(a,1), (a,2), (b,1), (b,2), (c,1), (c,2)},B××××A={(1,a), (2,a), (1,b), (2,b), (1,c), (2,c)},A××××A={(a,a), (a,b), (a,c), (b,a), (b,b), (b,c), (c,a), (c,b), (c,c)}B××××B={(1,1), (1,2), (2,1), (2,2)}

Generalizzando: siano A1, A2, …, An n insiemi (non necessariamente tutti distinti); si dice “prodotto cartesiano di A1, A2, … e An ” (e si scrive “A1 ×××× A2 ××××… ×××× An”) l’insieme di tutte e sole le n-uple ordinate (x1,x2,…,xn) di elementi in cui x1 ∈∈∈∈ A1, x2 ∈∈∈∈ A2, …, xn ∈∈∈∈ An

Es.: A={a,b}, B={1,2}, C={+,*}, A××××B××××C = {(a,1,+),(a,1,*),(a,2,+),(a,2,*),(b,1,+),(b,1,*),(b,2,+),(b,2,*)}

Qualche concetto matematico (ma proprio pochi!)

© Diego Magro

20

Information and Communication Technnology II a.a. 2006-2007Dipartimento

Informatica

…e finalmente:• Relazione: siano A e B due insiemi (non necessariamente distinti); si

dice “relazione sugli insiemi A e B” un qualunque sottoinsieme del prodotto cartesiano A××××BEs. A={a,b,c}, B={1,2}, A××××B={(a,1), (a,2), (b,1), (b,2), (c,1), (c,2)};R1 = {(a,1),(b,2),(c,1)} e R2 = {(b,2), (c,1)} sono due possibili relazioni su A e B (si noti che R1 ⊆⊆⊆⊆ A××××B e R2 ⊆⊆⊆⊆ A××××B).Ovviamente, ∅∅∅∅ e A××××B sono anch’esse due relazioni su A e B (infatti, ∅∅∅∅⊆⊆⊆⊆ A××××B e A××××B ⊆⊆⊆⊆ A××××B)

Qualche concetto matematico (ma proprio pochi!)

Informatica
Evidenziato
Informatica
Evidenziato
Informatica
Evidenziato
Informatica
Evidenziato
Informatica
Evidenziato
Informatica
Evidenziato
Informatica
Evidenziato

© Diego Magro

21

Information and Communication Technnology II a.a. 2006-2007Dipartimento

Informatica

Generalizzando: siano A1, A2, …, An n insiemi (non necessariamente tutti distinti); si dice “relazione sugli insiemi A1, A2, … e An” un qualunque sottoinsieme del prodotto cartesiano A1 ×××× A2 ×××× … ×××× An

Es.: Es.: A={a,b}, B={1,2}, C={+,*}, A××××B××××C = {(a,1,+),(a,1,*),(a,2,+),(a,2,*),(b,1,+),(b,1,*),(b,2,+),(b,2,*)}S1 = {(a,1,+),(a,2,*), (b,2,*)} e S2 = {(b,2,*)} sono due esempi di relazioni sugli insiemi A1, A2, …, An

Qualche concetto matematico (ma proprio pochi!)

© Diego Magro

22

Information and Communication Technnology II a.a. 2006-2007Dipartimento

Informatica

“??????” … “cosa c’entra ’sta roba con le relazioni, quelle “vere”?”• Il significato matematico di “relazione” sembra aver poco a che

vedere con il significato di “relazione” nel linguaggio comune…• …se anche fosse così, non dovremmo stupirci: accade talvolta che il

significato matematico di un termine sia molto distante, o addirittura completamente slegato, dal significato del medesimo termine nel linguaggio comune…

• …ma in questo caso non è così: il concetto matematico di relazione formalizza ciò che molte “relazioni” (nel senso del linguaggio comune) hanno in comune

Qualche concetto matematico (ma proprio pochi!)

© Diego Magro

23

Information and Communication Technnology II a.a. 2006-2007Dipartimento

Informatica

Es.: Consideriamo queste 4 “relazioni”:1. la relazione che lega un numero naturale al suo quadrato: 0 0,

1 1, 2 4, 3 9,…2. la relazione fra ogni capitale europea e la sua temperatura massima

in un certo giorno: Roma 32, Parigi 31, Londra 28,…3. la relazione di innamoramento fra studenti in gita scolastica: Marco

ama Paola, Paola ama Marco, Luigi ama Elisa, Elisa ama Roberto, …4. la relazione fra i due giocatori e l’arbitro nelle partite di un torneo

aziendale di tennis: partita tra Rossi e Bianchi arbitrata da Verdi, partita tra Sirani e Verdi arbitrata da Bianchi, …

Qualche concetto matematico (ma proprio pochi!)

© Diego Magro

24

Information and Communication Technnology II a.a. 2006-2007Dipartimento

Informatica

Cos’hanno in comune queste “relazioni”? Apparentemente niente, ma se astraiamo dalle differenze, ciò che resta sono solo degli insiemi e delle n-uple!

1. La relazione di quadrato mette in relazione numeri naturali con numeri naturali: {(0,0), (1,1), (2,4), (3,9),…} ⊆⊆⊆⊆ N ×××× N (N denota l’insieme dei numeri naturali)

2. La relazione capitali-temperature: {(Roma, 32), (Parigi, 31), (Londra, 28),…} ⊆⊆⊆⊆ CE ×××× TEMP (dove CE denota l’insieme delle capitali europee e TEMP l’insieme delle possibili temperature)

3. La relazione di innamoramento:{(Marco, Paola), (Paola, Marco), (Luigi, Elisa), (Elisa, Roberto), …} ⊆⊆⊆⊆StudGita ×××× StudGita (dove StudGita denota l’insieme degli studenti in gita scolastica)

4. La relazione “match di tennis”:{(Rossi, Bianchi, Verdi), (Sirani, Verdi, Bianchi),…} ⊆⊆⊆⊆DIP ×××× DIP ×××× DIP (dove DIP denota l’insieme dei dipendenti della data azienda)

Qualche concetto matematico (ma proprio pochi!)

Informatica
Evidenziato

© Diego Magro

25

Information and Communication Technnology II a.a. 2006-2007Dipartimento

Informatica

…a questo punto sono stati introdotti tutti in concetti matematici necessari alla presentazione iniziale del modello relazionale…

…poiché l’algebra relazionale e l’SQL (che vedremo in seguito) fanno uso di altri 3 operatori insiemistici (oltre al prodotto cartesiano), introduciamo anch’essi:

• Siano A e B due insiemi; si dice “unione di A e B” (e si scrive “A∪∪∪∪B”) l’insieme degli elementi che appartengono ad A oppure a BEs.: A = {1,2,3}, B = {a,b}, C = {1,2,3,4}, D = {3,4,5,6}; A∪∪∪∪B = B∪∪∪∪A = {1,2,3,a,b}, C∪∪∪∪D = D∪∪∪∪C = {1,2,3,4,5,6}, A∪∪∪∪C = C∪∪∪∪A = {1,2,3,4}, A∪∅∪∅∪∅∪∅ = ∅∪∅∪∅∪∅∪A = A;La definizione si generalizza facilmente a più di due insiemi:A∪∪∪∪B∪∪∪∪C∪∪∪∪D = {1,2,3,a,b,4,5,6}

Qualche concetto matematico (ma proprio pochi!)

© Diego Magro

26

Information and Communication Technnology II a.a. 2006-2007Dipartimento

Informatica

• Siano A e B due insiemi; si dice intersezione di A e B (e si scrive “A∩∩∩∩B”) l’insieme degli elementi che appartengono ad A e contemporaneamente appartengono a BEs.: A={1,2,3}, B={a,b}, C={1,2,3,4}, D={3,4,5,6}; A∩∩∩∩B = B∩∩∩∩A = ∅∅∅∅; C∩∩∩∩D = D∩∩∩∩C = {3,4}, A∩∩∩∩C = C∩∩∩∩A = {1,2,3}, A∩∅∩∅∩∅∩∅ = ∅∩∅∩∅∩∅∩A = ∅∅∅∅;La definizione si generalizza facilmente a più di due insiemi:A∩∩∩∩C∩∩∩∩D = {3}, A∩∩∩∩B∩∩∩∩C∩∩∩∩D = ∅∅∅∅

Qualche concetto matematico (ma proprio pochi!)

© Diego Magro

27

Information and Communication Technnology II a.a. 2006-2007Dipartimento

Informatica

• Siano A e B due insiemi; si dice differenza fra A e B (e si scrive “A-B”) l’insieme degli elementi che appartengono ad A e contemporaneamente non appartengono a BEs.: A={1,2,3}, B={a,b}, C={1,2,3,4}, D={3,4,5,6}; A-B = {1,2,3}, B-A = {a,b}, A-C = ∅∅∅∅, C-A = {4}, A-D = {1,2}, D-A = {4,5,6}, C-D = {1,2}, D-C = {5,6}, A-∅∅∅∅ = A = {1,2,3}, ∅∅∅∅-A = ∅∅∅∅

Qualche concetto matematico (ma proprio pochi!)

© Diego Magro

28

Information and Communication Technnology II a.a. 2006-2007Dipartimento

Informatica

Il modello relazionale: relazioni e tabelle

•• Una base di dati relazionale è un insieme di relazioniUna base di dati relazionale è un insieme di relazioni• Nel modello relazionale le relazioni sono rappresentate da tabelletabelle. In questo

contesto, i termini “relazione” e “tabella” vengono usati come sinonimi• Dalla relazione alla tabella:

le relazioni con un numero finito di elementi (come lo sono tutte quelle che costituiscono una base di dati) possono essere rappresentate in forma tabellare, es:

la relazione “capitali-temperature”:

28Londra

31Parigi

32Roma

Informatica
Evidenziato
Informatica
Evidenziato
Informatica
Evidenziato
Informatica
Evidenziato
Informatica
Evidenziato
Informatica
Evidenziato
Informatica
Evidenziato

© Diego Magro

29

Information and Communication Technnology II a.a. 2006-2007Dipartimento

Informatica

la relazione “di innamoramento”:

la relazione “match di tennis”:

Il modello relazionale: relazioni e tabelle

ElisaLuigi

RobertoElisa

MarcoPaola

PaolaMarco

BianchiVerdiSirani

VerdiBianchiRossi

© Diego Magro

30

Information and Communication Technnology II a.a. 2006-2007Dipartimento

Informatica

ogni n-upla della relazione è contenuta esattamente in una riga della tabella e ogni elemento della n-upla è contenuto esattamente in una casella della tabella

2 INCONVENIENTI:si noti che la rappresentazione tabellare appena introdotta, non è molto leggibile; consideriamo, ad esempio, le ultime due tabelle: nella tabella che rappresenta la relazione “di innamoramento” non è immediatamente chiaro chi ama chi; analogamente, nella tabella che rappresenta la relazione “match di tennis” non è immediatamente chiaro chi sono i giocatori e chi l’arbitro

Il modello relazionale: relazioni e tabelle

© Diego Magro

31

Information and Communication Technnology II a.a. 2006-2007Dipartimento

Informatica

ancora più importante: secondo la definizione matematica del concetto di relazione, ogni n-upla di una relazione è ordinata, quindi cambiare l’ordine degli elementi all’interno di una n-upla cambia il significato della n-upla!

Ad esempio, nella relazione “di innamoramento”, la n-upla (Luigi, Elisa) dice che Luigi ama Elisa; se ne invertissimo gli elementi otterremmo la n-upla (Elisa, Luigi), il cui significato è diverso!

Analogamente: (Sirani, Verdi, Bianchi) rappresenta una partita di tennis fra Sirani e Verdi, arbitrata da Bianchi, mentre (Bianchi, Verdi, Sirani) rappresenta una partita fra Bianchi e Verdi arbitrata da Sirani

E’ scomodo dover porre attenzione all’ordine in cui gli elementi compaiono all’interno delle n-uple!

Il modello relazionale: relazioni e tabelle

© Diego Magro

32

Information and Communication Technnology II a.a. 2006-2007Dipartimento

Informatica

Per ovviare ai due inconvenienti riportati sopra, nel modello relazionale le colonne delle tabelle hanno sempre un titolo! …e, N.B., in una stessa tabella, non possono esservi due colonne con lo stesso titolo!Es.:

Il modello relazionale: relazioni e tabelle

Temperatura

Citta

28Londra

31Parigi

32Roma

Amato/aAmante

ElisaLuigi

RobertoElisa

MarcoPaola

PaolaMarco

ArbitroGiocat2Giocat1

BianchiVerdiSirani

VerdiBianchiRossi

CAPITALI_TEMPERATURE INNAMORAMENTO

MATCH_DI_TENNIS

© Diego Magro

33

Information and Communication Technnology II a.a. 2006-2007Dipartimento

Informatica

In questo modo:la leggibilità miglioral’ordine delle colonne non conta più, es. le due tabelle seguenti hanno lo stesso significato:

Il modello relazionale: relazioni e tabelle

Amato/aAmante

ElisaLuigi

RobertoElisa

MarcoPaola

PaolaMarco

AmanteAmato/a

LuigiElisa

ElisaRoberto

PaolaMarco

MarcoPaola

© Diego Magro

34

Information and Communication Technnology II a.a. 2006-2007Dipartimento

Informatica

Se le colonne non hanno titolo, invece, la modifica dell’ordine delle colonne produce un cambiamento nel significato delle tabelle, es.:

Da questo momento, quando si parla di modello relazionale, i termini “relazione” e “tabella” sono usati come sinonimi

Il modello relazionale: relazioni e tabelle

ElisaLuigi

RobertoElisa

MarcoPaola

PaolaMarco

LuigiElisa

ElisaRoberto

PaolaMarco

MarcoPaola

© Diego Magro

35

Information and Communication Technnology II a.a. 2006-2007Dipartimento

Informatica

Un po’ di terminologia e di notazione…• Le righe di una tabella (che finora abbiamo chiamato n-uple) vengono

chiamate tuple (deriva dall’inglese)• I titoli delle colonne si chiamano attributiattributi• Gli elementi delle tuple si chiamano valorivalori• Se t è una tupla di una tabella T e A è un attributo di T, t[A] denota il

valore assunto dalla tupla t sull’attributo AEs.: t=(Sirani, Verdi, Bianchi) è una tupla della tabella “MATCH_DI_TENNIS”; t[Giocat1] = Sirani, t[Giocat2] = Verdi,t[Arbitro] = Bianchi

• Se t è una tupla di una tabella T e X è un insieme di attributi di T, t[X] denota la tupla costituita dai valori di t sugli attributi in XEs.: t = (Sirani, Verdi, Bianchi) , t[Giocat1,Giocat2] = (Sirani,Verdi)

Il modello relazionale: terminologia e notazioni

© Diego Magro

36

Information and Communication Technnology II a.a. 2006-2007Dipartimento

Informatica

• Uno schema di relazioneschema di relazione è costituito da un simbolo R (detto nome della relazione) e da un insieme di (nomi di) attributi X = {A1, A2,…, An} ed è indicato con R(X); inoltre, ad ogni attributo è associato l’insieme dei possibili valori, detto dominio dell’attributo

Es.: MATCH_DI_TENNIS(Giocat1,Giocat2,Arbitro) è lo schema della relazione di nome “MATCH_DI_TENNIS”, i cui attributi sono Giocat1,Giocat2 e Arbitro.Quali sono i domini degli attributi?

Il modello relazionale: terminologia e notazioni

Informatica
Evidenziato
Informatica
Evidenziato
Informatica
Evidenziato
Informatica
Evidenziato
Informatica
Evidenziato

© Diego Magro

37

Information and Communication Technnology II a.a. 2006-2007Dipartimento

Informatica

Quando la relazione MATCH_DI_TENNIS è stata introdotta, si è detto che essa era una relazione fra i dipendenti di una data azienda, cioè un sottoinsieme di DIP ×××× DIP ×××× DIP. Tuttavia, siccome non è possibile introdurre le persone in carne ed ossa nei computer, per rappresentarla in un calcolatore possiamo usare i nomidelle persone, quindi, in realtà essa è un sottoinsieme di Stringa ×××× Stringa ×××× Stringa (Stringa è l’insieme di tutte le sequenze finite di simboli alfanumerici), cioè è una relazione fra nomi.In altre parole, l’insieme Stringa è il dominio degli attibuti Giocat1, Giocat2 e Arbitro

Il modello relazionale: terminologia e notazioni

© Diego Magro

38

Information and Communication Technnology II a.a. 2006-2007Dipartimento

Informatica

CAPITALI_TEMPERATURE(Citta, Temperatura) eINNAMORAMENTO(Amante,Amato/a) sono altri 2 esempi di schemi di relazioni

Stringa è il dominio di Citta, Amante, Amato/a;

Intero (cioè l’insieme dei numeri interi) è il dominio di Temperatura

Il modello relazionale: terminologia e notazioni

© Diego Magro

39

Information and Communication Technnology II a.a. 2006-2007Dipartimento

Informatica

• Uno schema di base di datischema di base di dati è un insieme di schemi di relazione con nomi diversi: RR={R1(X), R2(X), … , Rm(X) }

• Una istanza di relazioneistanza di relazione (o semplicemente relazionerelazione) su uno schema R(X) è un insieme r di tuple su X

• Una istanza di base di datiistanza di base di dati (o semplicemente base di dati) su uno schema RR={R1(X), R2(X), … , Rm(X) } è un insieme di relazioni r r = {r1, r2,…,rm}, dove r1 è una relazione sullo schema R1(X), r2 è una relazione sullo schema R2(X), … , rm è una relazione sullo schema Rm(X)

Il modello relazionale: terminologia e notazioni

© Diego Magro

40

Information and Communication Technnology II a.a. 2006-2007Dipartimento

Informatica

Modello relazionale: esempio(N.B.: l’esempio ha solo scopo didattico; non proviene da caso reale; nomi di specialità mediche, di patologie e di reparti sono inventati…quelli di medici e pazienti…anche!)Schema di base di dati:OSPEDALEOSPEDALE = {REPARTO(Nome(Stringa), Primario(Intero)) MEDICO(Id(Intero), Nome(Stringa), Cognome(Stringa), Reparto(Stringa))SPECIALITA(Nome(Stringa))SPECIALIZZAZIONE(Medico(Intero), Specialita(Stringa))PATOLOGIA(Nome(Stringa), Descrizione(*)(Stringa))PATOLOGIA_SPECIALITA(Patologia(Stringa), Specialita(Stringa))PAZIENTE(Id(Intero), Nome(Stringa), Cognome(Stringa), DataNascita(Data),

Reparto(Stringa))AFFEZIONE(Paziente(Intero), Patologia(Stringa))}(*)Possibile valore nullo

Schemi di

relazione

© Diego Magro

41

Information and Communication Technnology II a.a. 2006-2007Dipartimento

Informatica

Istanza di base di dati:ospedale ={reparto

Modello relazionale: esempio(N.B.: l’esempio ha solo scopo didattico; non proviene da caso reale; nomi di specialità mediche, di patologie e di reparti sono inventati…quelli di medici e pazienti…anche!)

PrimarioNome

4Riologia3Albologia2Nusologia1Ortologia

OrtologiaBianchiElena9OrtologiaBianchiElena10

RiologiaBianchiSergio8AlbologiaMirtoPiero7OrtologiaSelziNadia6NusologiaRossiCarlo5RiologiaDintiFederico4AlbologiaLulliMarika3NusologiaVerdiLuisa2OrtologiaRossiCarlo1

RepartoCognomeNomeId

medico

Istanze di relazione

© Diego Magro

42

Information and Communication Technnology II a.a. 2006-2007Dipartimento

Informatica

Modello relazionale: esempio(N.B.: l’esempio ha solo scopo didattico; non proviene da caso reale; nomi di specialità mediche, di patologie e di reparti sono inventati…quelli di medici e pazienti…anche!)

RefisticaFeniatria

Zelaredia

SubalogiaRiologiaAlbologiaNusologiaOrtologia

Nomespecialita specializzazione

Ortologia6Nusologia5Zelaredia5Zelaredia4Riologia4Albologia3Refistica2Nusologia2Feniatria1Ortologia1SpecialitaMedico

Ortologia10Ortologia9Riologia8Albologia7

…continua

© Diego Magro

43

Information and Communication Technnology II a.a. 2006-2007Dipartimento

Informatica

Modello relazionale: esempio(N.B.: l’esempio ha solo scopo didattico; non proviene da caso reale; nomi di specialità mediche, di patologie e di reparti sono inventati…quelli di medici e pazienti…anche!)

malattia degenerativa dell’apparato esopileo

Morbo_di_ Herf

NULLGoriteNULLNuvasiteNULLEndobialiteNULLMurgillo

affezione del balitoBalitosiNULLTufosidolore acuto a livello del micoMicalgiadegenerazione del mitroMitrosiinfiammazione dell’apparato piaricoPiarite

DescrizioneNome

patologia

© Diego Magro

44

Information and Communication Technnology II a.a. 2006-2007Dipartimento

Informatica

Modello relazionale: esempio(N.B.: l’esempio ha solo scopo didattico; non proviene da caso reale; nomi di specialità mediche, di patologie e di reparti sono inventati…quelli di medici e pazienti…anche!)

patologia_specialita

RefisticaGorite

NusologiaMorbo_di_ Herf

FeniatriaBalitosiRiologiaTufosiZelarediaMicalgiaAlbologiaMicalgiaNusologiaMitrosiSubalogiaPiariteOrtologiaPiariteSpecialitaPatologia

FeniatriaMurgilloOrtologiaMurgilloOrtologiaEndobialiteZelarediaEndobialiteAlbologiaNuvasiteRiologiaNuvasiteOrtologiaNuvasiteRiologiaGorite

…continua

© Diego Magro

45

Information and Communication Technnology II a.a. 2006-2007Dipartimento

Informatica

Modello relazionale: esempio(N.B.: l’esempio ha solo scopo didattico; non proviene da caso reale; nomi di specialità mediche, di patologie e di reparti sono inventati…quelli di medici e pazienti…anche!)

paziente

Ortologia04/02/1920AlbitiAndrea10Riologia03/04/1990TinosaSara9Albologia11/09/1950BianchiCarlo8Albologia10/09/1970BianchiCarlo7Nusologia12/09/1938TinosaErmete6Riologia15/02/1972MinoriKatia5Albologia20/07/1967BucciMilena4Nusologia24/11/1980VerdiElisa3Ortologia15/03/1982RossiMario2Ortologia25/10/1957RossiMario1

RepartoData-Nascita

CognomeNomeId

© Diego Magro

46

Information and Communication Technnology II a.a. 2006-2007Dipartimento

Informatica

Modello relazionale: esempio(N.B.: l’esempio ha solo scopo didattico; non proviene da caso reale; nomi di specialità mediche, di patologie e di reparti sono inventati…quelli di medici e pazienti…anche!)

Micalgia7

Morbo_di_ Herf

6Micalgia5Endobialite5Nuvasite4Piarite3Mitrosi3Murgillo2Gorite1Balitosi1PatologiaPaziente

affezione

Murgillo10Endobialite10Gorite9Nuvasite8

…continua

}

© Diego Magro

47

Information and Communication Technnology II a.a. 2006-2007Dipartimento

Informatica

Valori nulliPATOLOGIA(Nome(Stringa), Descrizione(*)(Stringa))

malattia degenerativa dell’apparato esopileo

Morbo_di_ Herf

NULLGoriteNULLNuvasiteNULLEndobialiteNULLMurgillo

affezione del balitoBalitosiNULLTufosidolore acuto a livello del micoMicalgiadegenerazione del mitroMitrosiinfiammazione dell’apparato piaricoPiarite

DescrizioneNome

patologia•Talvolta per alcune tuple non è possibile specificare il valore di ogni attributo (per una certa tupla potremmo sapere che il valore di un suo attributo non esiste; oppure che esiste, ma non conoscerlo o non ritenerlo essenziale; oppure potremmo non sapere nemmeno se esiste)

• DBMS relazionali usano un particolare valore, detto valore nullo(NULL), per esprimere la mancanza di valori per attributi nelle tuple

• N.B.N.B. Lo schema di relazione specifica, per ogni attributo, se esso può assumere valore nullo

© Diego Magro

48

Information and Communication Technnology II a.a. 2006-2007Dipartimento

Informatica

Espressioni booleane(poca roba) : definizione

• Per capire il significato di certi vincoli di integrità e di certe operazioni sulle basi di dati (vedi il seguito), abbiamo bisogno di conoscere qualcosa sulle espressioni booleane

• Supponiamo che p, q, r, … denotino ciascuna una qualche affermazione (di cui si possa dire se è vera o falsa), come ad es. “la neve è bianca” (vera), “5<4” (falsa), …

• p, q, r, … sono ciascuna un’espressione booleana, ma con l’uso di connettivi logici e delle parentesi “(”e “)” è possibile costruire espressioni booleane più complesse

• Consideriamo solo i seguenti connettivi: ¬¬¬¬ (“not”), ∧∧∧∧ (“and”) e ∨∨∨∨ (“or”)• ((¬¬¬¬p)∧∧∧∧q) ∧∧∧∧(s ∨∨∨∨ r) è un esempio di espressione booleana “complessa”

Informatica
Evidenziato
Informatica
Evidenziato
Informatica
Evidenziato

© Diego Magro

49

Information and Communication Technnology II a.a. 2006-2007Dipartimento

Informatica

• Più precisamente:1. p, q, r, … sono ciascuna un’espressione booleana (detta

espressione booleana “atomica”)2. Se E1 ed E2 sono espressioni booleane, allora (¬¬¬¬E1), (E1 ∧∧∧∧ E2) ed(E1 ∨∨∨∨ E2) sono espressioni booleane3. Nient’altro è un’espressione booleana

Es. siccome p e q sono espressioni booleane, allora anche (p∨∨∨∨q) è un’espressione booleana, quindi, essendo r un’espressione booleana, anche (¬¬¬¬r) lo è, quindi anche ((p∨∨∨∨q)∧∧∧∧(¬¬¬¬r)) è un’espressione booleana.

Attenzione! Per costruire espressioni booleane dobbiamo rispettare la definizione riportata sopra, ad es. ((¬¬¬¬p) ∨∨∨∨ ∧∧∧∧q), ∧∧∧∧(s ∨∨∨∨ r), (s¬¬¬¬r), (p( non sono espressioni booleane perché non rispettano la definizione

Espressioni booleane(poca roba) : definizione

© Diego Magro

50

Information and Communication Technnology II a.a. 2006-2007Dipartimento

Informatica

• E’ possibile semplificare la scrittura delle espressioni booleane eliminando alcune parentesi, ad esempio:

((p∧q)∧r) può essere riscritta come p∧q∧r;((p∧q)∧(r∧s)) può essere riscritta come p∧q∧r∧s((p∨q)∨r) può essere riscritta come p∨q∨r;

((p∨q)∨(r∨s)) può essere riscritta come p∨q∨r∨s

• N.B. Si può dimostrare che una qualunque espressione del tipo ((E1 ∧∧∧∧ E2) ∧∧∧∧ E3) è equivalente a (E1 ∧∧∧∧ (E2 ∧∧∧∧ E3)); quindi, ad esempio, a partire p∧∧∧∧q∧∧∧∧r possiamo ricostruire sia la formula ((p∧∧∧∧q)∧∧∧∧r) che la formula (p∧∧∧∧(q∧∧∧∧r)).Analogamente ((E1 ∨∨∨∨ E2) ∨∨∨∨ E3) è equivalente a (E1 ∨∨∨∨ (E2 ∨∨∨∨ E3)); ad esempio, a partire p∨∨∨∨q∨∨∨∨r possiamo ricostruire sia la formula ((p∨∨∨∨q)∨∨∨∨r) che la formula (p∨∨∨∨(q∨∨∨∨r)).

Espressioni booleane(poca roba) : eliminazione di parentesi superflue

© Diego Magro

51

Information and Communication Technnology II a.a. 2006-2007Dipartimento

Informatica

• Inoltre, è possibile eliminare ulteriori parentesi stabilendo convenzionalmente il seguente ordine di precedenza fra i connettivi logici: ¬¬¬¬ precede ∧∧∧∧ che precede ∨∨∨∨

• Per ricostruire la formula originaria a partire da una semplificata per mezzo di questa convenzione è sufficiente considerare prima il ¬¬¬¬ e racchiuderlo fra parentesi con la più corta formula a lui adiacente che lo segue; in seconda battuta, si racchiude ogni ∧∧∧∧ fra parentesi con le due più corte formule adiacenti (quella che lo precede e quella che lo segue); infine, si racchiude ogni ∨∨∨∨ fra parentesi con le due più corte formule adiacenti (quella che lo precede e quella che lo segue)

• Es. ¬¬¬¬p∨∨∨∨q∧∧∧∧r (consideriamo ¬¬¬¬) (¬¬¬¬p)∨∨∨∨q∧∧∧∧r(consideriamo ∧∧∧∧) (¬¬¬¬p)∨∨∨∨(q∧∧∧∧r) (consideriamo ∨∨∨∨) ((¬¬¬¬p)∨∨∨∨(q∧∧∧∧r));

• Es. ¬¬¬¬p∨∨∨∨q∧¬∧¬∧¬∧¬(r ∨∨∨∨s ∧¬∧¬∧¬∧¬t) (¬¬¬¬p)∨∨∨∨q∧∧∧∧(¬¬¬¬(r ∨∨∨∨s ∧∧∧∧(¬¬¬¬t))) (¬¬¬¬p)∨∨∨∨(q∧∧∧∧(¬¬¬¬( r ∨∨∨∨(s ∧∧∧∧(¬¬¬¬t)) ))) ((¬¬¬¬p)∨∨∨∨(q∧∧∧∧(¬¬¬¬(r ∨∨∨∨(s ∧∧∧∧(¬¬¬¬t)))))) [si noti che

nell’ultimo passaggio sarebbe stato inutile aggiungere una seconda coppia di parentesi per racchiudere la sotto-espressione evidenziata]

Espressioni booleane(poca roba) : eliminazione di parentesi superflue

© Diego Magro

52

Information and Communication Technnology II a.a. 2006-2007Dipartimento

Informatica

• Es. si noti che in a ∧∧∧∧ (b ∨∨∨∨ c) non è corretto eliminare le parentesi; infatti a ∧∧∧∧ (b ∨∨∨∨ c) corrisponde alla formula (a ∧∧∧∧ (b ∨∨∨∨ c)); se eliminassimo le parentesi otterremmo a ∧∧∧∧ b ∨∨∨∨ c che corrisponde alla formula ((a ∧∧∧∧ b) ∨∨∨∨ c) che non è equivalente a (a ∧∧∧∧ (b ∨∨∨∨ c));

• Es. a ∧∧∧∧ b ∧∧∧∧ ¬¬¬¬ (b ∨∨∨∨ c) (consideriamo ¬¬¬¬) a ∧∧∧∧ b ∧∧∧∧ (¬¬¬¬ (b ∨∨∨∨ c)) (consideriamo ∧∧∧∧) ((a ∧∧∧∧ b) ∧∧∧∧ (¬¬¬¬ (b ∨∨∨∨ c))) (consideriamo ∨∨∨∨) ((a ∧∧∧∧ b) ∧∧∧∧ (¬¬¬¬ (b ∨∨∨∨ c))) (nell’ultimo passaggio non

cambia nulla perché sarebbe stato inutile racchiudere b ∨∨∨∨ c in una seconda coppia di parentesi)

• N.B. Le precedenti regole consentono di eliminare alcune parentesi, ma non tutte!

• N.B. Non sempre è opportuno eliminare una coppia di parentesi ogni volta che è possibile farlo, ad esempio, a∨∨∨∨(¬¬¬¬b∧∧∧∧c)∨∨∨∨d è più leggibile di a∨¬∨¬∨¬∨¬b∧∧∧∧c∨∨∨∨d

Espressioni booleane(poca roba) : eliminazione di parentesi superflue

Informatica
Evidenziato
Informatica
Evidenziato

© Diego Magro

53

Information and Communication Technnology II a.a. 2006-2007Dipartimento

Informatica

• Delle espressioni booleane ci interessa dire se sono vere o false: per le espressioni booleane semplici (p, q, r, …) sappiamo dire immediatamente se esse sono vere (V) o false (F), es.: “la neve è bianca” V, “4 è pari” V, “4>5” F, “il cane è un suino” F

Espressioni booleane(poca roba) : valori di verità

© Diego Magro

54

Information and Communication Technnology II a.a. 2006-2007Dipartimento

Informatica

• Per gli altri casi, dobbiamo definire il significato dei connettivi logici: lo facciamo attraverso le tabelle di verità

Espressioni booleane(poca roba) : valori di verità

FV

VF

(¬¬¬¬E)E¬¬¬¬ (not): (¬¬¬¬E) è vera se e solo se E è falsa

Es.:

• “la neve è bianca” V, quindi ¬“la neve è bianca” F;

• “4>5” F, quindi ¬“4>5” V

© Diego Magro

55

Information and Communication Technnology II a.a. 2006-2007Dipartimento

Informatica

Espressioni booleane(poca roba) : valori di verità

VVV

FFV

FVF

FFF

(E1 ∧∧∧∧ E2)E2E1

∧∧∧∧ (and): (E1 ∧∧∧∧ E2) è vera se e solo se E1 ed E2 sono entrambe vere

Es.:

• “la neve è bianca” V , “4 è pari” V, quindi “la neve è bianca”∧“4 è pari” V;

• “la neve è bianca” V, “il cane è un suino” F, quindi “la neve è bianca” ∧“il cane è un suino” F

• “4>5” F, “il cane è un suino” F, quindi “4>5”∧“il cane è un suino” F

GeneralizzandoGeneralizzando: (E1 ∧∧∧∧ E2 ∧∧∧∧ … ∧∧∧∧ En)

è vera se e solo se sono tutte vere

E1, E2, …, En.

© Diego Magro

56

Information and Communication Technnology II a.a. 2006-2007Dipartimento

Informatica

Espressioni booleane(poca roba) : valori di verità

VVV

VFV

VVF

FFF

(E1 ∨∨∨∨ E2)E2E1

∨∨∨∨ (or): (E1 ∨∨∨∨ E2) è vera se e solo se almeno una fra E1 ed E2 è vera

Es.:

• “la neve è bianca” V , “4 è pari” V, quindi “la neve è bianca”∨“4 èpari” V;

• “la neve è bianca” V, “il cane è un suino” F, quindi “la neve è bianca”∨“il cane è un suino” V

• “4>5” F, “il cane è un suino” F, quindi “4>5”∨“il cane è un suino” F

GeneralizzandoGeneralizzando: (E1 ∨∨∨∨ E2 ∨∨∨∨ … ∨∨∨∨ En)

è vera se e solo almeno una fra

E1, E2, …, En è vera.

Informatica
Evidenziato
Informatica
Evidenziato

© Diego Magro

57

Information and Communication Technnology II a.a. 2006-2007Dipartimento

Informatica

Vincoli di integrità

• Dato uno schema di basi di dati, in generale non è vero che qualunque insieme di tuple sullo schema rappresenti dati significativi

impedire l’introduzione di dati non significativiDBMS consentono di esprimere proprietà che i dati non possono

violare (il DBMS si fa carico di impedire qualunque situazione che violi anche solo una di queste proprietà)

• Tali proprietà sono dette VINCOLI DI INTEGRITA’VINCOLI DI INTEGRITA’ (molto importanti!!!)

© Diego Magro

58

Information and Communication Technnology II a.a. 2006-2007Dipartimento

Informatica

Vincoli di integrità: esempi di situazioni indesiderate (I)

PrimarioNome

4Riologia3Albologia2Nusologia1Ortologia

OrtologiaBianchiElena10AlbologiaMiffioSebastianoNULL

OrtologiaBianchiElena9RiologiaBianchiSergio8AlbologiaMirtoPiero7OrtologiaSelziNadia6NusologiaRossiCarlo5RiologiaDintiFederico4AlbologiaLulliMarika3NusologiaVerdiLuisa2OrtologiaRossiCarlo1

RepartoCognomeNomeIdreparto

medico

Valore nullo su “identificatore”:

l’ultima tupla descrive un

medico senza fornirne il numero

che lo identifica all’interno

dell’ospedale

© Diego Magro

59

Information and Communication Technnology II a.a. 2006-2007Dipartimento

Informatica

Vincoli di integrità: esempi di situazioni indesiderate (II)

NULLRossiMario11OrtologiaRossiMarioNULL

OrtologiaBianchiElena10OrtologiaBianchiElena9RiologiaBianchiSergio8AlbologiaMirtoPiero7OrtologiaSelziNadia6NusologiaRossiCarlo5RiologiaDintiFederico4AlbologiaLulliMarika3NusologiaVerdiLuisa2OrtologiaRossiCarlo1

RepartoCognomeNomeIdreparto

medico

Tuple indistinguibili:

le ultime due tuple di “medico”

non sono distinguibili

PrimarioNome

4Riologia3Albologia2Nusologia1Ortologia

© Diego Magro

60

Information and Communication Technnology II a.a. 2006-2007Dipartimento

Informatica

Vincoli di integrità: esempi di situazioni indesiderate (III)

OrtologiaBianchiElena10NULLNULLNULL11

OrtologiaBianchiElena9RiologiaBianchiSergio8AlbologiaMirtoPiero7OrtologiaSelziNadia6NusologiaRossiCarlo5RiologiaDintiFederico4AlbologiaLulliMarika3NusologiaVerdiLuisa2OrtologiaRossiCarlo1

RepartoCognomeNomeIdreparto

medico

Tuple prive di contenuto informativo:

l’ultima tupla “medico” non fornisce

alcuna informazione utile sul

medico che essa dovrebbe

descrivere (a parte il fatto che esiste

e che ha identificatore 11)

PrimarioNome

4Riologia3Albologia2Nusologia1Ortologia

Informatica
Evidenziato
Informatica
Evidenziato
Informatica
Evidenziato
Informatica
Evidenziato
Informatica
Evidenziato
Informatica
Evidenziato

© Diego Magro

61

Information and Communication Technnology II a.a. 2006-2007Dipartimento

Informatica

Vincoli di integrità: esempi di situazioni indesiderate (IV)

OrtologiaBianchiElena10NusologiaBergamiSonia- 1

OrtologiaBianchiElena9RiologiaBianchiSergio8AlbologiaMirtoPiero7OrtologiaSelziNadia6NusologiaRossiCarlo5RiologiaDintiFederico4AlbologiaLulliMarika3NusologiaVerdiLuisa2OrtologiaRossiCarlo1

RepartoCognomeNomeIdreparto

medico

Valori indesiderati: anche se –1

appartiene al dominio dell’attributo

Id di “medico”, non vorremmo avere

numeri negativi fra gli identificatori

PrimarioNome

4Riologia3Albologia2Nusologia1Ortologia

© Diego Magro

62

Information and Communication Technnology II a.a. 2006-2007Dipartimento

Informatica

Vincoli di integrità: esempi di situazioni indesiderate (V)

OrtologiaBianchiElena10NusologiaMoriniNadia1

OrtologiaBianchiElena9RiologiaBianchiSergio8AlbologiaMirtoPiero7OrtologiaSelziNadia6NusologiaRossiCarlo5RiologiaDintiFederico4AlbologiaLulliMarika3NusologiaVerdiLuisa2OrtologiaRossiCarlo1

RepartoCognomeNomeIdreparto

medico

Identificatore ripetuto: il campo

identificatore dell’ultima tupla

di “medico” è uguale a quello della

prima: vorremmo avere

“identificatori” tutti distinti

PrimarioNome

4Riologia3Albologia2Nusologia1Ortologia

© Diego Magro

63

Information and Communication Technnology II a.a. 2006-2007Dipartimento

Informatica

Vincoli di integrità: esempi di situazioni indesiderate (VI)

OrtologiaBianchiElena10RuffologiaFuriniElisabetta11

OrtologiaBianchiElena9RiologiaBianchiSergio8AlbologiaMirtoPiero7OrtologiaSelziNadia6NusologiaRossiCarlo5RiologiaDintiFederico4AlbologiaLulliMarika3NusologiaVerdiLuisa2OrtologiaRossiCarlo1

RepartoCognomeNomeIdreparto

medico

Riferimenti ad elementi inesistenti:

l’ultima tupla di “medico” descrive

un medico che appartiene al reparto

di Ruffologia, il quale non compare fra

i reparti dell’ospedale

PrimarioNome

4Riologia3Albologia2Nusologia1Ortologia

© Diego Magro

64

Information and Communication Technnology II a.a. 2006-2007Dipartimento

Informatica

Due classi di vincoli di integrità:

1. Vincoli intrarelazionali: il loro soddisfacimento è definito rispetto a singole relazioni della base di dati

2. Vincoli interrelazionali: coinvolgono più relazioni

Vincoli di integrità

Informatica
Evidenziato
Informatica
Evidenziato
Informatica
Evidenziato
Informatica
Evidenziato
Informatica
Sottolineato

© Diego Magro

65

Information and Communication Technnology II a.a. 2006-2007Dipartimento

Informatica

Vincoli “NOT NULL”

Come visto nei primi tre esempi di “situazioni indesiderate”, per alcuni attributi può essere inopportuno consentire valori nulli

la definizione di uno schema di relazione può vincolare alcuni attributi ad essere non nulli

Nel nostro esempio dell’ospedale, è stato imposto il vincolo che tutti gli attributi di ogni relazione abbiano valore non nullo, ad eccezione dell’attributo “Descrizione” nello schema di relazione PATOLOGIA(Nome(Stringa), Descrizione(*)(Stringa)) (gli attributi che possono assumere valore nullo sono asteriscati), considerato non essenziale

le prime 3 situazioni indesiderate sono impedite (il DBMS garantisce soddisfacimento dei vincoli NOT NULL e impedisce introduzione delle tuple con campi NULL degli esempi (I), (II) e (III))

Vincoli di integrità intrarelazionali: vincoli di tupla

© Diego Magro

66

Information and Communication Technnology II a.a. 2006-2007Dipartimento

Informatica

Altro esempio: restrizione dominio attributi

DBMS consentono di esprimere vincoli che restringono domini di attributi. Es., “medico.Id > 0” impone che l’identificatore di un medico sia un numero positivo.

situazione indesiderata (IV) è impedita (DBMS rifiuta introduzione di tuple con Id non positivo nella relazione “medico”)

• Possibili anche vincoli che coinvolgono più di un attributo

Vincoli di integrità intrarelazionali: vincoli di tupla

© Diego Magro

67

Information and Communication Technnology II a.a. 2006-2007Dipartimento

Informatica

Il concetto di chiavechiave è un concetto chiave nel modello relazionale!

La “situazione indesiderata (V)” evidenzia la necessità che il (valore del) campo “Id” in “medico” identifichi ciascun medico non devono esserci due medici (due tuple) con lo stesso valore per “Id”

Una chiave di una relazione è un insieme di attributi utilizzato per identificare univocamente le tuple di una relazione

Vincoli di integrità intrarelazionali: chiavi

© Diego Magro

68

Information and Communication Technnology II a.a. 2006-2007Dipartimento

Informatica

Più precisamente:sia K un insieme di attributi di uno schema di relazione R:• si dice che K è superchiavesuperchiave di R se e solo se nella base di dati sono ammesse solo istanze di relazioni su R in cui non vi sono due tuple t1 e t2 distinte che hanno gli stessi valori sugli attributi in K, cioè se t1 ≠≠≠≠ t2allora t1[K] ≠≠≠≠ t2[K] (in altre parole, se t1[K] = t2[K] allora t1 e t2 sono la stessa tupla)

• K è chiavechiave di R se e solo se è superchiave minimale di R (cioè non esiste alcun’altra superchiave K’ che sia sottoinsieme proprio di K)

Vincoli di integrità intrarelazionali: chiavi

Informatica
Evidenziato
Informatica
Evidenziato
Informatica
Evidenziato
Informatica
Evidenziato
Informatica
Evidenziato
Informatica
Evidenziato
Informatica
Evidenziato
Informatica
Evidenziato
Informatica
Evidenziato
Informatica
Evidenziato
Informatica
Evidenziato
Informatica
Evidenziato
Informatica
Evidenziato
Informatica
Evidenziato

© Diego Magro

69

Information and Communication Technnology II a.a. 2006-2007Dipartimento

Informatica

Vincoli di integrità intrarelazionali: chiavi

OrtologiaBianchiElena10NusologiaMoriniNadia1

OrtologiaBianchiElena9RiologiaBianchiSergio8AlbologiaMirtoPiero7OrtologiaSelziNadia6NusologiaRossiCarlo5RiologiaDintiFederico4AlbologiaLulliMarika3NusologiaVerdiLuisa2OrtologiaRossiCarlo1

RepartoCognomeNomeId

medico

Per evitare la ripetizione di valori

dell’attributo “Id” (“situazione

indesiderata (V)”), specifichiamo

nella definizione dello schema

di relazione MEDICO che

“Id” è chiave in “medico”

non possono esservi due tuple

distinte t1 e t2 tali che t1[Id] = t2[Id]

il DBMS rifiuta l’inserimento

dell’ultima tupla (assumendo che

la prima sia già presente)

NO!

© Diego Magro

70

Information and Communication Technnology II a.a. 2006-2007Dipartimento

Informatica

Vincoli di integrità intrarelazionali: chiavi

OrtologiaBianchiElena10OrtologiaBianchiElena9RiologiaBianchiSergio8AlbologiaMirtoPiero7OrtologiaSelziNadia6NusologiaRossiCarlo5RiologiaDintiFederico4AlbologiaLulliMarika3NusologiaVerdiLuisa2OrtologiaRossiCarlo1

RepartoCognomeNomeId

medico

N.B.:

• se Id è chiave, (Id, Nome, Cognome) è ovviamente superchiave, ma non chiave, in quanto contiene la chiave (cioè Id)

• (Nome, Cognome) non è superchiave (quindi neanche chiave), in quanto possono esservi medici diversi con lo stesso nome e lo stesso cognome (ad. esempio, vi sono due “Carlo Rossi” e due “Elena Bianchi”)

© Diego Magro

71

Information and Communication Technnology II a.a. 2006-2007Dipartimento

Informatica

Vincoli di integrità intrarelazionali: chiavipaziente

Ortologia04/02/1920AlbitiAndrea10Riologia03/04/1990TinosaSara9Albologia11/09/1950BianchiCarlo8Albologia10/09/1970BianchiCarlo7Nusologia12/09/1938TinosaErmete6Riologia15/02/1972MinoriKatia5Albologia20/07/1967BucciMilena4Nusologia24/11/1980VerdiElisa3Ortologia15/03/1982RossiMario2Ortologia25/10/1957RossiMario1

RepartoData-Nascita

CognomeNomeId Anche nella definizione dello schema PAZIENTE è opportuno imporre che “Id” sia chiave

Supponiamo di aver imposto analogo vincolo anche su (Nome, Cognome, Data-Nascita) [nella realtà non è plausibile, lo facciamo a scopo didattico] in una in una relazione purelazione puòòesservi piesservi piùù di una di una chiavechiave

© Diego Magro

72

Information and Communication Technnology II a.a. 2006-2007Dipartimento

Informatica

Vincoli di integrità intrarelazionali: chiavispecializzazione

Ortologia6Nusologia5Zelaredia5Zelaredia4Riologia4Albologia3Refistica2Nusologia2Feniatria1Ortologia1SpecialitaMedico

Ortologia10Ortologia9Riologia8Albologia7

…continua

E’ possibile definire una chiave?

“Medico” non è una buona chiave: uno stesso medico può avere più specializzazioni (es.: il medico “1” ha due specializzazioni); “Specialità” non è una buona chiave: medici diversi possono essere specializzati nella stessa disciplina (es.: i medici “1” e “6” sono specializzati in “Ortologia”)

Allora scegliamo come chiave tutti gli attributi della relazione: (Medico, Specialita)

Informatica
Evidenziato
Informatica
Evidenziato
Informatica
Evidenziato
Informatica
Evidenziato
Informatica
Evidenziato
Informatica
Evidenziato
Informatica
Evidenziato
Informatica
Evidenziato
Informatica
Evidenziato
Informatica
Evidenziato
Informatica
Evidenziato
Informatica
Evidenziato

© Diego Magro

73

Information and Communication Technnology II a.a. 2006-2007Dipartimento

Informatica

Vincoli di integrità intrarelazionali: chiavi

Udite, udite!Una relazione ha sempre almeno una chiaveUna relazione ha sempre almeno una chiave!N.B. Non si è scritto “Una relazione deve avere sempre almeno una chiave”,

perché ce l’ha e basta! Questa proprietà segue dal modello relazionale, infatti,

per ogni schema di relazione, l’insieme di tutti gli attributi è sempre superchiave (infatti, un’istanza di relazione non può contenere tuple ripetute); due possibilità:1. se nessun sottoinsieme proprio di tale insieme è superchiave, allora esso è

chiave (come nel precedente esempio dello schema SPECIALIZZAZIONE) e quindi abbiamo trovato una chiave;

2. se, invece, esiste un sottoinsieme proprio di attributi che è ancora superchiave, o questo nuovo sottoinsieme di attributi è chiave, oppure si procede con questo ragionamento fino a trovare la chiave (e la si trova, perché gli attributi sono in numero finito)

© Diego Magro

74

Information and Communication Technnology II a.a. 2006-2007Dipartimento

Informatica

Vincoli di integrità intrarelazionali: chiavi

paziente

NULLNULLBianchiLuigi12Albologia26/04/88BianchiLuigiNULLRiologiaNULLNeriUgoNULLOrtologia04/02/1920AlbitiAndrea10

Riologia03/04/1990TinosaSara9

Albologia11/09/1950BianchiCarlo8

Albologia10/09/1970BianchiCarlo7

Nusologia12/09/1938TinosaErmete6

Riologia15/02/1972MinoriKatia5

Albologia20/07/1967BucciMilena4

Nusologia24/11/1980VerdiElisa3

Ortologia15/03/1982RossiMario2

Ortologia25/10/1957RossiMario1

RepartoData-Nascita

Cognome

NomeId

Supponiamo di aver definito le due chiavi (Id) e (Nome, Cognome, Data-Nascita).

Supponiamo, provvisoriamente, di ammettere valori nulli per Id (sappiamo già che non è

una buona scelta), per Data-Nascita e per Reparto.

Si noti che in ogni chiave è presente un attributo che può assumere valori nulli

Si produce una situazione indesiderarta:

terzultima tupla: ha valori nulli in entrambe le chiavi non èidentificabile

ultime due tuple: ciascuna specifica completamente gli attributi di una (sola) delle due chiavi, tuttavia non sono distinguibili

© Diego Magro

75

Information and Communication Technnology II a.a. 2006-2007Dipartimento

Informatica

Come si evitano problemi come il precedente?Il modello relazionale potrebbe imporre che tutti gli attributi di ogni chiave debbano essere non nulli… “troooooppo restrittivo!”

Il modello relazionale impone che ogni schema di relazione definisca sempre una chiave primariachiave primaria: essa costituisce il modo privilegiato per identificare le tuple e nessuno dei suoi attributi puo’ essere nullo

…gli attributi delle altre chiavi possono essere nulli (se non diversamente specificato nella definizione dello schema di relazione)

Es.: in PAZIENTE possiamo scegliere Id come chiave primaria. In questo modo, il DBMS rifiuta l’inserimento della terzultima e della penultima tupla dell’esempio precedente

Vincoli di integrità intrarelazionali: chiavi

© Diego Magro

76

Information and Communication Technnology II a.a. 2006-2007Dipartimento

Informatica

Vincoli di integrità intrarelazionali: chiavi

Schema di base di dati:OSPEDALEOSPEDALE = {REPARTO(Nome(Stringa), Primario(Intero)) MEDICO(Id(Intero), Nome(Stringa), Cognome(Stringa), Reparto(Stringa))SPECIALITA(Nome(Stringa))SPECIALIZZAZIONE(Medico(Intero), Specialita(Stringa))PATOLOGIA(Nome(Stringa), Descrizione(*)(Stringa))PATOLOGIA_SPECIALITA(Patologia(Stringa), Specialita(Stringa))PAZIENTE(Id(Intero), Nome(Stringa), Cognome(Stringa), DataNascita(Data),

Reparto(Stringa))AFFEZIONE(Paziente(Intero), Patologia(Stringa))}(*)Possibile valore nullo, sottolineatura: chiave primaria

Informatica
Evidenziato
Informatica
Evidenziato
Informatica
Evidenziato
Informatica
Evidenziato
Informatica
Evidenziato
Informatica
Evidenziato
Informatica
Evidenziato
Informatica
Evidenziato
Informatica
Evidenziato
Informatica
Evidenziato
Informatica
Evidenziato
Informatica
Evidenziato
Informatica
Evidenziato

© Diego Magro

77

Information and Communication Technnology II a.a. 2006-2007Dipartimento

Informatica

Vincoli di integrità intrarelazionali: chiavi

N.B.: nei casi reali, quando non sia possibile trovare un insieme di attributi identificanti e sempre disponibili (es. codice fiscale, matricola,… nel nostro esempio Nome per REPARTO, ecc.) che fungano da chiave, occorre introdurre un codice “artificiale” (vedi i vari “Id” del nostro esempio)

© Diego Magro

78

Information and Communication Technnology II a.a. 2006-2007Dipartimento

Informatica

Vincoli di integrità interrelazionali: vincoli di integrità referenziale• E’ la più importante classe di vincoli interrelazionali

• Consente di evitare situazioni come la “situazione indesiderata (VI)”

• Assieme ai vincoli di chiave fanno del modello relazionale un modello basato su valori!

© Diego Magro

79

Information and Communication Technnology II a.a. 2006-2007Dipartimento

Informatica

Vincoli di integrità interrelazionali: vincoli di integrità referenziale

PrimarioNome

4Riologia3Albologia2Nusologia1Ortologia

OrtologiaBianchiElena10RuffologiaFuriniElisabetta11

OrtologiaBianchiElena9RiologiaBianchiSergio8AlbologiaMirtoPiero7OrtologiaSelziNadia6NusologiaRossiCarlo5RiologiaDintiFederico4AlbologiaLulliMarika3NusologiaVerdiLuisa2OrtologiaRossiCarlo1

RepartoCognomeNomeIdreparto

medico

Per evitare la “situazione indesiderata (VI)” dobbiamo imporre il vincolo che tutti i valori non nulli dell’attributo Reparto in “medico” siano nomi di reparti esistenti, cioè compaiano come valori di Nome in “reparto”: vincolo di integrità referenziale fra l’attributo Reparto in “medico” e la relazione “reparto”

© Diego Magro

80

Information and Communication Technnology II a.a. 2006-2007Dipartimento

Informatica

Più precisamente:Siano • r1 ed r2 due relazioni rispettivamente sugli schemi e R1 ed R2

• K1 la chiave primaria di R1

• X un insieme di attributi di R2 (con domini compatibili con attributi in K1 e opportunamente ordinato)

Il vincolo di integrità referenziale fra X e (ogni istanza di) R1 impone che per ogni tupla t2 ∈∈∈∈ r2 tale che t2[X] non contiene valori nulli, esista una tupla t1 ∈∈∈∈ r1 tale che t1[K1] = t2[X]

Se sussiste tale vincolo di integrità referenziale, r1 è detta tabella esterna e r2 è detta tabella interna

Vincoli di integrità interrelazionali: vincoli di integrità referenziale

Informatica
Evidenziato
Informatica
Evidenziato
Informatica
Sottolineato
Informatica
Sottolineato
Informatica
Sottolineato
Informatica
Sottolineato
Informatica
Sottolineato
Informatica
Sottolineato
Informatica
Sottolineato

© Diego Magro

81

Information and Communication Technnology II a.a. 2006-2007Dipartimento

Informatica

PrimarioNome

4Riologia3Albologia2Nusologia1Ortologia

OrtologiaBianchiElena10RuffologiaFuriniElisabetta11

OrtologiaBianchiElena9RiologiaBianchiSergio8AlbologiaMirtoPiero7OrtologiaSelziNadia6NusologiaRossiCarlo5RiologiaDintiFederico4AlbologiaLulliMarika3NusologiaVerdiLuisa2OrtologiaRossiCarlo1

RepartoCognomeNomeIdreparto medico

Vincoli di integrità interrelazionali: vincoli di integrità referenziale

In questo caso, l’ultima tupla t2 in “medico” non soddisfa l’integrità referenziale imposta, in quanto t2[Reparto] = Ruffologia, ma non esiste alcuna tupla t1 in “reparto” tale che t1[Nome] = Ruffologia

DBMS rifiuta inserimento della tupla in campo nero (data la relazione “reparto” riportata sopra)

© Diego Magro

82

Information and Communication Technnology II a.a. 2006-2007Dipartimento

Informatica

• Come si comporta il DBMS di fronte ad una violazione di un vincolo di integrità referenziale?

• (Si ricordi che in una base di dati è possibile non solo aggiungere dati nuovi, ma anche cancellare o modificare dati esistenti)

• Occorre distinguere due tipi di violazioni1. violazione a seguito di modifica della tabella interna2. violazione a seguito di modifica della tabella esterna

Vincoli di integrità interrelazionali: vincoli di integrità referenziale

© Diego Magro

83

Information and Communication Technnology II a.a. 2006-2007Dipartimento

Informatica

Violazione a seguito di modifica della tabella interna

Vincoli di integrità interrelazionali: vincoli di integrità referenziale

PrimarioNome

4Riologia3Albologia2Nusologia1Ortologia

OrtologiaBianchiElena10OrtologiaBianchiElena9RiologiaBianchiSergio8AlbologiaMirtoPiero7OrtologiaSelziNadia6NusologiaRossiCarlo5RiologiaDintiFederico4AlbologiaLulliMarika3NusologiaVerdiLuisa2GurfatriaRossiCarlo1

RepartoCognomeNomeIdreparto medico

Sia l’introduzione di una tupla in “medico” che viola integrità referenziale (come in esempio precedente), sia modifica come nella prima tupla sono sono impedite dal DBMSimpedite dal DBMS

© Diego Magro

84

Information and Communication Technnology II a.a. 2006-2007Dipartimento

Informatica

Violazione a seguito di modifica della tabella esterna

Vincoli di integrità interrelazionali: vincoli di integrità referenziale

PrimarioNome

4Riologia3Albologia2Nusologia1Ortologia

OrtologiaBianchiElena10OrtologiaBianchiElena9RiologiaBianchiSergio8AlbologiaMirtoPiero7OrtologiaSelziNadia6NusologiaRossiCarlo5RiologiaDintiFederico4AlbologiaLulliMarika3NusologiaVerdiLuisa2OrtologiaRossiCarlo1

RepartoCognomeNomeId

reparto medico

Cancellazione:

Il DBMS consente di Il DBMS consente di specificare la politica da specificare la politica da adottare (e poi ne assicura adottare (e poi ne assicura l’attuazione)l’attuazione) : impedire la cancellazione della tupla in “reparto”, cancellare tutte le tuple di “medico” il cui Reparto è Ortologia, porre a NULL il valore di Reparto in tali tuple, …

Informatica
Sottolineato
Informatica
Sottolineato
Informatica
Sottolineato
Informatica
Sottolineato
Informatica
Sottolineato
Informatica
Sottolineato
Informatica
Sottolineato
Informatica
Sottolineato
Informatica
Sottolineato

© Diego Magro

85

Information and Communication Technnology II a.a. 2006-2007Dipartimento

Informatica

Violazione a seguito di modifica della tabella esterna

Vincoli di integrità interrelazionali: vincoli di integrità referenziale

PrimarioNome

4Riologia3Albologia2Nusologia1Endocitria

OrtologiaBianchiElena10OrtologiaBianchiElena9RiologiaBianchiSergio8AlbologiaMirtoPiero7OrtologiaSelziNadia6NusologiaRossiCarlo5RiologiaDintiFederico4AlbologiaLulliMarika3NusologiaVerdiLuisa2OrtologiaRossiCarlo1

RepartoCognomeNomeIdreparto medico

Modifica del valore della chiave:

Il DBMS consente di Il DBMS consente di specificare la politica da specificare la politica da adottare (e poi ne assicura adottare (e poi ne assicura l’attuazione)l’attuazione) : impedire la modifica della prima tupla di “reparto”, cambiare in “Endocitria” il valore di Reparto nelle tuple in campo grigio di “medico”, porre a NULL il valore di Reparto in tali tuple, … © Diego Magro

86

Information and Communication Technnology II a.a. 2006-2007Dipartimento

Informatica

Altri esempi

Vincoli di integrità interrelazionali: vincoli di integrità referenziale

RefisticaFeniatria

Zelaredia

SubalogiaRiologiaAlbologiaNusologiaOrtologia

Nomespecialita specializzazione

Ortologia6Nusologia5Zelaredia5Zelaredia4Riologia4Albologia3Refistica2Nusologia2Feniatria1Ortologia1SpecialitaMedico

Ortologia10Ortologia9Riologia8Albologia7

…continua

Integrità referenziale fra attributo Specialita di SPECIALIZZAZIONE e SPECIALITA

© Diego Magro

87

Information and Communication Technnology II a.a. 2006-2007Dipartimento

Informatica

Altri esempi

Vincoli di integrità interrelazionali: vincoli di integrità referenziale

paziente

Ortologia04/02/1920AlbitiAndrea10

Riologia03/04/1990TinosaSara9

Albologia11/09/1950BianchiCarlo8

Albologia10/09/1970BianchiCarlo7

Nusologia12/09/1938TinosaErmete6

Riologia15/02/1972MinoriKatia5

Albologia20/07/1967BucciMilena4

Nusologia24/11/1980VerdiElisa3

Ortologia15/03/1982RossiMario2

Ortologia25/10/1957RossiMario1

RepartoData-Nascita

CognomeNomeId

Micalgia7

Morbo_di_ Herf

6

Micalgia5

Endobialite5

Nuvasite4

Piarite3

Mitrosi3

Murgillo2

Gorite1

Balitosi1

PatologiaPaziente

affezione

Murgillo10

Endobialite10

Gorite9

Nuvasite8

…continua

Integrità referenziale fra attributo Paziente di AFFEZIONE e PAZIENTE

© Diego Magro

88

Information and Communication Technnology II a.a. 2006-2007Dipartimento

Informatica

Altri esempi

Vincoli di integrità interrelazionali: vincoli di integrità referenziale

Micalgia7

Morbo_di_ Herf

6

Micalgia5

Endobialite5

Nuvasite4

Piarite3

Mitrosi3

Murgillo2

Gorite1

Balitosi1

PatologiaPaziente

affezione

Murgillo10

Endobialite10

Gorite9

Nuvasite8

…continua

Integrità referenziale fra attributo Patologia di AFFEZIONE e PATOLOGIA

malattia degenerativa dell’apparato esopileo

Morbo_di_ Herf

NULLGorite

NULLNuvasite

NULLEndobialite

NULLMurgillo

affezione del balitoBalitosi

NULLTufosi

dolore acuto a livello del micoMicalgia

degenerazione del mitroMitrosi

infiammazione dell’apparato piaricoPiarite

DescrizioneNome

patologia

Informatica
Sottolineato
Informatica
Sottolineato

© Diego Magro

89

Information and Communication Technnology II a.a. 2006-2007Dipartimento

Informatica

Che vuol dire che il modello relazionale è un modello “basato su valori”?

Vincoli di integrità interrelazionali: vincoli di integrità referenziale

Micalgia7

Morbo_di_ Herf

6

Micalgia5

Endobialite5

Nuvasite4

Piarite3

Mitrosi3

Murgillo2

Gorite1

Balitosi1

PatologiaPaziente

affezione

Murgillo10

Endobialite10

Gorite9

Nuvasite8

…continua

Consideriamo prima tupla di “affezione” essa fa riferimento ad un paziente tramite un valore (“1”) che lo identifica univocamente all’interno della tabella “paziente” in cui esso è descritto: non c’è alcun riferimento al “luogo fisico” in cui la descrizione del paziente è memorizzata

paziente

Ortologia04/02/1920AlbitiAndrea10

Riologia03/04/1990TinosaSara9

Albologia11/09/1950BianchiCarlo8

Albologia10/09/1970BianchiCarlo7

Nusologia12/09/1938TinosaErmete6

Riologia15/02/1972MinoriKatia5

Albologia20/07/1967BucciMilena4

Nusologia24/11/1980VerdiElisa3

Ortologia15/03/1982RossiMario2

Ortologia25/10/1957RossiMario1

RepartoData-Nascita

CognomeNomeId

© Diego Magro

90

Information and Communication Technnology II a.a. 2006-2007Dipartimento

Informatica

Schema di base di dati ((*): Possibile valore nullo; sottolineatura: chiave primaria; : integrità referenziale; schemi in campo grigio: ripetuti su 2 slide):OSPEDALEOSPEDALE = {

Vincoli di integrità interrelazionali: vincoli di integrità referenziale

REPARTO(Nome(Stringa), Primario(Intero))

MEDICO(Id(Intero), Nome(Stringa), Cognome(Stringa), Reparto(Stringa))

SPECIALIZZAZIONE(Medico(Intero), Specialita(Stringa))

PAZIENTE(Id(Intero), Nome(Stringa), Cognome(Stringa), DataNascita(Data), Reparto(Stringa))

AFFEZIONE(Paziente(Intero), Patologia(Stringa))

© Diego Magro

91

Information and Communication Technnology II a.a. 2006-2007Dipartimento

Informatica

Vincoli di integrità interrelazionali: vincoli di integrità referenziale

PATOLOGIA(Nome(Stringa), Descrizione(*)(Stringa))

SPECIALITA(Nome(Stringa))

PATOLOGIA_SPECIALITA(Patologia(Stringa), Specialita(Stringa))

SPECIALIZZAZIONE(Medico(Intero), Specialita(Stringa)) }

AFFEZIONE(Paziente(Intero), Patologia(Stringa))

© Diego Magro

92

Information and Communication Technnology II a.a. 2006-2007Dipartimento

Informatica

Altri vincoli di integrità

Possono esservi altri vincoli di integrità oltre a quelli qui esaminati, ad es. la base di dati “ospedale” soddisfa anche i due seguenti vincoli:

1. il primario di un reparto appartiene a tale reparto

2. ogni paziente è ricoverato in un reparto diretto da un primario specializzato in una disciplina cui è attinente almeno una dellepatologie del paziente

…controllare per credere…controllare per credere!

Informatica
Evidenziato
Informatica
Evidenziato
Informatica
Evidenziato
Informatica
Evidenziato
Informatica
Sottolineato