Il 0% ha trovato utile questo documento (0 voti)
17 visualizzazioni34 pagine

Lezione2 Modellorelazionale

Copyright
© © All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato PDF, TXT o leggi online su Scribd
Il 0% ha trovato utile questo documento (0 voti)
17 visualizzazioni34 pagine

Lezione2 Modellorelazionale

Copyright
© © All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato PDF, TXT o leggi online su Scribd
Sei sulla pagina 1/ 34

Il modello relazionale dei dati

Prof. Alfredo Pulvirenti (A-L)


Prof. Salvatore Alaimo (M-Z)

(Atzeni-Ceri Capitolo 2)
Definizione

• Un modello dei dati è un insieme di


meccanismi di astrazione per definire una base
di dati, con associato un insieme predefinito di
operatori e di vincoli di integrità.

• Questi meccanismi di astrazione rivestono un


ruolo equivalente a quello delle strutture dati
nella programmazione.
Il modello relazionale dei dati

• Introdotto da E.F. Codd nel 1970

• Implementa bene il concetto di indipendenza dei


dati

• Oggi è di gran lunga il modello dei dati più diffuso

• Implementato nei DBMS commerciali dal 1981

• E’ basato sul concetto matematico di RELAZIONE


Relazione: tre accezioni

• relazione matematica: come nella teoria


degli insiemi

• relazione secondo il modello relazionale dei


dati

• relazione (dall’inglese relationship) che


rappresenta una classe di fatti, nel modello
Entità-Relazione; tradotto anche con
associazione o correlazione
Relazione matematica: esempio

a x
D1={a,b} a y
D2={x,y,z} a z
prodotto cartesiano D1 × D2 b x
b y
b z

una relazione r ⊆ D1 × D2 a x
a z
b y
Relazione matematica

• D1, …, Dn (n insiemi anche non distinti)


• prodotto cartesiano D1×…×Dn:

– l’insieme di tutte le n-uple (d1, …, dn) tali


che d1∈D1, …, dn ∈ Dn

• relazione matematica su D1, …, Dn:


– un sottoinsieme di D1×…×Dn.

• D1, …, Dn sono i domini della relazione


Relazione matematica: proprietà

• una relazione matematica è un insieme di


n-uple ordinate:
– (d1, …, dn) tali che d1∈D1, …, dn ∈ Dn

• una relazione è un insieme dove:


– non c'è ordinamento fra le n-uple
– le n-uple sono distinte
– ciascuna n-upla è ordinata: l’ i-esimo valore
proviene dall’i-esimo dominio
Relazione matematica: esempio

Partite ⊆ stringa × stringa × intero × intero

Juve Lazio 3 1
Lazio Milan 2 0
Juve Roma 0 2
Roma Milan 0 1
• Ciascuno dei domini ha ruoli diversi,
distinguibili attraverso la posizione:

– La struttura è posizionale
Struttura non posizionale

• A ciascun dominio si associa un nome unico nella


tabella (attributo), che ne descrive il "ruolo"

Casa Fuori RetiCasa RetiFuori


Juve Lazio 3 1
Lazio Milan 2 0
Juve Roma 0 2
Roma Milan 0 1
Struttura non posizionale (2)
Casa Fuori RetiCasa RetiFuori
Juve Lazio 3 1
Lazio Milan 2 0
Juve Roma 0 2
Roma Milan 0 1
Schema di relazione

• Uno schema di relazione R : {T} è una


coppia formata dal nome di una relazione
R e da un tipo relazione T
Definizione Tipo Relazione
• Interi, Reali, Booleani, Stringhe sono tipi primitivi

• Siano T1, T2, …, Tn tipi primitivi e A1, A2, …, An


etichette, dette attributi, allora
(A1 :T1 , A2 :T2 , …, An :Tn) è un tipo n-upla di grado n

• Se T è un tipo n-upla allora {T} è un tipo relazione


(tipo insieme di n-uple)
Schema Relazionale

• Uno Schema Relazionale è costituito da:


– un insieme di schemi di relazione
Ri : {Ti}, i=1, 2,…, k
– un insieme di vincoli di integrità relativi a tali
schemi.

• Lo schema relazionale costituisce l’aspetto


intensionale
Aspetto estensionale

• Una n-upla t = (A1:= v1, A2:= v2,…, An:= vn) di


tipo (A1 :T1 , A2 :T2 , …, An :Tn) è un insieme di
coppie (Ai , vi) con vi di tipo Ti.

• Una Relazione R di tipo


{(A1 :T1 , A2 :T2 , …, An :Tn)} è un insieme finito
di n-uple di tipo (A1 :T1 , A2 :T2 , …, An :Tn).

• La cardinalità di una relazione è il numero di n-


uple
Esempio di relazione

Nome Matricola Indirizzo Telefono


Mario Rossi 123456 Via Etnea 18 777777
Maria Bianchi 234567 Via Roma 2 888888
Giovanni Verdi 345678 Via Etnea 18 999999
Enzo Gialli 456789 Via Catania 3 444444

• E’ una relazione di tipo


{(Nome : Stringa, Matricola : intero,
Indirizzo : Stringa, Telefono : intero )}

• Ciascuna riga è una n-upla della relazione.


Esempio di schema relazionale
{
Studenti : { (Nome : stringa, Matricola : intero(6),
Indirizzo : stringa, Telefono :intero(6)) }

Esami : { (Corso : stringa, Matricola : intero(6), Voto: {18,19,…,30}) }

Corsi : { (Corso: stringa, Professore: stringa) }


}

• Si abbrevia (se non interessa riportare il tipo degli attributi) in:

– Studenti (Nome, Matricola, Indirizzo, Telefono);


– Esami (Corso, Matricola, Voto);
– Corsi (Corso, Professore);
Dominio di un attributo

• dom(Ai) è l’insieme dei possibili valori


dell’attributo Ai

• Esempio: nella tabella

Esami(Corso, Matricola, Voto)

dom(Voto) = {18,19,…,30}
Vincoli di integrità

• I vincoli di integrità servono a migliorare la qualità


delle informazioni contenute nella base di dati

• Un vincolo è un predicato che deve essere soddisfatto


da ogni n-upla nella base di dati

• Un’istanza valida di uno schema di relazione è una


relazione dello schema che soddisfa tutti i vincoli di
integrità.
Esempio di vincoli d’integrità
• Il voto deve essere compreso tra 18 e 30

• La lode può apparire solo se voto =30

• Ogni studente deve avere un numero di matricola

• Il numero di matricola di uno studente deve essere


univoco

• Esami dati devono fare riferimento solo a corsi


offerti
Vincoli d’integrità

• I tre tipi più importanti


specificano:

1. Quali attributi non possono


Vincoli
assumere il valore NULL Intrarelazionali
2. Quali attributi sono chiave

1. Quali attributi sono chiavi Vincolo


esterne Interrelazionale
Esempio di valori nulli

Nome Matricola Indirizzo Telefono


Mario Rossi 123456 Via Etnea 18 777777
Maria Bianchi 234567 Via Roma 2 888888
Giovanni Verdi 345678 NULL 999999
Enzo Gialli 456789 Via Catania 3 NULL
Chiavi

• Un insieme X di attributi di uno schema di


relazione R è una superchiave dello schema se
ogni istanza valida dello schema non contiene
due n-uple distinte t1 e t2 con t1[X] = t2[X]

• Una chiave è una superchiave minimale


rispetto alla relazione ⊆ (non contiene un’altra
superchiave).
Esempi di chiavi
• La coppia {Nome, Matricola} è una superchiave ma non
è una chiave, infatti

• {Matricola} è una chiave

Nome Matricola Indirizzo Telefono


Mario Rossi 123456 Via Etnea 18 777777
Maria Bianchi 234567 Via Roma 2 888888
Giovanni Verdi 345678 Via Etnea 18 999999
Enzo Gialli 456789 Via Catania 3 444444
Un’altra chiave
• L’attributo {Nome} è una chiave?

• Sì, in questa istanza..

• Ma è sempre vero?

Nome Matricola Indirizzo Telefono


Mario Rossi 123456 Via Etnea 18 777777
Maria Bianchi 234567 Via Roma 2 888888
Giovanni Verdi 345678 Via Etnea 18 999999
Enzo Gialli 456789 Via Catania 3 444444
Esistenza delle chiavi

• Una relazione non può contenere n-uple


distinte ma uguali

• Ogni relazione ha come superchiave


l’insieme degli attributi su cui è definita
e quindi ha (almeno) una chiave
Importanza delle chiavi

• L’esistenza delle chiavi garantisce


l’accessibilità a ciascun dato della base di
dati

• Le chiavi permettono di correlare i dati in


relazioni diverse:
– Il modello relazionale è basato su valori
Chiavi e valori nulli

• In presenza di valori nulli, i valori della


chiave non permettono:
– di identificare le n-uple
– di realizzare facilmente i riferimenti da altre
relazioni
Chiave primaria
• La Chiave Primaria è una delle chiavi scelta
per un dato schema.
• Non ammette valori NULL
• Notazione: Sottolineatura
Nome Matricola Indirizzo Telefono
Mario Rossi 123456 Via Etnea 18 777777
Maria Bianchi 234567 Via Roma 2 888888
Giovanni Verdi 345678 Via Etnea 18 999999
Enzo Gialli 456789 Via Catania 3 444444
Chiavi esterne

• Un insieme di attributi {A1, A2 , …, An} di


uno schema di relazione R è una chiave
esterna che riferisce una chiave primaria
{B1, B2 , …, Bn} di un altro schema S se in
ogni istanza valida della base di dati, per
ogni n-upla r dell’istanza di R esiste una
n-upla s (riferita da r) dell’istanza di S
tale che r.Ai = s.Bi per i=1,…n.
Esempio di chiave esterna
Esami
Notazione chiave esterna: Corso Matricola Voto
Sottolineatura tratteggiata
Programmazione 1 345678 27
Architettura 123456 30
Matematica discreta 234567 19
Basi di Dati 345678 28

Studenti
Nome Matricola Indirizzo Telefono
Mario Rossi 123456 Via Etnea 18 777777
Maria Bianchi 234567 Via Roma 2 888888
Giovanni Verdi 345678 Via Etnea 18 999999
Enzo Gialli 456789 Via Catania 3 444444
Esempio di chiave esterna
Esami
Corso Matricola Voto
Programmazione 1 345678 27
Architettura 123456 30
Matematica discreta 234567 19
Algoritmi 345678 28

Corsi
Corso Professore
Architettura Barbanera
Programmaizione 1 Cincotti
Matematica discreta Milici
Algoritmi Cantone
Esercizi
1. Individuare le chiavi e i vincoli di integrità referenziale che sussistono
nella seguente basi di dati. Individuare anche quali attributi possano
ammettere valori nulli.
Pazienti Ricoveri
Cod. Cognome Nome Paz. Inizio Fine Rep
A102 Necchi Luca A102 2/5/11 9/5/11 A
B372 Rossini Piero A102 2/12/11 2/1/12 A
B543 Missoni Nadia S555 25/4/11 3/5/11 B
B444 Missoni Luigi B444 1/12/11 2/1/12 B
S555 Rossetti Gino S555 5/10/11 1/11/11 A

Medici
Matr. Cogn. Nome Rep
203 Neri Piero A
Reparti
574 Bisi Mario B
Cod. Nome Primario
461 Bargio Sergio B
A Chirurgia 203
530 Belli Nicola C
B Pediatria 574
405 Mizzi Nicola A
C Medicina 530
501 Monti Mario A
Esercizi
1. Definire uno schema relazionale per organizzare le informazioni di
un’azienda che ha impiegati (ognuno con codice fiscale, cognome, nome e
data di nascita), filiali (con codice, sede e direttore, che è un impiegato).
Ogni lavoratore lavora presso una filiale. Indicare le chiavi e i vincoli di
integrità referenziale dello schema. Mostrare un’istanza della base di dati
e verificare che soddisfa i vincoli.
Esercizi
1. Un albero genealogico rappresenta, in forma grafica, la struttura di una
famiglia (o più famiglie, quando è ben articolato). Mostrare come si possa
rappresentare, in una base di dati relazionale, un albero genealogico,
cominciando eventualmente da una struttura semplificata, in cui si
rappresentano solo le discendenze in linea maschile (cioè i figli vengono
rappresentati solo per i componenti di sesso maschile) oppure solo quelle
in linea femminile.

Potrebbero piacerti anche