memoria di massa - Politecnico di Bari

Fondamenti di Informatica
Archivi e basi di dati
MEMORIA DI MASSA
Dispositivi per la memorizzazione di massa
… sequenziali
nastri magnetici
tape cassette
… ad accesso diretto
floppy-disk
dischi magnetici
CD-ROM
DVD
La memorizzazione
L’archivio (file)
Il record fisico
Il record logico
Il campo
G. Piscitelli
Politecnico di Bari
pag. 1/33
Fondamenti di Informatica
Archivi e basi di dati
L’ORGANIZZAZIONE DELLA MEMORIZZAZIONE
… sequenziale
ƒ il campo chiave e l’ordinamento
ƒ la ricerca di un record logico (algoritmo dicotomico)
ƒ l’inserimento di nuovi elementi (archivio variazionale)
… ad accesso calcolato
ƒ l’allocazione dei record (algoritmo di hashing)
ƒ la risoluzione dei conflitti di sinonimia (primo posto libero e aree di overflow)
… ad indice
ƒ il file indice
ƒ l’indice unique e l’indice multiple
G. Piscitelli
Politecnico di Bari
pag. 2/33
Fondamenti di Informatica
Archivi e basi di dati
BASE DI DATI
definizione e proprietà
… è una collezione di dati
9 organizzati in maniera da poter soddisfare agevolmente le “interrogazioni” o
“ricerche” riferite ai dati stessi,
9 gestiti da “procedure pubbliche” (o programmi standard) costituenti il Data Base
Management System (DBMS).
Le procedure di un DBMS garantiscono:
¾ consistenza e minima ridondanza dei dati;
¾ privatezza dei dati;
¾ integrità dei dati;
¾ disciplina della concorrenza nell’accesso ai dati.
G. Piscitelli
Politecnico di Bari
pag. 3/33
Fondamenti di Informatica
Archivi e basi di dati
BASE DI DATI
punti di vista e indipendenza
Un DBMS fornisce tre diversi “punti di vista” sui dati contenuti nel data-base:
9 lo schema esterno, che presenta i dati che interessano un particolare utente o gruppo di
utenti in forma compatibile con le necessità degli utilizzatori Ö la vista sui dati
9 lo schema logico, che evidenza l’organizzazione dei dati in ragione della loro struttura e
delle relazioni tra di essi esistenti;
9 lo schema fisico, che guarda alla base di dati come insieme di record e archivi dislocati
sulle memorie di massa.
Un DBMS deve garantire:
ƒ l’indipendenza fisica della base di dati, intesa come capacità di modificare lo schema
fisico (cambio della memoria di massa, diversa dislocazione degli spazi dedicati ad
ospitare la base di dati, ecc.) senza dover modificare lo schema logico, cioè
l’organizzazione dei dati e, conseguentemente, i programmi;
ƒ l’indipendenza logica della base di dati, intesa come capacità di “estendere” lo schema
logico o quello esterno, senza dover apportare modificazioni alle viste pre-esistenti.
G. Piscitelli
Politecnico di Bari
pag. 4/33
Fondamenti di Informatica
Archivi e basi di dati
BASE DI DATI
modelli dei dati e linguaggi
Un DBMS prevede l’organizzazione e strutturazione dei dati in base ad uno dei seguenti
modelli:
• gerarchico, basato sulla struttura gerarchica dei rapporti tra dati;
• reticolare (o Codasyl), basato sulla struttura a grafo dei rapporti tra dati;
• relazionale, che si rifà agli insiemi ed alle relazioni tra insiemi (algebra relazionale),
strutturando i dati tramite tabelle;
• ad oggetti, che si fonda sui concetti di base della progettazione e programmazione ad
oggetti (classe, oggetto, ecc.).
La progettazione dello schema logico della base di dati (data-base design) secondo un
particolare modello è un’attività delicata e complessa, che precede la fase di utilizzo del
data-base, durante la quale il valore dei dati viene istanziato o modificato.
G. Piscitelli
Politecnico di Bari
pag. 5/33
Fondamenti di Informatica
Archivi e basi di dati
BASE DI DATI
modelli dei dati e linguaggi
Il DBMS deve fornire quindi:
− un linguaggio per definire lo schema logico della base di dati (Data Definition Language
o DDL);
− un linguaggio per manipolare la base di dati (Data Manipulation Language o DML).
G. Piscitelli
Politecnico di Bari
pag. 6/33
Fondamenti di Informatica
Archivi e basi di dati
BASE DI DATI
la progettazione
Il design di una base di dati comporta, una volta deciso il modello organizzativo, lo
svolgimento delle seguenti principali attività:
9 definizione dello schema concettuale, attraverso la individuazione dei particolari aspetti
della realtà di cui si vogliono descrivere le caratteristiche;
9 normalizzazione dello schema, intesa come raffinamento dello schema concettuale, al
fine di meglio garantire consistenza e riduzione della ridondanza dei dati;
9 definizione dello schema logico, intesa come assestamento ed organizzazione dei dati che
sono presenti nella base di dati.
Se si assume di far uso del modello relazionale, lo schema concettuale viene realizzato
costruendo il modello Entità-Relazioni della specifica base di dati da realizzare.
G. Piscitelli
Politecnico di Bari
pag. 7/33
Fondamenti di Informatica
Archivi e basi di dati
BASE DI DATI
fasi della progettazione
LO SCHEMA CONCETTUALE
•
•
Cosa è: una rappresentazione di alto livello dei dati
•
•
Come si definisce: mediante il modello Entità - Relazioni (Entity-Relationship)
Cosa contiene: una descrizione dettagliata dei dati, delle relazioni e dei vincoli, ma non
dei dettagli fisici relativi alla memorizzazione dei dati
Come si descrive: mediante il diagramma Entità - Relazioni (Entity-Relationship
Diagram o ERD)
G. Piscitelli
Politecnico di Bari
pag. 8/33
Fondamenti di Informatica
Archivi e basi di dati
IL DIAGRAMMA ENTITÀ - RELAZIONI
Entità:
una classe (o insieme) di oggetti omogenei (astratti o tangibili) appartenenti alla
realtà e capaci di rappresentarne gli aspetti di interesse
Attributi: le proprietà che caratterizzano ciascuna entità nel contesto di interesse
Definizione: un attributo A di una entità E il cui insieme di valori è V, è definibile come:
A : E -> P(V)
dove P(V) è l’insieme dei sotto-insiemi di V.
Cognome
Numero_
matricola
Indirizzo
Nome
Data_di_
nascita
STUDENTE
Telefono
La singola occorrenza di una entità (1 singolo esemplare della classe) sarà caratterizzata da
valori assunti dagli attributi.
G. Piscitelli
Politecnico di Bari
pag. 9/33
Fondamenti di Informatica
Archivi e basi di dati
IL DIAGRAMMA ENTITÀ - RELAZIONI
Esempio:
{STUDENTE}1
Cognome = Genchi
Nome = Nicola
Numero_matricola = 546381V
......
{STUDENTE}2
Cognome = Paradiso
Nome = Germana
Numero_matricola = 582245S
......
G. Piscitelli
Politecnico di Bari
pag. 10/33
Fondamenti di Informatica
Archivi e basi di dati
IL DIAGRAMMA ENTITÀ - RELAZIONI
Tipi particolari di attributo:
Attributo Composto: è suddivisibile in parti più piccole che hanno ancora una propria
specificità.
esempio: Indirizzo
Ö
Via, Civico, CAP, Città, Stato.
Utile quando preveda riferimenti a singole parti
dell’attributo (via e civico).
Attributo Multivalore: può assumere più di un singolo valore per ciascuna occorrenza di
una entità.
esempio: Telefono, titoli_di_studio, sedi.
Attributo derivato: attributo che è possibile o conveniente determinare a partire da altri
attributi.
esempio:
G. Piscitelli
Età è derivabile da data di nascita (è anche conveniente?)
Politecnico di Bari
pag. 11/33
Fondamenti di Informatica
Archivi e basi di dati
IL DIAGRAMMA ENTITÀ - RELAZIONI
Il dominio di un attributo: è l’insieme dei valori che possono essere assegnati ad un
attributo di una entità.
esempio:
altezza Ö mt 1.00 - 1.65
nome Ö insieme delle stringhe di caratteri.
Il valore nullo: quando per un attributo in un esemplare di entità non sia possibile
determinare un valore, viene creato il valore Null.
Il suo significato può essere duplice: 1-Ignoto; 2- Non applicabile.
esempio: 1- Voto_di_maturità = null (non è noto il valore, ma la maturità è stata
conseguita).
2- Civico = null (non esiste una numerazione poiché l’urbanizzazione non è
completa).
G. Piscitelli
Politecnico di Bari
pag. 12/33
Fondamenti di Informatica
Archivi e basi di dati
IL DIAGRAMMA ENTITÀ - RELAZIONI
La chiave di una entità
Come distinguere tra occorrenze di una stessa entità? Assumiamo l’esistenza di un vincolo di
unicità sugli attributi.
Esiste cioè un sotto-insieme di attributi (che può ridursi ad uno) di una entità, la cui
combinazione di valori è distinta per ciascuna occorrenza di una entità. Tale sotto-insieme
viene detto chiave dell’entità.
Il vincolo di unicità è relativo allo schema dell’entità, non ad un particolare insieme di
occorrenze di entità. Essa pertanto vale sempre.
La chiave va determinata quindi sulla base delle proprietà della realtà che la base di dati
rappresenta.
Una entità può avere più di un insieme di attributi che verificano il vincolo di chiave.
Esempio: Numero di telaio e numero di targa per l’entità AUTOVETTURA.
Numero di matricola e Cognome-Nome-Data_di_nascita per l’entità
STUDENTE.
G. Piscitelli
Politecnico di Bari
pag. 13/33
Fondamenti di Informatica
Archivi e basi di dati
IL DIAGRAMMA ENTITÀ - RELAZIONI
Relazione:
associazione o legame logico esistente tra due o più entità. Formalmente è una
funzione che associa ad uno o più esemplari di un insieme-entità, uno o più
esemplari dell’altro insieme-entità.
Una entità può essere in
relazione con se stessa. In tal
caso
si
utilizzano
esplicitamente nomi di ruolo
per chiarire la partecipazione
Studente
Studente
Studente
frequenta
Corso_di_
Laurea
Corso_di_
Laurea
elegge
Studente
Grado di una relazione:
numero di entità partecipanti.
G. Piscitelli
frequenta
frequenta
Corso_di_
Laurea
Disciplina_di_
studio
Politecnico di Bari
pag. 14/33
Fondamenti di Informatica
Archivi e basi di dati
IL DIAGRAMMA ENTITÀ - RELAZIONI
Cardinalità di una relazione: specifica il numero di occorrenze di relazione cui le
occorrenze di entità possono partecipare.
Le cardinalità vengono espresse normalmente come 1:1, 1:N, M:N.
• 1:1 (uno a uno), alla relazione partecipa una singola occorrenza di entità per ciascuna
delle 2 entità partecipanti;
•
1:N (uno a molti), alla relazione possono partecipare, per una singola occorrenza di entità
di una delle entità partecipanti, svariate occorrenze dell’altra entità;
•
M:N (molti a molti), vale anche il viceversa della precedente definizione.
La
relazione
può
essere
interpretata in senso inverso.
Docente
presidenza
La cardinalità può anche prevedere
l’assenza di corrispondenza.
Corso_di_
Laurea
iscrizione
Studente
G. Piscitelli
Politecnico di Bari
frequenza
Corso_di_
Laurea
Studente
Disciplina_di_
studio
pag. 15/33
Fondamenti di Informatica
Archivi e basi di dati
IL DIAGRAMMA ENTITÀ - RELAZIONI
Gerarchie ISA (o entità deboli)
Rappresentano legami logici tra una entità E (padre o entità forte) e una o più entità E1, E2,
.. , EN (figli o entità deboli). Il padre è più generale dei figli, che sono considerabili
specializzazioni.
ISA ≡ IS-A → “è un”
esempio: Un liceale è uno studente; un universitario è uno studente.
G. Piscitelli
Politecnico di Bari
pag. 16/33
Fondamenti di Informatica
Archivi e basi di dati
LO SCHEMA CONCETTUALE
Riepilogo:
•
Va costruito dopo una adeguata attività di raccolta di requisiti.
•
Consente una descrizione ad alto livello dei dati.
•
Aiuta a chiarire ulteriormente i requisiti
•
Consente di esplicitare numerosi vincoli
•
E’ soggettivo: numerose scelte sono possibili e vanno adeguatamente ponderate.
•
Se costruito in modo adeguato consente la mappatura immediata nel modello logico
relazionale.
•
Richiede comunque ulteriori raffinamenti e verifiche (normalizzazione).
G. Piscitelli
Politecnico di Bari
pag. 17/33
Fondamenti di Informatica
Archivi e basi di dati
BASE DI DATI
fasi della progettazione
LO SCHEMA LOGICO
Il modello relazionale
− Basato sul lavoro di Codd (~1970)
− E’ attualmente il modello più utilizzato nel mondo dei
database (Oracle, Informix, IBM, Microsoft, etc.)
− E’ basato su una struttura
dati semplice ed uniforme,
la relazione.
− Ha solide basi teoriche.
Concetti base del modello
9 Una base di dati è rappresentata come una collezione di relazioni.
9 Possiamo informalmente considerare una relazione come una tabella.
9 Ciascuna riga rappresenta una collezione di valori di dati tra loro collegati
9 Il nome della relazione e quelli delle colonne consentono di comprendere il significato dei
valori delle righe.
9 Tutti i valori di una colonna sono del medesimo tipo, appartengono cioè ad un medesimo
dominio.
Cognome
Genchi
Paradiso
G. Piscitelli
Nome
Nicola
Germana
Politecnico di Bari
Matricola
546381V
582245S
pag. 18/33
Fondamenti di Informatica
Archivi e basi di dati
BASE DI DATI
LO SCHEMA LOGICO
Dominio: un insieme di valori atomici, cioè indivisibili.
Esempio: voti_università Ö valori tra 0 e 30.
nomi_propri Ö l’insieme dei nomi di persona.
A ciascun dominio si associa un tipo di dato o formato.
Schema di una relazione: è specificato come un nome R e una lista di attributi (A1, A2, .. ,
AN).
Ciascun attributo Ai corrisponde ad un dominio D(Ai) nello schema relazionale.
Esempio: Studente (nome, cognome, matricola, data_nascita, data_immatr)
Grado della relazione: numero di attributi.
Istanza di R: r(R), è un insieme di tuple r = (t1, t2, .. , tm).
Ciascuna tupla t è una lista ordinata di valori t = < v1, v2, .., vn>;
Ciascun valore vi ∈ dom(Ai) ∪ null (dove null rappresenta uno speciale valore, sconosciuto,
inapplicabile).
G. Piscitelli
Politecnico di Bari
pag. 19/33
Fondamenti di Informatica
Archivi e basi di dati
BASE DI DATI
LO SCHEMA LOGICO
Cardinalità: il numero di tuple nella estensione r(R).
Vincolo di dominio: i valori di ciascun attributo sono valori atomici appartenenti al
corrispondente dominio.
Vincolo di chiave: per ogni relazione R esiste un sotto-insieme di attributi sk tale che t1[sk]
≠ t2 [sk]. Il sottoinsieme sk dicesi superchiave.
Dicesi chiave un sottoinsieme di attributi che goda della ulteriore proprietà di essere
minimo, cioè privo di attributi ridondanti.
Es.: studente(nome, cognome, matricola, data_nascita)
Il sottoinsieme nome, cognome, matricola è superchiave, come pure cognome, matricola.
Matricola è chiave (non ridondante)
In genere possono esserci più sotto-insiemi di attributi che verificano le due proprietà: chiavi
candidate.
La chiave designata è detta chiave primaria (PK).
Integrità di entità: nessuna chiave primaria può assumere valore null.
Integrità referenziale: una tupla in una relazione R1 che si riferisca ad un’altra relazione R2
deve riferirsi ad una tupla esistente in R2.
G. Piscitelli
Politecnico di Bari
pag. 20/33
Fondamenti di Informatica
Archivi e basi di dati
BASE DI DATI
Dal modello concettuale al modello relazionale
¾ Creare una relazione per ogni entità con gli attributi semplici della stessa entità,
scegliendo come chiave primaria una delle chiavi dell’entità.
¾ Per le entità deboli, creare una relazione con gli attributi dell’entità e includere, inoltre,
come chiave esterna, la chiave primaria dell’entità “proprietaria”. La chiave primaria della
nuova relazione sarà la combinazione della chiave esterna più la chiave parziale.
¾ Per ogni associazione binaria 1:1, identificare le entità partecipanti S e D. Scegliere una
entità S con partecipazione totale ed includere in essa, come chiave esterna, la PK di D.
Includere in S anche eventuali attributi dell’associazione.
¾ Per ogni associazione binaria 1:N, identificare le entità partecipanti. Scegliere l’ entità S
dal lato N ed includere in essa, come chiave esterna, la PK dell’altra. Includere in S
anche eventuali attributi dell’associazione.
¾ Per ogni associazione R di tipo M:N creare una nuova relazione R. Includere le chiavi
esterne delle entità partecipanti; la loro combinazione formerà la PK di R; includere
eventuali attributi di R.
¾ Per ogni attributo multivalore A, creare una nuova relazione che include A e la chiave
primaria della entità di partenza come chiave esterna. La PK sarà la combinazione della
chiave esterna e di A.
G. Piscitelli
Politecnico di Bari
pag. 21/33
Fondamenti di Informatica
Archivi e basi di dati
L’ALGEBRA RELAZIONALE
… è un linguaggio procedurale: le operazioni vengono specificate descrivendo il
procedimento da seguire
… è un’algebra chiusa: e’ costituita da un insieme di operatori definiti su relazioni che
producono relazioni.
… il risultato di una operazione può essere ulteriormente manipolato.
… i principali operatori sono la selezione, la proiezione (operatori unari) e il join (operatore
binario).
… esistono le operazioni tipiche dell’insiemistica: unione, intersezione, differenza e il
prodotto cartesiano
G. Piscitelli
Politecnico di Bari
pag. 22/33
Fondamenti di Informatica
Archivi e basi di dati
L’ALGEBRA RELAZIONALE
Selezione (SELECT)
Consente di selezionare un sotto-insieme delle tuple di una relazione che soddisfino una
condizione di selezione.
L’operazione è espressa in generale come:
σ<condizione_di_selezione> (<relazione>)
La condizione di selezione può prevedere comparazione tra attributi compatibili o con
costanti, oltre a essere ottenuta collegando varie condizioni mediante connettivi logici (and,
or, not).
Esempio
σdata_nasc>1/1/1960.and.data_ass>1/6/1994(impiegato)
L’operazione viene applicata a ciascuna tupla individualmente.
La relazione risultante mantiene lo schema di quella di partenza, i.e. il grado rimane
invariato.
La cardinalità risultante è invece ≤ di quella di partenza.
La selezione è commutativa:
σ<cond1> (σ<cond2> (<R>) ≡ σ<cond2> (σ<cond1> (<R>)
G. Piscitelli
Politecnico di Bari
pag. 23/33
Fondamenti di Informatica
Archivi e basi di dati
ALGEBRA RELAZIONALE
Esempio di Selezione
S = σdata_nasc>1/1/1960.and.data_ass>1/6/1994(impiegato)
La relazione Impiegato
Cognome
Davolio
Laforet
Esposito
Kranz
Taylor
Da Silva
Fonseca
D’Amico
Francavilla
Al Housseini
Nome
Nancy
Gennaro
Giulio
Silvana
William
Cristobal
Gabriel
Sergio
Stefano
Ali Mustafa
Data_nasc
14/10/1958
1/3/1975
28/7/1969
22/11/1972
30/9/1967
31/7/1955
22/12/1950
14/1/1963
11/4/1961
15/8/1971
Titolo
Data_ass
Dott.essa 12/3/1987
Ing.
15/9/2000
Dott.
30/10/1996
Ing.
25/11/1999
Sig.
21/6/1997
Dott.
7/9/1986
Sig.
11/3/1985
Ing.
2/1/1993
Dott.
1/5/1990
Dott.
31/10/1999
Il risultato dell’operazione di selezione
La relazione S
Cognome
Laforet
Esposito
Kranz
Taylor
Al Housseini
G. Piscitelli
Nome
Gennaro
Giulio
Silvana
William
Ali Mustafa
Data_nasc
1/3/1975
28/7/1969
22/11/1972
30/9/1967
15/8/1971
Politecnico di Bari
Titolo
Ing.
Dott.
Ing.
Sig.
Dott.
Data_ass
15/9/2000
30/10/1996
25/11/1999
21/6/1997
31/10/1999
pag. 24/33
Fondamenti di Informatica
Archivi e basi di dati
L’ALGEBRA RELAZIONALE
Proiezione (PROJECT)
Consente di selezionare un sotto-insieme degli attributi di una relazione elencati in una lista
di attributi di proiezione.
L’operazione è espressa in generale come:
π<lista_di_attributi> (<relazione>)
L’operazione modifica, in generale, il grado, i.e. il numero di attributi.
L’operazione modifica, in generale, anche la cardinalità (perché?)
L’operazione non è commutativa.
esempio
πCognome, Nome (impiegato)
Trattando operazioni in una algebra chiusa è ovviamente possibile scrivere espressioni come
sequenza di operazioni.
πCognome, Nome (σTitolo = “Dott.” (impiegato))
Cognome
Esposito
Da Silva
Francavilla
Al Housseini
G. Piscitelli
Nome
Giulio
Cristobal
Stefano
Ali Mustafa
Politecnico di Bari
pag. 25/33
Fondamenti di Informatica
Archivi e basi di dati
ALGEBRA RELAZIONALE
Esempi di Proiezione
πCognome, Nome (impiegato)
-----
πTitolo (impiegato)
La relazione Impiegato
Cognome
Davolio
Laforet
Esposito
Kranz
Taylor
Da Silva
Fonseca
D’Amico
Francavilla
Al Housseini
Nome
Nancy
Gennaro
Giulio
Silvana
William
Cristobal
Gabriel
Sergio
Stefano
Ali Mustafa
Data_nasc
14/10/1958
1/3/1975
28/7/1969
22/11/1972
30/9/1967
31/7/1955
22/12/1950
14/1/1963
11/4/1961
15/8/1971
Titolo
Dott.essa
Ing.
Dott.
Ing.
Sig.
Dott.
Sig.
Ing.
Dott.
Dott.
Data_ass
12/3/1987
15/9/2000
30/10/1996
25/11/1999
21/6/1997
7/9/1986
11/3/1985
2/1/1993
1/5/1990
31/10/1999
Il risultato delle operazioni di proiezione
Cognome
Davolio
Laforet
Esposito
Kranz
Taylor
Da Silva
Fonseca
D’Amico
Francavilla
Al Housseini
G. Piscitelli
Nome
Nancy
Gennaro
Giulio
Silvana
William
Cristobal
Gabriel
Sergio
Stefano
Ali Mustafa
Titolo
Dott.essa
Ing.
Dott.
Sig.
Politecnico di Bari
pag. 26/33
Fondamenti di Informatica
Archivi e basi di dati
L’ALGEBRA RELAZIONALE
Join
R ><< condizione > S = σ < condizione > ( R × S)
ove <condizione> è dello stesso tipo di quella già vista per la selezione.
E’ l’operazione utilizzata per combinare coppie di tuple provenienti da relazioni collegate in
singole tuple.
Consente di elaborare le “associazioni” tra relazioni.
Il join con una condizione generica è detto theta join.
Quando la condizione sia una uguaglianza l’operazione è detta equi join.
Questa operazione includerà due volte, nella tabella risultante, gli attributi su cui è posta la
condizione di uguaglianza.
Quando l’operazione si limita a riportare una volta l’attributo di comparazione nella tabella
risultante parleremo di join naturale.
G. Piscitelli
Politecnico di Bari
pag. 27/33
Fondamenti di Informatica
Archivi e basi di dati
ALGEBRA RELAZIONALE
Esempio di Join
Relazione R
Cognome
Davolio
Esposito
Kranz
Taylor
Nome
Nancy
Giulio
Silvana
William
Titolo
Dott.essa
Dott.
Ing.
Sig.
Data_nasc
14/10/1958
28/7/1969
22/11/1972
30/9/1967
Relazione S
Cognome
Davolio
Laforet
Esposito
Kranz
Taylor
Da Silva
Al Housseini
Titolo
Dott.essa
Ing.
Dott.
Ing.
Sig.
Dott.
Dott.
Data_ass
12/3/1987
15/9/2000
30/10/1996
25/11/1999
21/6/1997
7/9/1986
31/10/1999
<condizione> ≡ Cognome (R) = Cognome (S) .and. Titolo (R) = Titolo (S)
Cognome
Davolio
Esposito
Kranz
Taylor
G. Piscitelli
Nome
Nancy
Giulio
Silvana
William
Data_nasc
14/10/1958
28/7/1969
22/11/1972
30/9/1967
Politecnico di Bari
Titolo
Dott.essa
Dott.
Ing.
Sig.
Data_ass
12/3/1987
30/10/1996
25/11/1999
21/6/1997
pag. 28/33
Fondamenti di Informatica
Archivi e basi di dati
L’ALGEBRA RELAZIONALE
Unione (UNION): R∪S produce una relazione che include tutte le tuple presenti in R o in
S o in entrambe.
Intersezione (INTERSECTION): R∩S produce una relazione che include tutte le tuple
presenti sia in R che in S.
Differenza (DIFFERENCE): R-S produce una relazione che include tutte le tuple
presenti in R, ma non in S.
Sono operazioni binarie dell’insiemistica.
Hanno senso su relazioni compatibili, cioè con identici attributi o almeno appartenenti al
medesimo dominio.
Prodotto cartesiano: è una operazione binaria su insiemi, ma non richiede la
compatibilità delle relazioni partecipanti.
E’ denotata con il simbolo X.
Il grado della relazione risultante è pari alla somma dei gradi delle due relazioni partecipanti.
La cardinalità è pari al prodotto di quelle delle due relazioni partecipanti.
G. Piscitelli
Politecnico di Bari
pag. 29/33
Fondamenti di Informatica
Archivi e basi di dati
BASI DI DATI
fasi della progettazione
LA NORMALIZZAZIONE
La modellazione E-R ci ha consentito di descrivere schemi relazionali.
Lo strumento base per la modellizzazione è all’inizio “la ragionevolezza”.
Scelta degli attributi:
ƒ Progettare lo schema in modo che sia semplice descrivere il suo significato, prestare cioè attenzione
alla semantica degli attributi.
ƒ Evitare di riunire in uno schema di relazione attributi propri di entità diverse del mondo reale.
Ridurre la ridondanza:
ƒ Ha un duplice scopo: ridurre la “storage area” e evitare le anomalie da aggiornamento
Ridurre il numero di valori null nelle tuple:
ƒ Valori null possono essere variamente interpretati: non applicabile, sconosciuto, non inserito
ƒ In molti casi conviene creare nuove relazioni per ridurre i null.
Evitare le tuple spurie:
ƒ Una tupla spuria (cioè con informazioni non corrette) può essere generata a seguito di un join
naturale.
G. Piscitelli
Politecnico di Bari
pag. 30/33
Fondamenti di Informatica
Archivi e basi di dati
LA NORMALIZZAZIONE
Esistono però metodi formali per assicurare la scelta di “buoni” schemi relazionali.
Tali metodi vengono essenzialmente utilizzati per verificare e raffinare lo schema.
Dipendenze funzionali
Una dipendenza funzionale è un vincolo tra due insiemi di attributi di una base di dati e
dipende dalla semantica dello schema.
Data uno schema relazionale R e due sotto-insiemi non vuoti di attributi X e Y esiste una
dipendenza funzionale X→Y (o Y dipende funzionalmente da X) se per ogni istanza r di R:
t1∈ r, t2 ∈ r, Πx(t1) = Πx(t2) ⇒ Πy(t1) = Πy(t2)
Una dipendenza funzionale X→Y è piena quando non esiste alcun attributo di Y che dipenda
funzionalmente da un sotto-insieme degli attributi di X. In tal caso si dice che Y dipende
pienamente da X.
Una dipendenza funzionale X→Y è transitiva se esiste un insieme di attributi W per cui
valgono le dipendenze funzionali X→W e W→Y. In tal caso si dice che Y dipende
transitivamente da X tramite W.
Un attributo primo è un attributo che fa parte di almeno una chiave.
G. Piscitelli
Politecnico di Bari
pag. 31/33
Fondamenti di Informatica
Archivi e basi di dati
LA NORMALIZZAZIONE
Le forme normali
− Un metodo formale per analizzare le relazioni
− Consentono una eventuale decomposizione di relazioni in schemi che godono di migliori
proprietà.
1a forma normale
Coincide in pratica con la definizione di relazione.
Il dominio di ciascun attributo deve consistere di valori atomici e il valore di un attributo in
una tupla deve essere un valore singolo del dominio.
Ogni attributo non chiave dipende funzionalmente dalla chiave.
2a forma normale
Uno schema R è in questa forma se ogni attributo non primo ha una dipendenza piena dalla
chiave di R.
3a forma normale
Uno schema R è in questa forma se è in seconda forma normale e se ogni suo attributo non
primo non dipende transitivamente dalla chiave.
G. Piscitelli
Politecnico di Bari
pag. 32/33
Fondamenti di Informatica
Archivi e basi di dati
SQL
Il DDL …
… si basa sulle istruzioni
CREATE TABLE
CREATE INDEX
DROP TABLE
DROP INDEX
Il DML …
… si basa sulle istruzioni
SELECT (attributi) FROM (relazioni) WHERE (condizioni)
INSERT INTO (relazione): <tupla1>, <tupla2>, …
DELETE FROM (relazione) WHERE (condizioni)
UPDATE (relazione) SET (attributo = espressione) WHERE (condizioni)
G. Piscitelli
Politecnico di Bari
pag. 33/33