Basi di Dati -...

22
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

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