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: xD 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
Scarica

Intro&ModREL - Stefania Costantini