Sei sulla pagina 1di 20

Modello Relazionale 1

La progettazione logica
Il modello relazionale
Modello Relazionale 2
Nel modello relazionale una base di dati vista
come un insieme di tabelle manipolabili
mediante opportune operazioni
Si chiama modello relazione perch fondato
sul concetto matematico di relazione tra insiemi
di oggetti
Fondamenti del modello relazionale
Modello Relazionale 3
Consideriamo i due insiemi A1= {4,9,16} e A2= {2,3}.
Si dice prodotto cartesiano di A1 e A2, e si indica con A1XA2, linsieme delle
coppie (x,y) dove x appartiene ad A1 e y appartiene ad A2.
Ne segue che:
A1XA2 = {(x,y) | x A1, y A2} = {(4,2), (4,3), (9,2), (9,3), (16,2), (16,3)}
Fondamenti del modello relazionale
Alcune delle coppie che compongono il prodotto cartesiano sembrano
essere pi significative di altre; in particolare il sottinsieme Q, composto
dalle coppie di valori (x,y) dove x il quadrato di y:
Q = {(4,2), (9,3) } A1XA2
rappresenta la relazione tra coppie (x,y) che pu essere descritta con
la frase: x il quadrato di y. Si pu quindi definire una relazione sui
due insiemi A1 e A2 come un sottoinsieme del prodotto cartesiano
A1XA2

Modello Relazionale 4
Definizione:
Una relazione su n insiemi A
1
, A
2
, , A
n
un
sottoinsieme di tutte le n-uple a
1
, a
2
, a
3
, .., a
n
che si
possono costruire prendendo nellordine un elemento
a
1
dal primo insieme A
1
, a
2
dal secondo insieme A
2
e
cos via.
Fondamenti del modello relazionale
n-uple = elenco di n oggetti
Modello Relazionale 5
Esempio
Consideriamo il mondo dellautomobile in cui vi sono gli insieme
Modello e Costruttore, cos definiti:
Modello = { Panda, Idea, C2, C3 }, Costruttore = { Citroen, Fiat}
Mettendo in relazione ogni elemento di Modello con ogni elemento
di Costruttore otteniamo le seguenti otto coppie ( si dice fare il
prodotto cartesiano fra linsieme Modello e linsieme Costruttore):
( Panda, Citroen ) ( Idea, Citroen ) ( C2, Citroen ) ( C3, Citroen )
( Panda, Fiat ) ( Idea, Fiat ) ( C2, Fiat ) ( C3, Fiat )
Fondamenti del modello relazionale
Modello Relazionale 6
Consideriamo ora il sottoinsieme che ha significato formato dai
quattro elementi e lo chiamiamo ProdottoDa:
{ ( Panda, Fiat ), ( Idea, Fiat ), ( C2, Citroen ), ( C3, Citroen ) }
La relazione ProdottoDa pu essere
rappresentata mediante una tabella
composta da tante righe quante sono gli
elementi della relazione e da due colonne,
per rappresentare, ordinatamente il valore
del primo e del secondo elemento delle
coppie che compongono la relazione.
Modello Costruttore
C2 Citroen
C3 Citroen
Panda Fiat
Idea Fiat
ProdottoDa
Fondamenti del modello relazionale
Modello Relazionale 7
Una relazione con n-colonne si indica come una relazione di grado n, il
nome con il quale si indica una colonna si chiama attributo, linsieme
dei valori che possono essere assunti da un attributo definisce il
dominio di quellattributo, e il numero delle n-uple che compongono la
tabella (indicate anche con il termine tuple) si chiama cardinalit della
relazione.
La relazione ProdottiDa dellesempio precedente una relazione di
grado 2 e cardinalit 4.
Fondamenti del modello relazionale
Nella terminologia corrente dei database relazionali, si usano spesso
anche i termini record e campo al posto di n-upla e attributo. Il termine
tabella viene usato come sinonimo di relazione.
Modello Relazionale 8
Esaminiamo una relazione pi complessa, la relazione automobili, nella
quale evidenziata una n-upla:
La relazione viene rappresentata con una tabella, avente tante colonne
quanti sono i domini (grado della relazione) e tante righe quante sono le
n-uple (cardinalit della relazione).
Modello Costruttore Segmento Porte Posti
Focus Ford C 3/5 5
Panda Fiat B 5 4
147 Alfa Romeo C 3/5 5
Idea Fiat C 5 5
C2 Citroen B 3 4
C3 Citroen C 5 5
Punto Fiat B 3/5 5
Fondamenti del modello relazionale
Modello Relazionale 9
Relazione
Fondamenti del modello relazionale
I nomi dei domini sono i nomi delle colonne, i valori che compaiono in
una colonna sono omogenei tra loro, cio appartengono a uno stesso
dominio.
La relazione quindi una collezione di n-uple, ciascuna delle quali
contiene i valori di un numero prefissato di colonne.
Modello Relazionale 10
La chiave della relazione un attributo o una combinazione minimale
di attributi che identificano univocamente le n-uple allinterno della
relazione, cio ogni riga della tabella possiede valori diversi per
lattributo (o gli attributi) chiave.
Seguendo una notazione ormai consolidata, si rappresenta una tabella
mediante il suo schema, secondo una scrittura del tipo:
Automobili (Modello, Costruttore, Segmento, Porte, Posti)
Fondamenti del modello relazionale
La relazione rappresenta unentit, ogni n-upla rappresenta unistanza
dellentit, le colonne contengono i valori assunti dagli attributi
dellentit.
Modello Relazionale 11
Le tabelle seguenti mostrano le relazioni del database definito dallo
schema:
Reparti (CodReparto, NomeReparto)
Prodotti (CodProdotto, Descrizione, Prezzo, CodReparto)
Vendite (Numero, Data, Quantit, CodProdotto)
CodProdotto Desrizione Prezzo CodReparto
Anan Ananas sciroppato 1,13 AlimSca
Can1 Mangime misto 0,55 Can
Cing Bocconcini di cinghiale 5,00 AlimSur
Fag Fagioli Borlotti 0,60 AlimSca
FarBia Farina 00 0,90 AlimSca
FarGia Farina bramata 0,99 AlimSca
Gatto1 Pat di salmone 0,65 Gat
Prodotti
Numero Data Quantit CodProdotto
1 05/09/2005 2 Anan
2 05/09/2005 1 Cing
3 05/09/2005 2 Fargia
4 06/09/2005 1 Gatto1
5 12/09/2005 1 Fag
6 12/09/2005 2 Can1
7 12/09/2005 2 Anan
8 12/09/2005 5 FarBia
9 12/09/2005 1 Can1
Vendite
CodReparto NomeReparto
AlimFr Alimentari Freschi
AlimSca Alimentari scatola
AlimSur Alimenti Surgelati
Can Cibo per cani
Gat Cibo per gatti
Reparti
Fondamenti del modello relazionale
Modello Relazionale 12
I Requisiti fondamentali che caratterizzano il modello relazionale
sono:
a. tutte le righe della tabella contengono lo stesso numero di colonne,
corrispondenti agli attributi;
b. gli attributi rappresentano informazioni elementari (o atomiche), non
scomponibili ulteriormente, cio non ci sono campi di gruppo che
contengono per ogni riga un insieme di valori anzich un solo valore;
c. i valori assunti da un campo appartengono al dominio dei valori possibili
per quel campo, e quindi sono valori omogenei tra loro, cio sono dello
stesso tipo;
d. in una relazione, ogni riga diversa da tutte le altre, cio non ci possono
essere due righe con gli stessi valori dei campi: questo significa che
esiste un attributo o una combinazione di pi attributi che identificano
univocamente la n-upla, e che assumono perci la funzione di chiave
primaria della relazione;
e. le n-uple compaiono nella tabella secondo un ordine non prefissato,
cio non rilevante il criterio con il quale le righe sono sistemate nella
tabella.
Fondamenti del modello relazionale
Modello Relazionale 13
Dal modello concettuale ( lo schema E/R) possiamo ottenere il modello logico
dei dati mediante alcune semplici regole di derivazione:
1. ogni entit diventa una relazione;
2. ogni attributo di un'entit diventa un attributo della relazione, cio il nome
di una colonna della tabella;
3. ogni attributo della relazione eredita le caratteristiche dell'attributo
dell'entit da cui deriva;
4. l'identificatore univoco di un'entit diventa la chiave primaria della
relazione derivata;
5. l'associazione uno a uno diventa un'unica relazione che contiene gli
attributi della prima e della seconda entit;
Modello concettuale Modello logico
Ottenere le relazioni dal modello E/R
Modello Relazionale 14
6. l'associazione uno a molti viene rappresentata aggiungendo, agli attributi
dell'entit che svolge il ruolo a molti, l'identificatore univoco dell'entit che
svolge il ruolo a uno nell'associazione. Questo identificatore, che prende il
nome di chiave esterna (foreign key) dell'entit associata, costituito
dall'insieme di attributi che compongono la chiave dell'entit a uno
dell'associazione. Gli eventuali attributi dell'associazione vengono inseriti
nella relazione che rappresenta l'entit a molti, assieme alla chiave
esterna.
7. l'associazione molti a molti diventa una nuova relazione (in aggiunta alle
relazioni derivate dalle entit) composta dagli identificatori univoci delle
due entit e dagli eventuali attributi dell'associazione. La chiave della
nuova relazione formata dall'insieme di attributi che compongo le chiavi
delle due entit, oltre agli attributi dell'associazione necessari a garantire
I'unicit delle n-uple nella relazione ottenuta.
Ottenere le relazioni dal modello E/R
Modello Relazionale 15
Lassociazione uno a uno del modello concettuale viene tradotta in ununica
relazione che contiene gli attributi della prima e della seconda entit
Anagrafica (CodiceFiscale, Cognome, Nome, DataNascita, LuogoNascita)
Relazione Attributo Chiave Formato Dimensione
AnagrafiTributarie CodiceFiscale PK carattere 16
Cognome carattere 30
Nome carattere 25
DataNascita data/ora 8
LuogoNascita carattere 20
Ottenere le relazioni dal modello E/R
Esempio: associazione uno a uno
Codice fiscale Cittadino
1 1
Corrisponde
Ottenere le relazioni dal modello E/R
Esempio: associazione uno a uno
Ottenere le relazioni dal modello E/R
Esempio: associazione uno a uno
Modello Relazionale 16
Contratti (Codice, Descrizione, StipendioBase, DataScadenza)
Dipendenti (Matricola, Cognome, Nome, Indirizzo, Qualifica)
Contratto
Dipendente
Applicare
1
N
Si costruiscono due relazioni Contratti e Dipendenti con gli attributi delle corrispondenti
entit. Viene aggiunta una chiave esterna alla tabella Dipendenti, costituita dallinsieme degli
attributi che formano la chiave primaria di Contratti.
Relazione Attributo Chiave Formato Dimensione
Contratti Codice PK numerico 3
Descrizione carattere 30
StipendioBase numerico 10
DataScadenza data/ora 8
Dipendenti Matricola PK carattere 7
Cognome carattere 30
Nome carattere 25
Indirizzo carattere 30
Qualifica carattere 10
CodiceContratto FK numerico 3
Ottenere le relazioni dal modello E/R
Esempio: associazione uno a molti
Codice {PK}
Descrizione
StipendioBase
DataScadenza
Matricola {PK}
Cognome
Nome
Indirizzo
Qualifica
Dipendenti (Matricola, Cognome, Nome, Indirizzo, Qualifica, CodiceContratto)
Modello Relazionale 17
In generale dal modello concettuale vengono derivate le relazioni che
rappresentano le entit e lassociazioni uno a molti viene tradotta aggiungendo
agli attributi dellentit a molti la chiave dellentit a uno e gli attributi
dellassociazione
Persone (CodiceFiscale, Nome, Cognome, DataNascita, Indirizzo)
Persona
Codice fiscale {PK}
Nome
Cognome
DataNascita
Indirizzo
Automobile
Targa {PK}
Modello
Produttore
Cilindrata
PrezzoListino
DataAcquisto
PrezzoAcquisto
Acquistare
1
N
Ottenere le relazioni dal modello E/R
Esempio: associazione uno a molti
Automobili (Targa, Modello, Produttore, Cilindrata, PrezzoListino,
CodiceFiscale, DataAcquisto, PrezzoAcquisto)
Modello Relazionale 18
Accanto alle tabelle Docenti e Classi viene creata una nuova relazione,
chiamata Insegnare, il cui record contiene gli attributi chiave delle due entit
considerate. Poich I'associazione caratterizzata dalla presenza di un
attributo, la nuova tabella contiene, oltre alle chiavi delle due entit correlate,
anche I'attributo NumeroOre che indica le ore di insegnamento del docente in
una classe, che non attributo ne di Docenti, ne di Classi, ma
dell'associazione: esso diventa un campo di Insegnare.
Docenti (CodiceDocente, Nome, Qualifica, Materia)
Classi (SiglaClasse, NumeroAlunni, Aula)
Insegnare (CodiceDocente, SiglaClasse, NumeroOre)
Docente
CodiceDocente {PK}
Nome
Cognome
Qualifica
Materia
Classe
SiglaClasse {PK}
NumeroAlunni
Aula
NumeroOre
Insegnare
N
N
Ottenere le relazioni dal modello E/R
Esempio: associazione molti a molti
Modello Relazionale 19
Bisogna identificare la chiave primaria della nuova relazione: nel caso in esame la coppia di
attributi CodiceDocente, SiglaClasse sufficiente per identificare univocamente una riga di
Insegnare, in quanto nella tabella un docente compare una sola volta per una data classe.
Ma non sempre cos, come si pu osservare nel seguente esempio.
Consideriamo le entit Studente, Materia e I'associazione Valutare di tipo molti a molti. II
diagramma E/R, riportato sotto, evidenzia gli attributi delle due entit e dell'associazione.
Per fissare le idee inquadriamo il problema nel contesto di una specifica classe e di un solo
anno scolastico.
Applicando le regole di derivazione si ottengono le relazioni definite dai
seguenti schemi:
Studenti (Matricola, Nome, Cognome, Indirizzo, Telefono)
Materie (CodiceMateria, NomeMateria, NumeroOre)
Valutazioni (Matricola, CodiceMateria, Data, Voto)
Ottenere le relazioni dal modello E/R
Esempio: associazione molti a molti
Modello Relazionale 20
In generale, nel caso dell'associazione molti a molti, vengono derivate le
relazioni corrispondenti alle entit e I'associazione viene tradotta con una terza
relazione contenente le chiavi delle due entit e gli eventuali attributi
dell'associazione.
Resta da stabilire quale sia I'insieme minimo di attributi che permette di distinguere tra le
n-uple di Valutazioni. La coppia di attributi Matricola, CodiceMateria non risponde a
questa esigenza in quanto, nel corso dell'anno, uno studente viene valutato pi di una
volta nella medesima materia. Nell'ipotesi che uno studente non possa essere valutato
nella medesima materia nello stesso giorno, la chiave primaria di Valutazioni formata
dall'insieme di tre attributi: Matricola, CodiceMateria, Data.
Ottenere le relazioni dal modello E/R
Esempio: associazione molti a molti