Basi di Dati -...
Transcript of Basi di Dati -...
1
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
2
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 RelazionaleIntrodotto 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)
3
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 dominiProdotto cartesianoP = D1 x D2 x … x Dn
P = {(v1, v2, …, vn): ∀i ≤ n vi ∈ Di}n – upla o tupla
4
Relazioni
Relazione R ⊆ P• n ≡ grado o arità della relazione• m ≡ numero delle tuple di R ≡ cardinalità della
relazioneNelle Basi di Dati: cardinalità finita
TabelleRappresentazione grafica delle relazioniD1 = {L’Aquila, Roma, Pescara}D2 = {Maria, Carlo}D1 x D2
• Una colonna per ogni dominio Di
• Una riga per ogni tupla
MariaRomaCarloL’Aquila
CarloPescaraMariaPescaraCarloRoma
MariaL’Aquila
5
TabelleRelazione R • Cardinalità 2• Le tuple sono distinte• Le tuple non sono ordinate
Residenza
CarloPescara
MariaL’Aquila
AttributiI valori all’interno di una tupla sono ordinati(v1, v2, …, vn)∈Rv1 ∈ D1, v2 ∈ D2, …, vn ∈ Dn
Ad ogni valore associamo un Nome, detto Attributo
Residenza
CarloPescara
MariaL’Aquila
PERSONACITTA’
6
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
comuninon necessariamente con lo stesso nomema con lo stesso valore
7
Basi di Dati Relazionali
Vantaggi: schema logico indipendente dall’implementazione• Comprensibilità• Usabilità• Portabilità• Indipendenza fisica
8
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
L'istanza della base di dati
Lo schema della base di datiOrario
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
9
Instance of Students Relation
sid name login age gpa 53666 Jones jones@cs 18 3.4 53688 Smith smith@eecs 18 3.2 53650 Smith smith@math 19 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
10
Modello RelazionaleSchema 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 RelazionaleIstanza di Relazione su R(X)• Insieme r di tuple su XIstanza di Base di dati su R:• Insieme r = {r1,…,rk} di relazioni, • ri su Ri(Xi), i ≤ k
11
Modello RelazionaleTerminologia Attributi:
lettere finali alfabeto X, Y, Z Insiemilettere 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 RelazionaleValore nullo:• Valore distinto, aggiuntivo rispetto ai
domini• NULL = assenza di informazioni
• Valore non noto• Valore inesistente (non definito)• Valore non significativo
12
(super) chiaveInsieme 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
13
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)
sid name login age gpa53666 Jones jones@cs 18 3.453688 Smith smith@eecs 18 3.253650 Smith smith@math 19 3.8
sid cid grade53666 Carnatic101 C 53666 Reggae203 B 53650 Topology112 A 53666 History105 B
Enrolled Students
PRIMARY KeyFOREIGN Key
14
Vincoli di IntegritàProprietà che devono essere soddisfatte dalle istanze• Predicati (valore vero/falso)• Selezionano istanze ammissibiliIntroducono • 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!
15
Keys• Keys are a way to associate tuples in
different relations• Keys are one form of integrity constraint
(IC)
sid name login age gpa53666 Jones jones@cs 18 3.453688 Smith smith@eecs 18 3.253650 Smith smith@math 19 3.8
sid cid grade53666 Carnatic101 C 53666 Reggae203 B 53650 Topology112 A 53666 History105 B
Enrolled Students
PRIMARY KeyFOREIGN Key
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
16
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 singoladi Dominio: restrizione sul dominio dell’attributoGlobali: occorre considerare l’intera istanza
17
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
18
Vincoli di Integrità Referenziale
Stesso nome? Non necessariamente Stessi valori?Si, è necessario che i valori che l’attributo comune assume nelle relazioni correlate siano consistentiCome assicurarlo?I valori dell’attributo comune devono essere significativi e univoci
Un esempio di incroci su valori
Corso AulaDocenteRossiBasi di dati DS3
BruniReti N3NeriSistemi N3
BruniControlli G
Corsi
Nome PianoEdificioOMIDS1 Terra
PincherleG PrimoOMIN3 Terra
Aule
• Aula DS3 non compare fra le Aule:– vincolo intra-relazionale violato
19
Matricola Cognome Nome Data di nascita6554 Rossi Mario 05/12/19788765 Neri Paolo 03/11/1976
3456 Rossi Maria 01/02/19789283 Verdi Luisa 12/11/1979
studenti
Codice Titolo Docente01 Analisi Mario02 Chimica Bruni04 Chimica Verdi
corsi
Studente Voto Corso3456 30 043456 24 029283 28 01
esami
6554 26 01
Matricola Cognome Nome Data di nascita6554 Rossi Mario 05/12/19788765 Neri Paolo 03/11/1976
3456 Rossi Maria 01/02/19789283 Verdi Luisa 12/11/1979
studenti
Codice Titolo Docente01 Analisi Mario02 Chimica Bruni04 Chimica Verdi
corsi
Studente Voto Corso302428
esami
26
20
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:
sid cid grade53666 Carnatic101 C53666 Reggae203 B53650 Topology112 A53666 History105 B
Enrolled
sid name login age gpa53666 Jones jones@cs 18 3.453688 Smith smith@eecs 18 3.253650 Smith smith@math 19 3.8
Students
11111 English102 A
21
Vincoli di Integrità ReferenzialeFOREIGN 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 ordinatichiave di R2
X = B1,B2,…,BR ordinati∀ tupla t1 ∈ R1 ∃ tupla t2 ∈R2: ∀i ≤ r t1[Bi] = t2[Ai]
22
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