Transcript
Page 1: Basi di Dati Concetti e Principi Generali Stefania Costantini

Basi di Dati

Concetti e

Principi Generali

Stefania Costantini

Page 2: 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:

ridondanzaincoerenzaformati diversi dei dati

Page 3: Basi di Dati Concetti e Principi Generali Stefania Costantini

Organizzazione dei Dati

Sistema di gestione di Basi di DatiData 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

Page 4: Basi di Dati Concetti e Principi Generali Stefania Costantini

DBMSBasi di Dati:• Grandi• Condivise (no ridondanza)

DBMS garantisce:• Persistenza (e fault-tolerance)• Affidabilità • Privatezza • Efficienza• Efficacia = migliore produttività

Page 5: Basi di Dati Concetti e Principi Generali Stefania Costantini

Modello dei Dati Insieme di concetti

• Descrizione dei Dati• Organizzazione dei Dati

Modello dei dati meccanismi di strutturazione

Page 6: Basi di Dati Concetti e Principi Generali Stefania Costantini

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

Page 7: Basi di Dati Concetti e Principi Generali Stefania Costantini

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 logicoE – R Entity – Relationship

Page 8: Basi di Dati Concetti e Principi Generali Stefania Costantini

Schema BDDescrizione 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

Page 9: Basi di Dati Concetti e Principi Generali Stefania Costantini

Istanza BD Definita su un dato schema Insieme dei valori effettivi dei dati

Cambia nel tempo• Inserzione • Cancellazione• Modifica

Page 10: Basi di Dati Concetti e Principi Generali Stefania Costantini

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

Page 11: Basi di Dati Concetti e Principi Generali Stefania Costantini

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 )

Page 12: Basi di Dati Concetti e Principi Generali Stefania Costantini

Linguaggi per Basi di Dati

Data Definition Language (DDL)• Definizione schemi• Definizione autorizzazioni di

accesso

Page 13: Basi di Dati Concetti e Principi Generali Stefania Costantini

Linguaggi per Basi di DatiData Manipulation Language (DML) Aggiornamento istanze DB

• Inserzione • Cancellazione • Modifica

Estrazione informazioni da DB Interrogazione QueryDML Query Language

SQL DDL + DML

Page 14: Basi di Dati Concetti e Principi Generali Stefania Costantini

Linguaggi per Basi di Dati

Classi di Linguaggi:• Interattivi testuali• Interattivi grafici• Immersi in altri linguaggi di

programmazione

Page 15: Basi di Dati Concetti e Principi Generali Stefania Costantini

Linguaggi per Basi di Dati

Interazione con Basi di Dati• Progettisti e programmatori• Amministratore DB Administrator (DBA)

Progetto ControlloAmministrazione

• Utentifinali: utilizzano frequentemente la BD con query predefinitecasuali: query non predefinite

Page 16: Basi di Dati Concetti e Principi Generali Stefania Costantini

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)

Page 17: Basi di Dati Concetti e Principi Generali Stefania Costantini

Basi di Dati

Il Modello

Relazionale

Concetti Generali

Page 18: Basi di Dati Concetti e Principi Generali Stefania Costantini

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

Page 19: Basi di Dati Concetti e Principi Generali Stefania Costantini

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)

Page 20: Basi di Dati Concetti e Principi Generali Stefania Costantini

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)

Page 21: Basi di Dati Concetti e Principi Generali Stefania Costantini

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

Page 22: Basi di Dati Concetti e Principi Generali Stefania Costantini

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

Page 23: Basi di Dati Concetti e Principi Generali Stefania Costantini

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

Page 24: Basi di Dati Concetti e Principi Generali Stefania Costantini

Tabelle Rappresentazione grafica delle relazioni

D1 = L’Aquila, Roma, Pescara

D2 = Maria, Carlo D1 x D2

• Una colonna per ogni dominio Di

• Una riga per ogni tuplaL’Aquila Maria

L’Aquila Carlo

Roma Maria

Roma Carlo

Pescara Maria

Pescara Carlo

Page 25: Basi di Dati Concetti e Principi Generali Stefania Costantini

Tabelle Relazione R

• Cardinalità 2

• Le tuple sono distinte

• Le tuple non sono ordinate

Residenza

L’Aquila Maria

Pescara Carlo

Page 26: Basi di Dati Concetti e Principi Generali Stefania Costantini

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

Page 27: Basi di Dati Concetti e Principi Generali Stefania Costantini

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

Page 28: Basi di Dati Concetti e Principi Generali Stefania Costantini

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

Page 29: Basi di Dati Concetti e Principi Generali Stefania Costantini

Basi di Dati Relazionali

Vantaggi: schema logico indipendente dall’implementazione• Comprensibilità • Usabilità • Portabilità • Indipendenza fisica

Page 30: Basi di Dati Concetti e Principi Generali Stefania Costantini
Page 31: Basi di Dati Concetti e Principi Generali Stefania Costantini

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

Page 32: Basi di Dati Concetti e Principi Generali Stefania Costantini

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

Page 33: Basi di Dati Concetti e Principi Generali Stefania Costantini

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?

Page 34: Basi di Dati Concetti e Principi Generali Stefania Costantini

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

Page 35: Basi di Dati Concetti e Principi Generali Stefania Costantini

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

Page 36: Basi di Dati Concetti e Principi Generali Stefania Costantini

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

Page 37: Basi di Dati Concetti e Principi Generali Stefania Costantini

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

Page 38: Basi di Dati Concetti e Principi Generali Stefania Costantini

Modello Relazionale Valore nullo:

• Valore distinto, aggiuntivo rispetto ai domini

• NULL = assenza di informazioni • Valore non noto• Valore inesistente (non definito)• Valore non significativo

Page 39: Basi di Dati Concetti e Principi Generali Stefania Costantini

(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 minimalenon esiste K1 K superchiave

Page 40: Basi di Dati Concetti e Principi Generali Stefania Costantini

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

Page 41: Basi di Dati Concetti e Principi Generali Stefania Costantini

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

Page 42: Basi di Dati Concetti e Principi Generali Stefania Costantini

Keys• Keys are a way to associate tuples in

different relations• Keys are one form of integrity

constraint (IC)

sid name login age gpa

53666 Jones jones@cs 18 3.453688 Smith smith@eecs 18 3.253650 Smith smith@math 19 3.8

sid cid grade 53666 Carnatic101 C 53666 Reggae203 B 53650 Topology112 A 53666 History105 B

Enrolled Students

PRIMARY KeyFOREIGN Key

Page 43: Basi di Dati Concetti e Principi Generali Stefania Costantini

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

Page 44: Basi di Dati Concetti e Principi Generali Stefania Costantini

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!

Page 45: Basi di Dati Concetti e Principi Generali Stefania Costantini

Keys• Keys are a way to associate tuples in

different relations• Keys are one form of integrity

constraint (IC)

sid name login age gpa

53666 Jones jones@cs 18 3.453688 Smith smith@eecs 18 3.253650 Smith smith@math 19 3.8

sid cid grade 53666 Carnatic101 C 53666 Reggae203 B 53650 Topology112 A 53666 History105 B

Enrolled Students

PRIMARY KeyFOREIGN Key

Page 46: Basi di Dati Concetti e Principi Generali Stefania Costantini

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

Page 47: Basi di Dati Concetti e Principi Generali Stefania Costantini

Classi diVincoli

I vincoli di integrità possono essere• Intrarelazionali (su singole relazioni)• Interrelazionali (coinvolgono varie

relazioni)

Page 48: Basi di Dati Concetti e Principi Generali Stefania Costantini

Classi diVincoli

• Classi di vincoli intrarelazionali:di Tupla: verificabili sulla tupla singoladi Dominio: restrizione sul dominio dell’attributoGlobali: occorre considerare l’intera istanza

Page 49: Basi di Dati Concetti e Principi Generali Stefania Costantini

Vincoli di Integrità Referenziale

Vincolo interrelazionale: relazioni in correlazione fra loro• Mediante attributi comuni

• Modello relazionale: basato su valori

Page 50: Basi di Dati Concetti e Principi Generali Stefania Costantini

Il modello è basato su valori

• i riferimenti fra dati in relazioni diverse sono rappresentati per mezzo di valori dei domini che compaiono nelle ennuple

Page 51: Basi di Dati Concetti e Principi Generali Stefania Costantini

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

Page 52: Basi di Dati Concetti e Principi Generali Stefania Costantini

Un esempio di incroci su valori

Corso AulaDocente

RossiBasi di dati DS3

BruniReti N3

NeriSistemi N3

BruniControlli G

Corsi

Nome PianoEdificio

OMIDS1 Terra

PincherleG Primo

OMIN3 Terra

Aule

• Aula DS3 non compare fra le Aule:– vincolo intra-relazionale violato

Page 53: Basi di Dati Concetti e Principi Generali Stefania Costantini

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

Page 54: Basi di Dati Concetti e Principi Generali Stefania Costantini

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

Page 55: Basi di Dati Concetti e Principi Generali Stefania Costantini

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.)

Page 56: Basi di Dati Concetti e Principi Generali Stefania Costantini

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 gpa

53666 Jones jones@cs 18 3.453688 Smith smith@eecs 18 3.253650 Smith smith@math 19 3.8

Students

11111 English102 A

Page 57: Basi di Dati Concetti e Principi Generali Stefania Costantini

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

Page 58: Basi di Dati Concetti e Principi Generali Stefania Costantini

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]

Page 59: Basi di Dati Concetti e Principi Generali Stefania Costantini

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


Top Related