Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
vuoi
o PayPal
tutte le volte che vuoi
NULL
Si possono imporre delle restrizioni sulla presenza dei valori nulli
Tipi di valore nullo
Esistono almeno tre casi differenti:
- valore sconosciuto
- valore inesistente
- valore senza informazione
I DBMS non distinguono i tipi di valore nullo
//Vincoli d’integrità
Esistono istanze di basi di dati che pur essendo
sintatticamente corrette non rappresentano
informazioni possibili per l’applicazione
d’interesse
Il vincolo d’integrità è una proprietà che deve
essere soddisfatta dalle istanze che
rappresentano le informazioni corrette per l’applicazione
Un vincolo è una funzione booleana (un predicato):
- associa ad ogni istanza il valore vero o falso
Non tutte le proprietà di interesse sono rappresentabili per mezzo di
vincoli formulabili in modo esplicito 15
//Tipi di vincoli
Vincoli intrarelazionali:
- vincoli sui valori
- vincoli di ennupla
Vincoli interrelazionali
Vincoli di ennupla
Esprimono condizioni sui valori di ciascuna ennupla, indipendentemente
dalle altre ennuple
Caso particolare:
- Vincoli di dominio: coinvolgono un solo attributo
Una possibile sintassi:
- espressione booleana di atomi che confrontano valori di attributo o
espressioni aritmetiche su di essi
(Voto ≥ 18) AND (Voto ≤ 30)
(Voto = 30) OR NOT (Lode = “e lode”)
Identificazione delle ennuple
Non ci sono due ennuple con lo stesso valore
sull’attributo Matricola
Non ci sono due ennuple uguali su tutti e tre gli
attributi Cognome, Nome e Data di Nascita 16
//Chiave
Una superchiave è uno o un insieme di attributi che permettono di
identificare in modo univoco una tupla
Una chiave è una superchiave minimale, ovvero il minimo insieme di
attributi utilizzabili per identificare una tupla
Formalmente:
- un insieme K di attributi è superchiave per r, se r non contiene due
ennuple distinte t e t con t [K] = t [K]
1 2 1 2
- K è chiave per r se è una superchiave minimale per r
(cioè non contiene un’altra chiave speciale)
Matricola è una chiave:
- è una superchiave
- contiene un solo attributo e quindi è
minimale
Cognome, Nome, Nascita è un’altra chiave:
- è superchiave
- minimale
Non ci sono ennuple uguali su Cognome e Corso:
- Cognome e Corso formano una chiave
- ma potrebbe non essere sempre vero (visto che più persone
possono avere lo stesso cognome)
//Vincoli, schemi e istanze
I vincoli corrispondono a proprietà del mondo reale
modellato dalla base di dati
Interessano a livello di schema, con riferimento a
tutte le istanze
Ad uno schema viene associato un insieme di
vincoli e vengono considerate corrette le
istanze che soddisfano tutti i vincoli
Un’istanza può soddisfare altri vincoli
//Esistenza delle chiavi
Una relazione non può contenere ennuple
distinte ma uguali 17
Ogni relazione ha come superchiave l’insieme degli attributi su cui è
definita, quindi ha almeno una chiave
Importanza delle chiavi
L’esistenza delle chiavi garantisce l’accessibilità a ciascun dato della
base di dati
Le chiavi permettono di correlare i dati in relazioni diverse:
- il modello relazionale è basato sui valori
Chiavi e valori nulli
In presenza di valori nulli, i valori della chiave non permettono:
- di identificare le ennuple
- di realizzare facilmente i
riferimenti da altre relazioni
La presenza di valori nulli nelle chiavi
deve essere limitata
Chiave primaria
Chiave su cui non sono ammessi valori nulli
Integrità referenziale
Informazioni in relazioni diverse sono correlate attraverso valori comuni,
in particolare, valori delle chiavi (primarie)
Le correlazioni devono essere coerenti 18
Vincolo di integrità referenziale
Un vincolo di integrità referenziale (“foreign key”) fra gli attributi X di una
relazione R e un’altra relazione R impone valori su X in R di comparire
1 2 1
come valori della chiave primaria R
2
Vincoli di integrità relazionale fra:
- l’attributo Vigile della relazione INFRAZIONI e la relazione VIGILI
- gli attributi Prov e Numero di INFRAZIONI e la relazione AUTO
Violazione di vincolo di integrità referenziale
I vincoli di integrità referenziale giocano un ruolo fondamentale nel
concetto di modello basato sui valori
In presenza di valori nulli i vincoli possono essere resi meno restrittivi
Sono possibili meccanismi per il supporto alla loro gestione (“azioni”
compensative a seguito di violazioni) 19
//Azioni compensative
Ad esempio:
- viene eliminata una ennupla causando una violazione
Comportamento standard:
- rifiuto dell’operazione
Azione compensative:
- Eliminazione in cascata
- Introduzione di valori nulli
Eliminazione a cascata
Introduzione di valori nulli 20
Vincoli multipli su più attributi
Vincoli di integrità referenziale fra:
- gli attributi ProvA e NumeroA di INCIDENTI e la relazione AUTO
- gli attributi ProvB e NumeroB di INCIDENTI e la relazione AUTO
L’ordine degli attributi è significativo
//Progettazione di basi di dati:
Metodologie e modelli
//Modello Entity-Relationship (Entità- Relazione)
Entità
Classe di oggetti (fatti, persone, cose) dell'applicazione di interesse con
proprietà comuni e con esistenza autonoma
Es: impiegato, città, conto corrente, ordine, fattura
Entità: schema e istanza
Occorrenza di un entità: elemento della classe (l’oggetto, la
persona,..., non i dati)
Nello schema concettuale viene rappresentata l’entità, ma non le singole
istanze
Ogni entità ha un nome che la identifica univocamente nello schema:
- nomi espressivi
- opportune convenzioni 21
Rappresentazione grafica di entità
Relationship
Legame logico fra due o più entità, rilevante nell’applicazione di
interesse
Esempi:
- Residenza (fra persona e città)
- Esame ( fra studente e corso)
Denominata anche:
- relazione, correlazione, associazione
Rappresentazione grafica di relationship
Ogni relationship ha un nome che la identifica univocamente nello
schema:
- nomi espressivi
- opportune convenzioni (singolare, sostantivi invece che verbi
Occorrenze
Un’occorrenza di una relationship
binaria è una coppia di occorrenze 22
di entità, una per ciascuna entità coinvolta
Un’occorrenza di una relationship n-aria è una n-upla di occorrenze di
entità, una per ciascuna entità coinvolta
Nell’ambito di una relationship non ci possono essere occorrenze
(coppie, ennuple) ripetute
Due relationship sulle stesse entità
Relationship n-aria
Relationship ricorsiva
coinvolge due volte la stessa entità 23
Relationship ricorsiva con ruoli
Relationship ternaria ricorsiva 24
//Attributo
Proprietà elementare di un’entità o di una relationship, di interesse ai fini
dell’applicazione
Associa ad ogni occorrenza di entità o relationship un valore
appartenente a un insieme detto dominio dell’attributo
Rappresentazione grafica degli attributi
Attributi composti
Raggruppano attributi di una medesima entità o relationship che
rappresentano affinità nel loro significato o uso
Esempio:
- via, numero civico e cap formano un indirizzo
Rappresentazione grafica 25
//Altri costrutti del modello E-R
Cardinalità di relationship
Coppia di valori associati a ogni entità che partecipa a una relationship
Specificano il numero minimo e massimo di occorrenze delle relationship
cui ciascuna occorrenza di un entità può partecipare
Esempio di cardinalità
0 e 1 vengono utilizzati per la cardinalità minima:
- 0 = ‘partecipazione opzionale’
- 1 = ‘ partecipazione obbligatoria’
1 e N per la massima ( N non ha alcun limite)
Cardinalità di residenza
Tipi di relationship
Con riferimento alle cardinalità massime esistono diverse tipologie di
relationship:
- uno a uno
- uno a molti
- molti a molti
Nella relationship uno a molti è importante il verso
Esistono le relationship obbligatorie-obbligatorie ma sono molto rare 26
Relationship molti a molti
Relationship uno a molti
Relationship uno a uno Cardinalità di
attributi
È possibile
associare delle
cardinalità anche agli attributi, con due scopi:
- indicare l’opzionalità (“informazione incompleta”)
- indicare attributi multivalore 27
Identificatore di una entità
Strumento per l’identificazione univoca delle occorrenze di un’entità
Costituito da:
- attributi dell’entità (identificatore interno)
- (attributi +) entità esterne attraverso relationship (identificatore
esterno)
Identificatori interni
Identificatore esterno Ogni entità
deve possedere
almeno un
identificatore,
ma può averne più di uno 28
Una identificazione esterna è possibile solo attraverso una relationship a
cui l’identità da identificare partecipa con cardinalità (1,1)
//Generalizzazione
Mette in relazione una o più identità
E1, E2, …, En con un entità E, che
le comprende come caso
particolare
E è generalizzazione di E1, E2, …,
En
E1, E2, …, En sono specializzazioni (o sottotipi) di E
Proprietà delle generalizzazioni
Se E (genitore) è generalizzazione di E1,
E2,..., En (figlie):
- ogni proprietà E è significativa per
E1, E2,..., En
- ogni occorrenza di E1, E2, …, En è
occorrenza anche di E 29
Ereditarietà
Tutte le proprietà (attributi, relationship, generalizzazioni) dell’entità
vengono ereditate dalle entità figlie e non rappresentate esplicitamente
Tipi di generalizzazioni
Totale: se ogni occorrenza dell’entità genitore è occorrenza di almeno
una delle entità figlie, altrimenti è parziale
Esclusiva se ogni occorrenza dell’entità genitore è occorrenza di al più
una delle entità figlie, altrimenti è sovrapposta
Altre proprietà
Possono esistere gerarchie a più livelli e multiple generalizzazioni allo
stesso livello
Un’entità può esse