basi di dati · basi di dati gabriella trucco [email protected]. esempio quando si pensa ad...
TRANSCRIPT
![Page 2: Basi di dati · Basi di dati Gabriella Trucco gabriella.trucco@unimi.it. Esempio Quando si pensa ad un database, generalmente si immagina una tabella contenente grandi quantità di](https://reader036.vdocuments.pub/reader036/viewer/2022062605/5fd028e58fa808518260e2e5/html5/thumbnails/2.jpg)
Esempio
Quando si pensa ad un database, generalmente si immagina una tabella
contenente grandi quantità di informazioni, sulla quale è possibile fare una
certa serie di operazioni
Operazioni semplici: registrazione dei ticket
Operazioni complesse:
Importo complessivo, per giorno, cassa, fascia oraria, ...
Correlazioni di ricette
![Page 3: Basi di dati · Basi di dati Gabriella Trucco gabriella.trucco@unimi.it. Esempio Quando si pensa ad un database, generalmente si immagina una tabella contenente grandi quantità di](https://reader036.vdocuments.pub/reader036/viewer/2022062605/5fd028e58fa808518260e2e5/html5/thumbnails/3.jpg)
DBMS
Un DBMS (DataBase Management System) è un applicativo software:
in grado di gestire grandi quantità di dati (Giga-Tera byte e oltre)
in grado di garantirne la persistenza anche a fronte di guasti
in grado di condividere i propri dati garantendo privatezza con una disciplina di
controllo degli accessi
efficienza utilizzando al meglio le risorse di spazio e di tempo del sistema
efficacia rendendo produttive le attività dei suoi utilizzatori
integrità dei dati mantenendoli tra loro sempre consistenti
![Page 4: Basi di dati · Basi di dati Gabriella Trucco gabriella.trucco@unimi.it. Esempio Quando si pensa ad un database, generalmente si immagina una tabella contenente grandi quantità di](https://reader036.vdocuments.pub/reader036/viewer/2022062605/5fd028e58fa808518260e2e5/html5/thumbnails/4.jpg)
Integrità
I problemi di integrità sono tipicamente dovuti alla mancanza di una
adeguata progettazione del DB
Esempi di problema di integrità:
Di un paziente, memorizzo sia il CAP che il Comune di residenza. Nella base di
dati trovo un paziente con CAP non corrispondente al comune di residenza
In una tabella, ho che un certo paziente X è celibe e un'altra paziente Y che è
moglie di X
In una tabella ho l'elenco dei pazienti con indicato il codice della sua patologia,
ma tale codice non è nell'elenco delle malattie (elenco presente in un'altra
tabella)
![Page 5: Basi di dati · Basi di dati Gabriella Trucco gabriella.trucco@unimi.it. Esempio Quando si pensa ad un database, generalmente si immagina una tabella contenente grandi quantità di](https://reader036.vdocuments.pub/reader036/viewer/2022062605/5fd028e58fa808518260e2e5/html5/thumbnails/5.jpg)
Limiti dei DBMS
Presentazione grafica limitata
Funzionalità statistiche di base
Il trattamento statistico dei dati deve essere fatto con software ad-hoc
![Page 6: Basi di dati · Basi di dati Gabriella Trucco gabriella.trucco@unimi.it. Esempio Quando si pensa ad un database, generalmente si immagina una tabella contenente grandi quantità di](https://reader036.vdocuments.pub/reader036/viewer/2022062605/5fd028e58fa808518260e2e5/html5/thumbnails/6.jpg)
Progettazione di una base di dati
1. Raccolta ed analisi dei requisiti
2. Specifiche sui dati
Modello concettuale (schema E/R)
Modello logico (schema relazionale)
Implementazione fisica
3. Specifiche sulle funzioni
Interrogazioni sulla base di dati
Implementazione delle transazioni
![Page 7: Basi di dati · Basi di dati Gabriella Trucco gabriella.trucco@unimi.it. Esempio Quando si pensa ad un database, generalmente si immagina una tabella contenente grandi quantità di](https://reader036.vdocuments.pub/reader036/viewer/2022062605/5fd028e58fa808518260e2e5/html5/thumbnails/7.jpg)
Modello concettuale
Insieme di costrutti utilizzati per organizzare i dati e descriverne la struttura
Il modello Entità/Relazione (E/R) adotta un formalismo grafico e semplice
si basa su due concetti (entità e relazione)
![Page 8: Basi di dati · Basi di dati Gabriella Trucco gabriella.trucco@unimi.it. Esempio Quando si pensa ad un database, generalmente si immagina una tabella contenente grandi quantità di](https://reader036.vdocuments.pub/reader036/viewer/2022062605/5fd028e58fa808518260e2e5/html5/thumbnails/8.jpg)
Entità
Rappresenta una classe di oggetti del mondo reale (e.g., persone, cose,
eventi, ...) con proprietà comuni ed esistenza autonoma
Esempio
Paziente: entità astratta
Pierpaolo: istanza (e.g.) dell’entità paziente; è il paziente vero e proprio
![Page 9: Basi di dati · Basi di dati Gabriella Trucco gabriella.trucco@unimi.it. Esempio Quando si pensa ad un database, generalmente si immagina una tabella contenente grandi quantità di](https://reader036.vdocuments.pub/reader036/viewer/2022062605/5fd028e58fa808518260e2e5/html5/thumbnails/9.jpg)
Attributi
Entità sono composte da attributi
Esempio: l'entità paziente è composta dagli attributi: CF, Nome, Cognome,
Sesso e Indirizzo
CF: chiave primaria, ovvero l'attributo che permette di identificare
univocamente l'istanza
![Page 10: Basi di dati · Basi di dati Gabriella Trucco gabriella.trucco@unimi.it. Esempio Quando si pensa ad un database, generalmente si immagina una tabella contenente grandi quantità di](https://reader036.vdocuments.pub/reader036/viewer/2022062605/5fd028e58fa808518260e2e5/html5/thumbnails/10.jpg)
Attributi
A volte, gli attributi possono essere compositi
Ad esempio, l'attributo Generalità è composto dal Nome e dal Cognome
![Page 11: Basi di dati · Basi di dati Gabriella Trucco gabriella.trucco@unimi.it. Esempio Quando si pensa ad un database, generalmente si immagina una tabella contenente grandi quantità di](https://reader036.vdocuments.pub/reader036/viewer/2022062605/5fd028e58fa808518260e2e5/html5/thumbnails/11.jpg)
Relazione
Legame esistente fra differenti entità
La relazione permette di esplicitare i collegamenti logici esistenti fra le varie
entità che compongono le informazioni da trattare
Esempio: un medico cura un paziente
![Page 12: Basi di dati · Basi di dati Gabriella Trucco gabriella.trucco@unimi.it. Esempio Quando si pensa ad un database, generalmente si immagina una tabella contenente grandi quantità di](https://reader036.vdocuments.pub/reader036/viewer/2022062605/5fd028e58fa808518260e2e5/html5/thumbnails/12.jpg)
Relazione
Ad esempio: l'entità medico cura (relazione) l'entità paziente
I numeri rappresentano la cardinalità (minima e massima) della relazione
Un medico cura da un minimo di 0 ad un massimo di n pazienti
Un paziente è curato da un minimo di 1 ad un massimo di n medici
![Page 13: Basi di dati · Basi di dati Gabriella Trucco gabriella.trucco@unimi.it. Esempio Quando si pensa ad un database, generalmente si immagina una tabella contenente grandi quantità di](https://reader036.vdocuments.pub/reader036/viewer/2022062605/5fd028e58fa808518260e2e5/html5/thumbnails/13.jpg)
Cardinalità delle relazioni
La cardinalità di una relazione identifica quante istanze di una certa entità
si collegano ad una istanza di un'altra entità
Relazione uno-a-uno
Relazione uno-a-molti o molti-a-uno
Relazione molti-a-molti
![Page 14: Basi di dati · Basi di dati Gabriella Trucco gabriella.trucco@unimi.it. Esempio Quando si pensa ad un database, generalmente si immagina una tabella contenente grandi quantità di](https://reader036.vdocuments.pub/reader036/viewer/2022062605/5fd028e58fa808518260e2e5/html5/thumbnails/14.jpg)
Entità debole
Facciamo l'esempio delle entità studente e università, tra loro legate dalla
relazione studia_in
Qual è la chiave primaria di studente?
![Page 15: Basi di dati · Basi di dati Gabriella Trucco gabriella.trucco@unimi.it. Esempio Quando si pensa ad un database, generalmente si immagina una tabella contenente grandi quantità di](https://reader036.vdocuments.pub/reader036/viewer/2022062605/5fd028e58fa808518260e2e5/html5/thumbnails/15.jpg)
Entità debole
E’ la matricola, a seconda dell'università, i.e. possono esserci studenti con
lo stesso numero di matricola in differenti università, ma non con la stessa
matricola nella stessa università
Una chiave primaria che dipende anche dalla relazione dà origine ad una
entità debole
![Page 16: Basi di dati · Basi di dati Gabriella Trucco gabriella.trucco@unimi.it. Esempio Quando si pensa ad un database, generalmente si immagina una tabella contenente grandi quantità di](https://reader036.vdocuments.pub/reader036/viewer/2022062605/5fd028e58fa808518260e2e5/html5/thumbnails/16.jpg)
Relazioni n-arie
Esiste anche la possibilità di dover utilizzare relazioni fra più di due entità
In tale caso, si parla di relazioni n-arie
![Page 17: Basi di dati · Basi di dati Gabriella Trucco gabriella.trucco@unimi.it. Esempio Quando si pensa ad un database, generalmente si immagina una tabella contenente grandi quantità di](https://reader036.vdocuments.pub/reader036/viewer/2022062605/5fd028e58fa808518260e2e5/html5/thumbnails/17.jpg)
Attributi
Gli attributi possono anche essere posizionati sulle relazioni
![Page 18: Basi di dati · Basi di dati Gabriella Trucco gabriella.trucco@unimi.it. Esempio Quando si pensa ad un database, generalmente si immagina una tabella contenente grandi quantità di](https://reader036.vdocuments.pub/reader036/viewer/2022062605/5fd028e58fa808518260e2e5/html5/thumbnails/18.jpg)
Schema E/R semplice
Costruiamo lo schema E/R di una base di dati per memorizzare le risposte date
ad un questionario
Questionario composto da 9 domande a risposta multipla
Di ogni studente ci interessa la matricola, l'età ed il sesso
![Page 19: Basi di dati · Basi di dati Gabriella Trucco gabriella.trucco@unimi.it. Esempio Quando si pensa ad un database, generalmente si immagina una tabella contenente grandi quantità di](https://reader036.vdocuments.pub/reader036/viewer/2022062605/5fd028e58fa808518260e2e5/html5/thumbnails/19.jpg)
Entità e relazioni
Identificazione delle entità
Questionario
Studente
Identificazione delle relazioni
Lo studente riempie il questionario
![Page 20: Basi di dati · Basi di dati Gabriella Trucco gabriella.trucco@unimi.it. Esempio Quando si pensa ad un database, generalmente si immagina una tabella contenente grandi quantità di](https://reader036.vdocuments.pub/reader036/viewer/2022062605/5fd028e58fa808518260e2e5/html5/thumbnails/20.jpg)
Schema E/R complesso
Costruiamo lo schema E/R di una base di dati per il seguente studio:
Analisi geografica di morbilità di malattie neoplastiche, con disaggregazione
per sede elettorale, a seguito dell'installazione di una industria chimica che
prevede, nel ciclo di lavorazione, l'emissione di gas in aria
![Page 21: Basi di dati · Basi di dati Gabriella Trucco gabriella.trucco@unimi.it. Esempio Quando si pensa ad un database, generalmente si immagina una tabella contenente grandi quantità di](https://reader036.vdocuments.pub/reader036/viewer/2022062605/5fd028e58fa808518260e2e5/html5/thumbnails/21.jpg)
Entità e relazioni
Identificazione delle entità
Sede elettorale
Paziente
Patologia
Identificazione delle relazioni
Il paziente risiede in una sede elettorale
Il paziente soffre di una certa patologia
![Page 22: Basi di dati · Basi di dati Gabriella Trucco gabriella.trucco@unimi.it. Esempio Quando si pensa ad un database, generalmente si immagina una tabella contenente grandi quantità di](https://reader036.vdocuments.pub/reader036/viewer/2022062605/5fd028e58fa808518260e2e5/html5/thumbnails/22.jpg)
Sede elettorale
Gli attributi dell'entità sede elettorale
Numero della sede (chiave primaria)
Distanza dall'industria chimica
Numero di votanti
![Page 23: Basi di dati · Basi di dati Gabriella Trucco gabriella.trucco@unimi.it. Esempio Quando si pensa ad un database, generalmente si immagina una tabella contenente grandi quantità di](https://reader036.vdocuments.pub/reader036/viewer/2022062605/5fd028e58fa808518260e2e5/html5/thumbnails/23.jpg)
Paziente
Gli attributi dell'entità paziente
Identificatore numerico
Sesso
Età
![Page 24: Basi di dati · Basi di dati Gabriella Trucco gabriella.trucco@unimi.it. Esempio Quando si pensa ad un database, generalmente si immagina una tabella contenente grandi quantità di](https://reader036.vdocuments.pub/reader036/viewer/2022062605/5fd028e58fa808518260e2e5/html5/thumbnails/24.jpg)
Patologia
Gli attributi dell'entità patologia
Codice
DRG
Diagnosi principale
![Page 25: Basi di dati · Basi di dati Gabriella Trucco gabriella.trucco@unimi.it. Esempio Quando si pensa ad un database, generalmente si immagina una tabella contenente grandi quantità di](https://reader036.vdocuments.pub/reader036/viewer/2022062605/5fd028e58fa808518260e2e5/html5/thumbnails/25.jpg)
Relazione risiede
La relazione risiede fra il paziente e la sede elettorale
Il paziente risiede in 1 sede elettorale
In una sede elettorale risiedono n pazienti
![Page 26: Basi di dati · Basi di dati Gabriella Trucco gabriella.trucco@unimi.it. Esempio Quando si pensa ad un database, generalmente si immagina una tabella contenente grandi quantità di](https://reader036.vdocuments.pub/reader036/viewer/2022062605/5fd028e58fa808518260e2e5/html5/thumbnails/26.jpg)
Relazione soffre
La relazione soffre fra il paziente e la patologia
Un paziente può soffrire di n patologie
Di una patologia soffrono n pazienti
![Page 27: Basi di dati · Basi di dati Gabriella Trucco gabriella.trucco@unimi.it. Esempio Quando si pensa ad un database, generalmente si immagina una tabella contenente grandi quantità di](https://reader036.vdocuments.pub/reader036/viewer/2022062605/5fd028e58fa808518260e2e5/html5/thumbnails/27.jpg)
Schema E/R completo
![Page 28: Basi di dati · Basi di dati Gabriella Trucco gabriella.trucco@unimi.it. Esempio Quando si pensa ad un database, generalmente si immagina una tabella contenente grandi quantità di](https://reader036.vdocuments.pub/reader036/viewer/2022062605/5fd028e58fa808518260e2e5/html5/thumbnails/28.jpg)
Il modello relazionale
Il modello relazionale fu introdotto da Codd (1970) e si basa su una
semplice ed uniforme struttura dati chiamata relazione, ed ha una solida
base teorica
La relazione del modello relazionale NON è la relazione degli schemi E/R
Si introduce tale modello in quanto la maggior parte dei DBMS sono
relazionali (e.g. Oracle, Access, MySQL)
![Page 29: Basi di dati · Basi di dati Gabriella Trucco gabriella.trucco@unimi.it. Esempio Quando si pensa ad un database, generalmente si immagina una tabella contenente grandi quantità di](https://reader036.vdocuments.pub/reader036/viewer/2022062605/5fd028e58fa808518260e2e5/html5/thumbnails/29.jpg)
Concetti fondamentali
Il modello relazionale rappresenta una base di dati come un insieme di
relazioni
Informalmente,
una relazione è una tabella
ciascuna riga della relazione è detta tupla
l'intestazione di una colonna della tabella è chiamata attributo
il tipo di dato che mi specifica ciò che può apparire in ciascuna colonna è detto
dominio
Per semplicità useremo il termine (improprio) tabella al posto del termine
(corretto) relazione
![Page 30: Basi di dati · Basi di dati Gabriella Trucco gabriella.trucco@unimi.it. Esempio Quando si pensa ad un database, generalmente si immagina una tabella contenente grandi quantità di](https://reader036.vdocuments.pub/reader036/viewer/2022062605/5fd028e58fa808518260e2e5/html5/thumbnails/30.jpg)
Da schema E/R a schema relazionale
A partire dallo schema E/R, è possibile costruire la base di dati sotto forma
di tabelle
Dallo schema E/R, si creano gruppi di entità e/o relazioni come segue:
A partire da una entità o relazione dello schema E/R, si aggregano nel gruppo
tutte le relazioni/entità legate con cardinalità unaria massima
Ogni entità o relazione non aggregata deve diventare un nuovo gruppo
I gruppi individuati corrispondono alle tabelle da creare
Gli attributi di ciascuna tabella variano a seconda del contenuto del gruppo
![Page 31: Basi di dati · Basi di dati Gabriella Trucco gabriella.trucco@unimi.it. Esempio Quando si pensa ad un database, generalmente si immagina una tabella contenente grandi quantità di](https://reader036.vdocuments.pub/reader036/viewer/2022062605/5fd028e58fa808518260e2e5/html5/thumbnails/31.jpg)
Esempio1: questionario
Partiamo da una qualunque entità e incorporiamo le relazioni e/o entità
quando la loro cardinalità massima è 1
![Page 32: Basi di dati · Basi di dati Gabriella Trucco gabriella.trucco@unimi.it. Esempio Quando si pensa ad un database, generalmente si immagina una tabella contenente grandi quantità di](https://reader036.vdocuments.pub/reader036/viewer/2022062605/5fd028e58fa808518260e2e5/html5/thumbnails/32.jpg)
Esempio1: questionario
L'altra entità e la relazione stessa è stata inglobata ottenendo un'unica tabella
questionari studenti(matricola; sesso; età; r1; r2; r3; r4; r5; r6; r7; r8; r9)
Per completare questo passo, è inoltre importante specificare il tipo di dato usato per memorizzare le istanze dei vari attributi
questionari studenti(matricola; sesso; età; r1; r2; r3; r4; r5; r6; r7; r8; r9)
matricola: int
sesso: char[1]
età: int
r1 ... r9: int
![Page 33: Basi di dati · Basi di dati Gabriella Trucco gabriella.trucco@unimi.it. Esempio Quando si pensa ad un database, generalmente si immagina una tabella contenente grandi quantità di](https://reader036.vdocuments.pub/reader036/viewer/2022062605/5fd028e58fa808518260e2e5/html5/thumbnails/33.jpg)
Esempio2: analisi geografica
Partiamo dall'entità paziente e procediamo con le relazioni...
![Page 34: Basi di dati · Basi di dati Gabriella Trucco gabriella.trucco@unimi.it. Esempio Quando si pensa ad un database, generalmente si immagina una tabella contenente grandi quantità di](https://reader036.vdocuments.pub/reader036/viewer/2022062605/5fd028e58fa808518260e2e5/html5/thumbnails/34.jpg)
Esempio2: analisi geografica
La relazione risiede è stata aggregata all'entità paziente in un gruppo
![Page 35: Basi di dati · Basi di dati Gabriella Trucco gabriella.trucco@unimi.it. Esempio Quando si pensa ad un database, generalmente si immagina una tabella contenente grandi quantità di](https://reader036.vdocuments.pub/reader036/viewer/2022062605/5fd028e58fa808518260e2e5/html5/thumbnails/35.jpg)
Conversione delle entità singole
Per le entità singole patologia e sede elettorale, si creano due tabelle
1. patologie(codice; drg; diagnosi principale)
2. sedi elettorali (numero; distanza; votanti)
![Page 36: Basi di dati · Basi di dati Gabriella Trucco gabriella.trucco@unimi.it. Esempio Quando si pensa ad un database, generalmente si immagina una tabella contenente grandi quantità di](https://reader036.vdocuments.pub/reader036/viewer/2022062605/5fd028e58fa808518260e2e5/html5/thumbnails/36.jpg)
Conversione dei gruppi
Per l'entità paziente e la relazione risiede, si crea una tabella
pazienti(numero; sesso; età; numero sede elettorale)
dove numero sede elettorale è una chiave esterna
![Page 37: Basi di dati · Basi di dati Gabriella Trucco gabriella.trucco@unimi.it. Esempio Quando si pensa ad un database, generalmente si immagina una tabella contenente grandi quantità di](https://reader036.vdocuments.pub/reader036/viewer/2022062605/5fd028e58fa808518260e2e5/html5/thumbnails/37.jpg)
Conversione delle relazioni singole
Per la relazione singola soffre, si crea una tabella
soffre(codice patologia; numero paziente)
dove la coppia codice patologia e numero paziente è la chiave primaria
![Page 38: Basi di dati · Basi di dati Gabriella Trucco gabriella.trucco@unimi.it. Esempio Quando si pensa ad un database, generalmente si immagina una tabella contenente grandi quantità di](https://reader036.vdocuments.pub/reader036/viewer/2022062605/5fd028e58fa808518260e2e5/html5/thumbnails/38.jpg)
Schema relazionale
Abbiamo identificato quindi quattro tabelle:
patologie(codice; drg; diagnosi principale)
codice: int
drg: char[3]
diagnosi principale: char[50]
sedi elettorali (numero; distanza; votanti)
numero: int
distanza: float
votanti: int
pazienti(numero; sesso; età; numero sede elettorale)
numero: int
sesso: char[1]
età: int
numero sede elettorale: int (stesso tipo di sedi elettorali.numero)
soffre(codice patologia; numero paziente)
codice patologia: int (stesso tipo di patologie.codice)
numero paziente: int (stesso tipo di pazienti.numero)
![Page 39: Basi di dati · Basi di dati Gabriella Trucco gabriella.trucco@unimi.it. Esempio Quando si pensa ad un database, generalmente si immagina una tabella contenente grandi quantità di](https://reader036.vdocuments.pub/reader036/viewer/2022062605/5fd028e58fa808518260e2e5/html5/thumbnails/39.jpg)
Primo blocco
Entità patologia
Tabella patologie(codice; drg; diagnosi principale)
![Page 40: Basi di dati · Basi di dati Gabriella Trucco gabriella.trucco@unimi.it. Esempio Quando si pensa ad un database, generalmente si immagina una tabella contenente grandi quantità di](https://reader036.vdocuments.pub/reader036/viewer/2022062605/5fd028e58fa808518260e2e5/html5/thumbnails/40.jpg)
Secondo blocco
Entità sede elettorale
Tabella sedi elettorali (numero; distanza; votanti)
![Page 41: Basi di dati · Basi di dati Gabriella Trucco gabriella.trucco@unimi.it. Esempio Quando si pensa ad un database, generalmente si immagina una tabella contenente grandi quantità di](https://reader036.vdocuments.pub/reader036/viewer/2022062605/5fd028e58fa808518260e2e5/html5/thumbnails/41.jpg)
Terzo blocco
Entità paziente + relazione risiede
Tabella pazienti(numero; sesso; eta; numero sede elettorale)
![Page 42: Basi di dati · Basi di dati Gabriella Trucco gabriella.trucco@unimi.it. Esempio Quando si pensa ad un database, generalmente si immagina una tabella contenente grandi quantità di](https://reader036.vdocuments.pub/reader036/viewer/2022062605/5fd028e58fa808518260e2e5/html5/thumbnails/42.jpg)
Relazione soffre
Relazione soffre
Tabella soffre(codice patologia; numero paziente)
![Page 43: Basi di dati · Basi di dati Gabriella Trucco gabriella.trucco@unimi.it. Esempio Quando si pensa ad un database, generalmente si immagina una tabella contenente grandi quantità di](https://reader036.vdocuments.pub/reader036/viewer/2022062605/5fd028e58fa808518260e2e5/html5/thumbnails/43.jpg)
Definizioni formali
Un dominio D è un insieme di valori atomici non ulteriormente suddivisibili, e.g.
Il dominio Z+ è l'insieme dei numeri interi positivi [0;1)
Il dominio CF è l'insieme delle stringhe alfanumeriche lunghe 16 caratteri
Il dominio S è l'insieme dei due caratteri {f ;m}
Un attributo A è un nome che fa riferimento ad un dominio D = dom(A), e.g.
L'attributo età ∈ Z+ identifica l'età
L'attributo CF ∈ CF identifica il codice fiscale
L'attributo sesso ∈ S identifica il sesso
![Page 44: Basi di dati · Basi di dati Gabriella Trucco gabriella.trucco@unimi.it. Esempio Quando si pensa ad un database, generalmente si immagina una tabella contenente grandi quantità di](https://reader036.vdocuments.pub/reader036/viewer/2022062605/5fd028e58fa808518260e2e5/html5/thumbnails/44.jpg)
Definizioni formali
Uno schema di relazione R(A1; A2; …;An) è composto da un nome R e da
un insieme di attributi {A1; A2; …;An}, e.g.
Lo schema di relazione soggetto(CF; età; sesso) indica che di un soggetto
consideriamo il codice fiscale, l'età e il sesso
Dato l'insieme di attributi {A1;A2; …;An} dello schema di relazione R, una
tupla t = (v1; v2; …; vn) è una lista ordinata di valori tali che vi ∈ dom(Ai ),
e.g.
La tupla (ABCXYZ98X76A345X; 34;m) identifica una istanza di un soggetto con
codice scale ABCXYZ98X76A345X, età 34 anni, e di sesso maschile
![Page 45: Basi di dati · Basi di dati Gabriella Trucco gabriella.trucco@unimi.it. Esempio Quando si pensa ad un database, generalmente si immagina una tabella contenente grandi quantità di](https://reader036.vdocuments.pub/reader036/viewer/2022062605/5fd028e58fa808518260e2e5/html5/thumbnails/45.jpg)
Definizioni formali
Una relazione r ∈ R è un insieme di tuple {t1; t2; …; tn}, e.g.
La relazione {(ABCXYZ98X76A345X; 34;m) ; (DEFTUV76W54B678A; 35; f )} identica i
soggetti nella nostra base di dati
La relazione differisce quindi da una tabella per il fatto di non avere un
ordinamento sulle righe