Introduzione alle Basi di Dati -...

96
Introduzione alle Basi di Dati Credits Prof. Alessandro Campi

Transcript of Introduzione alle Basi di Dati -...

Page 1: Introduzione alle Basi di Dati - home.deib.polimi.ithome.deib.polimi.it/boracchi/teaching/InfoA/2018_Lez16_Intro_Base... · •Teoria: bastano le slide –Materiale costruito partendo

Introduzionealle Basi di Dati

Credits Prof. Alessandro Campi

Page 2: Introduzione alle Basi di Dati - home.deib.polimi.ithome.deib.polimi.it/boracchi/teaching/InfoA/2018_Lez16_Intro_Base... · •Teoria: bastano le slide –Materiale costruito partendo

Materiale

• Teoria: bastano le slide– Materiale costruito partendo da:

• Paolo Atzeni, Stefano Ceri, Stefano Paraboschi, Riccardo Torlone«Basi di dati: Modelli e linguaggi di interrogazione»

• Esercizi: bastano le slide– Riusati identici in:

• Braga Brambilla Campi «Eserciziario basi di dati» Editrice Esculapio

Page 3: Introduzione alle Basi di Dati - home.deib.polimi.ithome.deib.polimi.it/boracchi/teaching/InfoA/2018_Lez16_Intro_Base... · •Teoria: bastano le slide –Materiale costruito partendo

Informazioni e dati

Facciamo subito una distinzione:

– informazione: notizia, dato o elemento che consente di avere conoscenza più o meno esatta di fatti, situazioni, modi di essere.

– dato: ciò che è immediatamente precedente alla conoscenza, prima di ogni elaborazione;

– dato in informatica: elementi di informazione costituiti da simboli che debbono essere elaborati

(definizioni dal Vocabolario della lingua italiana 1987)

Page 4: Introduzione alle Basi di Dati - home.deib.polimi.ithome.deib.polimi.it/boracchi/teaching/InfoA/2018_Lez16_Intro_Base... · •Teoria: bastano le slide –Materiale costruito partendo

Dal dato all’informazione

• Dato: <Stefano Ceri, Basi di dati, IIIA, I Sem>

• Informazione:

– Chi insegna basi di dati? Stefano Ceri

– Quando si tiene il corso? Al I semestre del III anno.

Page 5: Introduzione alle Basi di Dati - home.deib.polimi.ithome.deib.polimi.it/boracchi/teaching/InfoA/2018_Lez16_Intro_Base... · •Teoria: bastano le slide –Materiale costruito partendo

Dal dato all’informazione

Un esempio:

Mario 2753

su un foglio di carta sono due dati e non significano molto

Page 6: Introduzione alle Basi di Dati - home.deib.polimi.ithome.deib.polimi.it/boracchi/teaching/InfoA/2018_Lez16_Intro_Base... · •Teoria: bastano le slide –Materiale costruito partendo

Dal dato all’informazione

Un esempio:

Mario 2753

su un foglio di carta sono due dati e non significano molto

Se il foglio di carta viene fornito in risposta alla domanda “A chi mi devo rivolgere per abilitare il mio badge aziendale; qual è il suo numero di telefono interno?”, allora i dati possono essere interpretati per fornire informazione e arricchire la conoscenza

Page 7: Introduzione alle Basi di Dati - home.deib.polimi.ithome.deib.polimi.it/boracchi/teaching/InfoA/2018_Lez16_Intro_Base... · •Teoria: bastano le slide –Materiale costruito partendo

Informazioni e Dati

• I dati di per se non hanno alcun significato, ma una volta elaborati ed interpretati possono fornire informazioni, conoscenza.

• Tipicamente, nei sistemi informatici:

• i dati sono l’input, le informazioni l’output

• dati ed informazioni vengono immagazzinati allo stesso modo ma rappresentano comunque due entità distinte.

Page 8: Introduzione alle Basi di Dati - home.deib.polimi.ithome.deib.polimi.it/boracchi/teaching/InfoA/2018_Lez16_Intro_Base... · •Teoria: bastano le slide –Materiale costruito partendo

Il valore dei dati

I dati tipicamente sono più stabili delle applicazioni e di altre componenti del sistema informatico (processi, tecnologie, ruoli umani):

– ad esempio, la struttura dei dati delle banche o delle anagrafi è immutata, mentre le applicazioni cambiano rapidamente (e.g. homebanking)

I dati costituiscono spesso una risorsa strategica– Si pensi ad aziende come Google e FB…

Non a caso, fin dagli anni ’60 si studiano sistemi informatici specifici per gestire i dati

Page 9: Introduzione alle Basi di Dati - home.deib.polimi.ithome.deib.polimi.it/boracchi/teaching/InfoA/2018_Lez16_Intro_Base... · •Teoria: bastano le slide –Materiale costruito partendo

… e non bastano i files?

Non possiamo mettere tutto in uno (o più) files?

NO! I files hanno semplici meccanismi di

– Accesso

– Condivisione

Se le informazioni sono utilizzate da diverse applicazioni occorre avere files distinti, uno per ogni applicazione.

-> rischio ridondanza ed incongruenza

Page 10: Introduzione alle Basi di Dati - home.deib.polimi.ithome.deib.polimi.it/boracchi/teaching/InfoA/2018_Lez16_Intro_Base... · •Teoria: bastano le slide –Materiale costruito partendo

BASE DI DATI E FILE SYSTEM A CONFRONTO

PROGRAMMAAPPLICATIVO

FILE SYSTEM

DATI

DATI

DATI

DATI

DATI

DATI

PROGRAMMAAPPLICATIVO

DATI

PROGRAMMAAPPLICATIVO

PROGRAMMAAPPLICATIVO

PROGRAMMAAPPLICATIVO

PROGRAMMAAPPLICATIVO

DBMS

Page 11: Introduzione alle Basi di Dati - home.deib.polimi.ithome.deib.polimi.it/boracchi/teaching/InfoA/2018_Lez16_Intro_Base... · •Teoria: bastano le slide –Materiale costruito partendo

IL DBMS

Page 12: Introduzione alle Basi di Dati - home.deib.polimi.ithome.deib.polimi.it/boracchi/teaching/InfoA/2018_Lez16_Intro_Base... · •Teoria: bastano le slide –Materiale costruito partendo

Base di dati

• Accezione generica, metodologica

– Insieme organizzato di dati utilizzato per estrarre informazioni di interesse per un’applicazione (o per il supporto a specifiche attività)

• Accezione specifica, metodologica e tecnologica

– insieme di dati gestito da un Data Base Management System (DBMS)

Page 13: Introduzione alle Basi di Dati - home.deib.polimi.ithome.deib.polimi.it/boracchi/teaching/InfoA/2018_Lez16_Intro_Base... · •Teoria: bastano le slide –Materiale costruito partendo

Data Base Management System (DBMS)

Sistema che gestisce collezioni di dati: – Grandi:

• dimensioni (molto) maggiori della memoria centrale dei sistemi di calcolo utilizzati

• Il sistema deve poter gestire basi di dati che crescono nel tempo

– Condivise:• Applicazioni ed utenti diversi devono poter accedere secondo

opportune modalità a dati comuni

• La condivisione riduce la ridondanza ed il rischio di inconsistenze

• Garantisce accesso simultaneo mediante il controllo di concorrenza per evitare inconsistenze

– Persistenti: • hanno un tempo di vita indipendente dalle singole esecuzioni dei

programmi che le utilizzano

Page 14: Introduzione alle Basi di Dati - home.deib.polimi.ithome.deib.polimi.it/boracchi/teaching/InfoA/2018_Lez16_Intro_Base... · •Teoria: bastano le slide –Materiale costruito partendo

Data Base Management System (DBMS)

Il DBMS inoltre garantisce:

– Affidabilità: il contenuto della base dati viene preservato anche in caso di malfunzionamenti

– Privatezza: ogni utente/applicazione è abilitato a svolgere solo specifiche operazioni (accesso regolato da autorizzazioni)

– Efficienza: svolgono operazioni (e.g. caricamento, query, sort) utilizzando un numero limitato di risorse (tra cui spazio su disco e tempo di attesa).

– Efficacia: rendono produttive le attività degli utenti.

Page 15: Introduzione alle Basi di Dati - home.deib.polimi.ithome.deib.polimi.it/boracchi/teaching/InfoA/2018_Lez16_Intro_Base... · •Teoria: bastano le slide –Materiale costruito partendo

Data Base Management System (DBMS)

N.B il DBMS a sua volta utilizza files per immagazzinare i dati, anche se questi sono organizzati secondo specifici criteri per garantire le caratteristiche descritte in precedenza, e non come i files testuali.

Page 16: Introduzione alle Basi di Dati - home.deib.polimi.ithome.deib.polimi.it/boracchi/teaching/InfoA/2018_Lez16_Intro_Base... · •Teoria: bastano le slide –Materiale costruito partendo

DBMS

Molti software DBMS disponibili sul mercato;

Esempi:– Access

– DB2

– Oracle

– Informix

– Sybase

– SQLServer

– MySql

Page 17: Introduzione alle Basi di Dati - home.deib.polimi.ithome.deib.polimi.it/boracchi/teaching/InfoA/2018_Lez16_Intro_Base... · •Teoria: bastano le slide –Materiale costruito partendo

INTEGRAZIONE DEI DATI

OGNI DATO, A PRESCINDERE DALLE APPLICAZIONI DALLE QUALI VENGA UTILIZZATO, COMPARE UNA SOLA VOLTA

– ELIMINA INUTILI RIDONDANZE E SPRECHI DI MEMORIA

– MIGLIORA LA CONSISTENZA DEI DATI (non è infatti possibile che lo stesso dato abbia contemporaneamente due valori diversi)

Le ridondanze vengono evitate introducendo vincoli di integrità che preservano la qualità del dato.

Page 18: Introduzione alle Basi di Dati - home.deib.polimi.ithome.deib.polimi.it/boracchi/teaching/InfoA/2018_Lez16_Intro_Base... · •Teoria: bastano le slide –Materiale costruito partendo

Come si usa un DBMS ?

a definendo la struttura generale dei dati, i.e., lo schema che rimane fisso.

b definendo le specifiche operazioni sui dati, i.e.,

le istanze che possono variare.

STRUTTURA DEI DATI SUI CONTI CORRENTI

conto corrente di Giorgio Rossi

conto corrente di Paolo Bianchi……………………………………….

schema

istanza

Page 19: Introduzione alle Basi di Dati - home.deib.polimi.ithome.deib.polimi.it/boracchi/teaching/InfoA/2018_Lez16_Intro_Base... · •Teoria: bastano le slide –Materiale costruito partendo

Esempio : studenti universitari

studente

MATR

123

415

702

NOME

Carlo

Paola

Antonio

CITTA’

Bologna

Torino

Roma

C-DIP

Inf

Inf

Log

Page 20: Introduzione alle Basi di Dati - home.deib.polimi.ithome.deib.polimi.it/boracchi/teaching/InfoA/2018_Lez16_Intro_Base... · •Teoria: bastano le slide –Materiale costruito partendo

I linguaggi del DBMS

DATA DEFINITION LANGUAGE (DDL)es: CREATE, DROP, ALTER

usato per realizzare gli schemi logici, esterni e fisici e per gestire le autorizzazioni di accesso

DATA MANIPULATION LANGUAGE (DML)es: SELECT, INSERT, UPDATE, DELETE

Usato per l’aggiornamento, la manutenzione e l’interrogazione delle basi dati

Page 21: Introduzione alle Basi di Dati - home.deib.polimi.ithome.deib.polimi.it/boracchi/teaching/InfoA/2018_Lez16_Intro_Base... · •Teoria: bastano le slide –Materiale costruito partendo

DML: Query Language

select *

from Studente

where Città = ’Bologna’

Matr

123

Nome

Carlo

Città

Bologna

CDip

Inf

Page 22: Introduzione alle Basi di Dati - home.deib.polimi.ithome.deib.polimi.it/boracchi/teaching/InfoA/2018_Lez16_Intro_Base... · •Teoria: bastano le slide –Materiale costruito partendo

MODELLO LOGICO DEI DATI

Page 23: Introduzione alle Basi di Dati - home.deib.polimi.ithome.deib.polimi.it/boracchi/teaching/InfoA/2018_Lez16_Intro_Base... · •Teoria: bastano le slide –Materiale costruito partendo

MODELLI DEI DATII MODELLI COSTITUISCONO UNA STRUTTURAZIONE SEMPLIFICATA DELLA REALTA’ CHE NE ACCOGLIE ASPETTI SPECIFICI E AIUTA A COMPRENDERLA MEGLIO

MONDO REALE

MODELLO CONCETTUALE

MODELLI LOGICI (strutture astratte che rispecchiano una precisa organizzazione del dato)

GERARCHICO

RETICOLARE

RELAZIONALE

Page 24: Introduzione alle Basi di Dati - home.deib.polimi.ithome.deib.polimi.it/boracchi/teaching/InfoA/2018_Lez16_Intro_Base... · •Teoria: bastano le slide –Materiale costruito partendo

Cronologia dei modelliper la rappresentazione dei dati

• Modello gerarchico (anni 60)

• Modello reticolare (anni 70)

• Modello relazionale (anni 80)

• Modello a oggetti (anni 90)

• Modello XML (anni 00)

Page 25: Introduzione alle Basi di Dati - home.deib.polimi.ithome.deib.polimi.it/boracchi/teaching/InfoA/2018_Lez16_Intro_Base... · •Teoria: bastano le slide –Materiale costruito partendo

MODELLI LOGICI DEI DATI

GERARCHICO – I DATI SONO RAPPRESENTATI COME RECORD

– LE ASSOCIAZIONI TRA I DATI SONO RAPPRESENTATE CON PUNTATORI IN UNA STRUTTURA AD ALBERO

GERARCHICO

Page 26: Introduzione alle Basi di Dati - home.deib.polimi.ithome.deib.polimi.it/boracchi/teaching/InfoA/2018_Lez16_Intro_Base... · •Teoria: bastano le slide –Materiale costruito partendo

MODELLI LOGICI DEI DATI

RETICOLARE (CODASYL)

– I DATI SONO RAPPRESENTATI COME RECORD

– LE ASSOCIAZIONI TRA I DATI SONO RAPPRESENTATE CON PUNTATORI IN UNA STRUTTURA A GRAFO COMPLESSO

RETICOLARE

Page 27: Introduzione alle Basi di Dati - home.deib.polimi.ithome.deib.polimi.it/boracchi/teaching/InfoA/2018_Lez16_Intro_Base... · •Teoria: bastano le slide –Materiale costruito partendo

MODELLI LOGICI DEI DATIRELAZIONALE

– I DATI SONO RAPPRESENTATI COME TABELLE

• Ogni riga rappresenta un record,

• Ogni colonna rappresenta uno specifico campo dei record

– LE ASSOCIAZIONI TRA I DATI SONO OTTENUTE ASSOCIANDO VALORI DI ATTRIBUTI IN TABELLE DIVERSE

• Non vengono esplicitamente codificate le relazioni tra i datia differenza del modello gerarchico

RELAZIONALE

Page 28: Introduzione alle Basi di Dati - home.deib.polimi.ithome.deib.polimi.it/boracchi/teaching/InfoA/2018_Lez16_Intro_Base... · •Teoria: bastano le slide –Materiale costruito partendo

IL MODELLO RELAZIONALE

Page 29: Introduzione alle Basi di Dati - home.deib.polimi.ithome.deib.polimi.it/boracchi/teaching/InfoA/2018_Lez16_Intro_Base... · •Teoria: bastano le slide –Materiale costruito partendo

Cronologia del modello relazionale

• Inventato da T. Codd, 1970

(IBM Research di Santa Teresa, Cal)

• Primi progetti:

SYSTEM R (IBM), Ingres (Berkeley Un.)

• Principali scoperte tecnologiche: 1978-1980

• Primi sistemi commerciali:

inizio anni ‘80 (Oracle, IBM-SQL DS e DB2, Ingres, Informix, Sybase)

• Successo commerciale: dal 1985.

Page 30: Introduzione alle Basi di Dati - home.deib.polimi.ithome.deib.polimi.it/boracchi/teaching/InfoA/2018_Lez16_Intro_Base... · •Teoria: bastano le slide –Materiale costruito partendo

Definizione informale di relazione

31

Page 31: Introduzione alle Basi di Dati - home.deib.polimi.ithome.deib.polimi.it/boracchi/teaching/InfoA/2018_Lez16_Intro_Base... · •Teoria: bastano le slide –Materiale costruito partendo

Nomenclatura per la relazione

32

Page 32: Introduzione alle Basi di Dati - home.deib.polimi.ithome.deib.polimi.it/boracchi/teaching/InfoA/2018_Lez16_Intro_Base... · •Teoria: bastano le slide –Materiale costruito partendo

Definizione formale di relazione

• Dominio 𝐷:

– un qualunque insieme di valori

• Prodotto cartesiano di 𝑛 domini 𝑋 = 𝑥𝐷1 × 𝐷2 ×⋯× 𝐷𝑛– insieme delle 𝑛-ple (tuple) < 𝑑1, 𝑑2, … , 𝑑𝑛 >, con 𝑑𝑖 ∈ 𝐷𝑖 ,

𝑖 = 1 , . . , 𝑛

• Relazione R su 𝐷1 × 𝐷2 ×⋯× 𝐷𝑛:

– Un qualunque sottoinsieme di 𝐷1 × 𝐷2 ×⋯× 𝐷𝑛– 𝐷1, … , 𝐷𝑛 sono i domini della relazione. Una relazione su 𝑛

domini ha grado 𝑛.

– Il numero di 𝑛-uple in 𝑅 è la cardinalità della relazione. Nelle applicazioni reali la cardinalità è sempre finita

Page 33: Introduzione alle Basi di Dati - home.deib.polimi.ithome.deib.polimi.it/boracchi/teaching/InfoA/2018_Lez16_Intro_Base... · •Teoria: bastano le slide –Materiale costruito partendo

Esempio nel piano cartesiano

Domino: ℝ

Prodotto cartesiano: ℝ2 = ℝ ×ℝ

Relazione: un sottoinsieme / sottospazio di ℝ2

NB: I domini in un prodotto cartesiano non devono necessariamente distinti

Page 34: Introduzione alle Basi di Dati - home.deib.polimi.ithome.deib.polimi.it/boracchi/teaching/InfoA/2018_Lez16_Intro_Base... · •Teoria: bastano le slide –Materiale costruito partendo

Esempio

• Domini– D1 = {a,b}– D2 = {1,2,3}

• Prodotto cartesiano– D1 x D2 = { <a,1>, <b,1>, <a,2>, <b,2>, <a,3>, <b,3> }

• Esempi di relazione– R1 = { <a,1>, <b,3> }– R2 = { <a,1>, <b,3>, <a,2> }– R3 = { }– R4 = { <a,1>, <b,1>, <a,2>, <b,2>, <a,3>, <b,3> }

Page 35: Introduzione alle Basi di Dati - home.deib.polimi.ithome.deib.polimi.it/boracchi/teaching/InfoA/2018_Lez16_Intro_Base... · •Teoria: bastano le slide –Materiale costruito partendo

Relazioni

Osservazioni Importanti:

– una relazione non ammette duplicati perché è un insieme (tutte le tuple sono distinte)

– non esiste alcun ordinamento tra le tuple

– le tuple sono al loro interno ordinate: l’𝑖-simo valore proviene dall’𝑖-simo dominio. Non è possibile cambiare la posizione delle componenti.

Page 36: Introduzione alle Basi di Dati - home.deib.polimi.ithome.deib.polimi.it/boracchi/teaching/InfoA/2018_Lez16_Intro_Base... · •Teoria: bastano le slide –Materiale costruito partendo

Proprietà

• Grado della relazione:

– numero di domini (𝑛)

• Cardinalità della relazione:

– numero di 𝑛-tuple di una relazione

• Attributo:

– nome dato al dominio in una relazione

– I nomi di attributo in una relazione devono essere tutti distinti fra loro

38

Page 37: Introduzione alle Basi di Dati - home.deib.polimi.ithome.deib.polimi.it/boracchi/teaching/InfoA/2018_Lez16_Intro_Base... · •Teoria: bastano le slide –Materiale costruito partendo

Ecco cosa si intende nella definizione informale

Page 38: Introduzione alle Basi di Dati - home.deib.polimi.ithome.deib.polimi.it/boracchi/teaching/InfoA/2018_Lez16_Intro_Base... · •Teoria: bastano le slide –Materiale costruito partendo

Partite string × string × integer × integer

• Ciascuno dei domini ha due ruoli distinti, distinguibili attraverso la posizione: il primo e il terzo dominio si riferiscono a nome e reti della squadra ospitante; il secondo e il quarto a nome e reti della squadra ospitata.• La struttura è posizionale

Juve Lazio 3 1Lazio Milan 2 0Juve Roma 1 2Roma Milan 0 1

Page 39: Introduzione alle Basi di Dati - home.deib.polimi.ithome.deib.polimi.it/boracchi/teaching/InfoA/2018_Lez16_Intro_Base... · •Teoria: bastano le slide –Materiale costruito partendo

Nei DB, invece, associamo a ciascun dominio un nome (attributo), unico nella relazione, che “descrive” il ruolo del dominio.

– Nella rappresentazione tabulare, gli attributi possono essere usati come intestazioni delle colonne.

– L’ordinamento fra gli attributi è irrilevante per lo schema (a patto di modificare le tuple): la struttura è non posizionale

Casa Fuori RetiCasa RetiFuori

Juve Lazio 3 1

Lazio Milan 2 0

Juve Roma 1 2

Roma Milan 0 1

Page 40: Introduzione alle Basi di Dati - home.deib.polimi.ithome.deib.polimi.it/boracchi/teaching/InfoA/2018_Lez16_Intro_Base... · •Teoria: bastano le slide –Materiale costruito partendo

Relazioni (cnt.)

Osservazioni Importanti:

– le tuple sono al loro interno ordinate: l’𝑖-simo valore proviene dall’𝑖-simo dominio. Non è possibile cambiare la posizione delle componenti, nemmeno quando fanno riferimento allo stesso dominio. Con gli attributi si dà infatti un significato diverso ai valori delle istanze (e.g. squadra di casa, squadra ospiti)

Page 41: Introduzione alle Basi di Dati - home.deib.polimi.ithome.deib.polimi.it/boracchi/teaching/InfoA/2018_Lez16_Intro_Base... · •Teoria: bastano le slide –Materiale costruito partendo

Formalizzando

• L’associazione fra domini e attributi è definita da una funzione 𝑑𝑜𝑚(⋅) che associa a ciascun attributo un dominio 𝐷

• Una 𝒏-tupla su un insieme di attributi 𝑋 è una funzione che associa a ciascun attributo 𝐴 di 𝑋 un valore del dominio 𝑑𝑜𝑚(𝐴)

• Una relazione su 𝑋 è un insieme di ennuple su 𝑋

(definizione non posizionale, le tuple sono definite mediante i loro attributi, senza la nozione di posizione)

Page 42: Introduzione alle Basi di Dati - home.deib.polimi.ithome.deib.polimi.it/boracchi/teaching/InfoA/2018_Lez16_Intro_Base... · •Teoria: bastano le slide –Materiale costruito partendo

Formalizzando

• Se 𝑡 è una 𝑛-tupla su 𝑋 e 𝐴 ∈ 𝑋, allora

𝑡[𝐴] (o 𝑡. 𝐴 ) indica il valore che l’attributo 𝐴 assume nella 𝑛-tupla 𝑡.

• Nell’esempio, se 𝑡 è la prima ennupla della tabella

𝑡[Fuori] = Lazio

• La stessa notazione è estesa anche ad insiemi di attributi, nel qual caso denota ennuple:

𝑡[Fuori, RetiFuori] è una ennupla su due attributi e vale < Lazio, 1 >

Page 43: Introduzione alle Basi di Dati - home.deib.polimi.ithome.deib.polimi.it/boracchi/teaching/InfoA/2018_Lez16_Intro_Base... · •Teoria: bastano le slide –Materiale costruito partendo

Tabelle e Relazioni

• Una tabella rappresenta una relazione se

• i valori di ciascuna colonna sono fra loro omogenei (dallo stesso dominio)

• le righe sono diverse fra loro

• le intestazioni delle colonne sono diverse tra loro

• Inoltre, in una tabella che rappresenta una relazione

• l’ordinamento tra le righe è irrilevante

• l’ordinamento tra le colonne è irrilevante

Page 44: Introduzione alle Basi di Dati - home.deib.polimi.ithome.deib.polimi.it/boracchi/teaching/InfoA/2018_Lez16_Intro_Base... · •Teoria: bastano le slide –Materiale costruito partendo

Confronto della terminologia

DEFINIZIONE

FORMALE

relazione

attributo

tupla, n-pla

dominio

cardinalita'

grado

DEFINIZIONE

INFORMALE

tabella

colonna

riga

tipo di dato

numero di righe

numero di colonne

Una differenza significativa

DEFINIZIONEFORMALEassenzadi duplicati

DEFINIZIONEINFORMALE possibili duplicati

Page 45: Introduzione alle Basi di Dati - home.deib.polimi.ithome.deib.polimi.it/boracchi/teaching/InfoA/2018_Lez16_Intro_Base... · •Teoria: bastano le slide –Materiale costruito partendo

Esempio: gestione degli esamiuniversitari

Page 46: Introduzione alle Basi di Dati - home.deib.polimi.ithome.deib.polimi.it/boracchi/teaching/InfoA/2018_Lez16_Intro_Base... · •Teoria: bastano le slide –Materiale costruito partendo

Esempio: gestione degli esami universitari (v.2)

Page 47: Introduzione alle Basi di Dati - home.deib.polimi.ithome.deib.polimi.it/boracchi/teaching/InfoA/2018_Lez16_Intro_Base... · •Teoria: bastano le slide –Materiale costruito partendo

Il modello relazionale è basato su valori

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

Page 48: Introduzione alle Basi di Dati - home.deib.polimi.ithome.deib.polimi.it/boracchi/teaching/InfoA/2018_Lez16_Intro_Base... · •Teoria: bastano le slide –Materiale costruito partendo
Page 49: Introduzione alle Basi di Dati - home.deib.polimi.ithome.deib.polimi.it/boracchi/teaching/InfoA/2018_Lez16_Intro_Base... · •Teoria: bastano le slide –Materiale costruito partendo
Page 50: Introduzione alle Basi di Dati - home.deib.polimi.ithome.deib.polimi.it/boracchi/teaching/InfoA/2018_Lez16_Intro_Base... · •Teoria: bastano le slide –Materiale costruito partendo

Perché sui valori?

• Indipendenza dalle strutture fisiche (si potrebbe avere anche con puntatori di alto livello) che possono cambiare anche dinamicamente

• Si rappresenta solo ciò che è rilevante dal punto di vista dell’applicazione (dell’utente); i puntatori sono meno comprensibili per l’utente finale (senza, l’utente finale vede gli stessi dati dei programmatori)

• I dati sono portabili più facilmente da un sistema ad un altro

• I puntatori sono direzionali, le connessioni tra valori non lo sono

Page 51: Introduzione alle Basi di Dati - home.deib.polimi.ithome.deib.polimi.it/boracchi/teaching/InfoA/2018_Lez16_Intro_Base... · •Teoria: bastano le slide –Materiale costruito partendo

Interrogazioni

• Quali professori hanno esaminato Carlo?

studente

MATR

123

415

702

NOME

Carlo

Paola

Antonio

CITTA’

Bologna

Torino

Roma

INDIR

Inf

Inf

Log

esame

MATR

123

123

702

COD-CORSO

1

2

2

DATA

7-9-03

8-1-03

7-9-03

VOTO

10

8

5

corsoCOD-CORSO

1

2

TITOLO

matematica

informatica

DOCENTE

Barozzi

Meo

Page 52: Introduzione alle Basi di Dati - home.deib.polimi.ithome.deib.polimi.it/boracchi/teaching/InfoA/2018_Lez16_Intro_Base... · •Teoria: bastano le slide –Materiale costruito partendo

Interrogazioni 1/2

Page 53: Introduzione alle Basi di Dati - home.deib.polimi.ithome.deib.polimi.it/boracchi/teaching/InfoA/2018_Lez16_Intro_Base... · •Teoria: bastano le slide –Materiale costruito partendo

Interrogazioni

• Quali studenti hanno preso 10 in matematica?

studente

MATR

123

415

702

NOME

Carlo

Paola

Antonio

CITTA’

Bologna

Torino

Roma

INDIR

Inf

Inf

Log

esame

MATR

123

123

702

COD-CORSO

1

2

2

DATA

7-9-03

8-1-03

7-9-03

VOTO

10

8

5

corsoCOD-CORSO

1

2

TITOLO

matematica

informatica

DOCENTE

Barozzi

Meo

Page 54: Introduzione alle Basi di Dati - home.deib.polimi.ithome.deib.polimi.it/boracchi/teaching/InfoA/2018_Lez16_Intro_Base... · •Teoria: bastano le slide –Materiale costruito partendo

Interrogazioni 2/2

Page 55: Introduzione alle Basi di Dati - home.deib.polimi.ithome.deib.polimi.it/boracchi/teaching/InfoA/2018_Lez16_Intro_Base... · •Teoria: bastano le slide –Materiale costruito partendo

Esempio: gestione del personale

Page 56: Introduzione alle Basi di Dati - home.deib.polimi.ithome.deib.polimi.it/boracchi/teaching/InfoA/2018_Lez16_Intro_Base... · •Teoria: bastano le slide –Materiale costruito partendo

chi e' il manager di Piero?

Page 57: Introduzione alle Basi di Dati - home.deib.polimi.ithome.deib.polimi.it/boracchi/teaching/InfoA/2018_Lez16_Intro_Base... · •Teoria: bastano le slide –Materiale costruito partendo

chi e' il manager di Piero?

Page 58: Introduzione alle Basi di Dati - home.deib.polimi.ithome.deib.polimi.it/boracchi/teaching/InfoA/2018_Lez16_Intro_Base... · •Teoria: bastano le slide –Materiale costruito partendo

in quali tipi di progetti lavora Giovanni?

Page 59: Introduzione alle Basi di Dati - home.deib.polimi.ithome.deib.polimi.it/boracchi/teaching/InfoA/2018_Lez16_Intro_Base... · •Teoria: bastano le slide –Materiale costruito partendo

in quali tipi di progetti lavora Giovanni?

Page 60: Introduzione alle Basi di Dati - home.deib.polimi.ithome.deib.polimi.it/boracchi/teaching/InfoA/2018_Lez16_Intro_Base... · •Teoria: bastano le slide –Materiale costruito partendo

Riflessioni

a differenza fra schema e istanza

b due attività assai differenti:- progetto dello schema- gestione dell'istanza

c passaggio dai dati all'informazione(Query language)

Page 61: Introduzione alle Basi di Dati - home.deib.polimi.ithome.deib.polimi.it/boracchi/teaching/InfoA/2018_Lez16_Intro_Base... · •Teoria: bastano le slide –Materiale costruito partendo

Esempio: ricevuta fiscale

“Da Filippo”Via Roma 239100 ChissadoveP.I. 012345678

“Da Filippo”Via Roma 239100 ChissadoveP.I. 012345678

Page 62: Introduzione alle Basi di Dati - home.deib.polimi.ithome.deib.polimi.it/boracchi/teaching/InfoA/2018_Lez16_Intro_Base... · •Teoria: bastano le slide –Materiale costruito partendo

Rappresentazione relazionale v.1

Page 63: Introduzione alle Basi di Dati - home.deib.polimi.ithome.deib.polimi.it/boracchi/teaching/InfoA/2018_Lez16_Intro_Base... · •Teoria: bastano le slide –Materiale costruito partendo

Va bene…

Però dobbiamo sapere due cose:

– Perdiamo l’ordinamento delle portate nella ricevuta

– Assumiamo che in una ricevuta non compaiono due righe uguali (altrimenti avremmo due tupleidentiche nei dettagli)

Per risolvere il problema posso aggiungere per ogni dettaglio la posizione nella ricevuta

Page 64: Introduzione alle Basi di Dati - home.deib.polimi.ithome.deib.polimi.it/boracchi/teaching/InfoA/2018_Lez16_Intro_Base... · •Teoria: bastano le slide –Materiale costruito partendo

Rappresentazione relazionale v.2

Page 65: Introduzione alle Basi di Dati - home.deib.polimi.ithome.deib.polimi.it/boracchi/teaching/InfoA/2018_Lez16_Intro_Base... · •Teoria: bastano le slide –Materiale costruito partendo

Informazione incompleta

• ll modello relazionale impone ai dati una struttura rigida:– le informazioni sono rappresentate per mezzo

di 𝑛-uple

– solo alcuni formati di 𝑛-upla corrispondenti agli schemi di relazione sono ammessi

• I dati disponibili possono non corrispondere esattamente al formato previsto, per varie ragioni.

Page 66: Introduzione alle Basi di Dati - home.deib.polimi.ithome.deib.polimi.it/boracchi/teaching/InfoA/2018_Lez16_Intro_Base... · •Teoria: bastano le slide –Materiale costruito partendo

Informazione incompleta

• Firenze è provincia, ma non conosciamo l'indirizzo della prefettura

• Tivoli non è provincia: non ha prefettura• Prato è “nuova” provincia: ha la prefettura?

Page 67: Introduzione alle Basi di Dati - home.deib.polimi.ithome.deib.polimi.it/boracchi/teaching/InfoA/2018_Lez16_Intro_Base... · •Teoria: bastano le slide –Materiale costruito partendo

Informazione incompleta

• Non conviene (anche se spesso si fa) utilizzare valori ordinari del dominio (0, stringa nulla, “99”, etc), per vari motivi:

– potrebbero non esistere valori “non utilizzati”

– valori “non utilizzati” potrebbero diventare significativi

• Risulta necessario ogni volta tener conto del “significato” di questi valori

Page 68: Introduzione alle Basi di Dati - home.deib.polimi.ithome.deib.polimi.it/boracchi/teaching/InfoA/2018_Lez16_Intro_Base... · •Teoria: bastano le slide –Materiale costruito partendo

Informazione incompleta

• Si adotta una tecnica rudimentale ma efficace:– valore nullo: denota l’assenza di un valore del dominio (e

non è un valore del dominio)

• Formalmente, è sufficiente estendere il concetto di ennupla:

𝑡[𝐴], per ogni attributo 𝐴, è un valore del dominio 𝑑𝑜𝑚 𝐴 oppure il valore nullo 𝑁𝑈𝐿𝐿

• Si possono (e debbono) imporre restrizioni sulla presenza di valori nulli

Page 69: Introduzione alle Basi di Dati - home.deib.polimi.ithome.deib.polimi.it/boracchi/teaching/InfoA/2018_Lez16_Intro_Base... · •Teoria: bastano le slide –Materiale costruito partendo

Informazione incompleta

Page 70: Introduzione alle Basi di Dati - home.deib.polimi.ithome.deib.polimi.it/boracchi/teaching/InfoA/2018_Lez16_Intro_Base... · •Teoria: bastano le slide –Materiale costruito partendo

NULL

• Tre casi differenti

– valore sconosciuto: esiste un valore del dominio, ma non è noto (Firenze)

– valore inesistente: non esiste un valore del dominio (Tivoli)

– valore senza informazione: non è noto se esista o meno un valore del dominio (Prato)

• I DBMS non distinguono i tipi di valore nullo (e quindi implicitamente adottano il valore senza informazione)

• È utile usare NULL pre rappresentare anche le tuple che non matchano lo schema (per via di informazioni mancanti)

Page 71: Introduzione alle Basi di Dati - home.deib.polimi.ithome.deib.polimi.it/boracchi/teaching/InfoA/2018_Lez16_Intro_Base... · •Teoria: bastano le slide –Materiale costruito partendo

Vincoli di integrità

• Esistono istanze di basi di dati che, pur sintatticamente corrette, non rappresentano informazioni possibili per l’applicazione di interesse .

Page 72: Introduzione alle Basi di Dati - home.deib.polimi.ithome.deib.polimi.it/boracchi/teaching/InfoA/2018_Lez16_Intro_Base... · •Teoria: bastano le slide –Materiale costruito partendo

Vincoli di integrità

• Esistono istanze di basi di dati che, pur sintatticamente corrette, non rappresentano informazioni possibili per l’applicazione di interesse .

Page 73: Introduzione alle Basi di Dati - home.deib.polimi.ithome.deib.polimi.it/boracchi/teaching/InfoA/2018_Lez16_Intro_Base... · •Teoria: bastano le slide –Materiale costruito partendo

Vincoli di integrità

• Escludono alcune istanze in quanto non rappresentano correttamente il mondo applicativo

– VINCOLI SUI VALORI NULLI

– INTEGRITA' REFERENZIALE

– VINCOLI GENERICI

– CHIAVI

Page 74: Introduzione alle Basi di Dati - home.deib.polimi.ithome.deib.polimi.it/boracchi/teaching/InfoA/2018_Lez16_Intro_Base... · •Teoria: bastano le slide –Materiale costruito partendo

Vincoli di integrità

Definizione

proprietà che deve essere soddisfatta dalle istanze che rappresentano informazioni corrette per l’applicazione ogni vincolo può essere visto come una funzione booleana (o un predicato) che associa ad ogni istanza il valore vero o falso.

Page 75: Introduzione alle Basi di Dati - home.deib.polimi.ithome.deib.polimi.it/boracchi/teaching/InfoA/2018_Lez16_Intro_Base... · •Teoria: bastano le slide –Materiale costruito partendo

Vincoli di integrità

Tipi di vincoli:

– vincoli intra-relazionali; casi particolari:

• vincoli su valori (o di dominio)

• vincoli di 𝑛-upla

– vincoli inter-relazionali

Page 76: Introduzione alle Basi di Dati - home.deib.polimi.ithome.deib.polimi.it/boracchi/teaching/InfoA/2018_Lez16_Intro_Base... · •Teoria: bastano le slide –Materiale costruito partendo

• Risultano utili al fine di descrivere la realtà di interesse in modo più accurato di quanto le strutture permettano;

• Forniscono un contributo verso la “qualità dei dati”

• Costituiscono uno strumento di ausilio alla progettazione (“normalizzazione”)

• Sono utilizzati dal sistema nella scelta della strategia di esecuzione delle interrogazioni

• Non tutte le proprietà di interesse sono rappresentabili per mezzo di vincoli esprimibili direttamente

Page 77: Introduzione alle Basi di Dati - home.deib.polimi.ithome.deib.polimi.it/boracchi/teaching/InfoA/2018_Lez16_Intro_Base... · •Teoria: bastano le slide –Materiale costruito partendo

Vincoli di ennupla

• Esprimono condizioni sui valori di ciascuna ennupla, indipendentemente dalle altre ennuple.

• Una possibile sintassi: espressione booleana (con AND, OR e NOT) di atomi che confrontano valori di attributo o espressioni aritmetiche su di essi.

• Un vincolo di ennupla è un vincolo di dominio se coinvolge un solo attributo

• Esempi:

– (Voto >= 18) AND (Voto <= 30)

– (Voto =30) OR NOT (Lode = “e lode”)

– Lordo = (Ritenute + Netto)

Page 78: Introduzione alle Basi di Dati - home.deib.polimi.ithome.deib.polimi.it/boracchi/teaching/InfoA/2018_Lez16_Intro_Base... · •Teoria: bastano le slide –Materiale costruito partendo

Nozione di chiave

Sottoinsieme degli attributi dello schema che ha la proprietà di unicità e minimalità

unicità: non esistono due tuple con chiave uguale

minimalità: sottraendo un qualunque attributo alla chiave si perde la proprietà di unicità

Se il sottoinsieme non è minimale si parla di SUPERCHIAVE

Page 79: Introduzione alle Basi di Dati - home.deib.polimi.ithome.deib.polimi.it/boracchi/teaching/InfoA/2018_Lez16_Intro_Base... · •Teoria: bastano le slide –Materiale costruito partendo

Nozione di chiave

Spesso non esiste un solo attributo chiave!

Quindi, se tolgo un attributo chiave ottengo che alcune 𝑛-uple della relazione (i.e., righe della tabella) potrebbero violare il vincolo di unicità della chiave.

Page 80: Introduzione alle Basi di Dati - home.deib.polimi.ithome.deib.polimi.it/boracchi/teaching/InfoA/2018_Lez16_Intro_Base... · •Teoria: bastano le slide –Materiale costruito partendo

Vincoli di Chiave

Le tuple di una relazione hanno già un vincolo di unicità implicito: non possono esistere due tuple uguali

Spesso però è opportuno avere vincoli più stringenti e richiedere che l’unicità riguardi anche solo alcune colonne.

Ad esempio

Page 81: Introduzione alle Basi di Dati - home.deib.polimi.ithome.deib.polimi.it/boracchi/teaching/InfoA/2018_Lez16_Intro_Base... · •Teoria: bastano le slide –Materiale costruito partendo

Chiavi nell'esempio : gestione degli esami universitari

MATR COD-CORSO DATA VOTO

COD-CORSO TITOLO DOCENTE

studente

corso

esame

MATR NOME CITTA’ INDIR

Page 82: Introduzione alle Basi di Dati - home.deib.polimi.ithome.deib.polimi.it/boracchi/teaching/InfoA/2018_Lez16_Intro_Base... · •Teoria: bastano le slide –Materiale costruito partendo

Chiavi nell'esempio : gestione degli esami universitari

MATR COD-CORSO DATA VOTO

COD-CORSO TITOLO DOCENTE

studente

corso

esame

MATR NOME CITTA’ INDIR

Page 83: Introduzione alle Basi di Dati - home.deib.polimi.ithome.deib.polimi.it/boracchi/teaching/InfoA/2018_Lez16_Intro_Base... · •Teoria: bastano le slide –Materiale costruito partendo

Chiavi nell'esempio : gestione degli esami universitari

MATR COD-CORSO DATA VOTO

COD-CORSO TITOLO DOCENTE

studente

corso

esame

MATR NOME CITTA’ INDIR

Page 84: Introduzione alle Basi di Dati - home.deib.polimi.ithome.deib.polimi.it/boracchi/teaching/InfoA/2018_Lez16_Intro_Base... · •Teoria: bastano le slide –Materiale costruito partendo

Chiavi nell'esempio : gestione degli esami universitari

MATR COD-CORSO DATA VOTO CodIscrizione

COD-CORSO TITOLO DOCENTE

studente

corso

esame

MATR NOME CITTA’ INDIR

Page 85: Introduzione alle Basi di Dati - home.deib.polimi.ithome.deib.polimi.it/boracchi/teaching/InfoA/2018_Lez16_Intro_Base... · •Teoria: bastano le slide –Materiale costruito partendo

Con molteplici chiavi:

una è definita CHIAVE PRIMARIAle rimanenti chiavi sono SECONDARIE

CLIENTE(COD-CLIENTE, INDIRIZZO, P-IVA)

Chiave primaria: COD-CLIENTEChiave secondaria: P-IVA

Page 86: Introduzione alle Basi di Dati - home.deib.polimi.ithome.deib.polimi.it/boracchi/teaching/InfoA/2018_Lez16_Intro_Base... · •Teoria: bastano le slide –Materiale costruito partendo

Esiste sempre una chiave?

• Poiché le relazioni sono insiemi, ogni relazione non può contenere ennuple distinte ma uguali fra loro:– ogni relazione ha come superchiave l’insieme degli

attributi su cui è definita;

• Poiché l’insieme di tutti gli attributi è una superchiave per ogni relazione, ogni schema di relazione ha tale insieme come superchiave;

• Poiché l’insieme di attributi è finito, ogni schema di relazione ha (almeno) una chiave

Page 87: Introduzione alle Basi di Dati - home.deib.polimi.ithome.deib.polimi.it/boracchi/teaching/InfoA/2018_Lez16_Intro_Base... · •Teoria: bastano le slide –Materiale costruito partendo

Importanza delle chiavi

• L’esistenza delle chiavi garantisce l’accessibilità a ciascun dato della base di dati

• Ogni singolo valore è univocamente accessibile tramite:– nome della relazione

– valore della chiave

– nome dell’attributo

• Le chiavi sono lo strumento principale attraverso il quale vengono correlati i dati in relazioni diverse (“il modello relazionale è basato su valori”)

Page 88: Introduzione alle Basi di Dati - home.deib.polimi.ithome.deib.polimi.it/boracchi/teaching/InfoA/2018_Lez16_Intro_Base... · •Teoria: bastano le slide –Materiale costruito partendo

Esempio: gestione del personale

91

Page 89: Introduzione alle Basi di Dati - home.deib.polimi.ithome.deib.polimi.it/boracchi/teaching/InfoA/2018_Lez16_Intro_Base... · •Teoria: bastano le slide –Materiale costruito partendo

Esempio: gestione ordini

92

Page 90: Introduzione alle Basi di Dati - home.deib.polimi.ithome.deib.polimi.it/boracchi/teaching/InfoA/2018_Lez16_Intro_Base... · •Teoria: bastano le slide –Materiale costruito partendo

Chiavi e valori nulli

• In presenza di valori nulli, gli attributi che formano la chiave– non permettono di identificare le 𝑛-uple come

desiderato

– né permettono di realizzare facilmente i riferimenti da altre relazioni

• La presenza di valori nulli nelle chiavi deve essere limitata

• Soluzione pratica: per ogni relazione scegliamo una chiave (la chiave primaria) su cui non ammettiamo valori nulli

Page 91: Introduzione alle Basi di Dati - home.deib.polimi.ithome.deib.polimi.it/boracchi/teaching/InfoA/2018_Lez16_Intro_Base... · •Teoria: bastano le slide –Materiale costruito partendo

Foreign Key

• Informazioni in relazioni diverse sono correlate attraverso valori comuni

• In particolare, valori delle chiavi (primarie, di solito)

• Un vincolo di integrità referenziale fra un insieme di attributi X di una relazione R1 e un’altra relazione R2 impone ai valori su X di ciascuna ennupla dell’istanza di R1 di comparire come valori della chiave (primaria) dell’istanza di R2

Page 92: Introduzione alle Basi di Dati - home.deib.polimi.ithome.deib.polimi.it/boracchi/teaching/InfoA/2018_Lez16_Intro_Base... · •Teoria: bastano le slide –Materiale costruito partendo

Chiavi esterne: esempio

MATR COD-CORSO DATA VOTO

COD-CORSO TITOLO DOCENTE

studente

corso

esame

MATR NOME CITTA’ INDIR

Page 93: Introduzione alle Basi di Dati - home.deib.polimi.ithome.deib.polimi.it/boracchi/teaching/InfoA/2018_Lez16_Intro_Base... · •Teoria: bastano le slide –Materiale costruito partendo

Definizione di tabelle

• Una tabella consiste di:– un insieme ordinato di attributi

– un insieme di vincoli (eventualmente vuoto)

• Comando create table

– definisce lo schema di una relazione, creandone un’istanza vuota

create table Studente

( Matr character(6) primary key,

Nome varchar(30) not null,

Città varchar(20),

CDip char(3) )

Page 94: Introduzione alle Basi di Dati - home.deib.polimi.ithome.deib.polimi.it/boracchi/teaching/InfoA/2018_Lez16_Intro_Base... · •Teoria: bastano le slide –Materiale costruito partendo

Vincoli intra-relazionali

• I vincoli sono condizioni che devono essere verificate da ogni istanza della base di dati

• I vincoli intra-relazionali coinvolgono una sola relazione (distinguibili ulteriormente a livello di tupla o di tabella)– not null (su un solo attributo; a livello di tupla)

– unique: permette la definizione di chiavi candidate (opera quindi a livello di tabella); sintassi:• per un solo attributo:

unique, dopo il dominio

• per diversi attributi:unique( Attributo {, Attributo } )

– primary key: definisce la chiave primaria (una volta per ogni tabella; implica not null); sintassi come per unique

– check: può rappresentare vincoli di ogni tipo

Page 95: Introduzione alle Basi di Dati - home.deib.polimi.ithome.deib.polimi.it/boracchi/teaching/InfoA/2018_Lez16_Intro_Base... · •Teoria: bastano le slide –Materiale costruito partendo

Integrità referenziale

• Esprime un legame gerarchico (padre-figlio) fra tabelle

• Alcuni attributi della tabella figlio sono definiti FOREIGN KEY

• I valori contenuti nella FOREIGN KEY devono essere sempre presenti nella tabella padre

Page 96: Introduzione alle Basi di Dati - home.deib.polimi.ithome.deib.polimi.it/boracchi/teaching/InfoA/2018_Lez16_Intro_Base... · •Teoria: bastano le slide –Materiale costruito partendo

Una istanza scorrettaMatr

123

415

702

Nome Città CDip

Matr

123

123

123

702

702

714

CodCorso

1

2

2

2

1

1

Data

7-9-97

8-1-98

1-8-97

7-9-97

NULL

7-9-97

Voto

30

28

28

20

NULL

28

Esame

viola la chiave

viola il NULL

viola la integrità referenziale