il modello relazionale - ing.unipi.ita080066/didattica/bd/3 - modello relazionale.pdf · il modello...

67
Il modello Relazionale [email protected]

Upload: lamquynh

Post on 14-Jul-2019

235 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Il modello Relazionale - ing.unipi.ita080066/didattica/BD/3 - Modello relazionale.pdf · Il Modello Relazionale •Il modello Relazionale è il modello logico oggi più usato dai

Il modello Relazionale

[email protected]

Page 2: Il modello Relazionale - ing.unipi.ita080066/didattica/BD/3 - Modello relazionale.pdf · Il Modello Relazionale •Il modello Relazionale è il modello logico oggi più usato dai

Sommario

• Il modello Relazionale per la progettazione logica• Definizione di modello relazionale

• Vincoli di integrità

• Traduzione dal modello ER al modello relazionale

Page 3: Il modello Relazionale - ing.unipi.ita080066/didattica/BD/3 - Modello relazionale.pdf · Il Modello Relazionale •Il modello Relazionale è il modello logico oggi più usato dai

Progettazione Logica

• Effettuata una progettazione concettuale della base di dati si passa alla progettazione logica della stessa

• A partire dalla descrizione dei dati che la base di dati dovrà memorizzare al suo interno, la progettazione logica definisce come questi dati verranno memorizzati usando le astrazioni fornite dalla tipologia di DBMS adottata

• Non si deve conoscere il particolare tipo di DBMS che verrà usato ma si deve conoscerne la tipologia, in particolare il modello logico che questo adotterà

Page 4: Il modello Relazionale - ing.unipi.ita080066/didattica/BD/3 - Modello relazionale.pdf · Il Modello Relazionale •Il modello Relazionale è il modello logico oggi più usato dai

Il modello relazionale: un po’ di storia▪ Proposto da E. Codd nel 1970 per favorire

l’indipendenza dei dati

▪ Disponibile come modello logico in DBMS reali nel 1981 (non è facile realizzare l’indipendenza con efficienza e affidabilità)

▪ agli albori dei DBMS, i modelli reticolare e gerarchico erano più usati

▪ Lo sviluppo della teoria relazionale dei dati e lo sviluppo di efficienti tecnologie implementativi hanno reso i DB relazionali lo standard dei DB commerciali attuali nell’ambito dei sistemi informativi▪ Oracle, DB2, Informix, Access, SQLServer, MySQL sono tutti

DB relazionali

Page 5: Il modello Relazionale - ing.unipi.ita080066/didattica/BD/3 - Modello relazionale.pdf · Il Modello Relazionale •Il modello Relazionale è il modello logico oggi più usato dai

Il Modello Relazionale

• Il modello Relazionale è il modello logico oggi più usato dai database commerciali comuni

• Tale modello si basa sul concetto matematico di Relazione (che va intesa in senso algebrico)• Tale concetto di relazione non va confuso con il concetto

di relazione tra i dati del modello concettuale

• Ogni relazione è rappresentata graficamente sotto forma di tabella

• Un database viene rappresentato nel modello relazionale come una collezione di tabelle, a ciascuna delle quali è assegnato un nome unico

Page 6: Il modello Relazionale - ing.unipi.ita080066/didattica/BD/3 - Modello relazionale.pdf · Il Modello Relazionale •Il modello Relazionale è il modello logico oggi più usato dai

Il modello relazionale rispetto agli altri modelli• Nel modello relazionale l’associazione fra tabelle è

realizzata tramite valori• nei modelli reticolare e gerarchico l’associazione è

realizzata in modo esplicito tramite riferimenti (puntatori)

• I vantaggi del modello relazione (associazione tramite valore) sono:• Nel modello relazionale non si fa riferimento ad aspetti fisici

(lo sono i puntatori) e dunque si realizza l’indipendenza del modello logico da quello fisico

• Sono rappresentate solo le informazioni rilevanti per l’utente (i puntatori sono informazioni addizionali legati ad aspetti realizzativi, che non riguardano l’organizzazione dei dati)

• È più facile realizzare la migrazione da un sistema ad un altro

Page 7: Il modello Relazionale - ing.unipi.ita080066/didattica/BD/3 - Modello relazionale.pdf · Il Modello Relazionale •Il modello Relazionale è il modello logico oggi più usato dai

Un po’ di ambiguità

• Utilizzo di relazione• Relazione matematica nel modello relazionale

• Associazione fra entità nel modello E-R

• In inglese non è ambiguo perché:• Relazione matematica è relation

• L’associazione è relationship

• Attenzione a non confondere i due concetti

Page 8: Il modello Relazionale - ing.unipi.ita080066/didattica/BD/3 - Modello relazionale.pdf · Il Modello Relazionale •Il modello Relazionale è il modello logico oggi più usato dai

Costrutti fondamentali

• I costrutti fondamentali del modello relazionale sono i seguenti:• Relazione/Tabella

• Attributo/Colonna

• Dominio

• Tupla/Riga

Page 9: Il modello Relazionale - ing.unipi.ita080066/didattica/BD/3 - Modello relazionale.pdf · Il Modello Relazionale •Il modello Relazionale è il modello logico oggi più usato dai

Relazione MatematicaSiano D1, D2, …, Dn (n insiemi anche non distinti)

Prodotto cartesiano D1×D2×…×Dn:

• l’insieme di tutte le tuple ordinate (d1, d2, …, dn) tali che d1∈D1, d2 ∈D2, …, dn∈Dn

Relazione matematica R 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 tuple (ossia il numero di elementi o di «righe») è la cardinalità della relazione.

Page 10: Il modello Relazionale - ing.unipi.ita080066/didattica/BD/3 - Modello relazionale.pdf · Il Modello Relazionale •Il modello Relazionale è il modello logico oggi più usato dai

Relazione matematica: proprietà

• una relazione matematica è un insieme di n-upleordinate rispetto ai domini:• (d1, …, dn) tali che d1D1, …, dn Dn

• La prima componente deriva dal primo dominio, etc

• una relazione è un insieme: • non c'è ordinamento fra le n-uple

• 2 tabelle con le stesse righe ma con ordinamento diverso rappresentano la stessa relazione

• le n-uple sono distinte• Due n-ple (tuple) non possone essere uguali

• ciascuna n-upla è ordinata: l’ i-esimo valore proviene dall’ i-esimo dominio

Page 11: Il modello Relazionale - ing.unipi.ita080066/didattica/BD/3 - Modello relazionale.pdf · Il Modello Relazionale •Il modello Relazionale è il modello logico oggi più usato dai

Relazione - Esempio

Relazione R ⊆ D1 × D2Prodotto Cartesiano D1 × D2

0 2

0 3

1 2

1 3

0 2

1 3R =

D1 = {0,1}

D2 = {2,3}

D1 x D2 =

• La rappresentazione grafica di una relazione avviene sotto forma

tabellare

• Una tabella è un sottoinsieme del prodotto cartesiano fra i domini delle sue

colonne

• I valori delle colonne di una tabella appartengono a dei domini

Page 12: Il modello Relazionale - ing.unipi.ita080066/didattica/BD/3 - Modello relazionale.pdf · Il Modello Relazionale •Il modello Relazionale è il modello logico oggi più usato dai

Relazione e rappresentazione dell’informazione• Si consideri la relazione partite

• Una possibile istanza della relazione partita (rappresentata come tabella)

• Cosa rappresenta?

Partite string × string × int × int

3200

1021

JuveLazioJuveRoma

LazioMilanRomaMilan

Page 13: Il modello Relazionale - ing.unipi.ita080066/didattica/BD/3 - Modello relazionale.pdf · Il Modello Relazionale •Il modello Relazionale è il modello logico oggi più usato dai

Struttura posizionale e non posizionale -• Ciascuno dei domini ha due ruoli diversi, distinguibili

attraverso la posizione:• La struttura è posizionale

• Se si scambiano le colonne 3 e 4 , la tabella precedente ha tutto un altro significato.

• Attributi: A ciascun dominio si associa un nome unico nella tabella (attributo), che ne descrive il "ruolo„• La struttura diventa non posizionale

• Gli attributi possono essere scambiati, senza alterare il significato della relazione

Page 14: Il modello Relazionale - ing.unipi.ita080066/didattica/BD/3 - Modello relazionale.pdf · Il Modello Relazionale •Il modello Relazionale è il modello logico oggi più usato dai

Struttura non posizionale con attributi

1021

3200

JuveLazioJuveRoma

LazioMilanRomaMilan

RetiFuori RetiCasaCasa Fuori

3200

1021

JuveLazioJuveRoma

LazioMilanRomaMilan

RetiCasa RetiFuoriCasa Fuori

• Tabella con attributi scambiati

• Non cambia il significato

Page 15: Il modello Relazionale - ing.unipi.ita080066/didattica/BD/3 - Modello relazionale.pdf · Il Modello Relazionale •Il modello Relazionale è il modello logico oggi più usato dai

Tabelle e Relazioni

• In una tabella (relazione matematica con l’estensione degli attributi come domini con nome) che rappresenta una relazione

• l’ordinamento tra le righe è irrilevante

• l’ordinamento tra le colonne è irrilevante

• Una tabella rappresenta una relazione se

• le righe sono diverse fra loro

• le intestazioni delle colonne sono diverse tra loro

• i valori di ogni colonna sono fra loro omogenei

Page 16: Il modello Relazionale - ing.unipi.ita080066/didattica/BD/3 - Modello relazionale.pdf · Il Modello Relazionale •Il modello Relazionale è il modello logico oggi più usato dai

Schema di una relazione

• Nel modello logico relazionale la Relazione Matematica è adottata per rappresentare uno o più oggetti di una realtà di interesse

• Consiste in uno Schema e in una Istanza

• Lo Schema definisce la struttura di una relazione attraverso:• Il nome della relazione (il nome della tabella)

• L’insieme dei domini della relazione

• I nomi assegnati a ciascun dominio (detti attributi) che descrivono il ruolo giocato dal dominio stesso

Page 17: Il modello Relazionale - ing.unipi.ita080066/didattica/BD/3 - Modello relazionale.pdf · Il Modello Relazionale •Il modello Relazionale è il modello logico oggi più usato dai

Istanza di una relazione• L’istanza di una relazione (o semplicemente

relazione) è una tabella riempita secondo il suo schema – è l’insieme di righe che popolano la tabella

• Le righe di una tabella si chiamano tuple o record

• Le colonne della tabella corrispondono agli attributi

• Il contenuto di un’istanza di una relazione NON dipende dall’ordinamento delle tuple stesse

• All’interno della relazione non sono ammesse tupleuguali• Sono la stessa dupla

Page 18: Il modello Relazionale - ing.unipi.ita080066/didattica/BD/3 - Modello relazionale.pdf · Il Modello Relazionale •Il modello Relazionale è il modello logico oggi più usato dai

Rappresentazione di uno schema e di una istanza di una relazione

Per rappresentare in forma compatta uno schema si

utilizza la seguente notazione:

Impiegati (Matricola, Cognome, Filiale, Stipendio)

Clienti(NomeCliente, Indirizzo)

Matricola Cognome Filiale Stipendio

7309 Rossi Roma 55

5998 Neri Milano 64

9553 Milano Napoli 44

5698 Bianchi Torino 64

2568 Rossi Roma 55Tuple (record, righe)

Nome

Attributi

(campi)

Attributi

(campi, colonne)

Impiegati

Page 19: Il modello Relazionale - ing.unipi.ita080066/didattica/BD/3 - Modello relazionale.pdf · Il Modello Relazionale •Il modello Relazionale è il modello logico oggi più usato dai

Schema di una base di dati e istanza di base di dati• Lo schema di una base di dati è l’insieme degli

schemi di relazioni che lo compongono• I nomi delle relazioni devono essere diversi

• L’istanza di una base di dati (o semplicemente base di dati) è l’insieme delle istanze delle relazioni che lo compongono

Page 20: Il modello Relazionale - ing.unipi.ita080066/didattica/BD/3 - Modello relazionale.pdf · Il Modello Relazionale •Il modello Relazionale è il modello logico oggi più usato dai

Formalmente1:

• Schema di relazione:

un nome R con un insieme di attributi A1, ..., An:

R(A1,..., An)

• Schema di base di dati:

insieme di schemi di relazione:

R = {R1(X1), ..., Rk(Xk)}

Page 21: Il modello Relazionale - ing.unipi.ita080066/didattica/BD/3 - Modello relazionale.pdf · Il Modello Relazionale •Il modello Relazionale è il modello logico oggi più usato dai

Formalmente 2:

• (Istanza di) relazione su uno schema R(X):

insieme r di ennuple su X

• (Istanza di) base di dati su uno schema R= {R1(X1),

..., Rn(Xn):

insieme di relazioni r = {r1,..., rn} (con ri relazione

su Ri)

Page 22: Il modello Relazionale - ing.unipi.ita080066/didattica/BD/3 - Modello relazionale.pdf · Il Modello Relazionale •Il modello Relazionale è il modello logico oggi più usato dai

Esempio con più reazioni:

• Base di dati con schema:• Studenti (Matricola, Cognome, Nome, Data di nascita)

• Esami (Studente, Voto, Corso)

• Corsi (Codice, Titolo, Docente)

Page 23: Il modello Relazionale - ing.unipi.ita080066/didattica/BD/3 - Modello relazionale.pdf · Il Modello Relazionale •Il modello Relazionale è il modello logico oggi più usato dai

Istanza

Matricola Cognome Nome Data di Nascita

276545 Rossi Marco 11/01/1975

253065 Rossi Luca 23/04/1972

243064 Di Martino Gennaro 12/02/1972

Studenti

Studente Voto Corso

276545 25 01

253065 26 03

243064 30 05

Esami

Codice Titolo Docente

01 Analisi Giani

03 Chimica Fantoni

05 Chimica Baggio

Corsi

Che informazioni sono contenute e come estrarle?

Page 24: Il modello Relazionale - ing.unipi.ita080066/didattica/BD/3 - Modello relazionale.pdf · Il Modello Relazionale •Il modello Relazionale è il modello logico oggi più usato dai

Esempio con più relazioni

• Qual è la matricola dello studente Marco Rossi?

• Chi è il docente del corso di analisi?

• Che voto ha preso Marco Rossi

• In che esame?

• I legami fra dati in relazioni diverse vengono rappresentati tramite valori a comune nelle tuple• conseguenze - duplicazioni

Page 25: Il modello Relazionale - ing.unipi.ita080066/didattica/BD/3 - Modello relazionale.pdf · Il Modello Relazionale •Il modello Relazionale è il modello logico oggi più usato dai

Informazioni incomplete e null• Le informazioni all’interno di una tabella devono essere

rappresentate in maniera omogenea attenendosi strettamente al dominio scelto per ciascun attributo

• In alcune casistiche si ha però il bisogno di rappresentare tuple incomplete, in cui alcuni attributi non hanno un valore specificato• Perché non esiste• Perché può esistere ma non si conosce (potrebbe essere nota dopo)

• A tal proposito è introdotto un particolare valore per indicare l’assenza di informazione associato a tale attributo

• Tale valore, detto valore NULL, si aggiunge a quelli di dominio

• Perché estendere il dominio ed invece non usare un valore del dominio?• Potrebbe non esistere (es. Saldo)• Cambierebbe da dominio a dominio, ossia da applicazione (es

matricola – 0 – ma andrebbe documentato)

Page 26: Il modello Relazionale - ing.unipi.ita080066/didattica/BD/3 - Modello relazionale.pdf · Il Modello Relazionale •Il modello Relazionale è il modello logico oggi più usato dai

Esempio di tabella con null

• Altri esempi: il numero di patente potrebbe essere non noto o non esistere perché la persona non ha la patente

Matricola Cognome Nome Data di Nascita

276545 Rossi Marco NULL

253065 Rossi Luca 23/04/1972

243064 Di Martino Gennaro 12/02/1972

Studenti

• Non si conosce la data di nascita dello studente Marco Rossi

Page 27: Il modello Relazionale - ing.unipi.ita080066/didattica/BD/3 - Modello relazionale.pdf · Il Modello Relazionale •Il modello Relazionale è il modello logico oggi più usato dai

Problemi connessi all’utilizzo del null• Troppi valori null possono rendere inconsistente

l’informazione nella base di dati (che diventa inutilizzabile)

Studenti

Matricola Cognome Nome Data di Nascita

NULL Rossi Marco NULL

253065 Rossi Luca 23/04/1972

243064 Di Martino Gennaro NULL

NULL Di Martino Gennaro NULL

• La prima tupla non è identificabile: se si vuole inserire uno studente Mario Rossi, è lo stesso?

• Come identificare la tupla in altre relazioni?

• Le ultime due tuple fanno riferimento o meno allo stesso studente?

Page 28: Il modello Relazionale - ing.unipi.ita080066/didattica/BD/3 - Modello relazionale.pdf · Il Modello Relazionale •Il modello Relazionale è il modello logico oggi più usato dai

Vincoli di Integrità

• Le strutture del modello permettono di definire come i dati verranno organizzati

• In molti casi però non è vero che qualsiasi insieme di tuplerappresentano informazioni corrette per la realtà di interesse

• Al fine di evitare la presenza di tuple composte da informazioni non corrette il modello relazionale permette di definire dei vincoli di integrità sui dati di una relazione, cioè delle proprietà che devono essere soddisfatte dalle istanze

• Un vincolo può essere visto come un predicato che associa ad ogni istanza un valore vero o falso in modo da verificare che ciascuna istanza sia corretta e ammissibile• Istanze corrette o ammissibile sono quelle che soddisfano i vincoli di

integrità• Una istanza è ammissibile se e solo se tutte le tuple soddisfano i

vincoli

Page 29: Il modello Relazionale - ing.unipi.ita080066/didattica/BD/3 - Modello relazionale.pdf · Il Modello Relazionale •Il modello Relazionale è il modello logico oggi più usato dai

Esempio

Matricola Cognome Nome Data di Nascita

276545 Rossi Marco NULL

243064 Rossi Luca 23/04/1972

243064 Di Martino Gennaro 12/02/1972

Studenti

Studente Voto Corso

276545 25 01

200010 26 03

243064 36 05

Esami

Codice Titolo Docente

01 Analisi Giani

03 Chimica Fantoni

05 Chimica Baggio

Corsi

Un’istanza di basi di dati con istanze non corrette

Page 30: Il modello Relazionale - ing.unipi.ita080066/didattica/BD/3 - Modello relazionale.pdf · Il Modello Relazionale •Il modello Relazionale è il modello logico oggi più usato dai

Nota implementativa ai vincoli di integrità• alcuni tipi di vincoli (ma non tutti) sono

"supportati" dai DBMS:• possiamo quindi specificare vincoli di tali tipi nella

nostra base di dati e il DBMS ne impedisce la violazione

• per i vincoli "non supportati", la responsabilità della verifica è dell'utente o del programmatore

Page 31: Il modello Relazionale - ing.unipi.ita080066/didattica/BD/3 - Modello relazionale.pdf · Il Modello Relazionale •Il modello Relazionale è il modello logico oggi più usato dai

Vincoli di integrità

• Esistono diverse tipi di vincoli di integrità.

• Questi possono essere distinti in due categorie a seconda degli elementi di una base di dati coinvolti:• Vincolo Intrarelazionale: sono vincoli il cui

soddisfacimento è definito rispetto alle singole relazioni della base di dati, questi possono riguardare valori di una singola tupla o di più tuple appartenenti alla stessa relazione

• Vincolo Interrelazionale: se il vincolo coinvolge più relazioni

Page 32: Il modello Relazionale - ing.unipi.ita080066/didattica/BD/3 - Modello relazionale.pdf · Il Modello Relazionale •Il modello Relazionale è il modello logico oggi più usato dai

Vincoli intrarelazionali

• Coinvolgono le tuple di una sola relazione• In generale coinvolgono più tuple (o tutte) della

relazione

• Quando coinvolgono una sola tupla indipendentemente dalle altre, si parla di • Vincolo di Tupla: è un vincolo che può essere valutato su

ciascuna tupla indipendentemente dalle altre

• Se poi riguardano il singolo attributo, si parla di• Vincolo di Valore o di Dominio: è un vincolo che impone una

restrizione sul dominio (sui valori) di un singolo attributo

Page 33: Il modello Relazionale - ing.unipi.ita080066/didattica/BD/3 - Modello relazionale.pdf · Il Modello Relazionale •Il modello Relazionale è il modello logico oggi più usato dai

Vincoli di Tupla

• Esprimono condizioni sui valori di ciascuna tuplaindipendentemente dalle altre

• Possono essere espressi tramite espressioni booleane (circa nel significato java) e aritmetiche

Esempio:

In una tabella Esami(STUDENTE,MATERIA,DATA,VOTO,LODE)

la LODE può essere assegnata solo se il VOTO è 30

Vincolo: (LODE = ‘L’) AND (VOTO = 30)

In una tabella Pagamenti(DATA,IMPORTO,RITENUTE,NETTO)

Il netto è pari alla differenza fra l’importo e le ritenute

Vincolo: NETTO = IMPORTO - RITENUTE

Page 34: Il modello Relazionale - ing.unipi.ita080066/didattica/BD/3 - Modello relazionale.pdf · Il Modello Relazionale •Il modello Relazionale è il modello logico oggi più usato dai

Vincoli di Valori o di Dominio

• I valori nelle tuple devono essere del dominio (tipo) specificato nello schema• E’ un Vincolo di base• viene specificato per ogni attributo (alla creazione dello

schema) • riguarda il suo dominio, ovvero che tipo di dati “ha senso” per

quell’attributo• i domini che si possono usare dipendono dal DBMS (Domini

predefiniti)• è possibile definire nuovi Domini

• Vincolo NOT NULL• Impone alle tuple di non avere valori nulli (su uno o più

attributi)

Page 35: Il modello Relazionale - ing.unipi.ita080066/didattica/BD/3 - Modello relazionale.pdf · Il Modello Relazionale •Il modello Relazionale è il modello logico oggi più usato dai

Vincoli di Dominio

• Altri vincoli di dominio possono essere specificati tramite espressioni booleane (circa nel significato java) e aritmetiche

Esempio:

nella tabella Esami(STUDENTE,MATERIA,DATA,VOTO,LODE)

il VOTO deve essere compreso fra 18 e 30 (se si registrano solo gli esami superati)

Vincolo: (VOTO >= 18) AND (VOTO<=30)

Page 36: Il modello Relazionale - ing.unipi.ita080066/didattica/BD/3 - Modello relazionale.pdf · Il Modello Relazionale •Il modello Relazionale è il modello logico oggi più usato dai

Chiavi• Le tuple di una tabella hanno bisogno di un

meccanismo per essere identificate univocamente

• A tal fine per ogni tabella viene definita una Chiave

• Una Chiave è un (sotto) insieme di attributi utilizzato per identificare univocamente le tuple di una relazione

• Un insieme degli attributi è definito superchiave di una relazione se non esistono due tuple distinte con gli stessi valori degli attributi componenti la superchiave nella tabella• Tutti gli attributi di una tabella possono essere

considerati super-chiave in quanto non sono inserite due tuple con valori identici degli attributi

Page 37: Il modello Relazionale - ing.unipi.ita080066/didattica/BD/3 - Modello relazionale.pdf · Il Modello Relazionale •Il modello Relazionale è il modello logico oggi più usato dai

Vincolo di chiave

• Una superchiave è chiave se essa è una superchiaveminimale, cioè non esiste un’altra superchiavecomposta da un sottoinsieme dei suoi attributi che sia ancora superchiave

• Quando tale proprietà è imposta come vincolo alle tuple di uno schema di relazione, si dice che si sta imponendo un vincolo di chiave

• Tra tutte le chiavi di una relazione solitamente viene selezionata la chiave primaria che è una chiave su cui si aggiunge il vincolo di NOT NULL al fine di poter garantire l’identificazione univoca di tutte le tuple, tale vincolo è detto vincolo di chiave primaria• La chiave primaria viene indicata sottolineandola

Page 38: Il modello Relazionale - ing.unipi.ita080066/didattica/BD/3 - Modello relazionale.pdf · Il Modello Relazionale •Il modello Relazionale è il modello logico oggi più usato dai

Esistenza delle chiavi

• Una relazione non può contenere ennuple distinte ma uguali

• Ogni relazione ha quindi come superchiavel’insieme degli attributi su cui è definita

• e quindi ha (almeno) una chiave

Page 39: Il modello Relazionale - ing.unipi.ita080066/didattica/BD/3 - Modello relazionale.pdf · Il Modello Relazionale •Il modello Relazionale è il modello logico oggi più usato dai

Esempio - Chiave

Matricola Cognome Nome Data di

Nascita

Corso

276545 Rossi Marco NULL Ing. Gestionale

253065 Rossi Luca 23/04/1972 Ing. Informatica

243064 Di Martino Luca 12/02/1972 Ing. Informatica

Studenti

• L’insieme {Matricola, Nome, Cognome} è una superchiave• {Nome} non è superchiave : ci sono due tuple distinte con lo stesso nome• {Cogome} non è superchiave : ci sono due tuple distinte con lo stesso cognome• L’insieme {Matricola} è una superchiave. Essa è anche una superchiave minimale che può

essere candidata a chiave primaria in quanto la Matricola difficilmente sarà sconosciuta• L’insieme {Nome, Corso} NON è una superchiave

• L’insieme {Cognome, Corso}, come pure {Cognome, nome} sono superchiavi minimali, però lo sono solo in relazione a questa specifica istanza di tuple, in generale è possibile avere due persone con lo stesso cognome che frequentano lo stesso corso di studi

Page 40: Il modello Relazionale - ing.unipi.ita080066/didattica/BD/3 - Modello relazionale.pdf · Il Modello Relazionale •Il modello Relazionale è il modello logico oggi più usato dai

Importanza delle chiavi

• L’esistenza delle chiavi garantisce l’accessibilità a ciascun dato della base di dati• In particolare garantisce la sua univoca identificabilità

• Le chiavi permettono di correlare i dati in relazioni diverse

Page 41: Il modello Relazionale - ing.unipi.ita080066/didattica/BD/3 - Modello relazionale.pdf · Il Modello Relazionale •Il modello Relazionale è il modello logico oggi più usato dai

Chiavi e valori nulli

• In presenza di valori nulli nella chiave, i valori della chiave non permettono• di identificare le ennuple

• di realizzare facilmente i riferimenti da altre relazioni

Page 42: Il modello Relazionale - ing.unipi.ita080066/didattica/BD/3 - Modello relazionale.pdf · Il Modello Relazionale •Il modello Relazionale è il modello logico oggi più usato dai

esempio• Sono presenti due chiavi

• Matricola

• Cognome, nome, data di nascita

Matricola Cognome Nome Data di Nascita

NULL Rossi Marco NULL

253065 Rossi Luca 23/04/1972

243064 Di Martino Gennaro NULL

NULL Di Martino Gennaro 11/09/1995

Studenti

• La prima tupla presenta null in entrambe le chiavi• Non è identificabile (se inserisco Rossi Marco, è lo stesso?)• Non può essere riferite in altre relazioni

• Le ultime due sono identificabili ma• Rappresentano lo stesso studente?

Page 43: Il modello Relazionale - ing.unipi.ita080066/didattica/BD/3 - Modello relazionale.pdf · Il Modello Relazionale •Il modello Relazionale è il modello logico oggi più usato dai

Esempio – chiave primaria• Matricola si sceglie come chiave primaria

• Non sono ammessi valori null per matricola

Matricola Cognome Nome Data di Nascita

243063 Rossi Marco NULL

253065 Rossi Luca 23/04/1972

243064 Di Martino Gennaro NULL

243100 Di Martino Gennaro 11/09/1995

Studenti

• La prima tupla è identificabile tramite matricola• Un nuovo Marco Rossi avrà una nuova matricola• Può essere riferite in altre relazioni

• Le ultime due tuple si riferiscono a studenti diversi

Page 44: Il modello Relazionale - ing.unipi.ita080066/didattica/BD/3 - Modello relazionale.pdf · Il Modello Relazionale •Il modello Relazionale è il modello logico oggi più usato dai

Riferimenti tra relazioni

Matricola Cognome Nome Data di Nascita

276545 Rossi Marco NULL

253065 Rossi Luca 23/04/1972

243064 Di Martino Gennaro 12/02/1972

Studenti

Studente Voto Corso

276545 25 01

253065 26 03

243064 30 05

EsamiCodice Titolo Docente

01 Analisi Giani

03 Chimica Fantoni

05 Chimica Baggio

Corsi

Una base di dati solitamente è composta da diverse relazioni in cui le varie tuple sono collegatetra di loro attraverso riferimenti (rappresenati da valori).In questo caso la relazione Studenti e Esami sono collegate attraverso gli attributi Studente eMatricola, in particolare le tuple della tabella esami hanno come valore dell’attributo Studentevalori presenti nelle tuple della tabella Studenti nell’attributo Matricola.Essendo questi riferimenti validi (non esiste nessuna tupla della tabella Esami che abbia uncampo studente con un valore non presente nel campo Matricola in una delle tuple della tabellaStudenti) questi sono effettivamente utilizzabili

Page 45: Il modello Relazionale - ing.unipi.ita080066/didattica/BD/3 - Modello relazionale.pdf · Il Modello Relazionale •Il modello Relazionale è il modello logico oggi più usato dai

Vincoli di integrità referenziale• Un vincolo di integrità referenziale o foreign key è un

vincolo interrelazionale che permette di imporre che tali riferimenti fra tabelle siano utilizzabili. In particolare:

Un vincolo di integrità referenziale (detto anche vincolo di “foreign key” o “referential integrityconstraint key” ) fra un insieme di attributi X di una relazione R1 e un’altra relazione R2 impone ai valori su X di ciascuna tupla dell’istanza di R1 di comparire come valori della chiave (primaria) dell’istanza di R2.• devono comparire in una e una sola tupla di R2 avente

• Un legame fra tabelle, per essere corretto, deve sottostare ad un vincolo di integrità referenziale.

Page 46: Il modello Relazionale - ing.unipi.ita080066/didattica/BD/3 - Modello relazionale.pdf · Il Modello Relazionale •Il modello Relazionale è il modello logico oggi più usato dai

Esempio: vincolo di integrità referenziale fra Prov e Numero di Infrazioni e Auto – vincolo corretto InfrazioniCodice

34321

64521

53524

Data

1/2/95

4/3/95

5/4/96

Vigile

3987

3295

3295

Prov Numero

MI

TO

PR

E39548

F34268

839548

Auto Prov Numero

MI

TO

PR

E39548

F34268

839548

Cognome

Rossi

Rossi

Neri

Nome

Mario

Mario

Luca

Page 47: Il modello Relazionale - ing.unipi.ita080066/didattica/BD/3 - Modello relazionale.pdf · Il Modello Relazionale •Il modello Relazionale è il modello logico oggi più usato dai

Esempio: violazione del vincolo di integrità referenzialeInfrazioniCodice

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

Auto Prov Numero

MI

TO

PR

E39548

F34268

839548

Cognome

Rossi

Rossi

Neri

Nome

Mario

Mario

Luca

Page 48: Il modello Relazionale - ing.unipi.ita080066/didattica/BD/3 - Modello relazionale.pdf · Il Modello Relazionale •Il modello Relazionale è il modello logico oggi più usato dai

Conversione di diagrammi ER nel modello relazionale

[email protected]

Page 49: Il modello Relazionale - ing.unipi.ita080066/didattica/BD/3 - Modello relazionale.pdf · Il Modello Relazionale •Il modello Relazionale è il modello logico oggi più usato dai

Conversione modello E-R in Modello Relazionale• Il Modello Relazionale che rappresenta la realtà di

interesse può essere ricavato dal Modello ER attraverso una sequenza di operazioni di conversione.

Page 50: Il modello Relazionale - ing.unipi.ita080066/didattica/BD/3 - Modello relazionale.pdf · Il Modello Relazionale •Il modello Relazionale è il modello logico oggi più usato dai

Traduzione di Entità

• Una relazione (tabella) per ciascuna entità del Modello ER

• utilizzando per i campi gli stessi attributi semplici dell'entità di provenienza

• chiave primaria scelta tra le chiavi candidate

Page 51: Il modello Relazionale - ing.unipi.ita080066/didattica/BD/3 - Modello relazionale.pdf · Il Modello Relazionale •Il modello Relazionale è il modello logico oggi più usato dai

Relazioni• Ad ogni relazione del modello E-R corrisponde una tabella

nel modello relazionale, cui è assegnato il nome della corrispondente relazione del modello E-R

Per le relazioni si deve prima di tutto esaminare la cardinalità: • Le relazioni M:N devono essere tradotte in tabelle che hanno come

attributi gli eventuali attributi della relazione e (da non dimenticare!) le chiavi di entrambe le entità collegate dalla relazione.

• Le relazioni 1:N si possono conglobare nella tabella relativa all'entità dalla parte dell' N. La chiave della tabella dalla parte dell' 1 viene inglobata nella tabella dalla parte dell' N (insieme agli attributi della relazione). Per le cardinalità delle entità, è la chiave della N che si ingloba nella 1 (insieme agli attributi della relazione)

• Le relazioni 1:1 si possono conglobare come le 1:N, a scelta nell'una o nell'altra tabella.

• In tutti i casi, si introduce un vincolo di integrità referenziale.

Page 52: Il modello Relazionale - ing.unipi.ita080066/didattica/BD/3 - Modello relazionale.pdf · Il Modello Relazionale •Il modello Relazionale è il modello logico oggi più usato dai

Impiegato DipartimentoAfferenza

Direzione

DataAfferenza

Cognome

Nome

Stipendio

Nome

Indirizzo

Partecipazione

Progetto

DataInizio

Nome Budget

DataConsegna

(0,1) (1,1)

(1,N)(0,1)

(0,N)

(1,N)

Page 53: Il modello Relazionale - ing.unipi.ita080066/didattica/BD/3 - Modello relazionale.pdf · Il Modello Relazionale •Il modello Relazionale è il modello logico oggi più usato dai

Cognome Nome Stipendio

Rossi Marco 60000

Rossi Luca 50000

Di Martino Luca 20000

Impiegato

Nome Budget DataConsegna

Progetto1 10000 10/10/2016

ProgettoII 20000 02/10/2015

ProgettoIII 1000 02/03/2017

Progetto

Cognome Nome NomeProgetto Data_inizio

Rossi Marco ProgettoI 10/10/2015

Rossi Luca ProgettoI Null

Rossi Marco ProgettoIII Null

Partecipazione

Relazione Partecipazione M:N che lega Impiegato e Progetto

Page 54: Il modello Relazionale - ing.unipi.ita080066/didattica/BD/3 - Modello relazionale.pdf · Il Modello Relazionale •Il modello Relazionale è il modello logico oggi più usato dai

Cognome Nome Stipendio NomeDip DataAfferenza

Rossi Marco 60000 Aereonautica 10/02/1995

Rossi Luca 50000 Chimica 10/05/1996

Di Martino Luca 20000 Aereonautica 22/02/1998

Impiegato

Nome Budget

Aereonautica 1000000

Informatica 2000000

Chimica 100000

Dipartimento

Relazione Afferenza 1:N che lega Impiegato e Dipartimento

Page 55: Il modello Relazionale - ing.unipi.ita080066/didattica/BD/3 - Modello relazionale.pdf · Il Modello Relazionale •Il modello Relazionale è il modello logico oggi più usato dai

Relazione Direzione 1:1 che lega Impiegato e Dipartimento

Cognome Nome Stipendio NomeDip DataAfferenza

Rossi Marco 60000 Aereonautica 10/02/1995

Rossi Luca 50000 Chimica 10/05/1996

Di Martino Luca 20000 Aereonautica 22/02/1998

Verdi Mario 67000 Informatica 22/02/2007

Impiegato

Nome Budget Cogn _dir Nome_dir

Aereonautica 1000000 Rossi Marco

Informatica 2000000 Verdi Mario

Chimica 100000 Rossi Luca

Dipartimento

Page 56: Il modello Relazionale - ing.unipi.ita080066/didattica/BD/3 - Modello relazionale.pdf · Il Modello Relazionale •Il modello Relazionale è il modello logico oggi più usato dai

Entità deboli

• Per ogni entità debole bisogna creare una relazione R (tabella) ereditandone gli attributi.

• Bisogna inoltre includere, come chiave esterna, la chiave primaria dell'entità "proprietaria".

• La chiave primaria di R sarà l'insieme della chiave esterna più la chiave parziale.

Page 57: Il modello Relazionale - ing.unipi.ita080066/didattica/BD/3 - Modello relazionale.pdf · Il Modello Relazionale •Il modello Relazionale è il modello logico oggi più usato dai

Esempio - Entità deboli

• Conto(numero, saldo)

• Transazione(numero, numTransazione, importo, data)

Saldo Conto TransazioneMovimenta

Numero NumTransazione

DataImporto

(1,1)(0,N)

Page 58: Il modello Relazionale - ing.unipi.ita080066/didattica/BD/3 - Modello relazionale.pdf · Il Modello Relazionale •Il modello Relazionale è il modello logico oggi più usato dai

osservazioni

• Alle volte, per semplificare gli schemi si ricorre a delle ridenominazioni.

• Esempio:• Conto(numero, saldo)

• Transazione(conto, numTransazione, importo, data)

• Occorre ricordarsi che conto è dello stesso dominio di numero, e che esiste un vincolo di integrità referenziale fra conto e numero

Page 59: Il modello Relazionale - ing.unipi.ita080066/didattica/BD/3 - Modello relazionale.pdf · Il Modello Relazionale •Il modello Relazionale è il modello logico oggi più usato dai

Gerarchie

• Il modello relazionale è “piatto” e non può rappresentare le gerarchie che sono sostituite da entità e associazioni.

• Viene creata una tabella per ogni entità coinvolta nella specializzazione.

• Le tabelle delle entità figlie ereditano dall'entità genitore la chiave (come chiave esterna).

Page 60: Il modello Relazionale - ing.unipi.ita080066/didattica/BD/3 - Modello relazionale.pdf · Il Modello Relazionale •Il modello Relazionale è il modello logico oggi più usato dai

Eliminazione di ridondanze e anomalie – cenni alle

forme normali

[email protected]

Page 61: Il modello Relazionale - ing.unipi.ita080066/didattica/BD/3 - Modello relazionale.pdf · Il Modello Relazionale •Il modello Relazionale è il modello logico oggi più usato dai

Ridondanze e anomalie

• Il progetto logico di una base di dati basato su uno schema concettuale in cui le entità e associazioni reali sono ben separate in maniera corretta non dovrebbe contenere ridondanze o anomalie

• In ogni modo lo schema logico prodotto può essere verificato a posteriori per verificare la presenza di ridondanze e anomalie che possono essere eliminate o corrette

Page 62: Il modello Relazionale - ing.unipi.ita080066/didattica/BD/3 - Modello relazionale.pdf · Il Modello Relazionale •Il modello Relazionale è il modello logico oggi più usato dai

Esempio di schema con ridondanze e anomalie

• Lo stipendio di ciscun impiegato è unico e funzione sola dell’impiegato stesso, indipendentemente dai progetti

• Il bilancio di ciscun progetto è unico e dipende solo dal progetto indipendentemente dagli impiegati

Impiegato Stipendio Progetto Bilancio Funzione

Rossi 20000 Marte 2000 Tecnico

Verdi 35000 Giove 15000 progettista

Verdi 35000 Venere 15000 Progettista

Neri 55000 Venere 15000 Direttore

Neri 55000 Giove 15000 Consulente

Neri 55000 Marte 2000 Consulente

Mori 48000 Marte 2000 Direttore

Mori 48000 Venere 15000 Progettista

Bianchi 48000 Venere 15000 Progettista

Bianchi 48000 Giove 15000 Direttore

Page 63: Il modello Relazionale - ing.unipi.ita080066/didattica/BD/3 - Modello relazionale.pdf · Il Modello Relazionale •Il modello Relazionale è il modello logico oggi più usato dai

Anomalie

• Tale struttura particolare presenta le seguenti anomalie:• Ridondanza: lo stipendio di ciascun impiegato è

replicato per ogni progetto a cui partecipa• Anomalia di aggiornamento: se lo stipendio di un

impiegato cambia tutte le tuple corrispondenti devono essere aggiornate

• Anomalia di cancellazione: se un impiegato interrompe la partecipazione a tutti i progetti non si può conservare traccia del suo nome e del suo stipendio

• Anomalia di inserimento: analogamente un nuovo impiegato non può essere inserito fino a quando questo non partecipa ad almeno un progetto

Page 64: Il modello Relazionale - ing.unipi.ita080066/didattica/BD/3 - Modello relazionale.pdf · Il Modello Relazionale •Il modello Relazionale è il modello logico oggi più usato dai

Dipendenze funzionali

• Al fine di verificare la presenza di anomalie in uno schema logico si definisce un ulteriore vincolo di integrità tra gli attributi di una stessa relazione, la dipendenza funzionale

• Dati due attributi Y e Z di uno schema R(X) (o due sottoinsiemi Y e Z degli attributi X di R), si dice che esiste su R una dipendenza funzionale tra Y e Z, se per ogni coppia di tuple di R aventi gli stessi valori degli attributi di Y, risulta che hanno gli stessi valori anche sugli attributi Z

• In altre parole esiste un vincolo di dipendenza funzionale tra Y e Z in R se in ogni tupla il valore di Y determina il valore di Z (e.g. Impiegato determina Stipendio, Progetto determina Bilancio)

• Le dipendenze funzionali sono indicate con Y → Z in R

Page 65: Il modello Relazionale - ing.unipi.ita080066/didattica/BD/3 - Modello relazionale.pdf · Il Modello Relazionale •Il modello Relazionale è il modello logico oggi più usato dai

Dipendenze funzionali non banali

• Su una relazione possono essere verificate dipendenze funzionali banali, in particolare quando alcuni attributi di Z compaiono in Y (e.g. Impiegato, Progetto → Progetto)

• Si dicono dipendenze funzionali non banali quelle in cui nessun attributo di Z compare tra gli attributi di Y

• Il concetto di dipendenza funzionale generalizza quello di chiave in quanto tra la chiave e gli altri attributi sussiste una dipendenza funzionale

Page 66: Il modello Relazionale - ing.unipi.ita080066/didattica/BD/3 - Modello relazionale.pdf · Il Modello Relazionale •Il modello Relazionale è il modello logico oggi più usato dai

Forma Normale

• Data uno schema logico di una relazione, la verifica della sua struttura rispetto alle sue dipendenze funzionali da indicazione della presenza di anomalie e ridondanze

• A tal fine viene definita una particolare forma dello schema logico di una base di dati, la forma normale

• Una relazione R è in forma normale se per ogni dipendenza funzionale non banale Y → Z su di essa, Y contiene una chiave K di R, cioè y è superchiaveper R

• Se una relazione non soddisfa la forma normale, può essere applicata una decomposizione in forma normale, al fine di normalizzarla

Page 67: Il modello Relazionale - ing.unipi.ita080066/didattica/BD/3 - Modello relazionale.pdf · Il Modello Relazionale •Il modello Relazionale è il modello logico oggi più usato dai

Esempio Normalizzazione

Impiegato Stipendio

Rossi 20000

Verdi 35000

Neri 55000

Mori 48000

Bianchi 48000

Progetto Bilancio

Marte 2000

Giove 15000

Venere 15000

Impiegato Progetto Funzione

Rossi Marte Tecnico

Verdi Giove progettista

Verdi Venere Progettista

Neri Venere Direttore

Neri Giove Consulente

Neri Marte Consulente

Mori Marte Direttore

Mori Venere Progettista

Bianchi Venere Progettista

Bianchi Giove Direttore

Dipendenze Formali:Impiegato, Progetto →FunzioneImpiegato →StipendioProgetto → Bilancio