Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, 1996-2002 Capitolo 4:SQL 16/10/2002.
Introduzione alle Basi di Dati. Materiale Teoria: bastano le slide – In alternativa: Paolo Atzeni,...
-
Upload
simonetta-masi -
Category
Documents
-
view
221 -
download
0
Transcript of Introduzione alle Basi di Dati. Materiale Teoria: bastano le slide – In alternativa: Paolo Atzeni,...
![Page 1: Introduzione alle Basi di Dati. Materiale Teoria: bastano le slide – In alternativa: Paolo Atzeni, Stefano Ceri, Stefano Paraboschi, Riccardo Torlone.](https://reader035.fdocument.pub/reader035/viewer/2022062300/5542eb68497959361e8d3d13/html5/thumbnails/1.jpg)
Introduzionealle Basi di Dati
![Page 2: Introduzione alle Basi di Dati. Materiale Teoria: bastano le slide – In alternativa: Paolo Atzeni, Stefano Ceri, Stefano Paraboschi, Riccardo Torlone.](https://reader035.fdocument.pub/reader035/viewer/2022062300/5542eb68497959361e8d3d13/html5/thumbnails/2.jpg)
Materiale
• Teoria: bastano le slide– In alternativa:
• Paolo Atzeni, Stefano Ceri, Stefano Paraboschi, Riccardo Torlone Basi di dati: Modelli e linguaggi di interrogazione
• Esercizi: bastano le slide– Se vi servono altri esercizi
• Braga Brambilla Campi Eserciziario basi di datiEditrice Esculapio
![Page 3: Introduzione alle Basi di Dati. Materiale Teoria: bastano le slide – In alternativa: Paolo Atzeni, Stefano Ceri, Stefano Paraboschi, Riccardo Torlone.](https://reader035.fdocument.pub/reader035/viewer/2022062300/5542eb68497959361e8d3d13/html5/thumbnails/3.jpg)
Dal dato all’informazioneDal dato all’informazione
Dato:Dato:
unità elementare (grezza) di unità elementare (grezza) di
informazioneinformazione
Informazione:
elaborazione dei dati per rispondere elaborazione dei dati per rispondere
a esigenze specifiche dell'impresaa esigenze specifiche dell'impresa
![Page 4: Introduzione alle Basi di Dati. Materiale Teoria: bastano le slide – In alternativa: Paolo Atzeni, Stefano Ceri, Stefano Paraboschi, Riccardo Torlone.](https://reader035.fdocument.pub/reader035/viewer/2022062300/5542eb68497959361e8d3d13/html5/thumbnails/4.jpg)
Dal dato all’informazione
• Dato: <Stefano Ceri, Basi di dati, IIIA, I Sem>• Informazione:
– Chi insegna basi di dati? Stefano Ceri– Quando si tiene il corso? Al I semestre del III anno.
![Page 5: Introduzione alle Basi di Dati. Materiale Teoria: bastano le slide – In alternativa: Paolo Atzeni, Stefano Ceri, Stefano Paraboschi, Riccardo Torlone.](https://reader035.fdocument.pub/reader035/viewer/2022062300/5542eb68497959361e8d3d13/html5/thumbnails/5.jpg)
BASE DI DATI E FILE SYSTEM A CONFRONTO
PROGRAMMAAPPLICATIVO
PROGRAMMAAPPLICATIVO
FILE SYSTEM
DATI
DATI
DATI
DATI
DATI
DATI
PROGRAMMAAPPLICATIVO
PROGRAMMAAPPLICATIVO
DATI
PROGRAMMAAPPLICATIVO
PROGRAMMAAPPLICATIVO
PROGRAMMAAPPLICATIVO
PROGRAMMAAPPLICATIVO
PROGRAMMAAPPLICATIVO
PROGRAMMAAPPLICATIVO
PROGRAMMAAPPLICATIVO
PROGRAMMAAPPLICATIVO
DBMS
![Page 6: Introduzione alle Basi di Dati. Materiale Teoria: bastano le slide – In alternativa: Paolo Atzeni, Stefano Ceri, Stefano Paraboschi, Riccardo Torlone.](https://reader035.fdocument.pub/reader035/viewer/2022062300/5542eb68497959361e8d3d13/html5/thumbnails/6.jpg)
Principali caratteristiche dei DBMSPrincipali caratteristiche dei DBMS • condivisione dei daticondivisione dei dati - assenza di replicazione nei file- assenza di replicazione nei file - concorrenza- concorrenza• qualità dei datiqualità dei dati - vincoli di integrità- vincoli di integrità• efficienzaefficienza - caricamento, query, sort- caricamento, query, sort
• controllo dell'accessocontrollo dell'accesso - privatezza- privatezza
• robustezzarobustezza
![Page 7: Introduzione alle Basi di Dati. Materiale Teoria: bastano le slide – In alternativa: Paolo Atzeni, Stefano Ceri, Stefano Paraboschi, Riccardo Torlone.](https://reader035.fdocument.pub/reader035/viewer/2022062300/5542eb68497959361e8d3d13/html5/thumbnails/7.jpg)
INTEGRAZIONE DEI DATIOGNI DATO, A PRESCINDERE DALLE APPLICAZIONI DALLE QUALI VENGA UTILIZZATO, COMPARE UNA SOLA VOLTA
– ELIMINA INUTILI RIDONDANZE E SPRECHI DI MEMORIA– MIGLIORA LA CONSISTENZA DEI DATI (non è infatti
possibile che lo stesso dato abbia contemporaneamente due valori diversi)
![Page 8: Introduzione alle Basi di Dati. Materiale Teoria: bastano le slide – In alternativa: Paolo Atzeni, Stefano Ceri, Stefano Paraboschi, Riccardo Torlone.](https://reader035.fdocument.pub/reader035/viewer/2022062300/5542eb68497959361e8d3d13/html5/thumbnails/8.jpg)
Come si usa un DBMS ?Come si usa un DBMS ? aa definendo la struttura generale definendo la struttura generale dei datidei dati
bb definendo le specifiche definendo le specifiche operazioni sui datioperazioni sui dati
STRUTTURA DEI DATI SUI CONTI CORRENTISTRUTTURA DEI DATI SUI CONTI CORRENTI
conto corrente di Giorgio Rossiconto corrente di Giorgio Rossiconto corrente di Paolo Bianchiconto corrente di Paolo Bianchi………………………………………………………………………………..
schemaschema
istanzaistanza
![Page 9: Introduzione alle Basi di Dati. Materiale Teoria: bastano le slide – In alternativa: Paolo Atzeni, Stefano Ceri, Stefano Paraboschi, Riccardo Torlone.](https://reader035.fdocument.pub/reader035/viewer/2022062300/5542eb68497959361e8d3d13/html5/thumbnails/9.jpg)
Esempio : Esempio : studenti universitaristudenti universitari
studentestudente
MATRMATR
123123
415415
702702
NOMENOME
CarloCarlo
PaolaPaola
AntonioAntonio
CITTA’CITTA’
BolognaBologna
TorinoTorino
RomaRoma
C-DIPC-DIP
InfInf
InfInf
LogLog
![Page 10: Introduzione alle Basi di Dati. Materiale Teoria: bastano le slide – In alternativa: Paolo Atzeni, Stefano Ceri, Stefano Paraboschi, Riccardo Torlone.](https://reader035.fdocument.pub/reader035/viewer/2022062300/5542eb68497959361e8d3d13/html5/thumbnails/10.jpg)
I linguaggi del DBMSI linguaggi del DBMS
DATA DEFINITION LANGUAGE (DDL)DATA DEFINITION LANGUAGE (DDL) es: CREATE, DROP, ALTERes: CREATE, DROP, ALTER
DATA MANIPULATION LANGUAGE (DML)DATA MANIPULATION LANGUAGE (DML) es: SELECT, INSERT, UPDATE, DELETEes: SELECT, INSERT, UPDATE, DELETE
![Page 11: Introduzione alle Basi di Dati. Materiale Teoria: bastano le slide – In alternativa: Paolo Atzeni, Stefano Ceri, Stefano Paraboschi, Riccardo Torlone.](https://reader035.fdocument.pub/reader035/viewer/2022062300/5542eb68497959361e8d3d13/html5/thumbnails/11.jpg)
DML: Query Language
select *from Studentewhere Città = ’Bologna’
MatrMatr
123123
NomeNome
CarloCarlo
CittàCittà
BolognaBologna
CDipCDip
InfInf
![Page 12: Introduzione alle Basi di Dati. Materiale Teoria: bastano le slide – In alternativa: Paolo Atzeni, Stefano Ceri, Stefano Paraboschi, Riccardo Torlone.](https://reader035.fdocument.pub/reader035/viewer/2022062300/5542eb68497959361e8d3d13/html5/thumbnails/12.jpg)
Il modello relazionale
![Page 13: Introduzione alle Basi di Dati. Materiale Teoria: bastano le slide – In alternativa: Paolo Atzeni, Stefano Ceri, Stefano Paraboschi, Riccardo Torlone.](https://reader035.fdocument.pub/reader035/viewer/2022062300/5542eb68497959361e8d3d13/html5/thumbnails/13.jpg)
MODELLI DEI DATII MODELLI COSTITUISCONO UNA STRUTTURAZIONE SEMPLIFICATA DELLA REALTA’ CHE NE ACCOGLIE ASPETTI SPECIFICI E AIUTA A COMPRENDERLA MEGLIO
MONDO REALE
MODELLO CONCETTUALE
MODELLI LOGICI
GERARCHICO
RETICOLARE
RELAZIONALE
![Page 14: Introduzione alle Basi di Dati. Materiale Teoria: bastano le slide – In alternativa: Paolo Atzeni, Stefano Ceri, Stefano Paraboschi, Riccardo Torlone.](https://reader035.fdocument.pub/reader035/viewer/2022062300/5542eb68497959361e8d3d13/html5/thumbnails/14.jpg)
Cronologia dei modelliCronologia dei modelliper la rappresentazione dei datiper la rappresentazione dei dati
• Modello gerarchico (anni 60)
• Modello reticolare (anni 70)
• Modello relazionale (anni 80)
• Modello a oggetti (anni 90)
• Modello XML (anni 00)
![Page 15: Introduzione alle Basi di Dati. Materiale Teoria: bastano le slide – In alternativa: Paolo Atzeni, Stefano Ceri, Stefano Paraboschi, Riccardo Torlone.](https://reader035.fdocument.pub/reader035/viewer/2022062300/5542eb68497959361e8d3d13/html5/thumbnails/15.jpg)
MODELLI LOGICI DEI DATI GERARCHICO
– I DATI SONO RAPPRESENTATI COME RECORD– LE ASSOCIAZIONI TRA I DATI SONO RAPPRESENTATE
CON PUNTATORI IN UNA STRUTTURA AD ALBERO
GERARCHICO
![Page 16: Introduzione alle Basi di Dati. Materiale Teoria: bastano le slide – In alternativa: Paolo Atzeni, Stefano Ceri, Stefano Paraboschi, Riccardo Torlone.](https://reader035.fdocument.pub/reader035/viewer/2022062300/5542eb68497959361e8d3d13/html5/thumbnails/16.jpg)
MODELLI LOGICI DEI DATI
RETICOLARE (CODASYL)– I DATI SONO RAPPRESENTATI COME RECORD– LE ASSOCIAZIONI TRA I DATI SONO RAPPRESENTATE
CON PUNTATORI IN UNA STRUTTURA A GRAFO COMPLESSO
RETICOLARE
![Page 17: Introduzione alle Basi di Dati. Materiale Teoria: bastano le slide – In alternativa: Paolo Atzeni, Stefano Ceri, Stefano Paraboschi, Riccardo Torlone.](https://reader035.fdocument.pub/reader035/viewer/2022062300/5542eb68497959361e8d3d13/html5/thumbnails/17.jpg)
MODELLI LOGICI DEI DATI RELAZIONALE
– I DATI SONO RAPPRESENTATI COME TABELLE– LE ASSOCIAZIONI TRA I DATI SONO OTTENUTE
ASSOCIANDO VALORI DI ATTRIBUTI IN TABELLE DIVERSE
RELAZIONALE
![Page 18: Introduzione alle Basi di Dati. Materiale Teoria: bastano le slide – In alternativa: Paolo Atzeni, Stefano Ceri, Stefano Paraboschi, Riccardo Torlone.](https://reader035.fdocument.pub/reader035/viewer/2022062300/5542eb68497959361e8d3d13/html5/thumbnails/18.jpg)
Cronologia del modello relazionaleCronologia del modello relazionale
• Inventato da T. Codd, 1970
(IBM Research di Santa Teresa, Cal)
• Primi progetti:
SYSTEM R (IBM), Ingres (Berkeley Un.)
• Principali scoperte tecnologiche: 1978-1980• Primi sistemi commerciali:
inizio anni ‘80 (Oracle, IBM-SQL DS e DB2, Ingres, Informix, Sybase)
• Successo commerciale: dal 1985.
![Page 19: Introduzione alle Basi di Dati. Materiale Teoria: bastano le slide – In alternativa: Paolo Atzeni, Stefano Ceri, Stefano Paraboschi, Riccardo Torlone.](https://reader035.fdocument.pub/reader035/viewer/2022062300/5542eb68497959361e8d3d13/html5/thumbnails/19.jpg)
Definizione informaleDefinizione informale
schemaschema
istanzaistanza
studentestudente
MATRMATR
123123
107107
415415
702702
NOMENOME
CarloCarlo
GiovanniGiovanni
PaolaPaola
AntonioAntonio
CITTA’CITTA’
BolognaBologna
MilanoMilano
TorinoTorino
RomaRoma
INDIRINDIR
InfInf
LogLog
InfInf
LogLog
colonnacolonna schemaschema
istanzaistanza
studentestudente
MATRMATR
123123
107107
415415
702702
NOMENOME
CarloCarlo
GiovanniGiovanni
PaolaPaola
AntonioAntonio
CITTA’CITTA’
BolognaBologna
MilanoMilano
TorinoTorino
RomaRoma
INDIRINDIR
InfInf
LogLog
InfInf
LogLog rigariga
schemaschema
istanzaistanza
studentestudente
MATRMATR
123123
107107
415415
702702
NOMENOME
CarloCarlo
GiovanniGiovanni
PaolaPaola
AntonioAntonio
CITTA’CITTA’
BolognaBologna
MilanoMilano
TorinoTorino
RomaRoma
INDIRINDIR
InfInf
LogLog
InfInf
LogLog
![Page 20: Introduzione alle Basi di Dati. Materiale Teoria: bastano le slide – In alternativa: Paolo Atzeni, Stefano Ceri, Stefano Paraboschi, Riccardo Torlone.](https://reader035.fdocument.pub/reader035/viewer/2022062300/5542eb68497959361e8d3d13/html5/thumbnails/20.jpg)
Relazione: tre accezioniRelazione: tre accezioni
• relazione matematica: come nella teoria degli insiemi;
• relazione (dall’inglese relationship) che rappresenta una classe di fatti — una relazione matematica fra due entità, nel modello
Entity-Relationship; talvolta tradotto con associazione o correlazione
• relazione secondo il modello relazionale dei dati.
![Page 21: Introduzione alle Basi di Dati. Materiale Teoria: bastano le slide – In alternativa: Paolo Atzeni, Stefano Ceri, Stefano Paraboschi, Riccardo Torlone.](https://reader035.fdocument.pub/reader035/viewer/2022062300/5542eb68497959361e8d3d13/html5/thumbnails/21.jpg)
Definizione formaleDefinizione formale
D1, D2, …, Dn (n insiemi anche non distinti)• Il prodotto cartesiano D1×D2×…×Dn, è l’insieme di tutte le n-uple ordinate <d1,
d2, …, dn> tali che d1D1, d2 D2, …, dn Dn.
• Una relazione matematica su D1, D2, …, Dn è un sottoinsieme del prodotto cartesiano D1×D2×…×Dn.
• D1, D2, …, Dn sono i domini della relazione. Una relazione su n domini ha grado n .
• Il numero di n-uple è la cardinalità della relazione. Nelle applicazioni reali, la cardinalità è sempre finita.
• Dominio D:Dominio D: qualunque insieme di valori qualunque insieme di valori
![Page 22: Introduzione alle Basi di Dati. Materiale Teoria: bastano le slide – In alternativa: Paolo Atzeni, Stefano Ceri, Stefano Paraboschi, Riccardo Torlone.](https://reader035.fdocument.pub/reader035/viewer/2022062300/5542eb68497959361e8d3d13/html5/thumbnails/22.jpg)
EsempioEsempio
• DD11 = (a,b) = (a,b)
• DD22 = (1,2,3) = (1,2,3)
• DD11 x D x D22 = ( <a,1>, <b,1>, <a,2>, <b,2>, = ( <a,1>, <b,1>, <a,2>, <b,2>,
<a,3>, <b,3> )<a,3>, <b,3> )
• R1 = ( <a,1>, <b,3> )R1 = ( <a,1>, <b,3> )• R2 = ( <c,1>, <b,3>, <a,2> )R2 = ( <c,1>, <b,3>, <a,2> )• R3 = ( )R3 = ( )• R4 = ( <a,1>, <b,1>, <a,2>, <b,2>, R4 = ( <a,1>, <b,1>, <a,2>, <b,2>,
<a,3>, <b,3> )<a,3>, <b,3> )
![Page 23: Introduzione alle Basi di Dati. Materiale Teoria: bastano le slide – In alternativa: Paolo Atzeni, Stefano Ceri, Stefano Paraboschi, Riccardo Torlone.](https://reader035.fdocument.pub/reader035/viewer/2022062300/5542eb68497959361e8d3d13/html5/thumbnails/23.jpg)
ProprietàProprietà
• Grado della relazione: Grado della relazione:
numero di domini (n)numero di domini (n)• Cardinalita' della relazione: Cardinalita' della relazione:
numero di tuplenumero di tuple
• Attributo:Attributo:
nome dato al dominio in una nome dato al dominio in una
relazione relazione
[I nomi di attributo in una relazione[I nomi di attributo in una relazione
devono essere tutti distinti fra loro]devono essere tutti distinti fra loro]
![Page 24: Introduzione alle Basi di Dati. Materiale Teoria: bastano le slide – In alternativa: Paolo Atzeni, Stefano Ceri, Stefano Paraboschi, Riccardo Torlone.](https://reader035.fdocument.pub/reader035/viewer/2022062300/5542eb68497959361e8d3d13/html5/thumbnails/24.jpg)
Proprietà
In base alle definizioni, una relazione matematica è un insieme di n-uple ordinate:
<d1, d2, …, dn> tali che d1 D1, d2 D2, …, dn Dn
Una relazione è un insieme; quindi:
• non è definito alcun ordinamento fra le n-uple;
• le n-uple di una relazione sono distinte l’una dall’altra;
• le n-uple sono ordinate: l’ i-esimo valore di ciascuna proviene dall’ i-esimo dominio; è cioè definito un ordinamento fra i domini.
![Page 25: Introduzione alle Basi di Dati. Materiale Teoria: bastano le slide – In alternativa: Paolo Atzeni, Stefano Ceri, Stefano Paraboschi, Riccardo Torlone.](https://reader035.fdocument.pub/reader035/viewer/2022062300/5542eb68497959361e8d3d13/html5/thumbnails/25.jpg)
Partite string × string × integer × integer• Ciascuno dei domini ha due ruoli distinti, distinguibili attraverso la posizione: il primo e il terzo dominio si riferiscono a nome e reti della squadra ospitante; il secondo e il quarto a nome e reti della squadra ospitata.• La struttura è posizionaleJuve Lazio 3 1Lazio Milan 2 0Juve Roma 1 2Roma Milan 0 1
![Page 26: Introduzione alle Basi di Dati. Materiale Teoria: bastano le slide – In alternativa: Paolo Atzeni, Stefano Ceri, Stefano Paraboschi, Riccardo Torlone.](https://reader035.fdocument.pub/reader035/viewer/2022062300/5542eb68497959361e8d3d13/html5/thumbnails/26.jpg)
• Nei DB, invece, associamo a ciascun dominio un nome (attributo), unico nella relazione, che “descrive” il ruolo del dominio.
– Nella rappresentazione tabulare, gli attributi possono essere usati come intestazioni delle colonne.– L’ordinamento fra gli attributi è irrilevante:
la struttura è non posizionaleCasa Fuori RetiCasa RetiFuoriJuve Lazio 3 1Lazio Milan 2 0Juve Roma 1 2Roma Milan 0 1
![Page 27: Introduzione alle Basi di Dati. Materiale Teoria: bastano le slide – In alternativa: Paolo Atzeni, Stefano Ceri, Stefano Paraboschi, Riccardo Torlone.](https://reader035.fdocument.pub/reader035/viewer/2022062300/5542eb68497959361e8d3d13/html5/thumbnails/27.jpg)
Formalizzando
• L’associazione fra domini e attributi è definita da una funzione dom che associa a ciascun attributo un dominio
• Una ennupla su un insieme di attributi X è una funzione che associa a ciascun attributo A in X un valore del dominio dom(A)
• Una relazione su X è un insieme di ennuple su X
![Page 28: Introduzione alle Basi di Dati. Materiale Teoria: bastano le slide – In alternativa: Paolo Atzeni, Stefano Ceri, Stefano Paraboschi, Riccardo Torlone.](https://reader035.fdocument.pub/reader035/viewer/2022062300/5542eb68497959361e8d3d13/html5/thumbnails/28.jpg)
• Se t è una ennupla su X e A X, allora t[A] (o t. A ) indica il valore di t su A .
• Nell’esempio, se t è la prima ennupla della tabella
t[Fuori] = Lazio• La stessa notazione è estesa anche
ad insiemi di attributi, nel qual caso denota ennuple: t[Fuori,RetiFuori] è una ennupla su due attributi e vale <Lazio,1>
Formalizzando
![Page 29: Introduzione alle Basi di Dati. Materiale Teoria: bastano le slide – In alternativa: Paolo Atzeni, Stefano Ceri, Stefano Paraboschi, Riccardo Torlone.](https://reader035.fdocument.pub/reader035/viewer/2022062300/5542eb68497959361e8d3d13/html5/thumbnails/29.jpg)
• Una tabella rappresenta una relazione se• i valori di ciascuna colonna sono
fra loro omogenei (dallo stesso dominio)
• le righe sono diverse fra loro• le intestazioni delle colonne sono
diverse tra loro• Inoltre, in una tabella che
rappresenta una relazione• l’ordinamento tra le righe è
irrilevante• l’ordinamento tra le colonne è
irrilevante
Tabelle e relazioni
![Page 30: Introduzione alle Basi di Dati. Materiale Teoria: bastano le slide – In alternativa: Paolo Atzeni, Stefano Ceri, Stefano Paraboschi, Riccardo Torlone.](https://reader035.fdocument.pub/reader035/viewer/2022062300/5542eb68497959361e8d3d13/html5/thumbnails/30.jpg)
Confronto della terminologiaConfronto della terminologia
DEFINIZIONE DEFINIZIONE
FORMALEFORMALE
relazione relazione
attributo attributo
tupla, n-pla tupla, n-pla
dominio dominio
cardinalita'cardinalita'
grado grado
DEFINIZIONE DEFINIZIONE
INFORMALEINFORMALE
tabellatabella
colonnacolonna
rigariga
tipo di datotipo di dato
numero di righenumero di righe
numero di colonnenumero di colonne
Una differenza Una differenza significativasignificativa
DEFINIZIONEDEFINIZIONEFORMALEFORMALEassenzaassenzadi duplicatidi duplicatiDEFINIZIONEDEFINIZIONEINFORMALE INFORMALE possibili possibili duplicatiduplicati
![Page 31: Introduzione alle Basi di Dati. Materiale Teoria: bastano le slide – In alternativa: Paolo Atzeni, Stefano Ceri, Stefano Paraboschi, Riccardo Torlone.](https://reader035.fdocument.pub/reader035/viewer/2022062300/5542eb68497959361e8d3d13/html5/thumbnails/31.jpg)
Il modello relazionale è basato su valoriIl modello relazionale è basato su valori
• I riferimenti fra dati in relazioni diverse sono rappresentati per mezzo di valori dei domini che compaiono nelle ennuple.
![Page 32: Introduzione alle Basi di Dati. Materiale Teoria: bastano le slide – In alternativa: Paolo Atzeni, Stefano Ceri, Stefano Paraboschi, Riccardo Torlone.](https://reader035.fdocument.pub/reader035/viewer/2022062300/5542eb68497959361e8d3d13/html5/thumbnails/32.jpg)
![Page 33: Introduzione alle Basi di Dati. Materiale Teoria: bastano le slide – In alternativa: Paolo Atzeni, Stefano Ceri, Stefano Paraboschi, Riccardo Torlone.](https://reader035.fdocument.pub/reader035/viewer/2022062300/5542eb68497959361e8d3d13/html5/thumbnails/33.jpg)
![Page 34: Introduzione alle Basi di Dati. Materiale Teoria: bastano le slide – In alternativa: Paolo Atzeni, Stefano Ceri, Stefano Paraboschi, Riccardo Torlone.](https://reader035.fdocument.pub/reader035/viewer/2022062300/5542eb68497959361e8d3d13/html5/thumbnails/34.jpg)
Perché sui valori?
• Indipendenza dalle strutture fisiche (si potrebbe avere anche con puntatori di alto livello) che possono cambiare anche dinamicamente
• Si rappresenta solo ciò che è rilevante dal punto di vista dell’applicazione (dell’utente); i puntatori sono meno comprensibili per l’utente finale (senza, l’utente finale vede gli stessi dati dei programmatori)
• I dati sono portabili più facilmente da un sistema ad un altro
• I puntatori sono direzionali
![Page 35: Introduzione alle Basi di Dati. Materiale Teoria: bastano le slide – In alternativa: Paolo Atzeni, Stefano Ceri, Stefano Paraboschi, Riccardo Torlone.](https://reader035.fdocument.pub/reader035/viewer/2022062300/5542eb68497959361e8d3d13/html5/thumbnails/35.jpg)
InterrogazioniInterrogazioni • Quali professori hanno esaminato Carlo?Quali professori hanno esaminato Carlo?
studentestudente
MATRMATR
123123
415415
702702
NOMENOME
CarloCarlo
PaolaPaola
AntonioAntonio
CITTA’CITTA’
BolognaBologna
TorinoTorino
RomaRoma
INDIRINDIR
InfInf
InfInf
LogLog
esameesameMATRMATR
123123
123123
702702
COD- COD- CORSOCORSO
11
22
22
DATADATA
7-9-037-9-03
8-1-038-1-03
7-9-037-9-03
VOTOVOTO
1010
88
55
corsocorsoCOD- COD- CORSOCORSO
11
22
TITOLOTITOLO
matematicamatematica
informaticainformatica
DOCENTDOCENTEE
BarozziBarozzi
MeoMeo
![Page 36: Introduzione alle Basi di Dati. Materiale Teoria: bastano le slide – In alternativa: Paolo Atzeni, Stefano Ceri, Stefano Paraboschi, Riccardo Torlone.](https://reader035.fdocument.pub/reader035/viewer/2022062300/5542eb68497959361e8d3d13/html5/thumbnails/36.jpg)
InterrogazioniInterrogazioni • Quali studenti hanno preso 10 in matematica?Quali studenti hanno preso 10 in matematica?
studentestudente
MATRMATR
123123
415415
702702
NOMENOME
CarloCarlo
PaolaPaola
AntonioAntonio
CITTA’CITTA’
BolognaBologna
TorinoTorino
RomaRoma
INDIRINDIR
InfInf
InfInf
LogLog
esameesameMATRMATR
123123
123123
702702
COD- COD- CORSOCORSO
11
22
22
DATADATA
7-9-037-9-03
8-1-038-1-03
7-9-037-9-03
VOTOVOTO
1010
88
55
corsocorsoCOD- COD- CORSOCORSO
11
22
TITOLOTITOLO
matematicamatematica
informaticainformatica
DOCENTDOCENTEE
BarozziBarozzi
MeoMeo
![Page 37: Introduzione alle Basi di Dati. Materiale Teoria: bastano le slide – In alternativa: Paolo Atzeni, Stefano Ceri, Stefano Paraboschi, Riccardo Torlone.](https://reader035.fdocument.pub/reader035/viewer/2022062300/5542eb68497959361e8d3d13/html5/thumbnails/37.jpg)
RiflessioniRiflessioni
aa differenza fra schema e istanza differenza fra schema e istanza
bb due attivita' assai differenti: due attivita' assai differenti: - progetto dello schema- progetto dello schema - gestione dell'istanza- gestione dell'istanza
cc passaggio dai dati all'informazione passaggio dai dati all'informazione (Query language)(Query language)
![Page 38: Introduzione alle Basi di Dati. Materiale Teoria: bastano le slide – In alternativa: Paolo Atzeni, Stefano Ceri, Stefano Paraboschi, Riccardo Torlone.](https://reader035.fdocument.pub/reader035/viewer/2022062300/5542eb68497959361e8d3d13/html5/thumbnails/38.jpg)
UN ESEMPIO
“Da Filippo”Via Roma 23
9100 ChissadoveP.I. 012345678
2 coperti 2,101 antipasti 3,112 primi 8,402 orate 25, 52 caffè 1,60
Totale 39,41
Ricevuta n. 2456del 16/5/1997
DUE ISTANZE DI RICEVUTA FISCALE
“Da Filippo”Via Roma 23
9100 ChissadoveP.I. 012345678
3 coperti 3,152 antipasti 6,223 primi 12,602 bistecche 19,00
Totale 41,98
Ricevuta n. 2369del 12/5/1997
![Page 39: Introduzione alle Basi di Dati. Materiale Teoria: bastano le slide – In alternativa: Paolo Atzeni, Stefano Ceri, Stefano Paraboschi, Riccardo Torlone.](https://reader035.fdocument.pub/reader035/viewer/2022062300/5542eb68497959361e8d3d13/html5/thumbnails/39.jpg)
RAPPRESENTAZIONE RELAZIONALE, 1
NUMERO DATA TOTALE
2369 12/5/1997 41,982456 16/5/1997 39,41
ricevute
NUMERO QUANTITA’ DESCRIZIONE IMPORTO
2369 3 coperti 3,152369 2 antipasti 6,222369 3 primi 12,602369 2 bistecche 19,002456 2 coperti 2,102456 1 antipasti 3,112456 2 primi 8,402456 2 orate 25, 52456 2 caffè 1,60
dettaglio
![Page 40: Introduzione alle Basi di Dati. Materiale Teoria: bastano le slide – In alternativa: Paolo Atzeni, Stefano Ceri, Stefano Paraboschi, Riccardo Torlone.](https://reader035.fdocument.pub/reader035/viewer/2022062300/5542eb68497959361e8d3d13/html5/thumbnails/40.jpg)
RAPPRESENTAZIONE RELAZIONALE, 2
NUMERO DATA TOTALE
2369 12/5/1997 41,982456 16/5/1997 39,41
ricevute
dettaglio
NUMERO RIGA QUANTITA’ DESCRIZIONE IMPORTO
2369 1 3 coperti 3,152369 2 2 antipasti 6,222369 3 3 primi 12,602369 4 2 bistecche 19,002456 1 2 coperti 2,102456 2 1 antipasti 3,112456 3 2 primi 8,402456 4 2 orate 25, 52456 5 2 caffè 1,60
![Page 41: Introduzione alle Basi di Dati. Materiale Teoria: bastano le slide – In alternativa: Paolo Atzeni, Stefano Ceri, Stefano Paraboschi, Riccardo Torlone.](https://reader035.fdocument.pub/reader035/viewer/2022062300/5542eb68497959361e8d3d13/html5/thumbnails/41.jpg)
Informazione incompleta
• ll modello relazionale impone ai dati una struttura rigida:– le informazioni sono rappresentate per
mezzo di ennuple– solo alcuni formati di ennuple sono
ammessi:– quelli che corrispondono agli schemi di
relazione• I dati disponibili possono non
corrispondere esattamente al formato previsto, per varie ragioni.
![Page 42: Introduzione alle Basi di Dati. Materiale Teoria: bastano le slide – In alternativa: Paolo Atzeni, Stefano Ceri, Stefano Paraboschi, Riccardo Torlone.](https://reader035.fdocument.pub/reader035/viewer/2022062300/5542eb68497959361e8d3d13/html5/thumbnails/42.jpg)
Informazione incompleta
• Firenze è provincia, ma non conosciamo l'indirizzo della prefettura
• Tivoli non è provincia: non ha prefettura• Prato è “nuova” provincia: ha la prefettura?
![Page 43: Introduzione alle Basi di Dati. Materiale Teoria: bastano le slide – In alternativa: Paolo Atzeni, Stefano Ceri, Stefano Paraboschi, Riccardo Torlone.](https://reader035.fdocument.pub/reader035/viewer/2022062300/5542eb68497959361e8d3d13/html5/thumbnails/43.jpg)
Informazione incompleta
• Non conviene (anche se spesso si fa) utilizzare valori ordinari del dominio (0, stringa nulla, “99”, etc), per vari motivi:– potrebbero non esistere valori “non utilizzati”– valori “non utilizzati” potrebbero diventare
significativi
• Risulta necessario ogni volta tener conto del “significato” di questi valori
![Page 44: Introduzione alle Basi di Dati. Materiale Teoria: bastano le slide – In alternativa: Paolo Atzeni, Stefano Ceri, Stefano Paraboschi, Riccardo Torlone.](https://reader035.fdocument.pub/reader035/viewer/2022062300/5542eb68497959361e8d3d13/html5/thumbnails/44.jpg)
Informazione incompleta
• Si adotta una tecnica rudimentale ma efficace:– valore nullo: denota l’assenza di un valore
del dominio (e non è un valore del dominio)
• Formalmente, è sufficiente estendere il concetto di ennupla:t[A], per ogni attributo A, è un valore del dominio dom(A)oppure il valore nullo NULL
• Si possono (e debbono) imporre restrizioni sulla presenza di valori nulli
![Page 45: Introduzione alle Basi di Dati. Materiale Teoria: bastano le slide – In alternativa: Paolo Atzeni, Stefano Ceri, Stefano Paraboschi, Riccardo Torlone.](https://reader035.fdocument.pub/reader035/viewer/2022062300/5542eb68497959361e8d3d13/html5/thumbnails/45.jpg)
Informazione incompleta
![Page 46: Introduzione alle Basi di Dati. Materiale Teoria: bastano le slide – In alternativa: Paolo Atzeni, Stefano Ceri, Stefano Paraboschi, Riccardo Torlone.](https://reader035.fdocument.pub/reader035/viewer/2022062300/5542eb68497959361e8d3d13/html5/thumbnails/46.jpg)
NULL
• Tre casi differenti– valore sconosciuto: esiste un valore del
dominio,ma non è noto (Firenze)– valore inesistente: non esiste un valore del
dominio (Tivoli)– valore senza informazione: non è noto se
esista o meno un valore del dominio (Prato)
• I DBMS non distinguono i tipi di valore nullo (e quindi implicitamente adottano il valore senza informazione)
![Page 47: Introduzione alle Basi di Dati. Materiale Teoria: bastano le slide – In alternativa: Paolo Atzeni, Stefano Ceri, Stefano Paraboschi, Riccardo Torlone.](https://reader035.fdocument.pub/reader035/viewer/2022062300/5542eb68497959361e8d3d13/html5/thumbnails/47.jpg)
Vincoli di integrità
• Esistono istanze di basi di dati che, pur sintatticamente corrette, non rappresentano informazioni possibili per l’applicazione di interesse.
![Page 48: Introduzione alle Basi di Dati. Materiale Teoria: bastano le slide – In alternativa: Paolo Atzeni, Stefano Ceri, Stefano Paraboschi, Riccardo Torlone.](https://reader035.fdocument.pub/reader035/viewer/2022062300/5542eb68497959361e8d3d13/html5/thumbnails/48.jpg)
Vincoli di integrità
Escludono alcune istanze in quanto Escludono alcune istanze in quanto non rappresentano correttamente il non rappresentano correttamente il mondo applicativomondo applicativo
- VINCOLI SUI VALORI NULLI- VINCOLI SUI VALORI NULLI - INTEGRITA' REFERENZIALE- INTEGRITA' REFERENZIALE - VINCOLI GENERICI- VINCOLI GENERICI - CHIAVI- CHIAVI
![Page 49: Introduzione alle Basi di Dati. Materiale Teoria: bastano le slide – In alternativa: Paolo Atzeni, Stefano Ceri, Stefano Paraboschi, Riccardo Torlone.](https://reader035.fdocument.pub/reader035/viewer/2022062300/5542eb68497959361e8d3d13/html5/thumbnails/49.jpg)
Vincoli di integrità
• Definizione– proprietà che deve essere soddisfatta
dalle istanze che rappresentano informazioni corrette per l’applicazione ogni vincolo può essere visto come una funzione booleana (o un predicato) che associa ad ogni istanza il valore vero o falso.
![Page 50: Introduzione alle Basi di Dati. Materiale Teoria: bastano le slide – In alternativa: Paolo Atzeni, Stefano Ceri, Stefano Paraboschi, Riccardo Torlone.](https://reader035.fdocument.pub/reader035/viewer/2022062300/5542eb68497959361e8d3d13/html5/thumbnails/50.jpg)
Vincoli di integrità
• Tipi di vincoli:– vincoli intrarelazionali; casi particolari:
• vincoli su valori (o di dominio)• vincoli di ennupla
– vincoli interrelazionali
![Page 51: Introduzione alle Basi di Dati. Materiale Teoria: bastano le slide – In alternativa: Paolo Atzeni, Stefano Ceri, Stefano Paraboschi, Riccardo Torlone.](https://reader035.fdocument.pub/reader035/viewer/2022062300/5542eb68497959361e8d3d13/html5/thumbnails/51.jpg)
• Risultano utili al fine di descrivere la realtà di interesse in modo più accurato di quanto le strutture permettano;
• Forniscono un contributo verso la “qualità dei dati”
• Costituiscono uno strumento di ausilio alla progettazione (“normalizzazione”)
• Sono utilizzati dal sistema nella scelta della strategia di esecuzione delle interrogazioni
• Non tutte le proprietà di interesse sono rappresentabili per mezzo di vincoli esprimibili direttamente
![Page 52: Introduzione alle Basi di Dati. Materiale Teoria: bastano le slide – In alternativa: Paolo Atzeni, Stefano Ceri, Stefano Paraboschi, Riccardo Torlone.](https://reader035.fdocument.pub/reader035/viewer/2022062300/5542eb68497959361e8d3d13/html5/thumbnails/52.jpg)
Vincoli di ennupla
• Esprimono condizioni sui valori di ciascuna ennupla, indipendentemente dalle altre ennuple.
• Una possibile sintassi: espressione booleana (con AND, OR e NOT) di atomi che confrontano valori di attributo o espressioni aritmetiche su di essi.
• Un vincolo di ennupla è un vincolo di dominio se coinvolge un solo attributo
• Esempi:– (Voto >=18) AND (Voto <= 30)– (Voto =30) OR NOT (Lode = “e lode”)– Lordo = (Ritenute + Netto)
![Page 53: Introduzione alle Basi di Dati. Materiale Teoria: bastano le slide – In alternativa: Paolo Atzeni, Stefano Ceri, Stefano Paraboschi, Riccardo Torlone.](https://reader035.fdocument.pub/reader035/viewer/2022062300/5542eb68497959361e8d3d13/html5/thumbnails/53.jpg)
Nozione di chiaveNozione di chiave
Sottoinsieme degli attributi dello Sottoinsieme degli attributi dello schema che ha la proprieta' di schema che ha la proprieta' di unicita'unicita' e e minimalita'minimalita'
unicità:unicità: non esistono due tuple con non esistono due tuple con chiave ugualechiave ugualeminimalità:minimalità: sottraendo un qualunque sottraendo un qualunque attributo alla chiave si perde la proprieta' attributo alla chiave si perde la proprieta' di unicitàdi unicità
Se il sottoinsieme non è minimo si Se il sottoinsieme non è minimo si parla di SUPERCHIAVEparla di SUPERCHIAVE
![Page 54: Introduzione alle Basi di Dati. Materiale Teoria: bastano le slide – In alternativa: Paolo Atzeni, Stefano Ceri, Stefano Paraboschi, Riccardo Torlone.](https://reader035.fdocument.pub/reader035/viewer/2022062300/5542eb68497959361e8d3d13/html5/thumbnails/54.jpg)
Chiavi nell'esempio : Chiavi nell'esempio : gestione degli esami universitarigestione degli esami universitari
MATRMATR COD-CORSOCOD-CORSO DATA VOTODATA VOTO
COD-CORSOCOD-CORSO TITOLO DOCENTETITOLO DOCENTE
studentestudente
corsocorso
esameesame
MATRMATR NOMENOME CITTA’ INDIRCITTA’ INDIR
![Page 55: Introduzione alle Basi di Dati. Materiale Teoria: bastano le slide – In alternativa: Paolo Atzeni, Stefano Ceri, Stefano Paraboschi, Riccardo Torlone.](https://reader035.fdocument.pub/reader035/viewer/2022062300/5542eb68497959361e8d3d13/html5/thumbnails/55.jpg)
Con molteplici chiavi:Con molteplici chiavi:
una e' definita una e' definita CHIAVE PRIMARIACHIAVE PRIMARIAle rimanenti chiavi sonole rimanenti chiavi sono SECONDARIESECONDARIE
CLIENTECLIENTE(COD-CLIENTE,INDIRIZZO,P-IVA)(COD-CLIENTE,INDIRIZZO,P-IVA) Chiave primaria: Chiave primaria: COD-CLIENTECOD-CLIENTE Chiave secondaria: Chiave secondaria: P-IVAP-IVA
![Page 56: Introduzione alle Basi di Dati. Materiale Teoria: bastano le slide – In alternativa: Paolo Atzeni, Stefano Ceri, Stefano Paraboschi, Riccardo Torlone.](https://reader035.fdocument.pub/reader035/viewer/2022062300/5542eb68497959361e8d3d13/html5/thumbnails/56.jpg)
Esiste sempre una chiave?
• Poiché le relazioni sono insiemi, ogni relazione non può contenere ennuple distinte ma uguali fra loro:– ogni relazione ha come superchiave l’insieme
degli attributi su cui è definita;
• Poiché l’insieme di tutti gli attributi è una superchiave per ogni relazione, ogni schema di relazione ha tale insieme come superchiave;
• Poiché l’insieme di attributi è finito, ogni schema di relazione ha (almeno) una chiave
![Page 57: Introduzione alle Basi di Dati. Materiale Teoria: bastano le slide – In alternativa: Paolo Atzeni, Stefano Ceri, Stefano Paraboschi, Riccardo Torlone.](https://reader035.fdocument.pub/reader035/viewer/2022062300/5542eb68497959361e8d3d13/html5/thumbnails/57.jpg)
Importanza delle chiavi
• L’esistenza delle chiavi garantisce l’accessibilità a ciascun dato della base di dati
• Ogni singolo valore è univocamente accessibile tramite:– nome della relazione– valore della chiave– nome dell’attributo
• Le chiavi sono lo strumento principale attraverso il quale vengono correlati i dati in relazioni diverse (“il modello relazionale è basato su valori”)
![Page 58: Introduzione alle Basi di Dati. Materiale Teoria: bastano le slide – In alternativa: Paolo Atzeni, Stefano Ceri, Stefano Paraboschi, Riccardo Torlone.](https://reader035.fdocument.pub/reader035/viewer/2022062300/5542eb68497959361e8d3d13/html5/thumbnails/58.jpg)
Chiavi e valori nulli
• In presenza di valori nulli, i valori degli attributi che formano la chiave– non permettono di identificare le ennuple
come desiderato– né permettono di realizzare facilmente i
riferimenti da altre relazioni• La presenza di valori nulli nelle chiavi
deve essere limitata• Soluzione pratica: per ogni relazione
scegliamo una chiave (la chiave primaria) su cui non ammettiamo valori nulli
![Page 59: Introduzione alle Basi di Dati. Materiale Teoria: bastano le slide – In alternativa: Paolo Atzeni, Stefano Ceri, Stefano Paraboschi, Riccardo Torlone.](https://reader035.fdocument.pub/reader035/viewer/2022062300/5542eb68497959361e8d3d13/html5/thumbnails/59.jpg)
Foreign Key
• Informazioni in relazioni diverse sono correlate attraverso valori comuni
• In particolare, valori delle chiavi (primarie, di solito)
• Un vincolo di integrità referenziale fra un insieme di attributi X di una relazione R1 e un’altra relazione R2 impone ai valori su X di ciascuna ennupla dell’istanza di R1 di comparire come valori della chiave (primaria) dell’istanza di R2
![Page 60: Introduzione alle Basi di Dati. Materiale Teoria: bastano le slide – In alternativa: Paolo Atzeni, Stefano Ceri, Stefano Paraboschi, Riccardo Torlone.](https://reader035.fdocument.pub/reader035/viewer/2022062300/5542eb68497959361e8d3d13/html5/thumbnails/60.jpg)
Chiavi esterne: esempioChiavi esterne: esempio
MATRMATR COD-CORSOCOD-CORSO DATA VOTODATA VOTO
COD-CORSOCOD-CORSO TITOLO DOCENTETITOLO DOCENTE
studentestudente
corsocorso
esameesame
MATRMATR NOMENOME CITTA’ INDIRCITTA’ INDIR