basi di dati concetti e principi generali stefania costantini
Embed Size (px)
TRANSCRIPT

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

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

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

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

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 DatiData Manipulation Language (DML) Aggiornamento istanze DB
• Inserzione • Cancellazione • Modifica
Estrazione informazioni da DB Interrogazione QueryDML 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 ControlloAmministrazione
• Utentifinali: utilizzano frequentemente la BD con query predefinitecasuali: 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 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

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
comuninon necessariamente con lo stesso nomema 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

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

Instance of Students Relation
sid name login age gpa
53666 Jones [email protected] 18 3.4 53688 Smith [email protected] 18 3.2 53650 Smith [email protected] 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

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 minimalenon 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)
sid name login age gpa
53666 Jones [email protected] 18 3.453688 Smith [email protected] 18 3.253650 Smith [email protected] 19 3.8
sid cid grade 53666 Carnatic101 C 53666 Reggae203 B 53650 Topology112 A 53666 History105 B
Enrolled Students
PRIMARY KeyFOREIGN Key

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)
sid name login age gpa
53666 Jones [email protected] 18 3.453688 Smith [email protected] 18 3.253650 Smith [email protected] 19 3.8
sid cid grade 53666 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

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

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

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

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 gpa
53666 Jones [email protected] 18 3.453688 Smith [email protected] 18 3.253650 Smith [email protected] 19 3.8
Students
11111 English102 A

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