Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, 1999 Capitolo 1: Introduzione 3/10/2001.
1 MODELLO RELAZIONALE. 2 Tratto dal materiale associato al testo Atzeni, Ceri, Paraboschi, Torlone...
-
Upload
santino-porta -
Category
Documents
-
view
255 -
download
2
Transcript of 1 MODELLO RELAZIONALE. 2 Tratto dal materiale associato al testo Atzeni, Ceri, Paraboschi, Torlone...
11
MODELLO MODELLO RELAZIONALERELAZIONALE
22Tratto dal materiale associato al testo Atzeni, Ceri, Paraboschi, Torlone Tratto dal materiale associato al testo Atzeni, Ceri, Paraboschi, Torlone Basi di dati - Modelli e linguaggi di interrogazione , McGraw-Hill, 2002.Basi di dati - Modelli e linguaggi di interrogazione , McGraw-Hill, 2002.
Modello relazionaleModello relazionale
Proposto da E. F. Codd nel 1970 per Proposto da E. F. Codd nel 1970 per favorire l’indipendenza dei dati favorire l’indipendenza dei dati
Disponibile in DBMS reali nel 1981 (non è Disponibile in DBMS reali nel 1981 (non è facile implementare l’indipendenza con facile implementare l’indipendenza con efficienza e affidabilità!)efficienza e affidabilità!)
33Tratto dal materiale associato al testo Atzeni, Ceri, Paraboschi, Torlone Tratto dal materiale associato al testo Atzeni, Ceri, Paraboschi, Torlone Basi di dati - Modelli e linguaggi di interrogazione , McGraw-Hill, 2002.Basi di dati - Modelli e linguaggi di interrogazione , McGraw-Hill, 2002.
Modello relazionaleModello relazionale
Basato sulla nozione matematica di Basato sulla nozione matematica di relazionerelazione
Le relazioni si traducono in maniera Le relazioni si traducono in maniera naturale in naturale in tabelletabelle
Dati e relazioni (riferimenti) tra dati di Dati e relazioni (riferimenti) tra dati di insiemi (tabelle) diversi sono rappresentati insiemi (tabelle) diversi sono rappresentati come come valorivalori
44Tratto dal materiale associato al testo Atzeni, Ceri, Paraboschi, Torlone Tratto dal materiale associato al testo Atzeni, Ceri, Paraboschi, Torlone Basi di dati - Modelli e linguaggi di interrogazione , McGraw-Hill, 2002.Basi di dati - Modelli e linguaggi di interrogazione , McGraw-Hill, 2002.
Relazione: tre accezioni Relazione: tre accezioni
relazione matematicarelazione matematica: come nella teoria : come nella teoria degli insiemidegli insiemirelazionerelazione (dall’inglese (dall’inglese relationshiprelationship) che ) che rappresenta una classe di fatti, nel rappresenta una classe di fatti, nel modello Entità-Relazioni (Entity-modello Entità-Relazioni (Entity-Relationship); tradotto anche con Relationship); tradotto anche con associazioneassociazionerelazionerelazione secondo il modello relazionale secondo il modello relazionale dei datidei dati
55Tratto dal materiale associato al testo Atzeni, Ceri, Paraboschi, Torlone Tratto dal materiale associato al testo Atzeni, Ceri, Paraboschi, Torlone Basi di dati - Modelli e linguaggi di interrogazione , McGraw-Hill, 2002.Basi di dati - Modelli e linguaggi di interrogazione , McGraw-Hill, 2002.
Definizioni 1Definizioni 1
DominioDominio: un insieme possibilmente infinito : un insieme possibilmente infinito di valori;di valori;
esempi:esempi: l’insieme dei numeri interi è un dominiol’insieme dei numeri interi è un dominio l’insieme dei numeri decimali è un dominiol’insieme dei numeri decimali è un dominio l’insieme delle stringhe di caratteri di l’insieme delle stringhe di caratteri di
lunghezza = 20 è un dominio lunghezza = 20 è un dominio {0,1} è un dominio{0,1} è un dominio
66Tratto dal materiale associato al testo Atzeni, Ceri, Paraboschi, Torlone Tratto dal materiale associato al testo Atzeni, Ceri, Paraboschi, Torlone Basi di dati - Modelli e linguaggi di interrogazione , McGraw-Hill, 2002.Basi di dati - Modelli e linguaggi di interrogazione , McGraw-Hill, 2002.
Definizioni 2Definizioni 2
Siano Siano D1,D2,.....DkD1,D2,.....Dk domini, non domini, non necessariamente distinti. Il prodotto necessariamente distinti. Il prodotto Cartesiano di tali domini, denotato daCartesiano di tali domini, denotato da
D1 D1 xx D2 D2 x..... xx..... x Dk Dk
è l’insiemeè l’insieme
{({(v1, v2, ....., vkv1, v2, ....., vk) | ) | v1v1D1D1, , v2v2 D2, ..... VkD2, ..... Vk DkDk}}
lista ordinata di valorilista ordinata di valori tale chetale che appartieneappartiene
77Tratto dal materiale associato al testo Atzeni, Ceri, Paraboschi, Torlone Tratto dal materiale associato al testo Atzeni, Ceri, Paraboschi, Torlone Basi di dati - Modelli e linguaggi di interrogazione , McGraw-Hill, 2002.Basi di dati - Modelli e linguaggi di interrogazione , McGraw-Hill, 2002.
Definizioni 3Definizioni 3Una Una relazione matematicarelazione matematica è un qualsiasi sottoinsieme è un qualsiasi sottoinsieme del prodotto Cartesiano di uno o più dominidel prodotto Cartesiano di uno o più domini
Una relazione che è sottoinsieme del prodotto Cartesiano Una relazione che è sottoinsieme del prodotto Cartesiano di k domini si dice di di k domini si dice di grado kgrado k
Gli elementi di una relazione sono detti Gli elementi di una relazione sono detti tupletuple (oppure n-(oppure n-uple oppure ennuple).uple oppure ennuple). Il numero di tuple di una relazione Il numero di tuple di una relazione è la suaè la sua cardinalità cardinalità
Ogni tupla di una relazione di grado k ha k componenti Ogni tupla di una relazione di grado k ha k componenti ordinate (l’i-esimo valore viene dall’i-esimo dominio) ma ordinate (l’i-esimo valore viene dall’i-esimo dominio) ma nonnon c’è ordinamento c’è ordinamento tra tra le tuplele tuple
Le tuple di una relazione sono tutte Le tuple di una relazione sono tutte distintedistinte
88Tratto dal materiale associato al testo Atzeni, Ceri, Paraboschi, Torlone Tratto dal materiale associato al testo Atzeni, Ceri, Paraboschi, Torlone Basi di dati - Modelli e linguaggi di interrogazione , McGraw-Hill, 2002.Basi di dati - Modelli e linguaggi di interrogazione , McGraw-Hill, 2002.
Definizioni - esempioDefinizioni - esempio
Supponiamo k = 2Supponiamo k = 2D1 = D1 = bianco, nerobianco, nero, D2 = , D2 = 0, 1, 20, 1, 2
D1 D1 D2 = D2 = (bianco, 0), (bianco, 1), (bianco, 2), (nero, (bianco, 0), (bianco, 1), (bianco, 2), (nero, 0), (nero, 1), (nero, 2)0), (nero, 1), (nero, 2)
(bianco, 0), (nero, 0), (nero, 2)(bianco, 0), (nero, 0), (nero, 2) è una relazione di grado è una relazione di grado 2, cardinalità 3 e con tuple (bianco, 0), (nero, 0), (nero, 2, cardinalità 3 e con tuple (bianco, 0), (nero, 0), (nero, 2)2)
(nero, 0), (nero, 2)(nero, 0), (nero, 2) è una relazione di grado 2, è una relazione di grado 2, cardinalità 2 e con tuple (nero, 0), (nero, 2)cardinalità 2 e con tuple (nero, 0), (nero, 2)
99Tratto dal materiale associato al testo Atzeni, Ceri, Paraboschi, Torlone Tratto dal materiale associato al testo Atzeni, Ceri, Paraboschi, Torlone Basi di dati - Modelli e linguaggi di interrogazione , McGraw-Hill, 2002.Basi di dati - Modelli e linguaggi di interrogazione , McGraw-Hill, 2002.
Relazione matematica - esempioRelazione matematica - esempio
una relazione r una relazione r D D1 1 × D× D22
aaab
bb
xyzxyz
aab
xzy
• D1={a,b}
• D2={x,y,z}
• prodotto cartesiano D1 × D2
1010Tratto dal materiale associato al testo Atzeni, Ceri, Paraboschi, Torlone Tratto dal materiale associato al testo Atzeni, Ceri, Paraboschi, Torlone Basi di dati - Modelli e linguaggi di interrogazione , McGraw-Hill, 2002.Basi di dati - Modelli e linguaggi di interrogazione , McGraw-Hill, 2002.
NotazioneNotazione
Se Se rr è una relazione di grado è una relazione di grado kkse se t t è una tupla di è una tupla di rrsese i i è un numero intero nell’isieme {1,...,k} è un numero intero nell’isieme {1,...,k}tt[[ii] (oppure t.i) indica la ] (oppure t.i) indica la ii-sima componente di -sima componente di ttesempio:esempio: se se rr = {(0,a), (0,c),(1,b)} = {(0,a), (0,c),(1,b)} t t = (0,a) è una tupla di = (0,a) è una tupla di rr tt[2] = a[2] = a tt[1] = 0[1] = 0 tt[1,2] = (0, a)[1,2] = (0, a)
00 aa
00 cc
11 bb
1111Tratto dal materiale associato al testo Atzeni, Ceri, Paraboschi, Torlone Tratto dal materiale associato al testo Atzeni, Ceri, Paraboschi, Torlone Basi di dati - Modelli e linguaggi di interrogazione , McGraw-Hill, 2002.Basi di dati - Modelli e linguaggi di interrogazione , McGraw-Hill, 2002.
Relazioni e tabelleRelazioni e tabelleUna relazione può essere vista come una tabella in cui ogni Una relazione può essere vista come una tabella in cui ogni riga è una tupla riga è una tupla differente da ogni altradifferente da ogni altra e ogni colonna e ogni colonna corrisponde ad una componente (valori corrisponde ad una componente (valori omogeneiomogenei, cioè , cioè provenienti dallo stesso dominio)provenienti dallo stesso dominio)
Le colonne hanno associati dei nomi Le colonne hanno associati dei nomi univociunivoci all’interno all’interno della tabella, detti della tabella, detti nomi degli attributinomi degli attributi (descrivono il ruolo)(descrivono il ruolo)
La coppia (nome di attributo, dominio) è chiamata La coppia (nome di attributo, dominio) è chiamata attributo. attributo. L’insieme di attributi di una relazione è detto L’insieme di attributi di una relazione è detto schemaschema
Se una relazione è denominata Se una relazione è denominata RR e i suoi attibuti hanno e i suoi attibuti hanno nomi nomi A1, A2,.....,Ak,A1, A2,.....,Ak, lo schema è spesso indicato da lo schema è spesso indicato da
RR((A1, A2,.....,AkA1, A2,.....,Ak))
1212Tratto dal materiale associato al testo Atzeni, Ceri, Paraboschi, Torlone Tratto dal materiale associato al testo Atzeni, Ceri, Paraboschi, Torlone Basi di dati - Modelli e linguaggi di interrogazione , McGraw-Hill, 2002.Basi di dati - Modelli e linguaggi di interrogazione , McGraw-Hill, 2002.
Schemi e istanzeSchemi e istanze
Schema di relazione: un nome di relazione R Schema di relazione: un nome di relazione R con un insieme di nomi di attributicon un insieme di nomi di attributi
RR((A1, A2,.....,AkA1, A2,.....,Ak))
Schema di base di dati: un insieme di schemi di Schema di base di dati: un insieme di schemi di relazione con nomi differentirelazione con nomi differenti
Istanza di una relazione con schema R(X): Istanza di una relazione con schema R(X): insieme r di tuple su Xinsieme r di tuple su X
1313Tratto dal materiale associato al testo Atzeni, Ceri, Paraboschi, Torlone Tratto dal materiale associato al testo Atzeni, Ceri, Paraboschi, Torlone Basi di dati - Modelli e linguaggi di interrogazione , McGraw-Hill, 2002.Basi di dati - Modelli e linguaggi di interrogazione , McGraw-Hill, 2002.
EsempioEsempio
Schema Schema Info_Città(Città,Regione,Popolazione) Info_Città(Città,Regione,Popolazione)
Istanza di relazione Info_CittàIstanza di relazione Info_Città
Città Regione Popolazione
Roma Lazio 3000000
Milano Lombardia 1500000
Genova Liguria 800000
Pisa Toscana 150000
1414Tratto dal materiale associato al testo Atzeni, Ceri, Paraboschi, Torlone Tratto dal materiale associato al testo Atzeni, Ceri, Paraboschi, Torlone Basi di dati - Modelli e linguaggi di interrogazione , McGraw-Hill, 2002.Basi di dati - Modelli e linguaggi di interrogazione , McGraw-Hill, 2002.
Relazioni e tabelleRelazioni e tabelle
Nell’ultima definizione di modello Nell’ultima definizione di modello relazionale, le componenti di una relazione relazionale, le componenti di una relazione sono indicate dai nomi degli attributi, sono indicate dai nomi degli attributi, anziché dalla posizioneanziché dalla posizione
tt[[AiAi] indica il valore dell’attributo con nome ] indica il valore dell’attributo con nome AiAi della tupla della tupla tt
Se t è la seconda tupla nell’esempio Se t è la seconda tupla nell’esempio precedente, allora t[Rgione] = Lombardiaprecedente, allora t[Rgione] = Lombardia
1515Tratto dal materiale associato al testo Atzeni, Ceri, Paraboschi, Torlone Tratto dal materiale associato al testo Atzeni, Ceri, Paraboschi, Torlone Basi di dati - Modelli e linguaggi di interrogazione , McGraw-Hill, 2002.Basi di dati - Modelli e linguaggi di interrogazione , McGraw-Hill, 2002.
Oggetto = tuplaOggetto = tupla
Campi = Informazioni di interesseCampi = Informazioni di interesse
Oggetto = “Membro dello Staff” Oggetto = “Membro dello Staff”
Informazioni di interesse = Codice, Informazioni di interesse = Codice, Cognome, Nome, Ruolo, Anno di Cognome, Nome, Ruolo, Anno di assunzioneassunzione
COD1COD1 RossiRossi MarioMario AnalistaAnalista 19951995CODICE COGNOME NOME RUOLO ASSUNZIONE
RicapitolandoRicapitolando
1616Tratto dal materiale associato al testo Atzeni, Ceri, Paraboschi, Torlone Tratto dal materiale associato al testo Atzeni, Ceri, Paraboschi, Torlone Basi di dati - Modelli e linguaggi di interrogazione , McGraw-Hill, 2002.Basi di dati - Modelli e linguaggi di interrogazione , McGraw-Hill, 2002.
Tabella = Insieme di tuple di tipo Tabella = Insieme di tuple di tipo omogeneoomogeneo
Tabella STAFF = Insieme di tuple di tipo Tabella STAFF = Insieme di tuple di tipo “Membro dello Staff”“Membro dello Staff”
COD1COD1 RossiRossi MarioMario AnalistaAnalista 19951995
COD2COD2 BianchiBianchi PietroPietro AnalistaAnalista 19901990
COD3COD3 NeriNeri PaoloPaolo AmministrAmministratoreatore
19851985
CODICE COGNOME NOME RUOLO ASSUNZIONE
1717Tratto dal materiale associato al testo Atzeni, Ceri, Paraboschi, Torlone Tratto dal materiale associato al testo Atzeni, Ceri, Paraboschi, Torlone Basi di dati - Modelli e linguaggi di interrogazione , McGraw-Hill, 2002.Basi di dati - Modelli e linguaggi di interrogazione , McGraw-Hill, 2002.
Il modello è basato su valoriIl modello è basato su valori
i riferimenti fra dati in relazioni diverse i riferimenti fra dati in relazioni diverse sono rappresentati per mezzo di valori dei sono rappresentati per mezzo di valori dei domini che compaiono nelle ennupledomini che compaiono nelle ennuple
1818Tratto dal materiale associato al testo Atzeni, Ceri, Paraboschi, Torlone Tratto dal materiale associato al testo Atzeni, Ceri, Paraboschi, Torlone Basi di dati - Modelli e linguaggi di interrogazione , McGraw-Hill, 2002.Basi di dati - Modelli e linguaggi di interrogazione , McGraw-Hill, 2002.
Matricola Cognome Nome Data di nascita6554 Rossi Mario 05/12/19788765 Neri Paolo 03/11/1976
3456 Rossi Maria 01/02/19789283 Verdi Luisa 12/11/1979
studenti
Codice Titolo Docente01 Analisi Mario02 Chimica Bruni04 Chimica Verdi
corsi
Studente Voto Corso3456 30 043456 24 029283 28 01
esami
6554 26 01
1919Tratto dal materiale associato al testo Atzeni, Ceri, Paraboschi, Torlone Tratto dal materiale associato al testo Atzeni, Ceri, Paraboschi, Torlone Basi di dati - Modelli e linguaggi di interrogazione , McGraw-Hill, 2002.Basi di dati - Modelli e linguaggi di interrogazione , McGraw-Hill, 2002.
Valori nulliValori nulli
Rappresentano mancanza di informazione Rappresentano mancanza di informazione o il fatto che l’informazione non è o il fatto che l’informazione non è applicabileapplicabilees. numero di telefono:es. numero di telefono: la persona non ha il telefonola persona non ha il telefono non so se la persona ha il telefononon so se la persona ha il telefono la persona ha il telefono ma non ne conosco il la persona ha il telefono ma non ne conosco il
numeronumero
Non possiamo non inserire il campo !Non possiamo non inserire il campo !
2020Tratto dal materiale associato al testo Atzeni, Ceri, Paraboschi, Torlone Tratto dal materiale associato al testo Atzeni, Ceri, Paraboschi, Torlone Basi di dati - Modelli e linguaggi di interrogazione , McGraw-Hill, 2002.Basi di dati - Modelli e linguaggi di interrogazione , McGraw-Hill, 2002.
NULLNULL
Cattiva abitudine: usare valori del dominio “inutilizzati”Cattiva abitudine: usare valori del dominio “inutilizzati” Potrebbero non esisterePotrebbero non esistere Potrebbero essere utilizzati in seguitoPotrebbero essere utilizzati in seguito Potrebbero falsare i calcoli (non conosco lo stipendio Potrebbero falsare i calcoli (non conosco lo stipendio
di un impiegato, ma uno 0 pesa in un calcolo del di un impiegato, ma uno 0 pesa in un calcolo del valore medio come un qualsiasi altro numero)valore medio come un qualsiasi altro numero)
Valore speciale: NULLValore speciale: NULLNULL: valore NULL: valore polimorfopolimorfo = non appartiene a nessun = non appartiene a nessun dominio ma può sostituire valori in qualsiasi dominio dominio ma può sostituire valori in qualsiasi dominio Due valori NULL, anche se sullo stesso dominio, sono Due valori NULL, anche se sullo stesso dominio, sono considerati considerati diversidiversiAttenzioneAttenzione! NULL ! NULL non ènon è 0 (numero intero) 0 (numero intero)
2121Tratto dal materiale associato al testo Atzeni, Ceri, Paraboschi, Torlone Tratto dal materiale associato al testo Atzeni, Ceri, Paraboschi, Torlone Basi di dati - Modelli e linguaggi di interrogazione , McGraw-Hill, 2002.Basi di dati - Modelli e linguaggi di interrogazione , McGraw-Hill, 2002.
Matricola Cognome Nome Data di nascita6554 Rossi Mario 05/12/1978
NULL Rossi Maria 01/02/19789283 Verdi Luisa 12/11/1979
studenti
Codice Titolo Docente01 Analisi Mario02 NULL NULL04 Chimica Verdi
corsi
Studente Voto CorsoNULL 30 NULLNULL 24 029283 28 01
esami
Troppi valori nulliTroppi valori nulli
2222Tratto dal materiale associato al testo Atzeni, Ceri, Paraboschi, Torlone Tratto dal materiale associato al testo Atzeni, Ceri, Paraboschi, Torlone Basi di dati - Modelli e linguaggi di interrogazione , McGraw-Hill, 2002.Basi di dati - Modelli e linguaggi di interrogazione , McGraw-Hill, 2002.
Una base di dati “scorretta”Una base di dati “scorretta”
COD1COD1 RossiRossi MarioMario AnalistaAnalista 17951795 0101
COD2COD2 BianchiBianchi PietroPietro AnalistaAnalista 19901990 0505
COD2COD2 NeriNeri PaoloPaolo AmministrAmministratoreatore
19851985 0101
CODICE COGNOME NOME RUOLO ASSUNZIONE DIP
0101 ProgettazioneProgettazione
0202 AmministrazioneAmministrazione
NUMERO NOME
Cosa c’è che non va ???Cosa c’è che non va ???Sintatticamente è corretto …Sintatticamente è corretto …
IMPIEGATOIMPIEGATO
DIPARTIMENTODIPARTIMENTO
2323Tratto dal materiale associato al testo Atzeni, Ceri, Paraboschi, Torlone Tratto dal materiale associato al testo Atzeni, Ceri, Paraboschi, Torlone Basi di dati - Modelli e linguaggi di interrogazione , McGraw-Hill, 2002.Basi di dati - Modelli e linguaggi di interrogazione , McGraw-Hill, 2002.
Una base di dati "scorretta"Una base di dati "scorretta"Studente Voto Lode Corso
32 01276545276545 30 si 02787643 27 si 03739430 15 04
Esami
Matricola276545787643787643
CognomeRossiNeri
Bianchi
NomeMarioPieroLuca
Studenti
787643787643
32
27
2424Tratto dal materiale associato al testo Atzeni, Ceri, Paraboschi, Torlone Tratto dal materiale associato al testo Atzeni, Ceri, Paraboschi, Torlone Basi di dati - Modelli e linguaggi di interrogazione , McGraw-Hill, 2002.Basi di dati - Modelli e linguaggi di interrogazione , McGraw-Hill, 2002.
Vincoli di integritàVincoli di integritàVincolo di integritàVincolo di integrità: proprietà che deve essere : proprietà che deve essere soddisfatta da ogni istanza della base di dati soddisfatta da ogni istanza della base di dati ((legata quindi allo schemalegata quindi allo schema))
I vincoli descrivono I vincoli descrivono proprietàproprietà specifiche del specifiche del campo di applicazione, e quindi delle campo di applicazione, e quindi delle informazioni ad esso relative modellate informazioni ad esso relative modellate attraverso la base di datiattraverso la base di dati
Una istanza di base di dati è Una istanza di base di dati è correttacorretta se se soddisfa tutti i vincoli di integrità associati al soddisfa tutti i vincoli di integrità associati al suo schemasuo schema
2525Tratto dal materiale associato al testo Atzeni, Ceri, Paraboschi, Torlone Tratto dal materiale associato al testo Atzeni, Ceri, Paraboschi, Torlone Basi di dati - Modelli e linguaggi di interrogazione , McGraw-Hill, 2002.Basi di dati - Modelli e linguaggi di interrogazione , McGraw-Hill, 2002.
Come evitare le “scorrettezze”Come evitare le “scorrettezze”
COD1COD1 RossiRossi MarioMario AnalistaAnalista 17951795 0101
COD2COD2 BianchiBianchi PietroPietro AnalistaAnalista 19901990 0505
COD2COD2 NeriNeri PaoloPaolo AmministrAmministratoreatore
19851985 0101
CODICE COGNOME NOME RUOLO ASSUNZIONE DIP
0101 ProgettazioneProgettazione
0202 AmministrazioneAmministrazione
NUMERO NOME (ASSUNZIONE > 1980)(ASSUNZIONE > 1980)
COD2 UNIQUECOD2 UNIQUE
DIP REFERENCES DIPARTIMENTO.NUMERODIP REFERENCES DIPARTIMENTO.NUMERO
IMPIEGATOIMPIEGATO
DIPARTIMENTODIPARTIMENTO
2626Tratto dal materiale associato al testo Atzeni, Ceri, Paraboschi, Torlone Tratto dal materiale associato al testo Atzeni, Ceri, Paraboschi, Torlone Basi di dati - Modelli e linguaggi di interrogazione , McGraw-Hill, 2002.Basi di dati - Modelli e linguaggi di interrogazione , McGraw-Hill, 2002.
Studente Voto Lode Corso32 01276545
276545 30 si 02787643 27 si 03739430 24 04
Esami
Matricola276545787643787643
CognomeRossiNeri
Bianchi
NomeMarioPieroLuca
Studenti
787643787643
32
27
Come evitare le “scorrettezze”Come evitare le “scorrettezze”
(Voto 18) AND (Voto 30)
(Voto = 30) OR NOT (Lode = „si")
Matricola unique
Studente references Studenti.Matricola
2727Tratto dal materiale associato al testo Atzeni, Ceri, Paraboschi, Torlone Tratto dal materiale associato al testo Atzeni, Ceri, Paraboschi, Torlone Basi di dati - Modelli e linguaggi di interrogazione , McGraw-Hill, 2002.Basi di dati - Modelli e linguaggi di interrogazione , McGraw-Hill, 2002.
Vincoli di integritàVincoli di integritàVincoli di dominioVincoli di dominio ASSUNZIONE > 1980ASSUNZIONE > 1980 (Voto (Voto 18) AND (Voto 18) AND (Voto 30) 30)
Vincoli di tuplaVincoli di tupla (Voto = 30) OR NOT (Lode = „si")(Voto = 30) OR NOT (Lode = „si")
Vincoli tra tuple della stessa relazioneVincoli tra tuple della stessa relazione COD2 UNIQUECOD2 UNIQUE Matricola uniqueMatricola unique
Vincoli tra valori in tuple di relazioni diverseVincoli tra valori in tuple di relazioni diverse DIP REFERENCES DIPARTIMENTO.NUMERODIP REFERENCES DIPARTIMENTO.NUMERO Studente references Studenti.MatricolaStudente references Studenti.Matricola
2828Tratto dal materiale associato al testo Atzeni, Ceri, Paraboschi, Torlone Tratto dal materiale associato al testo Atzeni, Ceri, Paraboschi, Torlone Basi di dati - Modelli e linguaggi di interrogazione , McGraw-Hill, 2002.Basi di dati - Modelli e linguaggi di interrogazione , McGraw-Hill, 2002.
Vincoli di integritàVincoli di integrità
Vincoli intrarelazionali: definiti sui valori di Vincoli intrarelazionali: definiti sui valori di singoli attributi (di dominio) o tra valori di singoli attributi (di dominio) o tra valori di attributi di una stessa tupla o tra tuple della attributi di una stessa tupla o tra tuple della stessa relazionestessa relazione
Vincoli interrelazionali: definiti tra più relazioniVincoli interrelazionali: definiti tra più relazioni
Non tutte le proprietà di interesse possono Non tutte le proprietà di interesse possono essere rappresentate tramite vincoli esplicitiessere rappresentate tramite vincoli espliciti
2929Tratto dal materiale associato al testo Atzeni, Ceri, Paraboschi, Torlone Tratto dal materiale associato al testo Atzeni, Ceri, Paraboschi, Torlone Basi di dati - Modelli e linguaggi di interrogazione , McGraw-Hill, 2002.Basi di dati - Modelli e linguaggi di interrogazione , McGraw-Hill, 2002.
Vincoli intrarelazionaliVincoli intrarelazionali
Vincolo di chiave primaria (primary key): unica e Vincolo di chiave primaria (primary key): unica e mai nullamai nulla
Vincoli di dominio (es. ASSUNZIONE > 1980)Vincoli di dominio (es. ASSUNZIONE > 1980)
Vincoli di unicità (unique)Vincoli di unicità (unique)
Vincoli di esistenza del valore per un certo Vincoli di esistenza del valore per un certo attributo (not null)attributo (not null)
Espressioni sul valore di attributi della stessa Espressioni sul valore di attributi della stessa tupla (es. data_arrivo < data_partenza) se arrivo tupla (es. data_arrivo < data_partenza) se arrivo e partenza ad esempio da un albergoe partenza ad esempio da un albergo
3030Tratto dal materiale associato al testo Atzeni, Ceri, Paraboschi, Torlone Tratto dal materiale associato al testo Atzeni, Ceri, Paraboschi, Torlone Basi di dati - Modelli e linguaggi di interrogazione , McGraw-Hill, 2002.Basi di dati - Modelli e linguaggi di interrogazione , McGraw-Hill, 2002.
Chiavi 1Chiavi 1
Occorre identificare univocamente le tuple Occorre identificare univocamente le tuple di una istanza di relazionedi una istanza di relazione
La La chiavechiave di una relazione è un attributo o di una relazione è un attributo o insieme di attributi che identifica insieme di attributi che identifica univocamente una tuplaunivocamente una tupla
3131Tratto dal materiale associato al testo Atzeni, Ceri, Paraboschi, Torlone Tratto dal materiale associato al testo Atzeni, Ceri, Paraboschi, Torlone Basi di dati - Modelli e linguaggi di interrogazione , McGraw-Hill, 2002.Basi di dati - Modelli e linguaggi di interrogazione , McGraw-Hill, 2002.
Chiavi 2Chiavi 2
Un insieme X di attributi di una relazione R è Un insieme X di attributi di una relazione R è una una chiavechiave di R se soddisfa le seguenti di R se soddisfa le seguenti condizioni:condizioni:
1) 1) Per Per ogni istanzaogni istanza di R, non esistono due tuple di R, non esistono due tuple distinte t1 e t2 che hanno gli stessi valori per tutti distinte t1 e t2 che hanno gli stessi valori per tutti gli attributi in X, tali cioè che t1[X] = t2[X]gli attributi in X, tali cioè che t1[X] = t2[X]
2) Nessun sottoinsieme 2) Nessun sottoinsieme proprioproprio di X soddisfa la di X soddisfa la condizione 1)condizione 1)
3232Tratto dal materiale associato al testo Atzeni, Ceri, Paraboschi, Torlone Tratto dal materiale associato al testo Atzeni, Ceri, Paraboschi, Torlone Basi di dati - Modelli e linguaggi di interrogazione , McGraw-Hill, 2002.Basi di dati - Modelli e linguaggi di interrogazione , McGraw-Hill, 2002.
EsempioEsempio
Istanza di relazione StaffIstanza di relazione Staff
Chiave? Chiave?
COD1COD1 RossiRossi MarioMario AnalistaAnalista 19951995
COD2COD2 BianchiBianchi PietroPietro AnalistaAnalista 19901990
COD3COD3 NeriNeri PaoloPaolo AmministrAmministratoreatore
19851985
CODICE COGNOME NOME RUOLO ASSUNZIONE
3333Tratto dal materiale associato al testo Atzeni, Ceri, Paraboschi, Torlone Tratto dal materiale associato al testo Atzeni, Ceri, Paraboschi, Torlone Basi di dati - Modelli e linguaggi di interrogazione , McGraw-Hill, 2002.Basi di dati - Modelli e linguaggi di interrogazione , McGraw-Hill, 2002.
EsempioEsempio
Istanza di relazione Info_CittàIstanza di relazione Info_Città
Città Regione Popolazione
Roma Lazio 3000000
Milano Lombardia 1500000
Genova Liguria 800000
Pisa Toscana 150000
Chiave? Dipende …Chiave? Dipende …
3434Tratto dal materiale associato al testo Atzeni, Ceri, Paraboschi, Torlone Tratto dal materiale associato al testo Atzeni, Ceri, Paraboschi, Torlone Basi di dati - Modelli e linguaggi di interrogazione , McGraw-Hill, 2002.Basi di dati - Modelli e linguaggi di interrogazione , McGraw-Hill, 2002.
Chiavi 3Chiavi 3
Una relazione potrebbe avere più chiavi Una relazione potrebbe avere più chiavi alternativealternative
Si sceglie quella più usata o quella composta Si sceglie quella più usata o quella composta da un numero minore di attributi = chiave da un numero minore di attributi = chiave primariaprimaria
La chiave primaria La chiave primaria non ammette valori nullinon ammette valori nulli
Esiste sempre Esiste sempre almenoalmeno una chiave … perché ? una chiave … perché ?
Sono le chiavi che consentono di mettere in Sono le chiavi che consentono di mettere in relazione dati in tabelle diverserelazione dati in tabelle diverse
3535Tratto dal materiale associato al testo Atzeni, Ceri, Paraboschi, Torlone Tratto dal materiale associato al testo Atzeni, Ceri, Paraboschi, Torlone Basi di dati - Modelli e linguaggi di interrogazione , McGraw-Hill, 2002.Basi di dati - Modelli e linguaggi di interrogazione , McGraw-Hill, 2002.
EsempioEsempio
Istanza di relazione StaffIstanza di relazione Staff
- Chiavi? - Chiavi?
RSI…RSI… COD1COD1 RossiRossi MarioMario AnalistaAnalista 19951995
BA…BA… COD2COD2 BianchiBianchi PietroPietro AnalistaAnalista 19901990
NRI…NRI… COD3COD3 NeriNeri PaoloPaolo AmministrAmministratoreatore
19851985
CODICE COGNOME NOME RUOLO ASSUNZIONECF
- Secondo la definizione, è possibile che - Secondo la definizione, è possibile che (Cognome, Ruolo) sia una chiave ?(Cognome, Ruolo) sia una chiave ?
3636Tratto dal materiale associato al testo Atzeni, Ceri, Paraboschi, Torlone Tratto dal materiale associato al testo Atzeni, Ceri, Paraboschi, Torlone Basi di dati - Modelli e linguaggi di interrogazione , McGraw-Hill, 2002.Basi di dati - Modelli e linguaggi di interrogazione , McGraw-Hill, 2002.
Vincoli interrelazionaliVincoli interrelazionali
Vincolo di integrità referenziale (foreign key): Vincolo di integrità referenziale (foreign key): porzioni di informazione in relazioni diverse sono porzioni di informazione in relazioni diverse sono correlate attraverso valori di chiavecorrelate attraverso valori di chiaveSe una relazione fa riferimento al valore di un Se una relazione fa riferimento al valore di un attributo o di un insieme di attributi che dovrebbe attributo o di un insieme di attributi che dovrebbe comparire in una seconda relazione, dobbiamo comparire in una seconda relazione, dobbiamo assicurarci che ciò avvenga realmenteassicurarci che ciò avvenga realmenteUn vincolo di integrità referenziale fra gli attributi Un vincolo di integrità referenziale fra gli attributi X di una relazione RX di una relazione R1 1 e un’altra relazione R e un’altra relazione R22 impone ai valori su X in Rimpone ai valori su X in R11 di comparire come di comparire come valori della chiave primaria di Rvalori della chiave primaria di R22
3737Tratto dal materiale associato al testo Atzeni, Ceri, Paraboschi, Torlone Tratto dal materiale associato al testo Atzeni, Ceri, Paraboschi, Torlone Basi di dati - Modelli e linguaggi di interrogazione , McGraw-Hill, 2002.Basi di dati - Modelli e linguaggi di interrogazione , McGraw-Hill, 2002.
Matricola
3987
3295
9345
Vigili Cognome
Rossi
Neri
Neri
Nome
Luca
Piero
Mario
Mori Gino7543
InfrazioniCodice
34321
73321
64521
53524
Data
1/2/95
4/3/95
5/4/96
5/2/98
Vigile
3987
3295
3295
9345
Prov Numero
MI
TO
PR
PR
39548K
E39548
839548
839548
3295
3295
3987
3987
9345
3987
9345
9345
3295
3295
3295
3838Tratto dal materiale associato al testo Atzeni, Ceri, Paraboschi, Torlone Tratto dal materiale associato al testo Atzeni, Ceri, Paraboschi, Torlone Basi di dati - Modelli e linguaggi di interrogazione , McGraw-Hill, 2002.Basi di dati - Modelli e linguaggi di interrogazione , McGraw-Hill, 2002.
Auto Prov Numero
MI
TO
PR
39548K
E39548
839548
Cognome
Rossi
Rossi
Neri
Nome
Mario
Mario
Luca
InfrazioniCodice
34321
73321
64521
53524
Data
1/2/95
4/3/95
5/4/96
5/2/98
Vigile
3987
3295
3295
9345
Prov Numero
MI
TO
PR
PR
39548K
E39548
839548
839548
MI
TO
PR
PR
39548K
E39548
839548
839548
MI
TO
PR
39548K
E39548
839548
3939Tratto dal materiale associato al testo Atzeni, Ceri, Paraboschi, Torlone Tratto dal materiale associato al testo Atzeni, Ceri, Paraboschi, Torlone Basi di dati - Modelli e linguaggi di interrogazione , McGraw-Hill, 2002.Basi di dati - Modelli e linguaggi di interrogazione , McGraw-Hill, 2002.
vincoli di integrità referenziale fra: vincoli di integrità referenziale fra: l’attributo Vigile della relazione INFRAZIONI e l’attributo Vigile della relazione INFRAZIONI e
l‘attributo Matricola (chiave) della relazione l‘attributo Matricola (chiave) della relazione VIGILI VIGILI
gli attributi Prov e Numero di INFRAZIONI e gli attributi Prov e Numero di INFRAZIONI e gli attributi Prov e Numero (chiave) della gli attributi Prov e Numero (chiave) della relazione AUTO relazione AUTO
4040Tratto dal materiale associato al testo Atzeni, Ceri, Paraboschi, Torlone Tratto dal materiale associato al testo Atzeni, Ceri, Paraboschi, Torlone Basi di dati - Modelli e linguaggi di interrogazione , McGraw-Hill, 2002.Basi di dati - Modelli e linguaggi di interrogazione , McGraw-Hill, 2002.
InfrazioniCodice34321
733216452153524
Data1/2/954/3/955/4/965/2/98
Vigile3987329532959345
Prov NumeroMITOPRPR
39548KE39548839548839548
Auto Prov NumeroMITOPR
E39548F34268839548
CognomeRossiRossiNeri
NomeMarioMarioLuca
TO E39548
TOE39548
Violazione di vincolo di integrità referenziale
ATTENZIONE AI VINCOLI SU PIU’ ATTRIBUTIATTENZIONE AI VINCOLI SU PIU’ ATTRIBUTI
4141Tratto dal materiale associato al testo Atzeni, Ceri, Paraboschi, Torlone Tratto dal materiale associato al testo Atzeni, Ceri, Paraboschi, Torlone Basi di dati - Modelli e linguaggi di interrogazione , McGraw-Hill, 2002.Basi di dati - Modelli e linguaggi di interrogazione , McGraw-Hill, 2002.
Vincoli di integrità referenziale: Vincoli di integrità referenziale: commenticommenti
Giocano un ruolo fondamentale nel Giocano un ruolo fondamentale nel concetto di “modello basato su valori” concetto di “modello basato su valori”
In presenza di valori nulli i vincoli possono In presenza di valori nulli i vincoli possono essere resi meno restrittiviessere resi meno restrittivi
E‘ possibile definire „azioni" compensative E‘ possibile definire „azioni" compensative a seguito di violazionia seguito di violazioni
Attenzione ai vincoli su più attributiAttenzione ai vincoli su più attributi
4242Tratto dal materiale associato al testo Atzeni, Ceri, Paraboschi, Torlone Tratto dal materiale associato al testo Atzeni, Ceri, Paraboschi, Torlone Basi di dati - Modelli e linguaggi di interrogazione , McGraw-Hill, 2002.Basi di dati - Modelli e linguaggi di interrogazione , McGraw-Hill, 2002.
Integrità Integrità referenziale e valori referenziale e valori nullinulli
Impiegati Matricola34321
6452153524
CognomeRossiNeriVerdi
ProgettoIDEAXYZNULL
Progetti CodiceIDEA
BOHXYZ
Inizio01/200007/200109/2001
Durata362424
Costo200120150
73032 Bianchi IDEA
4343Tratto dal materiale associato al testo Atzeni, Ceri, Paraboschi, Torlone Tratto dal materiale associato al testo Atzeni, Ceri, Paraboschi, Torlone Basi di dati - Modelli e linguaggi di interrogazione , McGraw-Hill, 2002.Basi di dati - Modelli e linguaggi di interrogazione , McGraw-Hill, 2002.
Azioni compensativeAzioni compensative
Esempio:Esempio: Viene eliminata una ennupla causando una Viene eliminata una ennupla causando una
violazioneviolazione
Comportamento “standard”:Comportamento “standard”: Rifiuto dell'operazioneRifiuto dell'operazione
Azioni compensative:Azioni compensative: Eliminazione in cascataEliminazione in cascata Introduzione di valori nulliIntroduzione di valori nulli
4444Tratto dal materiale associato al testo Atzeni, Ceri, Paraboschi, Torlone Tratto dal materiale associato al testo Atzeni, Ceri, Paraboschi, Torlone Basi di dati - Modelli e linguaggi di interrogazione , McGraw-Hill, 2002.Basi di dati - Modelli e linguaggi di interrogazione , McGraw-Hill, 2002.
Eliminazione in cascataEliminazione in cascataImpiegati Matricola
34321
6452153524
CognomeRossiNeriVerdi
ProgettoIDEAXYZNULL
73032 Bianchi IDEA
Progetti CodiceIDEA
BOHXYZ
Inizio01/200007/200109/2001
Durata362424
Costo200120150
XYZ 07/2001 24 120XYZ 07/2001 24 120XYZ 07/2001 24 120
53524 Neri XYZ
4545Tratto dal materiale associato al testo Atzeni, Ceri, Paraboschi, Torlone Tratto dal materiale associato al testo Atzeni, Ceri, Paraboschi, Torlone Basi di dati - Modelli e linguaggi di interrogazione , McGraw-Hill, 2002.Basi di dati - Modelli e linguaggi di interrogazione , McGraw-Hill, 2002.
Introduzione diIntroduzione di valori nulli valori nulliImpiegati Matricola
34321
6452153524
CognomeRossiNeriVerdi
ProgettoIDEAXYZNULL
73032 Bianchi IDEA
Progetti CodiceIDEA
BOHXYZ
Inizio01/200007/200109/2001
Durata362424
Costo200120150
XYZ 07/2001 24 120XYZ 07/2001 24 120XYZ 07/2001 24 120
NULL
4646Tratto dal materiale associato al testo Atzeni, Ceri, Paraboschi, Torlone Tratto dal materiale associato al testo Atzeni, Ceri, Paraboschi, Torlone Basi di dati - Modelli e linguaggi di interrogazione , McGraw-Hill, 2002.Basi di dati - Modelli e linguaggi di interrogazione , McGraw-Hill, 2002.
Auto Prov Numero
MI
TO
PR
39548K
E39548
839548
Cognome
Rossi
Rossi
Neri
Nome
Mario
Mario
Luca
IncidentiCodice
34321
64521
Data
1/2/95
5/4/96
ProvB NumeroB
MI
TO
39548K
E39548
ProvA NumeroA
TO
PR
E39548
839548
Vincoli multipli su Vincoli multipli su più attributipiù attributi
4747Tratto dal materiale associato al testo Atzeni, Ceri, Paraboschi, Torlone Tratto dal materiale associato al testo Atzeni, Ceri, Paraboschi, Torlone Basi di dati - Modelli e linguaggi di interrogazione , McGraw-Hill, 2002.Basi di dati - Modelli e linguaggi di interrogazione , McGraw-Hill, 2002.
Vincoli multipli su più attributiVincoli multipli su più attributi
vincoli di integrità referenziale fra: vincoli di integrità referenziale fra: gli attributi ProvA e NumeroA di INCIDENTI e gli attributi ProvA e NumeroA di INCIDENTI e
gli attributi Prov e Numero della relazione gli attributi Prov e Numero della relazione AUTO AUTO
gli attributi ProvB e NumeroB di INCIDENTI e gli attributi ProvB e NumeroB di INCIDENTI e gli attributi Prov e Numero della relazione gli attributi Prov e Numero della relazione AUTO AUTO
L'ordine degli attributi è significativoL'ordine degli attributi è significativo