Sistemi per il recupero delle informazioni
RIASSUNTO
Sistemi per il recupero delle informazioni
DATABASE
DATABASE
Accezione generica, metodologica
 Insieme organizzato di dati utilizzati per il supporto allo svolgimento
delle attività di un ente (azienda, ufficio, persona)
Accezione specifica, metodologica e tecnologica
 Insieme di dati gestito da un DBMS
Nella nostra accezione i database sono:
 un supporto digitale in cui i dati sono immagazzinati
 un software che permetta il recupero dei dati
 una rete che permetta un’accessibilita` condivisa ai dati
DEFINIZIONE. Una base di dati è una raccolta di dati permanenti suddivisi
in due categorie:
 I METADATI
 I DATI
COS’E’ UNA BASE DATI
I METADATI
i metadati, ovvero lo schema della base di dati, sono una raccolta di
definizioni che descrivono
 la struttura di alcuni insiemi dati,
 le restrizioni sui valori ammissibili dei dati
 le relazioni esistenti fra gli insiemi.
Lo schema va definito prima di creare i dati ed è indipendente dalle
applicazioni che usano la base di dati.
COS’E’ UNA BASE DATI
I DATI
i dati, le rappresentazioni dei fatti conformi alle definizioni dello schema,
con le seguenti caratteristiche:
I dati sono strutturati, cioè hanno un formato predefinito
a) sono organizzati in insiemi omogenei, fra i quali sono definite delle
relazioni e sono previsti operatori per estrarre elementi da un insieme
e per conoscere quelli che, in altri insiemi, sono in relazione con essi.
b) sono molti, in assoluto e rispetto ai metadati, e non possono essere
gestiti in memoria temporanea; sono memorizzati in una memoria
permanente.
c) sono permanenti, cioè, una volta creati, continuano ad esistere finché
non sono esplicitamente rimossi;
d) sono accessibili mediante transazioni;
e) sono protetti sia da accesso da parte di utenti non autorizzati, sia da
corruzione dovuta a malfunzionamenti hardware e software;
f) sono utilizzabili contemporaneamente da utenti diversi.
TRANSAZIONI (PER L‘UTENTE)

Esempi:
 versamento presso uno presso sportello bancario
 emissione di certificato anagrafico
 dichiarazione presso l’ufficio di stato civile
 prenotazione aerea

Due accezioni
 Per l'utente:
 programma a disposizione, da eseguire per realizzare una funzione
di interesse

Per il sistema:
 sequenza indivisibile di operazioni
ESEMPIO DATI e METADATI
Si consideri la base di dati degli studenti ed esami superati definiti dagli
schemi di relazioni:
Studenti(Matricola, Cognome, Città, AnnoNascita)
Esami(Materia, Candidato, Voto, Data)
Dovrebbe essere chiaro che una base di dati contiene i dati immessi, meno
ovvio è il fatto che in una base di dati si memorizzano anche informazioni sui
dati definiti, chiamati metadati.
Esempi di queste informazioni sono:
1. i nomi delle relazioni definite;
2. il tipo delle ennuple delle relazioni;
3. le chiavi primarie ed esterne definite;
4. i vincoli sui valori ammissibili degli attributi.
Queste informazioni sono memorizzate in tabelle predefinte che sono gestite
automaticamente dal sistema.
ESEMPIO DATI e METADATI

Per rappresentare i corsi attivati ed i relativi docenti si può usare uno
schema del tipo
(Corso, Nome Docente)
 questo e’ uno schema invariante nel tempo,

mentre le coppie
(Informatica Generale, Righi)
(Basi di Dati e Sistemi Informativi, Leoni)
 sono istanze dello schema precedente e possono variare nel
tempo
DataBase Management System (DBMS)
Le caratteristiche delle basi di dati sono garantite da un sistema per la
gestione di basi di dati (DBMS, Data Base Management System), che ha il
controllo dei dati e li rende accessibili agli utenti autorizzati.
Un DBMS è un sistema centralizzato o distribuito che offre opportuni
linguaggi
a) per definire lo schema della base di dati (lo schema va definito
prima di creare dati)
b) per scegliere le strutture dati per la memorizzazione dei dati,
c) per usare la base di dati interattivamente o da programmi
d) memorizzare i dati rispettando i vincoli definiti nello schema;


Un sistema di gestione di basi di dati è un sistema software in grado di
gestire collezioni di dati che siano grandi, condivise e persistenti,
assicurando la loro affidabilità e privatezza.
Un DBMS deve essere efficiente ed efficace.
 Esempi di prodotti software disponibili sul mercato: Access, DB2,
Oracle, Informix, Sybase, SQLServer
I DATABASE SONO...



grandi
 dimensioni (molto) maggiori della memoria centrale dei sistemi di
calcolo utilizzati
 il limite deve essere solo quello fisico dei dispositivi
persistenti
 hanno un tempo di vita indipendente dalle singole esecuzioni dei
programmi che le utilizzano
condivisi
 ogni organizzazione è divisa in settori o comunque svolge diverse
attività . Ciascun settore/attività ha un (sotto) sistema informativo
(non necessariamente disgiunto)
 Una base di dati e' una risorsa integrata, condivisa fra applicazioni
 Conseguenze:
 Attivita' diverse su dati condivisi: meccanismi di autorizzazione
 Accessi di più utenti ai dati condivisi:controllo della
concorrenza
I DBMS GARANTISCONO…


PRIVATEZZA
 Si possono definire meccanismi di autorizzazione
 l'utente A è autorizzato a leggere tutti i dati e a modificare
quelli sul ricevimento
 l'utente B è autorizzato a leggere X e a modificare Y
AFFIDABILITA` (per le basi di dati):
 resistenza a malfunzionamenti hardware e software

una base di dati è una risorsa pregiata e quindi deve essere
conservata a lungo termine
I DBMS DEVONO ESSERE …

EFFICIENTI
 Cercano di utilizzare al meglio le risorse di spazio di memoria
(principale e secondaria) e tempo (di esecuzione e di risposta)
 I DBMS, con tante funzioni, rischiano l'inefficienza e per questo ci
sono grandi investimenti e competizione
 L’efficienza è anche il risultato della qualità delle applicazioni

EFFICACI
 Cercano di rendere produttive le attività dei loro utilizzatori,
offrendo funzionalità articolate, potenti e flessibili:
 il corso è in buona parte dedicato ad illustrare come i DBMS
perseguono l'efficacia
Sistemi per base di dati - DBMS

Diverse categorie di persone possono interagire con una base di dati
tramite un DBMS.
 Amministratore della base di dati (DBA).
 responsabile della progettazione, controllo e amministrazione
della base di dati.
 I progettisti e programmatori di applicazioni.
 realizzano i programmi che accedono e interrogano la base di
dati.
 Gli utenti non programmatori che utilizzano la base di dati per le
proprie attività.
Sistemi per il recupero delle informazioni
MODELLI INFORMATICI
DIAGRAMMI E-R
MODELLI
L’informatica offre metodologie e strumenti per la costruzione di modelli di
situazioni reali che ricorrono in ogni campo che richiede un’attività di
progettazione. Essi permettono di riprodurre le caratteristiche essenziali di
fenomeni reali, omettendo dettagli che costituirebbero inutili complicazioni.
Per poter gestire un sistema informativo con strumenti informatici
dobbiamo realizzare una descrizione della realtà d’interesse per mezzo di
simboli
Un modello di dati e’ un insieme di concetti utilizzati per organizzare i dati e
descriverne la struttura in modo che essa risulti comprensibile
a un
elaboratore
Ad es per poter gestire una biblioteca è necessario dare al calcolatore una sua
descrizione simbolica
Una tale descrizione costituisce un modello della realtà
MODELLI INFORMATICI
Sono modelli simbolici: rappresentazione formale delle idee e conoscenze
relative ad un fenomeno
Si hanno diverse categorie di modelli informatici che differiscono per i tipi
di fatti che si considerano, ossia per i diversi livelli di astrazione a cui si
opera
• modelli concettuali: sono considerati solo i fatti relativi alla realtà
senza alcun riferimento agli strumenti informatici che dovranno usare il
modello
• modelli logici: sono considerati anche fatti relativi agli strumenti
informatici; il modello è adeguato alle caratteristiche del DBMS, in
modo che possa essere da questo interpretato
• modelli fisici: sono considerate le strutture fisiche usate dal
calcolatore per rappresentare i dati
IL MODELLO
Nella costruzione di un modello informatico,
 prima si “definisce” il modello, descrivendo conoscenza concreta e
conoscenza astratta

poi si “costruisce” la rappresentazione della conoscenza concreta.
Per la definizione del modello si possono usare diversi tipi di formalismi, che
si differenziano per il “modello dei dati” che supportano, cioè per
meccanismi di astrazione offerti per rappresentare la realtà.
Nel seguito si presentano due tipi di modelli dei dati: il
- modello a oggetti, usato come esempio di formalismo per
la progettazione di una basi di dati
- modello relazionale, usato come esempio di formalismo per la
realizzazione di una base di dati.
ESEMPIO
Per costruire un modello informatico per la gestione di informazioni sui libri,
prima si devono definire quelle che interessano ai fini dell’applicazione (titolo,
autore, editore ecc.).
Una volta definite le proprietà interessanti comuni a tutti i possibili libri, si passa a
costruire per ogni entità “libro” della realtà oggetto di studio una rappresentazione
nel modello informatico.
IL MODELLO DEI DATI A OGGETTO
Per rappresentare in maniera naturale e diretta l’idea che il progettista si fa
del mondo osservato, il modello dei dati a oggetti prevede i seguenti
meccanismi d’astrazione:




oggetto
tipo di oggetto
classe
gerarchie fra classi
Verranno dati esempi di utilizzo di questi meccanismi tramite un formalismo grafico
che serva a definire lo schema di una base di dati, ovvero la struttura della
conoscenza concreta, che chiameremo schema concettuale.
Il formalismo grafico viene chiamato diagramma entità-relazione
IL MODELLO DEI DATI A OGGETTO
questioni terminologiche
OGGETTO E TIPO DI OGGETTO
Un oggetto è un’entità software con stato ed identità, che modella
un’entità dell’universo del discorso.
. Lo stato è costituito da un insieme di campi, che
- sono valori costanti o variabili associati ad un nome, detto
attributo.
- possono assumere valori di qualsiasi complessità
- modellano le proprietà dell’entità
Come accade per le proprietà delle entità, un attributo di un oggetto può
avere valori di tipo atomico o strutturato, semplice o unione, univoco o
multivalore, totale o parziale, costante o modificabile.
CLASSI E ASSOCIAZIONI
La classe modella un insieme di oggetti dello stesso tipo del mondo reale
 è costruita col processo di astrazione detto classificazione: entità
diverse vengono unificate per costituire un nuovo concetto. Si astrae
dalle differenze fra le entità per evidenziare ciò che le accomuna.
 tutti gli oggetti di una classe sono caratterizzati dagli stessi attributi.
L’ associazione modella una correlazione fra entità del mondo reale
 è una corrispondenza tra classi, e stabilisce una correlazione logica fra
oggetti appartenenti a classi diverse (o anche alla stessa classe).
CONCETTI IMPORTANTI
dominio di un attributo: è l’insieme dei valori che può assumere
l’attributo stesso
esempio: il dominio dell’attributo mese è costituito dall’insieme
{gennaio, febbraio, marzo, ....,dicembre} oppure dall’insieme {01, 02, 03,
....,12}

chiave di una classe: è un attributo (o un insieme di attributi) che
identifica univocamente gli oggetti di una classe
 K è chiave della classe C se non esistono due oggetti in C che hanno lo
stesso valore di K

esempio: l’attributo matricola è chiave della classe STUDENTI
DIAGRAMMI E-R
Nel formalismo grafico che si adotta, una classe si rappresenta con un
rettangolo etichettato con il nome della classe.
Per gli attributi si usano le seguenti convenzioni:
1.
attributi con valori atomici sono rappresentati con ovali collegati alla
classe da un arco che termina con una freccia singola, se l’attributo è
univoco, oppure con una freccia doppia, se l’attributo è multivalore;
2.
se l’attributo ha valori strutturati, l’ovale si sostituisce con un quadratino
dal quale escono archi verso ovali in numero pari ai campi del valore
strutturato.
3.
se l’attributo ha valori unione, si procede come nel caso precedente
sostituendo il quadratino con un cerchietto;
4.
proprietà che possono avere valori non specificati si rappresentano con
un taglio sull’arco;
5.
gli attributi della chiave primaria si sottolineano.
Esempi
Una classe con gli attributi.
Cognome e’ la chiave primaria
Una classe
Studenti
ASSOCIAZIONI
Un’associazione binaria tra classi si rappresenta con un rombo collegato con
degli archi alle classi associate.
Il rombo è etichettato con il nome dell’associazione
Studenti
Corsi
segue
ASSOCIAZIONI: caratteristiche


univocità: ad un oggetto di una classe può essere associato un solo
oggetto dell’altra classe
totale: ad un oggetto di una classe è sempre associato qualche oggetto
dell’altra classe

multivalore: ad un oggetto di una classe possono essere associati più
oggetti dell’altra classe

parziale: ad un oggetto di una classe non è sempre associato qualche
oggetto dell’altra classe
ASSOCIAZIONI: esempio
ASSOCIAZIONI: esempio




Afferisce è univoca da Docenti a Dipartimenti: ad un oggetto della classe
Docenti è associato un solo oggetto della classe Dipartimenti; si modella il
fatto che un docente possa afferire ad un solo dipartimento
Afferisce è multivalore da Dipartimenti a Docenti: ad un oggetto della
classe Dipartimenti possono essere associati più oggetti della classe
Docenti; si modella il fatto che ad un dipartimento possano afferire molti
docenti
Insegna è totale da Corsi di Laurea a Docenti: ad un oggetto della classe
Corsi di Laurea è sempre associato qualche oggetto della classe Docenti; si
modella il fatto che in un corso di laurea debbano necessariamente
insegnare dei docenti
Insegna è parziale da Docenti a Corsi di Laurea: ad un oggetto della
classe Docenti non è sempre associato qualche oggetto della classe Corsi
di Laurea ; si modella il fatto che un docente potrebbe non insegnare
GERARCHIA FRA CLASSI

Tra due classi E ed F può essere stabilita una gerarchia

E è detta sottoclasse o specializzazione di F
 F è detta superclasse o generalizzazione di E

Proprietà delle gerarchie
 Vincolo di struttura: se E è sottoclasse di F , E ha tutti gli attributi di F,
e partecipa a tutte le associazioni cui partecipa F (ereditarietà).
E può avere altri attributi, e partecipare ad altre associazioni
 Vincolo di insieme: se E è specializzazione di F, ogni oggetto di E è
anche un oggetto di F (cioè E è un sottoinsieme di F)
GERARCHIA FRA CLASSI: esempio
Lo schema a sinistra e’ piu’ espressivo di quello di destra
DIAGRAMMI E-R: esempio
A titolo di esempio, mostriamo, ad un primo livello di dettaglio, la
rappresentazione con il formalismo grafico di alcuni fatti riguardanti una
biblioteca universitaria: descrizioni bibliografiche, libri, autori, utenti e prestiti.
Delle entità interessano le seguenti proprietà:
1.
2.
3.
4.
5.
Di una descrizione bibliografica interessano il codice, il titolo
dell’opera, l’editore, l’anno di pubblicazione e un insieme di termini
usati per la classificazione del contenuto dell’opera.
Di un libro interessano la collocazione e il numero della copia.
Di un autore interessano il nome e cognome, la nazionalità, la data di
nascita
Di un utente interessano il nome, il cognome, l’indirizzo e i recapiti
telefonici.
Di un prestito interessano la data del prestito e la data di restituzione.
DIAGRAMMI E-R: esempio
Le associazioni interessanti sono:
1.
2.
3.
4.
HaScritto (N:M) tra autori e descrizioni bibliografiche, che collega un
autore con le descrizioni bibliografiche delle opere che ha scritto. Ogni
autore ha scritto almeno un libro e ogni descrizione bibliografica
riguarda almeno un autore;
Descrive (N:1) tra descrizioni bibliografiche e libri, che collega una
descrizione bibliografica alle copie dei libri presenti in biblioteca. Ogni
libro ha una descrizione bibliografica e ogni descrizione bibliografica
descrive una o più copie di libri, supporremo inoltre che possa
descrivere anche un libro ordinato ma non ancora acquisito dalla
biblioteca;
HaFatto (N:1) tra utenti e prestiti, che collega gli utenti ai prestiti che
ha fatto e che non sono ancora scaduti. Ogni utente della biblioteca
può avere nessuno, uno o più prestiti, ma un prestito ha sempre
associato l’utente che lo ha fatto;
Riguarda (1:1) tra prestiti e libri, che collega i prestiti alle copie dei libri
interessati. Una copia di un libro può essere coinvolta in al più un
prestito e un prestito riguarda una copia di un libro.
DIAGRAMMI E-R: esempio
DIAGRAMMI E-R: esempio
Sistemi per il recupero delle informazioni
COME SI PROCEDE
INTRODUZIONE
Finora si è visto come definire lo schema concettuale di una base di dati.
Nella pratica non è così semplice ed occorre un lungo procedimento di
analisi e studio della situazione da modellare per poter produrre una
progettazione concettuale della base di dati e poi una sua realizzazione.
Per dare un’idea di come si procede, si considera una tipica metodologia a
più fasi in cui gli aspetti del problema vengono considerati gradualmente
per ottenere una realizzazione soddisfacente.
Quattro fasi:
1.
2.
3.
4.
analisi dei requisiti
progettazione concettuale
progettazione logica
progettazione fisica
ANALISI DEI REQUISITI
Scopo dell’analisi dei requisiti è la definizione dei bisogni informativi del
committente.
Il progettista deve capire di “cosa si parla”. Poi si passa ad un’analisi del
problema per raccogliere una descrizione dei bisogni informativi e formulare la
cosiddetta specifica dei requisiti in linguaggio naturale.
Quando il problema è di limitata complessità, e basta interagire con una sola
persona, il procedimento può essere relativamente veloce, ma quando il
problema è complesso e sono coinvolte persone diverse, il procedimento diventa
lungo e comporta un lavoro di unificazione dei concetti coinvolti.
Lo scopo dell’analisi dei requisiti è, in altre parole, proprio quello di chiarire
la corretta interpretazione dei fatti descritti, riformulando la specifica in
modo chiaro.
Esempio
Si vuole progettare una base di dati per gestire informazioni su musei, le
opere conservate, gli artisti che hanno creato tali opere.
Di un museo interessano il nome, che lo identifica, la città, l’indirizzo e il nome
del direttore.
Un artista è identificato dal nome; di lui interessano la nazionalità, la data di
nascita, la eventuale data di morte.
Di un’opera, identificata da un codice, interessano, l’anno di creazione, il titolo,
il nome dei personaggi rappresentati.
Un’opera può essere un dipinto od una scultura; se è un dipinto interessano il
tipo di pittura e le dimensioni; se è una scultura interessano il materiale,
l’altezza ed il peso.
PROGETTAZIONE CONCETTUALE
Scopo della progettazione concettuale è di tradurre la specifica dei
requisiti in un progetto della struttura concettuale dei dati descritta
utilizzando un formalismo grafico.
Lo schema concettuale si definisce procedendo con i seguenti passi:
1.
2.
3.
4.
identificazione delle classi;
descrizione delle associazioni fra le classi;
definizione di sottoclassi;
definizione delle proprietà degli elementi delle classi.
PROGETTAZIONE CONCETTUALE
Identificazione delle classi
Si produce una lista preliminare delle classi di oggetti che interessa
modellare e si assegna ad ognuna di esse un nome appropriato. Questo
elenco iniziale ha un grado di completezza e di significatività che
dipende dal grado di comprensione del problema e, in generale, sarà
soggetto a modifiche mano a mano che si procede.
PROGETTAZIONE CONCETTUALE
Descrizione delle associazioni fra le classi
Si individuano le possibili associazioni fra le classi finora definite e le
loro proprietà strutturali. L’analisi delle associazioni può portare ad
eliminare una classe che può essere rappresentata da un’associazione,
o ad aggiungere una nuova classe per rappresentare un’associazione.
PROGETTAZIONE CONCETTUALE
Definizione di sottoclassi
Per definire le sottoclassi si esaminano tutte le classi già definite per
capire
1. se può essere utile definirne di nuove per caratterizzare particolari
sottoinsiemi di alcune classi
2. se esistono classi che sono un sottoinsieme di altre e quindi
possono essere ridefinite
3. se esistono oggetti di classi che possono assumere nel tempo stati
significativi per l’applicazione
PROGETTAZIONE CONCETTUALE
Definizione delle proprietà degli elementi delle classi
Per ogni tipo di oggetto si elencano le proprietà interessanti,
specificando, per ognuna di esse, il nome e il tipo. In questo passo va
prestata molta attenzione alla possibilità se convenga introdurre nuove
classi, o viceversa eliminarne alcune sostituendole da attributi.
Esempio
PROGETTAZIONE LOGICA
Scopo della terza fase della metodologia, la progettazione logica, è di
tradurre lo schema concettuale nello schema logico espresso nel
modello dei dati del sistema scelto per la realizzazione della base di
dati.
Esempio
MUSEI (NomeM, Città, Indirizzo, Direttore)
ARTISTI (NomeA, Nazionalità, DataN, DataM:optional)
OPERE (Codice, Anno, Titolo, NomeM*, NomeA*)
PERSONAGGI (Personaggio, Codice*)
DIPINTI (Codice*, Tipo, Larghezza, Altezza)
SCULTURE (Codice*, Materiale, Altezza, Peso)
Progettazione fisica
Consiste nel completamento, o modifica, dello schema logico in funzione
della organizzazione fisica dei dati ed i meccanismi per operare su di
essi.
Realizzazione
Consiste nel costruire la rappresentazione del fatti specificati nel progetto
(schema dei dati, procedure), utilizzando strumenti informatici (linguaggi di
programmazione, SGBD)
Sistemi per il recupero delle informazioni
MODELLO RELAZIONALE DEI DATI
PROGETTAZIONE

Ricordiamo le fasi della progettazione di una Base di Dati

Ci occuperemo adesso della progettazione logica
PROGETTAZIONE LOGICA

La descrizione del modello da realizzare è fatta in funzione delle
caratteristiche del DBMS che sarà utilizzato (il modello dei dati, il linguaggio
per sviluppare le applicazioni).

Il modello dei dati, detto modello
rappresentazione informatica dei dati.

Vedremo l’uso del Modello dei Dati Relazionale. Lo schema risultante è
detto schema relazionale, ed è rappresentato con un formalismo testuale.
 è un modello dei dati “compreso” dal DBMS
 si ottiene con una traduzione dello schema E-R
logico,
è
“più
vicino”
alla
ESEMPIO
ESEMPIO
VIENE TRADOTTO NELLO SCHEMA
MUSEI (NomeM, Città, Indirizzo, Direttore)
ARTISTI (NomeA, Nazionalità, DataN, DataM)
OPERE (Codice, Anno, Titolo, NomeM*, NomeA*)
PERSONAGGI (Personaggio, Codice*)
DIPINTI (Codice*, Tipo, Larghezza, Altezza)
SCULTURE (Codice*, Materiale, Altezza, Peso)
INTRODUZIONE
Il modello relazionale dei dati, proposto nel 1970 ed adottato nei sistemi
commerciali a partire dal 1978, si è diffuso rapidamente tanto sui sistemi centrali
quanto sugli elaboratori personali.
I meccanismi per definire una base di dati con il modello relazionale sono
solo due:
• l’ennupla
• la relazione.
Si basa sul concetto matematico di relazione. Le relazioni hanno una rappresentazione
naturale per mezzo di tabelle
ENNUPLA E RELAZIONE
Ennupla. È un insieme finito di coppie (Attributo, valore atomico)
Relazione. È un insieme finito (eventualmente vuoto) di ennuple con la
stessa struttura.
I campi di un’ennupla sono atomici (numeri, stringhe o il valore NULL).
Si tenga presente che non si possono rappresentare proprietà strutturate, o
multivalore e vedremo più avanti come risolvere questi problemi di
rappresentazione.
Un’ennupla si usa per rappresentare entità e la relazione si usa per
rappresentare classi di entità.
TERMINOLOGIA - I
 attributo: corrisponde (non sempre) ad un attributo del modello E-R.
Diversamente dal modello E-R, gli attributi sono sempre univoci (ad un sol
valore) ed atomici (non composti)

L’ordine degli attributi non è significativo
 dominio (di un attributo): è l’insieme dei valori che può assumere un
attributo.
 chiave primaria
di una relazione: un attributo che identifica
univocamente le ennuple della relazione. Gli attributi della chiave primaria
vengono sottolineati
TERMINOLOGIA - II
 Una relazione si definisce dandole un nome ed elencando fra parentesi
tonde il tipo delle sue ennuple. La definizione di una relazione è detta
schema della relazione
R(A1:T1, A2:T2,..., An:Tn)
 R è il nome della relazione
 A1, A2,... sono gli attributi della relazione
 T1, T2,... sono i tipi degli attributi (interi, reali, booleani, stringhe)
 Per semplicità omettiamo la specifica dei tipi, per cui lo schema di relazione è
R(A1, A2,...,An)
RELAZIONE E TABELLA
Orario
Insegnamento
Analisi matem. I
Basi di dati
Chimica
Fisica I
Fisica II
Sistemi inform.
Docente
Luigi Neri
Piero Rossi
Nicola Mori
Mario Bruni
Mario Bruni
Piero Rossi
Aula
N1
N2
N1
N1
N3
N3
Ora
8:00
9:45
9:45
11:45
9:45
8:00
ORARIO (Insegnamento, Docente, Aula, Ora)
Relazione e tabella sono sinonimi
TERMINOLOGIA - III
 Lo schema della relazione è la descrizione della struttura di una
relazione
 Un’istanza di uno schema di relazione è un insieme finito di ennuple.
 osserviamo che tutte le ennuple di una relazione hanno la stessa struttura
 Lo schema relazionale è la descrizione della struttura di una base di
dati
 insieme di schemi di relazione
 insieme di vincoli
SCHEMA
Orario
Insegnamento
Analisi matem. I
Basi di dati
Chimica
Fisica I
Fisica II
Sistemi inform.
Docente
Luigi Neri
Piero Rossi
Nicola Mori
Mario Bruni
Mario Bruni
Piero Rossi
Aula
N1
N2
N1
N1
N3
N3
Ora
8:00
9:45
9:45
11:45
9:45
8:00
ORARIO (Insegnamento, Docente, Aula, Ora)
Le colonne della tabella formano
lo schema della relazione
ISTANZE
Orario
Insegnamento
Analisi matem. I
Basi di dati
Chimica
Fisica I
Fisica II
Sistemi inform.
Docente
Luigi Neri
Piero Rossi
Nicola Mori
Mario Bruni
Mario Bruni
Piero Rossi
Aula
N1
N2
N1
N1
N3
N3
Ora
8:00
9:45
9:45
11:45
9:45
8:00
ORARIO (Insegnamento, Docente, Aula, Ora)
I contenuti delle righe della tabella formano
le istanze della relazione
RELAZIONE: TRE ACCEZIONI
 Relazione matematica: come nella teoria degli insiemi
 Relazione secondo il modello relazionale dei dati
 Relazione (relationship): costrutto del modello Entita’-Relazione
utilizzato nel modello concettuale per descrivere legami tra entita’ nel mondo
reale (tradotto anche con associazione o correlazione)
RELAZIONE MATEMATICA - I

D1, …, Dn (n insiemi anche non distinti)

prodotto cartesiano D1×…×Dn: l’insieme di tutte le n-uple (d1, …, dn) tali
che d1D1, …, dn  Dn

relazione matematica su D1, …, Dn:
- un sottoinsieme di D1×…×Dn.
- D1, …, Dn sono i domini della relazione
- n è il grado

il numero di elementi della relazione si dice cardinalità
ESEMPIO
D1={a,b} D2={x,y,z}
prodotto cartesiano
D1 × D2 = {(a,x); (a,y); (a,z); (b,x); (b,y); (b,z)}

relazione r1  D1 × D2 t. c.:
r1 = {(a,x); (a,z); (b,y)}
RELAZIONE MATEMATICA - II

Una relazione matematica è un insieme di n-uple ordinate:
(d1, …, dn) tali che d1D1, …, dn  Dn

Una relazione è un insieme; quindi:
- non c'è ordinamento fra le n-uple (ordinamento verticale)
- le n-uple sono distinte
- ciascuna n-upla è ordinata: l’ i-esimo valore proviene dall’ i-esimo
dominio (ordinamento orizzontale)
RELAZIONI E TABELLE - I
Le relazioni possono essere rappresentate graficamente, in maniera utilmente
espressiva, sotto forma di tabelle
Esempio (precedente): D1={a,b}
D2={x,y,z}
a
x
a
y
a
z
a
x
b
x
a
z
b
y
b
y
b
z
prodotto cartesiano
D1 × D2
Relazione r1
ESEMPIO
D1={x,y} D2={a,b,c} D3={3,5}
x
x
x
x
x
x
y
y
y
y
y
y
a
a
b
b
c
c
a
a
b
b
c
c
3
5
3
5
3
5
3
5
3
5
3
5
prodotto cartesiano D1
× D2 × D3
x
x
x
y
y
y
a
a
c
a
c
c
3
5
5
3
3
5
Relazione
NON C’E ORDINAMENTO VERTICALE
x
x
x
y
y
y
a
a
c
a
c
c
3
5
5
3
3
5
x
y
x
y
x
y
a
a
c
c
c
c
3
3
5
3
5
5
Rappresentano la stessa relazione
y
y
x
x
x
y
c
c
a
a
c
a
3
5
3
5
5
3
LE RIGHE SONO DISTINTE
x
x
x
y
y
y
a
a
c
a
c
c
3
5
5
3
3
5
Relazione
valida
x
x
x
y
x
y
a
a
c
c
c
c
3
3
5
5
5
5
Relazione
non valida
y
y
x
x
y
y
c
c
a
a
c
c
3
5
3
5
5
5
Relazione
non valida
C’E’ ORDINAMENTO ORIZZONTALE
x
x
x
y
y
y
a
a
c
a
c
c
3
5
5
3
3
5
3
5
5
3
3
5
x
x
x
y
y
y
a
a
c
a
c
c
Rappresentano relazioni diverse
a
a
c
a
c
c
3
5
5
3
3
5
x
x
x
y
y
y
ATTRIBUTI - I
A ciascun dominio si associa un nome (attributo), che ne descrive il "ruolo"
Casa
Fuori
RetiCasa
RetiFuori
Juve
Lazio
3
1
Lazio
Milan
2
0
Juve
Roma
0
2
Roma
Milan
0
1
ATTRIBUTI - II
L’ordinamento degli attibuti e’ irrilevante
Fuori
Casa
RetiFuori
RetiCasa
Lazio
Juve
1
3
Milan
Lazio
0
2
Roma
Juve
2
0
Milan
Roma
1
0
Casa
Juve
Fuori
Lazio
RetiCasa
3
RetiFuori
1
Lazio
Milan
2
0
Juve
Roma
0
2
Roma
Milan
0
1
Stile americano
Stile europeo
FORMALISMO - I

Corrispondenza Attributi - Domini
dom: X D
funzione che associa a ogni attributo AX un dominio D

Una ennupla su un insieme di attributi X è una funzione che associa a
ciascun attributo AX un elemento di dom(A):
t[A] denota il valore della ennupla t sull'attributo A
Una relazione su X e’ un insieme di ennuple
FORMALISMO - II
Casa
Juve
Fuori
Lazio
RetiCasa
3
RetiFuori
1
Lazio
Milan
2
0
Juve
Roma
0
2
Roma
Milan
0
1
Notazione per le ennuple:
 L‘ennupla rappresentata dalla prima riga
t[Fuori] = Lazio
t[RetiCasa] = 3

Notazione estesa ad insieme di attributi
t[Fuori, RetiCasa]
Relazione
RELAZIONI E DATABASE

Di solito non è sufficiente una sola relazione per organizzare tutti i dati

Un database è costituito (in generale) da più relazioni

Le ennuple contengono valori comuni per stabilire corrispondenze
FORMALISMO - III

Schema di relazione:
un simbolo R, detto nome della relazione, e un insieme di attributi A1,
..., An:
R(A1,..., An)

Schema di base di dati:
insieme di schemi di relazione con nomi diversi:
R = {R1(X1), ..., Rk(Xk)}

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)
ESEMPIO

Schema di Base di dati:
R= {STUDENTI (Matricola, Cognome, Nome,
di nascita),
ESAMI(Studente, Voto, Corso),
CORSI(Codice, Titolo, Docente) 
R= {CORSI(Corso, Docente, Aula),
AULE(Nome, Edificio, Piano),
CORSISEDI(Corso, Aula, Edificio, Piano) 
Data
DATABASE
Corsi
Aule
Docente Aula
Corso
Basi di dati Rossi DS3
Neri
N3
Sistemi
Bruni
N3
Reti
Bruni
G
Controlli
CorsiSedi
Nome
DS3
N3
G
Edificio Piano
OMI
Terra
OMI
Terra
Pincherle Primo
Corso
Aula
Edificio
Piano
Sistemi
Reti
N3
N3
OMI
OMI
Terra
Terra
Controlli
G
Pincherle Primo
Un database e’ un insieme di tabelle
CARATTERISTICA FONDAMENTALE
Il modello relazionale è basato su valori
Ovvero:
i riferimenti fra dati in relazioni diverse sono rappresentati per mezzo di
valori dei domini che compaiono nelle ennuple
VALORI VS PUNTATORI - I
studenti
Matricola
6554
8765
9283
3456
Cognome
Rossi
Neri
Verdi
Rossi
Nome
Mario
Paolo
Luisa
Maria
Data di nascita
05/12/1978
03/11/1976
12/11/1979
01/02/1978
esami
Studente
3456
3456
9283
6554
Voto
30
24
28
26
Corso
04
02
01
01
corsi
Codice
01
02
04
Titolo
Analisi
Chimica
Chimica
Docente
Mario
Bruni
Verdi
VALORI VS PUNTATORI - II
studenti
Matricola
6554
8765
9283
3456
voti
corsi
Cognome
Rossi
Neri
Verdi
Rossi
Nome
Mario
Paolo
Luisa
Maria
Data di nascita
05/12/1978
03/11/1976
12/11/1979
01/02/1978
Studente
Voto
30
24
28
26
Corso
Codice
Titolo
01
Analisi
02
Chimica
21/12/2015
04
Chimica
Docente
Mario
Bruni
Verdi
VANTAGGI





indipendenza dalle strutture fisiche che possono cambiare
dinamicamente
si rappresenta solo ciò che è rilevante dal punto di vista
dell’applicazione
l’utente finale vede gli stessi dati dei programmatori
i dati sono portabili piu' facilmente da un sistema ad un altro
i puntatori sono direzionali
RAPPRESENTAZIONE GRAFICA - I
PERSONE(CodFiscale,Nome,Telefono)
o più accuratamente
PERSONE(CodFiscale:string(16),Nome:string(30),
Telefono: optional integer)
L’attributo sottolineato è la chiave primaria
RAPPRESENTAZIONE GRAFICA - II

Una (istanza della) relazione Persone, conforme a tale schema, è ad es. la
seguente:

E’ d’uso visualizzare una relazione come una tabella bidimensionale,
con le colonne identificate dagli attributi e le righe contenenti i valori
dei campi, nell’ordine indicato dall’intestazione delle colonne.
La proprietà di essere chiave è riferita allo schema piuttosto che ad una
particolare tabella: una chiave è tale (identifica le righe) in una qualunque
istanza di un determinato schema.

TIPI
Due relazioni hanno lo stesso tipo se hanno uguali il numero degli attributi,
gli attributi e il tipo degli attributi con lo stesso nome.
Impiegati(Matricola :string,
Cognome :string,
AnnoNascita :integer,
Provincia :string)
stesso
tipo
Studenti( Cognome :string,
Matricola :string,
Provincia :string,
AnnoNascita :integer)
tipo diverso
Docenti( Cognome :string,
Matricola :integer,
Provincia :string,
AnnoNascita :integer)
Docenti ha tipo diverso perché Matricola è di tipo intero e non stringa.
CHIAVI ESTERNE
Le associazioni tra i dati sono rappresentate attraverso i valori di
opportuni campi, chiamati chiavi esterne, che assumono come valori
quelli della chiave primaria di un’altra relazione.
In altre parole una chiave esterna è un attributo (od un insieme di attributi) di
una relazione R che assume i valori della chiave primaria di un’altra relazione
S.
Serve a rappresentare un’associazione tra R ed S
ESEMPIO - I

Consideriamo l’associazione SEGUE tra STUDENTI e CDS (Corso di
Studi).
STUDENTI(Nome:string, Matricola: string,
Provincia: string, AnnoNascita:int, SiglaCDS*:
string)
CDS(SiglaCDS: string, NomeCDS: string, Tipo:
string)


Il fatto che un corso di studi è associato ad uno studente si modella
prevedendo nello schema della relazione STUDENTI un campo che
assume come valori la chiave primaria di CDS, cioè SiglaCDS.
SiglaCdS* è chiave esterna nella relazione STUDENTI, e serve a
rappresentare un’associazione univoca da STUDENTI a CdS
ESEMPIO - II
ESEMPIO - III



Il dominio di SiglaCDS* nella relazione STUDENTI coincide col dominio di
SiglaCDS nella relazione CDS
Se in una istanza di STUDENTI l’attributo SiglaCDS assume il valore “XYZ”,
deve esistere, nella istanza di CDS una ennupla con SiglaCDS = “XYZ”.
Il motivo è ovvio; se una studente è iscritto a “XYZ”, deve esistere il Corso
di Studi “XYZ”
Tale proprietà si chiama Vincolo di integrità referenziale, e deve essere
sempre soddisfatto da una chiave esterna:
DA MODELLO A OGGETTI A MODELLO
RELAZIONALE - I
Data una descrizione di una base di dati con i meccanismi di astrazione del
modello a oggetti, la sua trasformazione con il modello relazionale è alquanto
laboriosa perché bisogna trattare
• la descrizione delle associazioni
• la descrizione delle gerarchie di classi
• le eventuali proprietà strutturate e multivalore e passare ad una loro
descrizione con attributi atomici.
Inoltre, essendo il modello relazionale meno espressivo del modello a oggetti, in
generale si può procedere in più modi nella trasformazione e la scelta fra
possibili alternative va fatta cercando di ottimizzare lo spazio di memoria
occupata dalla base di dati e le prestazioni delle applicazioni.
DA MODELLO A OGGETTI A MODELLO
RELAZIONALE - II
Nella conversione di uno schema espresso con il modello a oggetti gli obiettivi
da perseguire sono:
1.
2.
3.
rappresentare le stesse informazioni;
minimizzare la ridondanza;
agevolare il recupero dei dati in relazione.
In generale nella conversione occorre duplicare delle informazioni e non si
possono sempre rappresentare direttamente tutti i vincoli imposti dai
meccanismi del modello a oggetti.
Per garantire la coerenza dei dati duplicati, e il rispetto dei vincoli non esprimibili
nel modello relazionale, occorre quindi definire opportunamente le operazioni
che modificano la base di dati.
DA MODELLO A OGGETTI A MODELLO
RELAZIONALE - III
La trasformazione di uno schema a oggetti in uno schema relazionale avviene
eseguendo i seguenti passi:
1.
2.
3.
4.
5.
6.
rappresentazione delle classi
rappresentazione delle associazioni uno a uno e uno a molti;
rappresentazione delle associazioni molti a molti o non binarie;
rappresentazione delle gerarchie di inclusione;
rappresentazione degli attributi multivalore;
appiattimento gli attributi composti
1. Rappresentazione delle classi
Una classe C è rappresentata da una relazione R i cui attributi sono quelli
di C
si traduce in
Studenti(Matricola, Nome, AnnoImmatric)
2. Rappresentazione delle associazioni uno a uno e uno a
molti
Come abbiamo già visto nell’esempio degli studenti e dei corsi di studi, le
associazioni uno a molti si rappresentano aggiungendo agli attributi della
relazione rispetto a cui l’associazione è univoca una chiave esterna che
riferisce l’altra relazione.
ESEMPIO: la relazione tra corsi di studi e studenti, essendo univoca rispetto ai
corsi di studi, si rappresenta aggiungendo agli studenti una chiave esterna
SiglaCDS.
Quando l’associazione è uno ad uno la chiave esterna si aggiunge ad una
qualunque delle due relazioni, preferendo quella rispetto a cui
l’associazione è totale.
Se l’associazione ha degli attributi, questi vanno aggiunti alla relazione a cui si
aggiunge la chiave esterna.
ESEMPIO - I
Studenti(Matricola, Nome, AnnoImmatric, Codice*)
CorsidiLa(Codice, Nome, Tipo)
la chiave esterna Codice* rappresenta l’associazione è_iscritto
N.B. È un grave errore fare il contrario. Lo schema:
Studenti(Matricola, Nome, AnnoImmatric)
CorsidiLa(Codice, Nome, Tipo, Matricola*)
rappresenta Corsi di Laurea ai quali può essere iscritto un solo studente!
ESEMPIO - II
Se l’associazione è 1 a 1, cioè univoca in entrambi i versi, allora sono corrette
entrambe le soluzioni.
Dipartimenti(Nome, Facoltà, Cod*)
Docenti(Cod, Settore)
o
Dipartimenti(Nome, Facoltà)
Docenti(Cod, Settore, Nome*)

La prima soluzione è migliore, ma entrambe sono corrette
3. Rappresentazione delle associazioni molti a molti o non
binarie
Un’associazione molti a molti tra due classi si rappresenta aggiungendo
allo schema una nuova relazione che contiene due chiavi esterne che
riferiscono le due relazioni coinvolte.
precisamente:
se A è un’associazione multivalore da R ad S e da S ad R, A è rappresentata
con uno schema di relazione in cui gli attributi sono le chiavi primarie pkR di R e
pkS di S.
A (pkR*, pkS*)
Se l’associazione ha degli attributi, questi attributi vengono aggiunti alla nuova
relazione, e non vanno a far parte della chiave della nuova relazione.
ESEMPIO - I
CorsidiLa(Codice,Nome,Facoltà,Tipo)
Docenti(CodDoc, Settore)
Insegna(Codice*, CodDoc*)
Una ennupla di Insegna rappresenta una coppia (Corso_di_Lurea, Docente) di
oggetti in associazione.
Il docente identificato dal CodDoc 1592 insegna ai
corsi di laurea identificati dai codici Inf, SBC e Mat , il
docente identificato dal CodDoc 3014 insegna al
corso di laurea identificato dai codici Inf, ecc...
ESEMPIO - II
CorsidiLa(Codice,Nome,Facoltà,Tipo)
Docenti(CodDoc, Settore)
Insegna(Codice*, CodDoc*, NumIns)
4. Rappresentazione delle gerarchie fra classi
Sia data una classe A con due sottoclassi B e C, tali che i tipi associati
alle tre classi abbiano, rispettivamente, attributi (XA), (XA XB) e (XA
XC), e sia KA la chiave primaria di A.
Nel modello relazionale vi sono almeno tre modi diversi di rappresentare questa
situazione:
1.
Relazione unica
2.
Partizionamento verticale
3.
Partizionamento
4. Rappresentazione delle gerarchie fra classi
Relazione unica
Si definisce un’unica relazione con attributi (XA XB XC D) che raccoglie
tutti gli elementi delle tre classi; gli attributi XB e XC possono
assumere il valore nullo, e l’attributo D serve a indicare la classe a cui
appartiene l’elemento.
ESEMPIO: Consideriamo la classe Persone con attributi CF, Nome e Tel e due
sottoclassi: Studenti, con attributi Matricola e Facoltà, e Lavoratori, con
attributi Attività e Reddito
Secondo la relazione unica definiremo un’unica relazione Persone con tutti
gli attributi
Persone(CF, Nome, Tel, Matricola, Facoltà, Attività e
Reddito)
ESEMPIO

Un solo schema di relazione, che contiene tutti gli attributi
Con questa soluzione viene ignorata la gerarchia: si perdono le sottoclassi
4. Rappresentazione delle gerarchie fra classi
Partizionamento verticale
Si definiscono tre relazioni RA(XA), RB(KA*, XB), RC(KA*, XC), dove RA
contiene tutti gli elementi della classe A, anche se stanno in qualche
sottoclasse, mentre RB ed RC contengono solo quegli attributi, degli
elementi di B e di C, che non sono in XA (attributi propri delle
sottoclassi), ed una chiave esterna KA* che permette di ritrovare in RA
il valore degli altri attributi.
ESEMPIO si definiscono le relazioni Persone, con attributi CodFisc, Nome e
Tel, Studenti con attributi CodFisc, Matricola e Facoltà e la relazione
Lavoratoricon attributi CodFisc, Attività e Reddito. La relazione Persone
contiene il codice fiscale il nome ed il telefono di tutte le persone, mentre le
altre due relazioni contengono gli attributi propri delle sottoclassi, nonché il
codice fiscale, che permette di risalire al nome;
Persone(CodFisc, Nome, Telefono)
Lavoratori(CodFisc*, Attività, Reddito)
Studenti(CodFisc*, Matricola, Facoltà)
ESEMPIO
Persone(CodFisc, Nome, Telefono)
Lavoratori(CodFisc*, Attività,
Reddito)
Studenti(CodFisc*, Matricola,
Facoltà)
4. Rappresentazione delle gerarchie fra classi
Partizionamento orizzontale
Si definiscono tre relazioni RA(XA), RB(XA,XB), RC(XA, XC), dove RA
contiene solo gli elementi della classe A che non stanno in nessuna
delle sottoclassi, mentre RB ed RC contengono tutti gli elementi di B e
di C
NOTA: se le sottoclassi costituiscono una copertura, la relazione RA(XA) non
viene definita perché sarebbe sempre vuota.
ESEMPIO: trattandosi di sottoclassi che non soddisfano il vincolo di copertura si
definiscono le relazioni Persone con attributi CodFisc, Nome, Telefono,
Studenti con attributi CodFisc, Nome, Telefono, Matricola e Facoltà e la
relazione Lavoratori con attributi CodFisc, Nome, Telefono, Attività e
Reddito. La relazione Persone contiene le informazioni delle persone che
non sono né studenti né lavoratori, la relazione Studenti contiene le
informazioni degli studenti e la relazione Lavoratori contiene le informazioni
dei lavoratori.
Persone(CodFisc, Nome, Telefono)
Lavoratori(CodFisc*, Attività, Reddito , Nome, Telefono)
Studenti(CodFisc*, Matricola, Facoltà , Nome, Telefono)
ESEMPIO

Tre schemi indipendenti, uno per ogni classe, contenenti tutti gli
attributi di ciascuna classe
Anche con questa soluzione viene ignorata la gerarchia: si perde la
superclasse
Si osservi che con nessuna delle tre soluzioni è in generale possibile
esprimere i vincoli strutturali della gerarchia, vale a dire i vincoli di
disgiunzione e di totalità
5. Rappresentazione delle proprietà multivalore
Una proprietà multivalore di una classe C si rappresenta eliminando il
corrispondente attributo da C e creando una relazione con due
attributi: una chiave esterna che fa riferimento alla chiave primaria di C
ed un attributo che corrisponde all’attributo multivalore da
trasformare.
Un oggetto con chiave primaria K ed in cui l’attributo assume valore A1, ..., An si
rappresenta poi inserendo nella nuova relazione n coppie (K, A1), ..., (K,An).
ESEMPIO: si immagini che un utente abbia attributi Codice, Cognome e
Telefoni, con Telefoni multivalore.
Applicando la trasformazione, si ottengono le due seguenti relazioni:
Utenti(Codice, Cognome)
TelefoniUtenti(Codice*, Telefono)
ESEMPIO
Film(CodFilm,Titolo,Regista,Anno)
Attori(CodFilm*, Attore)
6. Appiattimento degli attributi composti
Se un attributo A di uno schema di relazione è di tipo strutturato con
campi Ai, si sostituisce A con gli attributi Ai.
Se A faceva parte della chiave primaria dello schema di relazione, si sostituisce
A con gli attributi Ai nella chiave, e poi si verifica che non esista un
sottoinsieme degli attributi della nuova chiave primaria che è esso stesso
una chiave.
Sullo schema relazionale ottenuto si ripetono questa trasformazione e la
precedente finché esistono schemi di relazioni con proprietà composte e
proprietà multivalore.
ESEMPIO: se gli Utenti hanno un attributo strutturato Indirizzo con attributi Via,
CAP e Città, applicando la trasformazione alla relazione
Utenti(Codice, Cognome, Indirizzo)
si ottiene lo schema di relazione
Utenti(Codice, Cognome, Via, CAP, Città)
Riassumendo
Le regole di traduzione
 Entità: diventano tabelle ed i loro identificatori chiavi primarie
 Associazioni 1-1: se obbligatorie si procede come per le 1-N scegliendo il
lato in cui includere gli attributi e la chiave esterna; se una opzionale si
includono gli attributi e la chiave esterna sul lato“obbligatorio”; se entrambe
opzionali si costruisce una tabella autonoma come per il caso N-N.
 Associazioni1-N:gli attributi dell’associazione e la chiave primaria della
tabella relativa all’entità dal lato “N” sono inclusi nella tabella relativa
all’entità dal lato“1”.
 Associazioni N-N: diventano tabelle con chiave primaria formata
dall’unione delle chiavi delle entità coinvolte
Confronto tra modello E-R e modello
Relazionale
Nonostante una evidente analogia tra
Classe e Relazione
Oggetto e Ennupla
Attributo(E-R) e Attributo(Rel)
sussiste in realtà una significativa differenza tra i concetti nei due modelli



Non sempre una relazione rappresenta una classe: può rappresentare una
associazione o un attributo multivalore
Non sempre un’ ennupla rappresenta un oggetto: può rappresentare una
coppia di oggetti in associazione o un possibile valore di un attributo
multivalore
Non sempre un attributo Rel rappresenta un attributo E-R: può
rappresentare un oggetto di un’altra classe (chiave esterna)
Informazione incompleta

ll modello relazionale impone ai dati una struttura rigida:
- le informazioni sono rappresentate per mezzo di ennuple
- solo alcuni formati di ennuple sono ammessi: quelli che
corrispondono agli schemi di relazione

I dati disponibili possono non corrispondere al formato previsto
Es: PERSONE(Nome, SecondoNome, Cognome)
Nome
Franklin
SecondoNome
Delano
Cognome
Roosevelt
Winston
Charles
Churchill
De Gaulle
Josip
Stalin
Informazione incompleta: soluzioni?

Non conviene (anche se spesso si fa) usare valori del dominio (0,
stringa nulla, “99”, ...):
potrebbero non esistere valori “non utilizzati”
- in fase di utilizzo (nei programmi) sarebbe necessario ogni volta
tener conto del “significato” di questi valori
-

Tecnica rudimentale ma efficace:
- valore nullo: denota l’assenza di un valore del dominio (e non è un
valore del dominio)
- si possono (e debbono) imporre restrizioni sulla presenza di valori
nulli
Troppi valori nulli
studenti
Matricola
Cognome
Nome
Data di nascita
6554
Rossi
Mario
05/12/1978
9283
Verdi
Luisa
12/11/1979
NULL
Rossi
Maria
01/02/1978
esami
corsi
Studente
Voto
Corso
NULL
30
NULL
NULL
24
02
9283
28
01
Codice
Titolo
Docente
01
Analisi
Mario
02
Chimica
NULL
NULL
Chimica
Verdi
Tipi di valore nullo

(almeno) tre casi differenti
 valore sconosciuto
 valore inesistente
 valore senza informazione
Citta’
IndirizzoPrefettura
Roma
Genova
Ovada
Prato
Via Quattro Novembre
NULL
NULL
NULL
Vincoli, schemi e istanze

I vincoli corrispondono a proprietà del mondo reale modellato dalla
base di dati
 interessano a livello di schema (con riferimento cioè a tutte le
istanze)

Ad uno schema associamo un insieme di vincoli e consideriamo
corrette (valide, ammissibili) le istanze che soddisfano tutti i vincoli

Un'istanza può soddisfare altri vincoli
La Conoscenza Astratta nel modello
Relazionale

Nel modello relazionale si possono esprimere i seguenti vincoli:
 Vincolo di chiave
 Vincolo di chiave esterna
 Tipo di un attributo
 Attributo obbligatorio
 Vincoli strutturali delle associazioni (non completamente)
La Conoscenza Astratta nel modello
Relazionale

Rispetto al modello E-R, non è possibile rappresentare i vincoli delle
gerarchie, mentre è possibile, solo in parte, rappresentare i vincoli strutturali
delle associazioni
Questo schema E-R si traduce nello schema relazionale
S(h, a, k*)
T(k, b)
che rappresenta l’univocità e la totalità di R da S a T, ma non consente di
esprimere la sua totalità da T ad S.
Una base di dati "scorretta"
Esami
Studenti
Studente
Voto
Lode
Corso
276545
32
276545
30
e lode
02
787643
27
e lode
03
739430
24
01
04
Matricola
Cognome
Nome
276545
Rossi
Mario
787643
Neri
Piero
787643
Bianchi
Luca
Vincolo di integrità



Proprietà che deve essere soddisfatta dalle istanze che rappresentano
informazioni corrette per l’applicazione
Un vincolo è una funzione booleana (un predicato): associa ad ogni
istanza il valore vero o falso
Perchè?
 descrizione più accurata della realtà
 contributo alla “qualità dei dati”
 utili nella progettazione (vedremo)
 usati dai DBMS nella esecuzione delle interrogazioni
Tipi di vincoli

Vincoli intrarelazionali: coinvolgono
database.
 Esempi
- vincoli di ennupla
- vincoli di chiave
- vincoli su valore
una
singola relazione del

Vincoli interrelazionali: coinvolgono diverse relazioni del database.
 Esempio: vincoli di integrità referenziale
Vincoli di ennupla



Esprimono
condizioni
sui
valori
di
ciascuna
indipendentemente dalle altre ennuple
Caso particolare:
 vincoli di dominio: coinvolgono un solo attributo
ennupla,
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")
Vincoli di ennupla, esempio
Stipendi
Impiegato
Lordo
Ritenute
Netto
Rossi
55.000
12.500
42.500
Neri
45.000
10.000
35.000
Bruni
47.000
11.000
36.000
Lordo = (Ritenute + Netto)
Importanza delle chiavi

Chiave: insieme di attributi che identificano univocamente le ennuple
di una relazione

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 su valori

In presenza di valori nulli, i valori della chiave non permettono
 di identificare le ennuple
 di realizzare facilmente i riferimenti da altre relazioni
Chiave primaria


Chiave su cui non sono ammessi nulli
Notazione: sottolineatura
Matricola
Cognome
Nome
Corso
Nascita
86765
NULL
Mario
Ing Inf
5/12/78
78763
Rossi
Mario
Ing Civile
3/11/76
65432
Neri
Piero
Ing Mecc
10/7/79
87654
Neri
Mario
Ing Inf
NULL
43289
Neri
Mario
NULL
5/12/78
Un'altra chiave
Matricola Cognome Nome
27655
Rossi
Mario
Rossi
Mario
Rossi
Mario
Mario
78763
Rossi
Neri
Piero
65432
87654
Neri
Mario
Mario
67653
Rossi
Piero
Rossi

Corso
Ing Inf
Ing Inf
Ing Mecc
Ing Inf
Ing Mecc
{Cognome, Nome, Nascita} è un’altra chiave:
Nascita
5/12/78
5/12/78
3/11/76
3/11/76
10/7/79
3/11/76
3/11/76
5/12/78
5/12/78
Integrità referenziale

Informazioni in relazioni diverse sono correlate attraverso valori
comuni
 in particolare, valori delle chiavi (primarie)

le correlazioni debbono essere "coerenti"
Esempio
Codice
34321
53524
64521
73321
Infrazioni
Vigili
Auto
Data
1/2/95
4/3/95
5/4/96
5/2/98
Vigile
3987
3295
3295
9345
Prov Numero
MI
39548K
TO
E39548
PR
839548
PR
839548
Matricola
Cognome
Nome
3987
Rossi
Luca
3295
Neri
Piero
9345
Neri
Mario
7543
Mori
Gino
Prov
Numero
Cognome
Nome
MI
39548K
Rossi
Mario
TO
E39548
Rossi
21/12/2015
839548
Neri
Mario
PR
Luca
Infrazioni
Codice
Data
Vigile
Prov
Numero
34321
1/2/95
3987
MI
39548K
53524
4/3/95
3295
TO
E39548
64521
5/4/96
3295
PR
839548
73321
5/2/98
9345
PR
839548
Vigili
Matricola
Cognome
Nome
3987
Rossi
Luca
3295
Neri
Piero
9345
Neri
Mario
7543
Mori
Gino
Vincolo di integrità referenziale

Un vincolo di integrità referenziale (“foreign key”) fra gli attributi X di
una relazione R1 e un’altra relazione R2 impone ai valori su X in R1 di
comparire come valori della chiave primaria di R2

ES: vincoli di integrità referenziale fra: l’attributo Vigile della relazione
INFRAZIONI e la relazione VIGILI
Violazione di vincolo di integrità referenziale
Infrazioni
Codice
Data
Vigile
Prov
Numero
34321
1/2/95
3987
MI
39548K
53524
4/3/95
3295
TO
E39548
64521
5/4/96
3295
PR
839548
73321
5/2/98
9345
PR
839548
Auto
Prov
Numero
Cognome
Nome
MI
E39548
Rossi
Mario
TO
F34268
Rossi
Mario
PR
839548
Neri
Luca
Integrità referenziale e valori nulli
Impiegati
Progetti
Matricola
Cognome
Progetto
34321
Rossi
IDEA
53524
Neri
XYZ
64521
Verdi
NULL
73032
Bianchi
IDEA
Codice
Inizio
Durata
Costo
IDEA
01/2000
36
200
XYZ
07/2001
24
120
BOH
09/2001
24
150
Azioni compensative

Esempio:
 Viene eliminata una ennupla causando una violazione

Comportamento “standard”:
 Rifiuto dell'operazione

Azioni compensative:
 Eliminazione in cascata
 Introduzione di valori nulli
Eliminazione in cascata
Impiegati
Progetti
Matricola
Cognome
Progetto
34321
Rossi
IDEA
53524
Neri
XYZ
64521
Verdi
NULL
73032
Bianchi
IDEA
Codice
Inizio
Durata
Costo
IDEA
01/2000
36
200
XYZ
07/2001
24
120
BOH
09/2001
24
150
Introduzione di valori nulli
Impiegati
Progetti
Matricola
Cognome
Progetto
34321
Rossi
IDEA
53524
Neri
NULL
XYZ
64521
Verdi
NULL
73032
Bianchi
IDEA
Codice
Inizio
Durata
Costo
IDEA
01/2000
36
200
XYZ
07/2001
24
120
BOH
09/2001
24
150
ESEMPI
ESERCIZI
Esempio: Noleggio DVD

Un negozio noleggia film in DVD
 il negozio dispone di un catalogo dei film; ogni film è identificato
dal codice DVD
 nel catalogo sono specificati il titolo del film, il regista, gli attori
principali, la loro nazionalità ed il personaggio interpretato nel film,
l’anno di produzione
 ciascun film è indicizzato da un insieme di termini (una lista di
parole che descrivono sinteticamente il contenuto del film)
 I film possono essere anche in lingua originale (diversa
dall’italiano); in tal caso nel catalogo è detto di che lingua si tratta,
e se il film è sottotitolato.
 di ogni film presente nel catalogo il negozio dispone di uno o più
DVD, ciascuno identificato dalla sua collocazione; se un DVD è
noleggiato, interessa sapere il cliente che l’ha noleggiato e la data
del noleggio.
 i clienti sono identificati da un codice; di essi interessa inoltre
cognome, nome, indirizzo, telefono.
Come si procede?
Si individuano
 le classi
 le associazioni
 gli attributi
 le chiavi
 le gerarchie
Individuare le classi

Le entità presenti nella realtà e che sono interessanti nel modello sono
i film, i dvd, gli attori, i clienti;
 le classi individuate sono:
Film

Attori
DVD
Clienti
gli attori costituiscono una classe in quanto interessano delle loro
proprietà (nazionalità,…), mentre del regista interessa solo il nome,
e quindi va considerato un attributo
 i dvd costituiscono una classe; sono concettualmente distinti dai
film, e interessa sapere a chi sono noleggiati, ed in quale data
Individuare le associazioni
DVD
Film
contiene N:1
recita N:M
Attori
èNoleggiato: 1:N
Clienti
è parziale su film: ad un film possono non essere associati attori
contiene è un’associazione N:1 perché un dvd rappresenta solo un film,
mentre ad un film possono essere associati più dvd
Individuare attributi e chiavi
Attori
DVD
Film
nome
nazionalità
collocazione
data noleggio
codice DVD
titolo
regista
anno
lingua
sottotitoli/no-sottotitoli
termini
Clienti
codice cliente
cognome
nome
telefono
indirizzo(città, via)
Schema relazionale





FILM( codiceDVD, titolo, regista, anno, lingua, sottotitoli)
 rappresenta la classe FILM; l’attributo Termini non è rappresentato
perchè è multivalore.
Attori( nome, nazionalità)
 rappresenta la classe Attori
Recita( codiceDVD*, nome* )
 rappresenta l’associazione N:M recita
DVD( collocazione, dataNoleggio, codiceDVD*, codiceCliente*)
 rappresenta la classe DVD e le associazioni contiene e èNoleggiato
Clienti( codiceCliente, cognome, nome, telefono, città, via)
Individuare le gerarchie
Film In Lingua
DVD
DVD
noleggiati
Film
contiene N:1
recita N:M
Attori
èNoleggiato: 1:N
Clienti
Individuare attributi e chiavi
Attori
DVD
Film
Film In Lingua
nome
nazionalità
Clienti
collocazione
codice DVD
titolo
regista
anno
termini
lingua
sottotitoli/no-sottotitoli
DVD
noleggiati
codice cliente
cognome
nome
telefono
indirizzo(città, via)
data noleggio
Esempio

Un impiegato ha codice,cognome ed uno stipendio;può partecipare ad un
progetto definito da un budget e da un nome;l’impiegato può dirigere un
solo dipartimento definito da un nome e dal telefono ma può afferire in date
differenti a più dipartimenti; il dipartimento ha una sede composta da un
indirizzo e da una città
Esercizio

La segreteria di un corso di laurea deve gestire alcune informazioni
relative all’orario delle lezioni.
 informazioni: aule, corsi, lezioni
 le aule sono identificate da un codice, di ogni aula interessa il
numero dei posti, l’edificio in cui è situata, se ha o non ha
proiettore
 alcune aule sono dotate di calcolatori, in questo caso interessa
sapere il numero dei pc
 i corsi sono identificati da un codice; di ogni corso interessa il
nome e il docente
 le lezioni sono caratterizzate da un’ora d’inizio, un’ora di fine,
un giorno della settimana, il semestre
 ogni lezione è tenuta in un’aula e si riferisce ad un corso
Scarica

Modello Relazionale - Istituto per le Applicazioni del Calcolo "Mauro