Modello Relazionale Architettura a tre livelli di un DBMS

Modello Relazionale
Architettura a tre livelli di un DBMS
Modello logico dei dati utilizzato nell’ambito delle basi
di dati, introdotto da Codd nel 1970.
Livello fisico (interno) :
organizzazione dei dati nelle memorie permanenti
strutture dati ausiliarie per accedere ai dati
modello dei dati
insieme di strutture dati e regole
logico
strutture disponibili su un DBMS
Modello relazionale : relazione
Livello logico (interno) :
struttura dei dati e relazioni fra essi
nessun riferimento alla organizzazione fisica
PERCORSO
PARTENZA
Milano
Milano
Roma
ARRIVO
Modena
Roma
Napoli
ORAPARTENZA
1310
1550
0400
Livello esterno (delle viste) :
struttura vista da un utente/applicazione
schema
rappresentazione di uno specifico dominio
istanza
Indipendenza dei dati
indipendenza fisica
indipendenza logica
informazioni effettivamente memorizzate
Altri modelli logici
Modello Gerarchico (strutture ad albero)
Modello Reticolare (strutture a grafi)
1
2
Modello Relazionale: Formalizzazione
Modello Relazionale: Caratteristiche
Il concetto di relazione
Dominio : insieme di valori
½ ¾ , una ennupla (tu è definita come
½ ¾ Tupla : Dati domini ½ ¾
pla) ordinata su ½ ¾
consente una descrizione astratta dei dati
indipendenza dei dati
consente una formalizzazione semplice e precisa
Teoria relazionale dei dati
è riconducibile al concetto semplice di tabella
facilmente comprensibile dall’utente finale
Prodotto Cartesiano : Il prodotto cartesiano di domini
, è
, indicato con ½ ¾ ½ ¾
l’insieme di tutte le tuple su ½ ¾
.
,
½ ¾ Il valore di è il Grado della relazione
Relazione : Una relazione su domini ½ ¾
è un sottoinsieme di ½ ¾ :
linguaggio di interrogazione (SQL) dichiarativo
Il numero di tuple è la Cardinalità della relazione
3
4
Relazioni con attributi
Modello Relazionale : Esempi
½ La relazione è un insieme, quindi
¾ ½ ¾ ½¾: Relazione su
Rappresentazione tabellare :
non è definito alcun ordinamento tra le tuple
Ciascuna tupla è, al proprio interno, ordinata.
Attributo : Nome dato ad un dominio in una relazione
Un esempio concreto : Orario di partenza dei treni
indipendenza dall’ordinamento dei domini
significato ai valori del dominio
Un esempio concreto : Orario di partenza dei treni
Stringa Stringa Intero
Stringa Stringa Intero
le tuple sono distinte l’una dall’altra
differenza con la tabella (multiset)
Milano Modena 1310
Milano Roma
1550
Roma
Napoli 0400
5
PARTENZA
Milano
Milano
Roma
ARRIVO
Modena
Roma
Napoli
ORAPARTENZA
1310
1550
0400
6
Schema ed Istanza
Esempio
Schema di relazione : : nome della relazione
½ ¾ : insieme di nomi di attributi
Schema di base di dati : DB UNIVERSITÀ = STUDENTE(MATR,NOME,CITTÀ,ACORSO)
CORSO(CODCOR,NOME,CODDOC)
Istanza di relazione : di uno schema ½ ¾ è una relazione su ½ ¾ .
Schema di base di dati relazionale :
R ½½ ¾¾ DOCENTE(CODDOC,CF,CITTÀ) Istanza di base di dati :
STUDENTE
MATR
M1
M2
M3
M4
M6
Istanza di base di dati relazionale :
Dato R ½½ ¾¾ ,
una istanza su R è un insieme di relazioni
r ½ ¾ con relazione su l’insieme è denotato anche con l’insieme è denotato con l’insieme è denotato con denota ,
, oppure , denota il valore di su denota la sottotupla di ottenuta considerando
i valori degli attributi in 7
CITTÀ
SA
PA
BO
MO
MI
ACORSO
1
2
1
2
1
CODCOR
C1
C2
C3
C4
NOME
Fisica 1
Analisi Matematica 1
Fisica 2
Analisi Matematica 2
CODDOC
D1
D2
D1
D2
CODDOC
D1
D2
D3
D4
CF
CF1
CF2
CF3
CF4
CORSO
Notazione : Sia uno schema e tupla su Siano e NOME
Marco Quaranta
Giacomo Tedesco
Maria Mei
Ugo Rossi
Agata Verdi
DOCENTE
CITTÀ
MO
BO
MO
FI
8
Chiavi
Chiavi candidate, primaria, alternative
Informalmente, per chiave di una relazione si intende
un sottoinsieme dei suoi attributi che identifica univocamente ogni tupla della relazione stessa.
Dato , è detto chiave di se e solo
se per ogni relazione su valgono le proprietà:
1. (Univocità)
½ ¾ ½ ¾ ½ ¾
2. (Minimalità)
non verifica 1.
Dato ed una chiave di ,
tale che è detto superchiave di .
Per ogni , X è una superchiave.
Quindi, ogni ha almeno una chiave.
può avere più chiavi dette
candidate
Tra le chiavi candidate una a scelta è detta primaria
Le rimanenti chiavi vengono dette alternative
Notazione
chiave primaria :
½ ¾ ¾ chiave alternativa :
AK: ½ Esempio :
DOCENTE (CODDOC, CF, CITTÀ)
AK: CF
9
10
Valori nulli
Vincoli di Integrità
Informazione incompleta : tupla il cui valore di uno o
più attributi non è disponibile.
Ad esempio, in DOCENTE(CODDOC,CF,NOME,CITTÀ)
la CITTÀ del docente è sconosciuta
I vincoli di integrità stabiliscono condizioni di correttezza delle informazioni nella base di dati.
Vincolo intrarelazionale :
coinvolge singole relazioni della base di dati
il CF non è previsto per docenti di determinati paesi
al docente non è ancora stato assegnato un CODICE
...
Ogni dominio di relazione viene esteso con un particolare valore, detto valore nullo e denotato con null,
che rappresenta assenza di informazione.
Nei sistemi relazionali
è possibile specificare se un attributo può o meno
Vincolo di chiave
Una chiave è un vincolo di integrità: essa stabilisce
l’univocità dei valori assunti dagli attributi di .
vincolo di tupla
coinvolge una singola tupla di una relazione
Vincolo interrelazionale :
coinvolge più relazioni della base di dati
Vincolo di Integrità Referenziale
assumere il valore null.
Logica a tre valori in SQL
11
12
Vincolo di Integrità Referenziale
Vincolo di Entity Integrity
In presenza di valori nulli, non sarebbe quindi possibile controllare l’univocità dei valori assunti dagli attributi di una chiave. Per questo motivo viene imposto
il seguente vincolo.
Tale vincolo stabilisce che gli attributi che costituiscono
la chiave primaria di una relazione non possono assumere valore nullo.
I riferimenti tra le tuple delle relazioni vengono stabiliti
tramite i valori assunti dagli attributi nelle tuple.
L’integrità referenziale assicura che quando in una tupla si utilizza il valore di un attributo per riferirsi ad
un’altra tupla, quest’ultima sia una tupla esistente.
CORSO
Formalmente, un’istanza di uno schema di relazione
, soddisfa il
R con chiave primaria ½ ¾
vincolo di Entity integrity se e solo se
null 13
CODCOR
C1
C2
C3
C4
C5
NOME
Fisica 1
Analisi Matematica 1
Fisica 2
Analisi Matematica 2
Meccanica Razionale
CODDOC
D1
D2
D3
D4
CF
CF1
CF2
CF3
CF4
CODDOC
D1
D2
D1
D2
null
DOCENTE
CITTÀ
MO
BO
MO
FI
14
Vincolo di Integrità Referenziale
Dichiarazione vincolo di integrità referenziale in R:
Foreign Key o Chiave Esterna : insieme di attributi ½ ¾ di uno schema ½ R
Chiave della Relazione riferita : schema di relazione
¾ R, non necessariamente distinto da ½, con
una chiave ½ ¾ , con .
Un’istanza r
½ ¾ su R soddisfa il vincolo se
e solo se i valori su di ciascuna tupla di ½ sono
valori su di una ¾, o sono valori nulli:
½ ½
¾ ¾ ½ ¾
½ null
Istanza Legale di Base di Dati
Dato uno schema di basi di dati
R ½½ ¾¾ , un’istanza r ½ ¾ su R tale che
ciascuna relazione soddisfa il vincolo di entity
integrity
r soddisfa tutti i vincoli di integrià referenziale imposti su R
verrà detta istanza legale della base di dati R.
Notazione :
½ FK: ½ REFERENCES ¾½ Esempio :
CORSO (CODCOR,NOME,CODDOC)
FK: CODDOC REFERENCES DOCENTE
15
16
Progettazione di una base di dati
Il linguaggio SQL
Il linguaggio SQL (Structured Query Language) è il
linguaggio standard per la definizione e manipolazione
delle basi di dati relazionali.
Istanza :
Progettazione Concettuale
S CHEMA C ONCETTUALE
Corso(CC,CNome,CD)
Docente(CD,Cognome,Città)
Corso
CC CNome
C1 Fisica1
C2 Analisi1
C3 Fisica2
C4 Analisi2
Basi di dati relazionali
Schema :
Requisiti della base di dati
CD
D1
D2
D1
D3
Docente
CD Cognome
D1 Rossi
D2 Pastore
D3 Carboni
Progettazione Logica
Città
MO
BO
FI
S CHEMA L OGICO
Progettazione Fisica
linguaggio di manipolazione dei dati - DML
interrogazione e aggiornamento dell’istanza
S CHEMA F ISICO
linguaggio di definizione dei dati - DDL
definizione schema, autorizzazioni per l’accesso, . . .
17
Prodotti della progettazione
18
Modello Relazionale: Cronologia
1970
“A Relational Model of Data for Large
Shared Data Banks”, di E.F. Codd
1974
prima versione del linguaggio SQL
1975-79 sviluppo del prototipo System R
1980
versione commerciale di SystemR, e Oracle
1982
IBM Database2 (DB2)
1986-89 standardizzazione ISO-ANSI SQL-89
1992
ISO-ANSI SQL2
1999
ISO-ANSI SQL3
19