Basi di Dati Concetti e Principi Generali Stefania Costantini.

Post on 01-May-2015

217 views 0 download

Transcript of Basi di Dati Concetti e Principi Generali Stefania Costantini.

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

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

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

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 jones@cs 18 3.453688 Smith smith@eecs 18 3.253650 Smith smith@math 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