Basi di Dati
Concetti
e
Principi Generali
Stefania Costantini
Organizzazione dei Dati
 Archivi o file
• Procedure di accesso in qualunque
linguaggio di programmazione
• Duplicazione dati:
ridondanza
incoerenza
formati diversi dei dati
Organizzazione dei Dati
 Sistema di gestione di Basi di Dati
Data Base Management System (DBMS)
• Ha un proprio linguaggio basato su un
proprio Modello di dati
• Evita ridondanza e incoerenza
Base di Dati = Insieme di dati gestiti da
un DBMS
DBMS
Basi di Dati:
• Grandi
• Condivise (no ridondanza)
 DBMS garantisce:
•
•
•
•
•
Persistenza (e fault-tolerance)
Affidabilità
Privatezza
Efficienza
Efficacia = migliore produttività
Modello dei Dati
 Insieme di concetti
• Descrizione dei Dati
• Organizzazione dei Dati
 Modello dei dati  meccanismi di
strutturazione
Modello dei Dati
 Modello concettuale dei dati: contenuti
struttura significato collegamenti,
indipendentemente dall’implementazione
 Modello logico: rappresentazione formale
dei dati implementabile da un DBMS
 Modello fisico: allocazione sui dispositivi
Modello dei Dati
Modelli principali: (Logici)
• Gerarchico 
alberi
• Reticolare 
grafi
• Relazionale 
relazioni
• A oggetti
relazioni più oggetti
Modelli concettuali:
descrizione di alto livello dei dati indipendente dal
modello logico
E – R  Entity – Relationship
Schema BD
Descrizione dell’organizzazione dei dati
• Invariante nel tempo (salvo
riorganizzazione)
 Livelli di astrazione
• Schema logico: descrizione
• Schema fisico: implementazione schema
logico
• Schema esterno (Vista): astrazione da
schema logico
Istanza BD
 Definita su un dato schema
 Insieme dei valori effettivi dei dati
 Cambia nel tempo
• Inserzione
• Cancellazione
• Modifica
Indipendenza dei dati
L’utente interagisce con il DB
• A un certo livello di astrazione
• Senza bisogno di conoscere i livelli
sottostanti
• Che possono essere modificati
Indipendenza dei dati
 Indipendenza logica
• Interazione con il livello esterno
• Senza conoscere schema logico
 Indipendenza fisica
• Interazione con il livello logico
• Senza conoscere schema fisico
(allocazione dei dati su
)
Linguaggi per Basi di Dati
Data Definition Language (DDL)
• Definizione schemi
• Definizione autorizzazioni di
accesso
Linguaggi per Basi di Dati
Data Manipulation Language (DML)
 Aggiornamento istanze DB
• Inserzione
• Cancellazione
• Modifica
 Estrazione informazioni da DB
Interrogazione  Query
DML  Query Language
SQL  DDL + DML
Linguaggi per Basi di Dati
 Classi di Linguaggi:
• Interattivi testuali
• Interattivi grafici
• Immersi in altri linguaggi di
programmazione
Linguaggi per Basi di Dati
Interazione con Basi di Dati
• Progettisti e programmatori
• Amministratore DB Administrator (DBA)
Progetto
Controllo
Amministrazione
• Utenti
finali: utilizzano frequentemente la BD con
query predefinite
casuali: query non predefinite
Linguaggi per basi di dati
• Un altro contributo all’efficacia:
disponibilità di vari linguaggi e interfacce
 linguaggi testuali interattivi (SQL)
 comandi (SQL) immersi in un linguaggio ospite
(Pascal, Java, C ...)
 comandi (SQL) immersi in un linguaggio ad hoc,
con anche altre funzionalità (p.es. per grafici o
stampe strutturate)
 con interfacce amichevoli (senza linguaggio
testuale)
Basi di Dati
Il Modello
Relazionale
Concetti Generali
Modello dei Dati
• Schema di rappresentazione dati:
visione dei dati secondo un certo
formalismo (ad es. alberi, grafi,
tabelle)
• Modello dei dati: costrutti e linguaggi
per descrivere e manipolare lo schema
Modello dei Dati
• Costrutti e linguaggi per descrivere:
– Conceptual and external schema
• Data definition language (DDL)
– Integrity constraints, domains (DDL)
– Operations on data
• Data manipulation language (DML)
– Directives that influence the physical
schema (affects performance, not
semantics)
• Storage definition language (SDL)
Modello Relazionale
Introdotto nel 1970
Si è affermato negli anni ’80
Si basa sul concetto matematico di relazione
(teoria degli insiemi)
Descrive in modo efficace il livello logico
• Senza riferimenti al livello fisico (struttura
realizzativa)
Why Study the Relational Model?
• Most widely used model.
• “Legacy systems” in older models
– e.g., IBM’s IMS
• Object-oriented concepts have recently
merged in
– object-relational model
• Informix, IBM DB2, Oracle 8i
• Early work done in POSTGRES research
project at Berkeley
Relazioni
 Insiemi D1, D2,…,Dn
finiti o infiniti, detti domini
 Prodotto cartesiano
P = D1 x D2 x … x Dn
P = (v1, v2, …, vn): i  n vi  Di
n – upla o tupla
Relazioni
 Relazione R  P
• n  grado o arità della relazione
• m  numero delle tuple di R  cardinalità della
relazione
 Nelle Basi di Dati: cardinalità finita
Tabelle
Rappresentazione grafica delle relazioni
D1 = L’Aquila, Roma, Pescara
D2 = Maria, Carlo
D 1 x D2
• Una colonna per ogni dominio Di
• Una riga per ogni tupla
L’Aquila
Maria
L’Aquila
Carlo
Roma
Maria
Roma
Carlo
Pescara
Maria
Pescara
Carlo
Tabelle
Relazione R
• Cardinalità 2
• Le tuple sono distinte
• Le tuple non sono ordinate
Residenza
L’Aquila
Maria
Pescara
Carlo
Attributi
I valori all’interno di una tupla sono ordinati
(v1, v2, …, vn)R
v1  D1, v2  D2, …, vn  Dn
Ad ogni valore associamo un Nome, detto Attributo
Residenza
CITTA’
PERSONA
L’Aquila
Maria
Pescara
Carlo
Attributi
• D = D1,…,Dn
Domini
• x = {A1, A2, …, An}
Attributi
• DOM: xD associa Ai a Dj
assegna un dominio ad ogni attributo
• Tupla: (A1,…,An)  (v1,…, vn) vi  Di
Basi di Dati Relazionali
 Composte da varie relazioni
• Sotto forma di tabelle
• Collegate fra loro mediante Attributi
comuni
non necessariamente con lo stesso nome
ma con lo stesso valore
Basi di Dati Relazionali
 Vantaggi: schema logico indipendente
dall’implementazione
• Comprensibilità
• Usabilità
• Portabilità
• Indipendenza fisica
Esempio di tabella
Orario
Insegnamento
Docente
Aula
Ora
Analisi matem. I
Luigi Neri
N1
8:00
Basi di dati
Piero Rossi
N2
9:45
Chimica
Nicola Mori
N1
9:45
Fisica I
Mario Bruni
N1
11:45
Fisica II
Mario Bruni
N3
9:45
Sistemi inform.
Piero Rossi
N3
8:00
Basi di dati: schema e istanza
Lo schema della base di dati
Orario
Insegnamento
Docente
Aula
Ora
Analisi matem. I
Luigi Neri
N1
8:00
Basi di dati
Piero Rossi
N2
9:45
Chimica
Nicola Mori
N1
9:45
Fisica I
Mario Bruni
N1
11:45
Fisica II
Mario Bruni
N3
9:45
Sistemi inform.
Piero Rossi
N3
8:00
L'istanza della base di dati
Instance of Students
Relation
sid
name
login
53666 Jones jones@cs
53688 Smith smith@eecs
53650 Smith smith@math
age
18
18
19
gpa
3.4
3.2
3.8
• Cardinality = 3, arity = 5 , all rows distinct
• Do all values in each column of a relation instance
have to be distinct?
Schema e istanza
• In ogni base di dati esistono:
– lo schema, sostanzialmente invariante nel
tempo, che ne descrive la struttura (aspetto
intensionale)
• es.: le intestazioni delle tabelle
– l’istanza, i valori attuali, che possono cambiare
anche molto rapidamente (aspetto estensionale)
• es.: il “corpo” di ciascuna tabella
Ex
Modello Relazionale
 Schema di relazione
• Simbolo R: Nome della relazione
• Insieme X = A1,…,An: Nomi degli attributi
(ognuno legato a un dominio Di
• Notazione: R(X)
 Schema di base di dati
R = R1(X1),R2(X2),…Rk(Xk)
Ri distinti
Modello Relazionale
 Istanza di Relazione su R(X)
• Insieme r di tuple su X
 Istanza di Base di dati su R:
• Insieme r = r1,…,rk di relazioni,
• ri su Ri(Xi), i  k
Modello Relazionale
Terminologia
Attributi:
 lettere finali alfabeto X, Y, Z Insiemi
 lettere iniziali alfabeto A, B, C attributi singoli
X = A B C  X = A, B, C
Relazioni:
R, S
t[Y]: tupla t ristretta agli attributi dell’insieme Y
Modello Relazionale
 Valore nullo:
• Valore distinto, aggiuntivo rispetto ai
domini
• NULL = assenza di informazioni
• Valore non noto
• Valore inesistente (non definito)
• Valore non significativo
(super) chiave
 Insieme di attributi che identifica univocamente
una tupla
 In generale, esistono varie superchiavi
 Insieme K di attributi di una relazione R:
• K superchiave se non esiste t1,t2  r tali che
t1[K] = t2[K]
• K chiave se è una superchiave minimale
non esiste K1 K superchiave
Chiavi
 Notare che:
• Nota1: per relazione R(X), X è sempre
superchiave
• Nota2: una superchiave perde di
significato se le tuple contengono valori
nulli sui suoi attributi
Chiave Primaria (Primary key)
• Chiave primaria KP: viene scelta fra le
chiavi possibili (dette “chiavi candidate”)
• si può (e si deve) definire un’unica chiave
primaria
• non sono ammessi valori nulli sugli
attributi di KP
Keys
• Keys are a way to associate tuples in
different relations
• Keys are one form of integrity constraint
(IC)
Enrolled
sid
53666
53666
53650
53666
cid
Carnatic101
Reggae203
Topology112
History105
Students
grade
C
B
A
B
FOREIGN Key
sid
53666
53688
53650
name
login
Jones jones@cs
Smith smith@eecs
Smith smith@math
PRIMARY Key
age
18
18
19
gpa
3.4
3.2
3.8
Vincoli di Integrità
 Proprietà che devono essere soddisfatte
dalle istanze
• Predicati (valore vero/falso)
• Selezionano istanze ammissibili
 Introducono
•
•
•
•
Limitazione sui domini
Collegamenti obbligatori fra tabelle
Proibizione di valori nulli
Limitazioni sui valori degli attributi
Integrity Constraints (ICs)
• IC: condition that must be true for any
instance of the database; e.g., domain
constraints.
– ICs are specified when schema is defined.
– ICs are checked when relations are modified.
• A legal instance of a relation is one that
satisfies all specified ICs.
– DBMS should not allow illegal instances.
• If the DBMS checks ICs, stored data is
more faithful to real-world meaning.
– Avoids data entry errors, too!
Keys
• Keys are a way to associate tuples in
different relations
• Keys are one form of integrity constraint
(IC)
Enrolled
sid
53666
53666
53650
53666
cid
Carnatic101
Reggae203
Topology112
History105
Students
grade
C
B
A
B
FOREIGN Key
sid
53666
53688
53650
name
login
Jones jones@cs
Smith smith@eecs
Smith smith@math
PRIMARY Key
age
18
18
19
gpa
3.4
3.2
3.8
Vincoli di Integrità
 Esempio: vincolo di chiave
•  relazione deve esistere una chiave
primaria
• No valori coincidenti per tuple diverse
• No valori nulli su attributi componenti le
chiavi
Classi diVincoli
 I vincoli di integrità possono essere
• Intrarelazionali (su singole relazioni)
• Interrelazionali (coinvolgono varie
relazioni)
Classi diVincoli
• Classi di vincoli intrarelazionali:
di Tupla: verificabili sulla tupla singola
di Dominio: restrizione sul dominio
dell’attributo
Globali: occorre considerare l’intera
istanza
Vincoli di Integrità Referenziale
 Vincolo interrelazionale: relazioni in
correlazione fra loro
• Mediante attributi comuni
• Modello relazionale: basato su valori
Il modello è basato su
valori
• i riferimenti fra dati in relazioni
diverse sono rappresentati per mezzo
di valori dei domini che compaiono
nelle ennuple
Vincoli di Integrità Referenziale
 Stesso nome?
Non necessariamente
 Stessi valori?
Si, è necessario che i valori che l’attributo comune
assume nelle relazioni correlate siano consistenti
 Come assicurarlo?
I valori dell’attributo comune devono essere
significativi e univoci
Un esempio di incroci su valori
Corsi
Corso
Docente Aula
Basi di dati Rossi
Neri
Sistemi
Bruni
Reti
Bruni
Controlli
DS3
N3
N3
G
Aule
Nome
DS1
N3
G
Edificio
OMI
OMI
Pincherle
• Aula DS3 non compare fra le Aule:
– vincolo intra-relazionale violato
Piano
Terra
Terra
Primo
studenti Matricola Cognome
6554
Rossi
8765
Neri
9283
Verdi
3456
Rossi
esami
Studente
3456
3456
9283
6554
corsi
Codice
01
02
04
Nome
Mario
Paolo
Luisa
Maria
Voto
30
24
28
26
Data di nascita
05/12/1978
03/11/1976
12/11/1979
01/02/1978
Corso
04
02
01
01
Titolo Docente
Analisi
Mario
Chimica Bruni
Chimica
Verdi
studenti Matricola Cognome
6554
Rossi
8765
Neri
9283
Verdi
3456
Rossi
esami
Studente
corsi
Codice
01
02
04
Nome
Mario
Paolo
Luisa
Maria
Voto
30
24
28
26
Data di nascita
05/12/1978
03/11/1976
12/11/1979
01/02/1978
Corso
Titolo Docente
Analisi
Mario
Chimica Bruni
Chimica
Verdi
Foreign Keys, Referential Integrity
• Foreign key : Set of fields in one relation that
is used to `refer’ to a tuple in another relation.
– Must correspond to the primary key of the
other relation.
– Like a `logical pointer’.
• If all foreign key constraints are enforced,
referential integrity is achieved (i.e., no
dangling references.)
Foreign Keys
• E.g. Only students listed in the Students
relation should be allowed to enroll for
courses.
– sid is a foreign key referring to Students:
Enrolled
sid
53666
53666
53650
53666
cid
grade
Carnatic101
C
Reggae203
B
Topology112
A
History105
B
11111 English102 A
Students
sid
53666
53688
53650
name
login
Jones jones@cs
Smith smith@eecs
Smith smith@math
age
18
18
19
gpa
3.4
3.2
3.8
Vincoli di Integrità Referenziale
FOREIGN KEY
 Date le relazioni R1 ed R2
 Dato un insieme di attributi X di R1
 Date due istanze di R1 ed R2
Il vincolo impone che:
• I valori di X in ciascuna tupla dell’istanza data di R1
• Compaiano come valori della chiave primaria di una
qualche tupla dell’istanza di R2
Vincoli di Integrità Referenziale
 Caso Base: chiave di R2 unica, con un solo attributo B
• X è composto da un solo attributo A
 tupla t1  R1  tupla t2 R2: t1[A] = t2[B]
 Caso generale
K = A1,A2,…,AR
ordinati
chiave di R2
X = B1,B2,…,BR
ordinati
 tupla t1  R1  tupla t2 R2: i  r t1[Bi] = t2[Ai]
Chiavi: Sommario
• Primary key
– A unique identifier of a row in a relation
– Can be composite
• Candidate key
– An attribute (or set of attributes) that could be a
primary key
• Alternate key
– A candidate key that is not selected as the primary key
• Foreign key
– An attribute of a relation that is the primary key of a
relation
– Can be composite