DB - Modello Relazionale 1 DB - Modello relazionale dei dati.

23
DB - Modello Relazionale 1 DB - Modello relazionale dei dati

Transcript of DB - Modello Relazionale 1 DB - Modello relazionale dei dati.

Page 1: DB - Modello Relazionale 1 DB - Modello relazionale dei dati.

DB - Modello Relazionale 1

DB - Modello relazionale dei dati

Page 2: DB - Modello Relazionale 1 DB - Modello relazionale dei dati.

DB - Modello Relazionale 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 costituiscono l’equivalente delle strutture dati nella programmazione.

Page 3: DB - Modello Relazionale 1 DB - Modello relazionale dei dati.

DB - Modello Relazionale 3

Modelli di dati

Alcuni modelli: Gerarchico Reticolare Relazionale

I modelli reticolare e gerarchico rispecchiano (in qualche modo) l’architettura fisica dei dati

Il relazionale e’ basato solo sul valore dei dati Recentemente: modello a oggetti

Page 4: DB - Modello Relazionale 1 DB - Modello relazionale dei dati.

DB - Modello Relazionale 4

Caratteristiche di un buon modello Espressività: permette di rappresentare in

modo semplice e naturale i dati e le loro proprietà.

Semplicità: basato su un numero minimo di meccanismi semplici da utilizzare e capire.

Realizzabilità: deve essere realizzabile in modo efficiente su di un calcolatore.

Page 5: DB - Modello Relazionale 1 DB - Modello relazionale dei dati.

DB - Modello Relazionale 5

Il modello relazionale dei dati

Introdotto da Codd nel 1970 Implementa bene il concetto di indipendenza dei

dati Oggi e’ di gran lunga il modello dei dati più

diffuso Implementato nei DBMS commerciali dal 1981 E’ basato sul concetto matematico di

RELAZIONE

Page 6: DB - Modello Relazionale 1 DB - Modello relazionale dei dati.

DB - Modello Relazionale 6

Relazioni

NOME MATRICOLA INDIRIZZO TELEFONO Mario Rossi 123456 Via Etnea 18 777777 Maria Bianchi 234567 Via Roma 2 888888 Givanni Verdi 345678 Via Catania 3 999999

Una Relazione n-aria è un sottoinsieme del prodotto cartesiano D1 X D2 X ... Dn di insiemi di valori di tipo elementare detti domini.

Ogni elemento < d1, d2, …, dn> si chiama n-upla (o tupla)

Page 7: DB - Modello Relazionale 1 DB - Modello relazionale dei dati.

DB - Modello Relazionale 7

Schema di relazione

Uno schema di relazione R : {T} e’ una coppia formata dal nome di una relazione R e da un tipo relazione T

Page 8: DB - Modello Relazionale 1 DB - Modello relazionale dei dati.

DB - Modello Relazionale 8

Definizione Tipo Relazione

Interi,Reali,Booleani,Stringhe sono tipi primitivi;

se T1, T2, …, Tn sono tipi primitivi e A1, A2, …, An sono etichette, dette attributi, allora (A1 :T1 , A2 :T2 , …, An :Tn) e’ un tipo n-upla di grado n (l’ordine non è significativo).

se T è un tipo n-upla allora {T} e’ un tipo relazione (tipo insieme di n-uple)

Page 9: DB - Modello Relazionale 1 DB - Modello relazionale dei dati.

DB - Modello Relazionale 9

Schemi Relazionali

Uno Schema Relazionale è costituito da un insieme di schemi di relazione Ri : {Ti}, i=1, 2,…, k e da un insieme di vincoli di integrità relativi a tali schemi.

Costituisce l’aspetto intensionale del dato modello relazionale dei dati.

Page 10: DB - Modello Relazionale 1 DB - Modello relazionale dei dati.

DB - Modello Relazionale 10

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 cardinalita’ di una relazione e’ il numero di n-uple

Page 11: DB - Modello Relazionale 1 DB - Modello relazionale dei dati.

DB - Modello Relazionale 11

Esempio di relazione

E’ una relazione di tipo {(Nome : char , Matricola : int ,Indirizzo : char , Telefono :int )} e ciascuna riga è una n-upla della relazione.

NOME MATRICOLA INDIRIZZO TELEFONO Mario Rossi 123456 Via Etnea 18 777777 Maria Bianchi 234567 Via Roma 2 888888

Givanni Verdi 345678 Via Catania 3 999999

Page 12: DB - Modello Relazionale 1 DB - Modello relazionale dei dati.

DB - Modello Relazionale 12

Esempio di schema relazionale

{Studenti : { (Nome : char , Matricola : int(6) ,Indirizzo : char , Telefono :int(6) ) }

Esami : { (Corso : char , Matricola : int(6) ,Voto: {18,19,…,30} }

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

} Che si abbrevia (se non interessa riportare il tipo degli attributi) in:

Studenti( Nome, Matricola, Indirizzo, Telefono);Esami( Corso, Matricola,Voto);Corsi( Corso, Professore);

Page 13: DB - Modello Relazionale 1 DB - Modello relazionale dei dati.

DB - Modello Relazionale 13

Dominio di un attributo

dom(Ai) e’ l’insieme dei possibili valori dell’attributo Ai

ad esempio nella tabella Studenti(Corso,Matricola,Voto) , dom(Voto) = {18,19,…,30}

Page 14: DB - Modello Relazionale 1 DB - Modello relazionale dei dati.

DB - Modello Relazionale 14

Vincoli di integrità

I vincoli di integrita’ servono a migliorare la qualita’ delle informazioni contenute nella base di dati

Un vincolo e’ un predicato che dev’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à.

Page 15: DB - Modello Relazionale 1 DB - Modello relazionale dei dati.

DB - Modello Relazionale 15

Esempio di vincoli d’integrita’

Il voto dev’essere compreso tra 18 e 30 La lode puo’ apparire solo se voto=30 Ogni studente deve avere un numero di

matricola Il numero di matricola di uno studente

dev’essere univoco Esami dati devono fare riferimento solo a corsi

offerti

Page 16: DB - Modello Relazionale 1 DB - Modello relazionale dei dati.

DB - Modello Relazionale 16

Vincoli d’integrita’

I tre tipi piu’ importanti specificano:Quali attributi non possono assumere il valore

NULLQuali attributi sono chiaveQuali attributi sono chiavi esterne

Page 17: DB - Modello Relazionale 1 DB - Modello relazionale dei dati.

DB - Modello Relazionale 17

Mancanza di informazione

Il modello relazionale impone una struttura rigida ai dati, in quanto: L’informazione viene rappresentata per mezzo di n-uple Le n-uple hanno uno schema ben definito

Come rappresentare quindi, ad esempio, il fatto che di uno studente non si conosce il numero di cellulare?

Usanza comune: Usare valori non utilizzati (es. 0 per eta’ studente) Problemi:

Possono non esserci valori inutilizzati Il valore inutilizzato puo’ diventare utile In alcuni casi bisogna ricordarsi di distinguere i valori reali dei

“riempiposto”, esempio: media dell’eta’ degli studenti (se rappresentiamo il fatto di non conoscere l’eta’ dello studente con 0)

Page 18: DB - Modello Relazionale 1 DB - Modello relazionale dei dati.

DB - Modello Relazionale 18

Valori nulli (NULL) Il modello relazionale include il “NULL value” come tecnica per

modellare la mancanza di informazione NULL non fa parte del dominio dell’attributo Quando si da ad un attributo la possibilità di avere valore null, si

ammette che quell’attributo in qualche n-upla può rimanere non specificato e/o venire assegnato in un secondo momento

Il valore NULL per un certo attributo puo’ indicare: Il valore non c’e’; Il valore c’e’ ma non lo si conosce al momento; Non si sa se il valore c’e’;

I DBMS non modellano il perche’ manca il dato, si limitano a denotarne la sua mancanza

Page 19: DB - Modello Relazionale 1 DB - Modello relazionale dei dati.

DB - Modello Relazionale 19

Esempio di valori nulli

NOME MATRICOL INDIRIZZO TELEFONO Mario Rossi 123456 Via Etnea 1 222222 Ugo Bianchi 234567 Via Roma 2 NULL Teo Verdi 345678 Via Enna 3 444444

Telefono di Ugo Bianchi può non esserci, esserci ma non conosciuto, in attesa di essere installato

Page 20: DB - Modello Relazionale 1 DB - Modello relazionale dei dati.

DB - Modello Relazionale 20

Chiavi

Superchiave X di uno schema di relazione è un insieme di attributi dello schema tale che in ogni istanza dello schema se due n-uple coincidono su X allora sono uguali.

Chiave è una superchiave minimale rispetto alla relazione .

Chiave Primaria è una delle chiavi scelta per un dato schema.

Page 21: DB - Modello Relazionale 1 DB - Modello relazionale dei dati.

DB - Modello Relazionale 21

Esempi di chiavi

{Nome,Matricola} è una superchiave ma non è una chiave, infatti

{Matricola} è una chiave e si sceglie anche come primaria per accedere ai vari record

{Indirizzo} non è superchiave

NOME MATRICOLA INDIRIZZO TELEFONO Mario Rossi 123456 Via Etnea 1 222222 Ugo Bianchi 234567 Via Roma 2 NULL Teo Verdi 345678 Via Enna 3 444444

Page 22: DB - Modello Relazionale 1 DB - Modello relazionale dei dati.

DB - Modello Relazionale 22

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...

Page 23: DB - Modello Relazionale 1 DB - Modello relazionale dei dati.

DB - Modello Relazionale 23

Esempio chiave esterna

Una chiave esterna associa a certe n-uple della relazione r (quelle aventi la stessa chiave esterna) una ben determinata n-upla della relazione s a cui si riferisce determinata dai valori della chiave primaria(cioè della chiave esterna)

Cosi’ {Matricola} per Esami e’ chiave esterna che si riferisce a Studenti

CORSO MATRICOLA VOTO Programmazione 345678 27 Architetture 123456 30 Programmazione 234567 18 Matematica Discreta

345678 22

Architettura 345678 30

NOME MATRICOL INDIRIZZO TELEFONO Mario Rossi 123456 Via Etnea 1 222222 Ugo Bianchi 234567 Via Roma 2 333333 Teo Verdi 345678 Via Enna 3 444444

Esami

Studenti