PIL - 2008
Percorsi di Inserimento Lavorativo
Basi di Dati - Lezione 2
Il Modello Relazionale
Il modello relazionale rappresenta il database
come un insieme di relazioni.
Ogni RELAZIONE è una tabella con:
un numero fisso di colonne (ATTRIBUTI)
un numero variabile ma finito di righe (TUPLE).
Si basa su definizioni e concetti matematici
Docente Dott.ssa Franchini Gloria
2
1
Una relazione può essere rappresentata come
una tabella
Il grado della relazione è n
La cardinalità della relazione è il numero di
record
Docente Dott.ssa Franchini Gloria
3
Database …
Il database è una collezione di tabelle
Una tabella è una collezione di record
Una cartella dello schedario
Un record è una collezione di campi
Uno schedario contenente varie cartelle (fornitori, clienti,
dipendenti, giacenze, …)
Una scheda dello schedario
Ogni campo conserva un solo valore
Uno “spazio” della scheda da riempire (nome, cognome,
data di nascita… )
Docente Dott.ssa Franchini Gloria
4
2
Le Tabelle
Le righe della tabella rappresentano i record
Le colonne della tabella rappresentano i campi
Più tabelle correlate tra loro formano l’intero database
Esempio:
Docente Dott.ssa Franchini Gloria
5
Il Record
Il record contiene informazioni relative ad un
soggetto
Ogni soggetto deve essere descritto da
caratteristiche, chiamate attributi, che lo
differenziano dagli altri
Gli attributi determinano i campi del record
Docente Dott.ssa Franchini Gloria
6
3
Dominio, Grado, Cardinalità
Ciascuna COLONNA assume valori estratti da uno
stesso DOMINIO:
ossia da un insieme predefinito di possibili valori, che deve
essere di tipo elementare.
In generale un DBMS consente di utilizzare un numero
limitato di domini.
GRADO di una relazione: numero di colonne
(prefissato).
CARDINALITÀ di una relazione: numero di righe
(varia nel tempo).
7
Docente Dott.ssa Franchini Gloria
Passaggio dal Modello Concettuale al
Modello Logico
Modello E/A
Algebra
Entità
Relazione
Modello
Relazionale
Tabella
Istanza
n-upla
Riga
Attributi
elemento n
Colonne
Dominio
dominio
insieme valori
Docente Dott.ssa Franchini Gloria
8
4
Regole di Derivazione
Entità
Ogni entità diventa una relazione (tabella)
Ogni attributo di un’entità diventa un attributo
della relazione e quindi un nome di una colonna
della tabella (campo)
Ogni colonna della relazione eredita le
caratteristiche dell’attributo dell’entità da cui
deriva
L’identificatore univoco di un’entità (chiave)
diventa la chiave primaria della relazione
Docente Dott.ssa Franchini Gloria
9
Chiave di una Relazione
CHIAVE di una relazione R è un
sottoinsieme K degli attributi tale che:
in una qualunque istanza di R non possano esistere
due tuple distinte che ristrette a K sono uguali
(unicità);
non è possibile sottrarre a K un attributo in modo che
la condizione di unicità si mantenga (minimalità).
La chiave identifica univocamente un record.
Docente Dott.ssa Franchini Gloria
10
5
Chiave di una Relazione – cont.
Se una relazione non contiene tuple identiche (come
richiesto dalla definizione di DB relazionale) essa
deve avere almeno una chiave, che può coincidere
con l’insieme di tutti gli attributi.
Una relazione può avere più di una chiave (saranno
dette chiavi candidate).
In particolare:
Una chiave composta da un solo attributo è detta
chiave semplice;
Una chiave composta da più attributi è detta
chiave composta.
Docente Dott.ssa Franchini Gloria
11
Entità: attributi semplici/composti,
attributi multipli
Un tipo di ENTITA’ con attributi semplici A1,
A2,…,An trova immediata rappresentazione come
RELAZIONE R(A1,A2,…,An), ossia mediante una
tabella con colonne costituite dagli attributi indicati.
Se una ENTITA’ ha attributi composti, essi vengono
sostituiti con quelli componenti, fino ad avere tutti
attributi semplici rappresentabili come colonne di
una tabella.
Nel caso di attributi multipli, si procede a una
procedura di normalizzazione
Docente Dott.ssa Franchini Gloria
12
6
Normalizzazione
La normalizzazione consiste nello spezzare la
relazione in due relazioni normalizzate equivalenti a
quella originaria (ossia aventi complessivamente lo
stesso contenuto di informazione):
la prima relazione è uguale a quella originaria
senza l’attributo multiplo;
la seconda contiene le coppie che associano ad
ogni singolo sottocampo dell’attributo multiplo il
valore della chiave della prima relazione.
(L’attributo chiave è sottolineato)
Docente Dott.ssa Franchini Gloria
13
DBMS e Integrità
Il DBMS può mantenere l’integrità del DB in vari
modi:
Impedendo a più utenti di modificare lo stesso record
contemporaneamente;
Impedendo l’immissione di due record duplicati;
Garantendo l’assenza di valori nulli dalle chiavi primarie
(Integrità sulle entità);
Garantendo l’inserimento dei valori appartenenti al
dominio consentito e degli attributi obbligatori (integrità
sull’attributo)
Garantendo un insieme di regole di integrità dei dati sulle
chiavi esterne (integrità referenziale)
Docente Dott.ssa Franchini Gloria
14
7
Chiavi Esterne
Le chiavi esterne servono a mettere in relazione due entità.
Se K è chiave primaria di R e chiave esterna di S, allora per ogni
stato del database:
L’insieme dei valori di S.K deve essere contenuto nell’insieme dei
valori R.K.
S.K
S.K
R.K
Docente Dott.ssa Franchini Gloria
15
Integrità Referenziale
Regole generali
1.
Non deve essere possibile immettere un valore
nella chiave esterna che non esiste nella chiave
primaria della relazione associata
2.
Non deve essere consentito cancellare l’istanza di
una chiave primaria se esistono delle istanze
associate attraverso una chiave esterna nella
relazione correlata
Docente Dott.ssa Franchini Gloria
16
8
Integrità Referenziale – cont.
3.
Non deve essere possibile modificare il valore di
una chiave primaria se ad essa corrispondono
istanze nella relazione associata attraverso una
chiave esterna
Ciò fa sì che:
Le associazioni tra tabelle siano valide;
Non siano possibili errori di inserimento, modifica o
cancellazione di dati correlati.
Docente Dott.ssa Franchini Gloria
17
Normalizzazione delle relazioni
La NORMALIZZAZIONE è una metodologia di
progetto che trasforma lo schema iniziale di una
base di dati in uno schema finale contenente solo
RELAZIONI (tabelle) NORMALIZZATE.
Le tabelle vengono trasformate in altre tabelle in
modo tale che ciascuna rappresenti un singolo
oggetto della realtà di interesse.
Docente Dott.ssa Franchini Gloria
18
9
Livelli di Normalizzazione
La Normalizzazione è necessaria per evitare inconsistenze dei
dati e anomalie nelle operazioni di aggiornamento.
Occorre prestare attenzione affinché nel processo di
normalizzazione non si abbia perdita di dati.
Esistono vari LIVELLI DI NORMALIZZAZIONE: 1FN, 2FN,
3FN…
Uno schema relazionale è ritenuto accettabile se tutte le sue
relazioni sono almeno in Terza Forma Normale.
Docente Dott.ssa Franchini Gloria
19
Prima forma normale (1FN)
Una relazione è in 1FN quando rispetta tutti i
requisiti del modello relazionale:
1.
2.
3.
4.
5.
Tutte le righe della tabella contengono lo stesso numero
di colonne;
Gli attributi rappresentano informazioni atomiche;
I valori che compaiono in una colonna sono dello stesso
tipo;
Ogni riga è diversa da tutte le altre;
L’ordine con il quale le righe compaiono nella tabella è
irrilevante.
Docente Dott.ssa Franchini Gloria
20
10
Seconda forma normale (2FN)
Una relazione è in 2FN:
se è in 1FN
e tutti gli attributi non-chiave dipendono
dall’intera chiave, cioè non possiede attributi che
dipendono soltanto da una parte della chiave.
Docente Dott.ssa Franchini Gloria
21
Terza forma normale (3FN)
Una relazione è in 3FN
se è in 2FN
e tutti gli attributi non-chiave dipendono direttamente
dalla chiave, cioè non possiede attributi non-chiave che
dipendono da altri attributi non-chiave.
La 3FN elimina le dipendenze transitive.
Gli attributi che non fanno parte di nessuna chiave
devono dipendere direttamente da tutta la chiave.
Docente Dott.ssa Franchini Gloria
22
11
Query o Interrogazioni
È sinonimo di interrogazione ed indica il
processo di estrazione dei dati da un
database secondo determinati criteri.
Da una o più tabelle se ne costruisce un’altra
che soddisfa dei criteri prestabiliti, in modo
tale da rispondere ad una certa
interrogazione.
Le query innanzitutto devono essere
progettate usando gli operatori di Algebra
Relazionale.
Docente Dott.ssa Franchini Gloria
23
Operazioni relazionali
Docente Dott.ssa Franchini Gloria
24
12
Selezione
Selezione (SELECT)
Genera una relazione costituita dalle n-uple della
relazione di partenza che soddisfano una
determinata condizione (selezione di alcune righe):
Grado uguale,
Cardinalità minore o uguale
Docente Dott.ssa Franchini Gloria
25
Proiezione
Proiezione (PROJECT)
Genera una relazione estraendo dalla tabella iniziale
due o più colonne corrispondenti agli attributi
prefissati (selezione di alcune colonne):
Grado minore o uguale,
Cardinalità minore o uguale
Docente Dott.ssa Franchini Gloria
26
13
Congiunzione (Join)
Congiunzione (join)
Genera una relazione combinando due relazioni
aventi uno o più attributi in comune.
R ><p S è una relazione T = R ><p S che si ottiene
concatenando le tuple di R e S che soddisfano p, il
predicato di selezione.
Schema di T: ottenuto concatenando gli schemi di R
e S (si considerano tutti gli attributi di R e S).
Istanza di T: data dall’insieme delle tuple ottenute
concatenando in tutti i modi possibili le tuple di R
con quelle di S purché soddisfino p.
Docente Dott.ssa Franchini Gloria
27
Unione
L'unione di due relazioni è una relazione T = R ∪ S ottenuta facendo
l’unione delle istanze di due relazioni con schema compatibile, ossia in
cui i domini degli attributi sono ordinatamente uguali.
T ha lo stesso schema di R
L’istanza di T è l’unione delle tuple di R e S.
GRADO (T) = GRADO (R) (o di S)
CARDINALITÀ (T) ≤ CARDINALITÀ(R) + CARDINALITÀ(S)
Docente Dott.ssa Franchini Gloria
28
14
Intersezione
L'intersezione di due relazioni è una relazione T = R ∩ S
ottenuta facendo l’intersezione delle istanze di due
relazioni con schema compatibile, ossia in cui i domini
degli attributi sono ordinatamente uguali.
T ha lo stesso schema di R
L’istanza di T è l’intersezione delle tuple di R e S.
GRADO (T) = GRADO (R) (o di S)
CARDINALITÀ (T) ≤ MIN(CARDINALITÀ (R),
CARDINALITÀ(S))
Docente Dott.ssa Franchini Gloria
29
Differenza
La differenza di due relazioni è la relazione T = R – S costituita a
partire da due relazioni con schema compatibile mediante le tuple che
appartengono a R e non a S.
T ha lo stesso schema di R
L’istanza di T è data dalla differenza delle tuple di R che non
appartengono ad S
GRADO (T) = GRADO (R) (o S)
CARDINALITÀ (T) ≤ CARDINALITÀ (R)
Docente Dott.ssa Franchini Gloria
30
15
Prodotto
Il prodotto di due relazioni è una relazione T = R x S
ottenuta concatenando tutte le tuple di R con tutte quelle
di S.
T ha uno schema che è la concatenazione degli
schemi di R ed S.
L’istanza di T è la concatenazione delle tuple di R
con quelle di S.
GRADO (T) = GRADO (R) + GRADO (S)
CARDINALITÀ (T) ≤ CARDINALITÀ (R)* CARDINALITÀ (S)
Docente Dott.ssa Franchini Gloria
31
Maschere o Form
Durante l’applicazione, l’informazione che viene
scambiata con l’utente ha una organizzazione
particolare detta SCHERMO (detto anche MASCHERA
o FORM).
Uno SCHERMO organizza l’informazione in una
struttura fissa che presenta CAMPI destinati a
contenere:
l’informazione che l’utente deve digitalizzare
(informazione in ingresso)
e l’informazione fornita dall’applicazione
(informazione in uscita).
Docente Dott.ssa Franchini Gloria
32
16
Progettazione di Maschere
La progettazione della struttura degli schermi è essenziale
per il successo dell’applicazione.
Esistono strumenti standard per costruire schermi (FORM
MANAGEMENT) e per agganciare a ciascuno schermo le
operazioni da effettuare sulla base dei dati.
In Access è possibile usare l’Autocomposizione Maschera
oppure crearla direttamente in Visualizzazione Struttura.
Docente Dott.ssa Franchini Gloria
33
Generare Report
RAPPORTI: permettono di estrarre grandi quantità di
informazioni dalle basi di dati, costruite mediante
aggregazioni.
La costruzione dei rapporti è richiesta periodicamente e
non comporta interazioni con gli utenti.
Esistono strumenti standard per costruire rapporti
(report generator) che consentono di impostare un
formato, componendo l’impostazione grafica con
l’informazione estratta dalla base di dati.
Docente Dott.ssa Franchini Gloria
34
17