Il modello relazionale. Il modello relazionale. Il modello relazionale. Relazioni e tabelle

Documenti analoghi
Il modello relazionale

Instanze inconsistenti. Informatica II Basi di Dati (07/08) Parte 2. Instanze inconsistenti. Vincoli di integrità

Modello relazionale. Basi di dati relazionali. Modello relazionale. Il modello relazionale. Schema di una relazione. Modello relazionale

I modelli logici dei dati. Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw -Hill, IL MODELLO RELAZIONALE

Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, IL MODELLO RELAZIONALE

RELAZIONI E BASI DI DATI

Informatica Industriale Modello informatico: Applicativo Modello relazionale dei dati

I modelli logici dei dati

Il modello Relazionale.

Il modello relazionale. Relazione: tre accezioni. Relazione matematica. Parte II. Il modello relazionale

DataBase Management System - DBMS

Basi di Dati prof. Letizia Tanca

I modelli logici dei dati

Corso di Laurea in Ingegneria Informatica Algoritmi e basi di dati Modulo Basi di dati a.a

Ordo et connexio rerum idem est ac ordo et connexio idearum

MODELLI LOGICI DEI DATI

Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, Capitolo 2: Il modello relazionale: strutture e vincoli MODELLI DEI DATI

2.2a: MODELLO RELAZIONALE. (1 Struttura)

4/16/07. Le Basi di Dati Relazionali. Concetti Fondamentali. Base di dati, tabella, ennupla, attributo, dominio. Valori nulli

Basi di da' Il modello relazionale. Anna Monreale Università di Pisa

Sistemi di Elaborazione delle Informazioni (C.I. 15) Basi di dati Introduzione teorica

I modelli logici dei da6. Relazione: tre accezioni. Il modello relazionale. Relazione matema6ca. Relazione matema6ca, esempio IL MODELLO RELAZIONALE

Informatica per Statistica Riassunto della lezione del 06/12/2013

Modello relazionale: Concetti Base. T. Catarci, M. Scannapieco, Corso di Basi di Dati, A.A. 2008/2009, Sapienza Università di Roma

Indicare quale o quali delle seguenti affermazioni sono vere?

Basi di dati. Note Introduttive. Modello entità-relazioni. Basi di dati ESEMPIO. Sistema informativo. Dati

Modello logico dei dati utilizzato nell ambito delle basi di dati, introdotto da Codd nel 1970.

Informatica. Il modello relazionale: Relazioni e tabelle. Relazioni con attributi

Corso di Laurea in Ingegneria Informatica Fondamenti di informatica II Modulo Basi di dati a.a

Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2010/2011. Basi di dati

Universita di Milano Bicocca Corso di Basi di dati 1 in elearning C. Batini 6. SQL DDL 6.2 Data Description Language - 2

Il modello relazionale dei dati. modello relazionale 1

Gestione e Analisi dei Dati. Lezione 2 Vincoli su attributo Selezioni semplici su una tabella

Il modello logico dei dati

PIL Percorsi di Inserimento Lavorativo

Modulo 2 Data Base - Modello Relazionale

Database. Cos è un database? Intro Tipi di entità Mapping ER/EER à Relazionale

Modello Relazionale. Esempio (Relazione) A x B. Introduzione. Relazione: definizione. I fattori del successo. Relazione

CAPITOLO V. DATABASE: Il modello relazionale

Partite string string int int. Perché studiare il Modello Relazionale? Capitolo 2. Relazione: tre accezioni. Basi di dati relazionali: definizioni

Vincoli di integrità Normalizzazione

Cardinalità. Informatica. Cardinalità. Cardinalità. Cardinalità. Cardinalità. Cardinalità delle associazioni:

Corso di Basi di Dati A.A. 2016/ Il Modello Relazionale

Modello Relazionale. Architettura a tre livelli di un DBMS

MODELLI DEI DATI. Informatica Generale (AA 07/08) Corso di laurea in Scienze della Comunicazione Facoltà di Lettere e Filosofia

Informatica Generale (AA 07/08) Corso di laurea in Scienze della Comunicazione Facoltà di Lettere e Filosofia. Università degli Studi di Salerno

BASE DI DATI: sicurezza. Informatica febbraio ASA

Che cos è l informatica?

Vincoli di integrità

Caratteristiche di un linguaggio ad alto livello

Le basi di dati. Lez. 3: Il Modello Relazionale

LE BASI DI DATI. Seconda parte La progettazione di database Relazionali SCHEMA LOGICO e SCHEMA FISICO Costruzione delle tabelle

Le Basi di Dati. Sommario. Sistema Informatico. Sistema Informativo. Fondamenti di Informatica Anno Accademico 2010/2011

Modulo 2 Data Base 2

Modello Entità-Relazione

Le Basi di dati: progettazione concettuale

Il modello Entità/Relazioni (ER)

I database. Introduzione alla teoria delle basi di dati

Informatica Industriale Modello funzionale: Informazione Modello Entità-Relazione

Basi di dati (nuovo ordinamento) 16 giugno 2008 Compito A

Capitolo 2. Esercizio 2.1. Esercizio 2.2

Le basi di dati. Base di dati = dati + DBMS.

SQL. Il nome sta per Structured Query Language Le interrogazioni SQL sono dichiarative

Basi di dati (database)

01 - Elementi di Teoria degli Insiemi

Progettazione di basi di dati D B M G

Informazione e sua rappresentazione: codifica

BASI DATI: algebra relazionale

Progettazione di Basi di Dati

Università di Roma La Sapienza Laurea in Ingegneria Informatica. Basi di Dati. Anno Accademico 2003/2004 Canale M-Z.

Per lavorare sulle tabelle è utile separare la loro struttura (fissa) dal contenuto (che varierà nel tempo) , nome_attr 2. Schema di relazione

Normalizzazione Progettazione di basi di dati Normalizzazione Normalizzazione Normalizzazione e modello ER Esempio Esame Superato

<Nome Tabella>.<attributo>

Progettazione concettuale usando il modello Entità-Relazione (ER)

MODELLO RELAZIONALE. Introduzione

Basi di dati 8 novembre 2010 Prova parziale Compito A

Cardinalità e identificatori. Informatica. Generalizzazioni. Generalizzazioni. Generalizzazioni. Generalizzazioni

Informatica B. Introduzione alle Basi di Dati e ai DBMS

Il modello relazionale

Progettazione di basi di dati

diagrammi entità-relazioni

LE BASI DI DATI. Seconda parte La progettazione di database Relazionali SCHEMA LOGICO Regole di derivazione

Il modello relazionale. Versione elettronica: 02.Relazionale.pdf

Laboratorio di Basi di Dati

Elena Baralis 2013 Politecnico di Torino 1

INTRODUZIONE ALLA PROGETTAZIONE. Patrizio Dazzi a.a

PRESTITO (Titolo, Nome, DataRestituzione)

Medicina, Tecnologia e dati

Informazione e sua rappresentazione: codifica

Data Base Relazionali

1 Il Modello Relazionale

Introduzione alle basi di dati e ai DBMS

Normalizzazione. Definizione

Informatica B. Introduzione alle Basi di Dati e ai DBMS

Lo schema concettuale risultante dalla progettazione concettuale è l input alla fase di progettazione logica.

Basi di dati. Il Modello Relazionale dei Dati. K. Donno - Il Modello Relazionale dei Dati

Basi di dati. Progettazione di basi di dati: Metodologie e modelli

Query. Query (Interrogazioni) SQL SQL. Significato dell interrogazione. Sintassi

Bibliografia. INFORMATICA GENERALE Prof. Alberto Postiglione. Scienze della Comunicazione Università di Salerno. Definizione di DB e di DBMS

Algebra Relazionale. T. Catarci, M. Scannapieco, Corso di Basi di Dati, A.A. 2008/2009, Sapienza Università di Roma

Transcript:

Il modello relazionale Il modello relazionale Modello logico dei dati basato su concetti relazione e tabella Relazione: concetto matematico - da teoria degli insiemi Tabella: concetto intuitivo - rappresentazione grafica di una relazione La presenza contemporanea di entrambi i concetti, uno formale, l altro intuitivo, ha contribuito al grande successo del modello relazionale Il modello relazionale Garantisce indipendenza dei dati Utenti che accedono ai dati e programmatori che sviluppano applicazioni fanno riferimento al livello logico dei dati Agli utenti e ai programmatori, non serve sapere come i dati sono memorizzati fisicamente Relazioni e tabelle Domini: per esempio I numeri naturali compresi tra e 50 Le frasi che contengono 55 caratteri o meno 4

Relazioni e tabelle Relazioni e tabelle Assumiamo che i DB siano costituiti da relazioni finite su domini eventualmente infiniti inito o infinito? Per esempio: {z z è un numero naturale} è un insieme infinito {y y è un numero naturale tra e 50 compresi} è un insieme finito {x x è una frase che contiene 55 caratteri o meno} è un insieme finito In un DB non possono esserci insiemi infiniti Sistemi di calcolo gestiscono solo insiemi finiti Ma è utile (almeno per trattazioni teoriche) ammettere domini infiniti permette, ad ogni istante, di assumere l esistenza di un valore non presente nel DB 5 6 Relazione matematica Relazioni e tabelle Relazione matematica su insiemi A e B (domini della relazione) = sottoinsieme di AxB Relazioni rappresentate graficamente come tabelle Per esempio, dati A={,,4} e B={a,b}: AxB = {(,a),(,b),(,a),(,b),(4,a),(4,b)} Una relazione matematica su insieme A e B potrebbe essere: R={(,a),(,b),(4,b)} A x B 4 a b a b a 4 a b b R={(,a),(,b),(4,a)} A x B 4 b 7 8

Relazione matematica Relazione matematica sugli insiemi D,,Dn (domini della relazione) = un sottoinsieme di Dx xdn n = grado del prodotto cartesiano o della relazione Per esempio: un relazione sugli insiemi {0,}, {a,b}, {rosso,blu} potrebbe essere: {(0,b,blu), (,a,rosso), (,b,rosso), (,b,blu)} Numero di n-uple di un prodotto cartesiano o di una relazione e detto cardinalita Relazioni e tabelle n= D x D x D = {0,} x {a,b} x {rosso,blu} 0 0 0 0 a a b b a a b b rosso blu rosso blu rosso blu rosso blu R D x D x D 0 b a b b blu rosso rosso blu 9 0 Relazioni e tabelle Relazioni (e tabelle corrispondenti) possono essere utilizzate per rappresentare dati di interesse per qualche applicazione. Per esempio: risultati partite di calcio 0 Relazioni e tabelle Per esempio: risultati partite di calcio Sequenza di carattere (stringa) 0 Numero naturale (intero)

Relazioni e tabelle Relazioni e tabelle Per esempio: risultati partite di calcio Sequenza di carattere (stringa) 0 Numero naturale (intero) n-upla di relazione contiene dati tra loro collegati, che verificano la relazione Elementi contenuti nelle n-uple sono ordinati: ordine dei loro elementi è significativo Per esempio: la n-upla (,,,) significa che il risultato della partita -, giocata in casa dalla, è a Questa relazione e un sottoinsieme di: Stringa x Stringa x Intero x Intero 4 Relazioni e tabelle Relazioni con attributi Una relazione è un insieme: n-uple della relazione devono essere distinte (no righe ripetute in tabella) n-uple non sono tra loro ordinate (tabelle con stesse righe ordinate in modo diverso rappresentano la stessa relazione) Insieme: collezione di elementi L ordine degli elementi non è importante Un insieme non contiene duplicati Ordinamento dei domini di una relazione impone ordinamento posizionale degli elementi di n-uple Nella gestione di dati, preferenza per ordinamenti non posizionali in cui si può far riferimento alle componenti delle n-uple in modo non ambiguo Il concetto di relazione matematica non e del tutto soddisfacente 5 6

Relazioni con attributi Relazioni con attributi In una relazione, ogni dominio rappresenta un ruolo o attributo Usiamo nome di attributo per identificare le rispettive componenti delle n-ple In una tabella: attributi intestazioni delle colonne della tabella SquadraDiCasa SquadraOspitata RetiCasa RetiOspitata 0 Per esempio: SquadraDiCasa, SquadraOspitata, RetiCasa, RetiOspitata 7 8 Relazioni con attributi SquadraDiCasa RetiOspitata 0 RetiCasa Ordinamento di colonne diventa irrilevante: Non serve più parlare di primo dominio, etc. SquadraOspitata Relazioni con attributi Dato un insieme di attributi X={A,,An} e un insieme di domini D={D,,Dm} Stabiliamo una corrispondenza tra attributi e domini mediante la funzione DOM: X D Cioè, la funzione DOM associa a ciascun attributo A X un dominio DOM(A) D X A D7 D 9 DOM 0

Relazioni con attributi: esempio DOM:{SquadraDiCasa, SquadraOspitata, RetiCasa, RetiOspitata} {Stringa, Intero} Cioè: Insieme degli attributi X = {SquadraDiCasa, SquadraOspitata, Reti Casa, RetiOspitata} Insieme dei domini D = {Stringa, Intero} Relazioni con attributi: esempio DOM:{SquadraDiCasa, SquadraOspitata, RetiCasa, RetiOspitata} {Stringa, Intero} DOM(SquadraDiCasa) = Stringa DOM(SquadraOspitata) = Stringa DOM(Reti Casa) = Intero DOM(RetiOspitata) = Intero Relazioni con attributi Relazioni con attributi: esempio Una tupla su insieme di attributi X è una funzione t che associa a ciascun attributo A X un valore del dominio DOM(A) Per esempio: t[squadradicasa]= Una relazione (con attributi) su X è un insieme di tuple su X n-uple: elementi individuati per posizione tuple: elementi individuati per attributo t t t t4 SquadraDiCasa t, t, t, t4: tuple SquadraOspitata t[squadradicasa]= t[squadraospitata]= t[reticasa]= t[retiospitata]= RetiCasa RetiOspitata 0 4

Relazioni con attributi: esempio Relazioni e Basi di Dati t t t t4 SquadraDiCasa SquadraOspitata RetiCasa RetiOspitata 0 Un DB è solitamente costituito da più relazioni (tabelle) le cui tuple contengono valori comuni (usati per stabilire corrispondenza tra tuple) Per esempio: tabelle che descrivono studenti, esami e corsi t, t, t, t4: tuple t[squadradicasa]= t[squadraospitata]= t[reticasa]= t[retiospitata]=0 5 76545 00768 58764 9765 erdi Bruni Maria Anna abio DataNascita 5//98 //98 /0/98 0/0/98 0//98 6 Relazioni e Basi di Dati Correlazione di valori 76545 00768 58764 oto 8 7 5 4 0 0 La tabella richiama dati presenti in altre tabelle 76545 00768 58764 oto 8 0 7 5 0 4 0 0 Titolo Analisi Docente Giani Melli Belli 0 0 Titolo Analisi Docente Giani Melli Belli 7 Correlazioni basate su corrispondenza di valori 76545 00768 58764 9765 erdi Bruni Maria Anna abio DataNascita 5//98 //98 /0/98 0/0/98 0//98 8

Relazioni e Basi di Dati Schemi di relazioni e di DB Sono ammissibili relazioni con un solo attributo Per esempio: Lavoratori 76545 00768 Si possono rappresentare informazioni complesse mediante tabelle diverse 9 Schema di relazione: R(X) Costituita da simbolo R (nome della relazione) e da insieme di nomi di attributi X={A,,An}. A ciascun attributo e associato un dominio Per esempio: (,oto,) 76545 00768 58764 oto 8 7 5 4 0 0 0 Schemi di relazioni e di DB Schemi di relazioni e di DB Schema di base di dati: R={R(X),,Rn(Xn)} Insieme degli schemi delle relazioni (con nomi diversi) che fanno parte del DB Per esempio, lo schema della base di dati dell Universita : Università = {(,,,DataNascita), (,oto,), (,Titolo,Docente)} Istanza di relazione (o semplicemente relazione) su schema R(X) Insieme r di tuple su X Istanza di base di dati (o semplicemente base di dati ) su schema R={R(X),,Rn(Xn)} Insieme r di relazioni r={r,,rn} dove ogni ri è una relazione sullo schema Ri(Xi)

Notazione Quando non si utilizzano nomi significativi dal punto di vista dell applicazione denotiamo: Attributi: A,B,C,A,A,,An, Insiemi di attributi: X,Y,Z,X,X,,Xn, Nomi di relazioni: R,S,R,R,,Rn, Relazioni: r,s,r,r,,rn, Modello relazionale Il modello relazionale permette di rappresentare informazione strutturata in modo articolato ediamo qualche esempio 4 Esempi di relazione Esempi di relazione DA MARIO Ricevuta n. 57 Del 5//07 coperti,00 antipasti 6,00 primi,00 bistecche 8,00 Totale 9,00 DA MARIO Ricevuta n. 4 Del 7//07 coperti,00 antipasti,00 primi 8,00 orate 4,00 caffè,00 Totale 9,00 DA MARIO Ricevuta n. 00 Del //07 coperti,00 antipasti 6,00 primi 4,00 Orate 8,00 Caprese,00 Caffè,00 Totale 45,00 Le ricevute hanno una struttura che prevede alcune informazioni prestabilite: Numero, data e totale e un numero di righe variabile (ordinazioni) Non è possibile rappresentare l insieme delle ricevute con un unica relazione Non sarebbe possibile rappresentare le righe in un numero non predeterminato Lo schema della relazione deve avere una struttura fissa 5 6

Esempi di relazione Ricevute Num. 57 4 00 Data 5//07 7//07 //07 Dettaglio Totale 9,00 9,00 45,00 Num. 57 57 57 57 4 4 4 4 4 00 00 Q.tà Descr. Coperti Antipasti Primi Bistecche Coperti Antipasti Primi Orate Caffè Coperti Antipasti Importo,00 6,00,00 8,00,00,00 8,00 4,00,00,00 6,00 Esempi di relazione La base di dati nella slide precedente rappresenta correttamente le ricevute solo a due condizioni: Non interessa mantenere traccia dell ordine con cui le righe compaiono in ciascuna ricevuta: le tuple in Dettaglio non sono ordinate Ordinazioni ripetute della stessa pietanza non sono permesse: in un ricevuta non possono comparire due righe uguali In entrambi i casi, si può risolvere il problema aggiungendo un attributo, che indica la Struttura fissa 00 Primi 4,00 delle informazioni 00 Orate 8,00 prestabilite per 00 Caprese,00 posizione della riga sulla ricevuta ogni fattura 00 Caffè,00 7 8 Esempi di relazione Dettaglio Ricevute Num. Data Totale 57 5//07 9,00 4 7//07 9,00 00 //07 45,00 Num. Riga 57 57 57 57 4 4 4 4 4 4 4 5 00 00 00 00 4 00 5 00 6 Q.tà Descr. Coperti Antipasti Primi Bistecche Coperti Antipasti Primi Orate Caffè Coperti Antipasti Primi Orate Caprese Caffè Importo,00 6,00,00 8,00,00,00 8,00 4,00,00,00 6,00 4,00 8,00,00,00 9 Esempi di relazione Dettaglio Ricevute Num. Data Totale 57 5//07 9,00 4 7//07 9,00 00 //07 45,00 Num. Riga 57 57 57 57 4 4 4 4 4 4 4 5 00 00 00 00 4 00 5 00 6 Q.tà Descr. Coperti Antipasti Primi Bistecche Coperti Antipasti Primi Orate Caffè Coperti Antipasti Primi Orate Caprese Caffè Importo,00 6,00,00 8,00,00,00 8,00 4,00,00,00 6,00 4,00 8,00,00,00 40

Interpratazioni diverse dello stesso problema Buona la prima se non ci sono ordinazioni ripetute e l ordine delle righe della ricevuta non e importante Si usa la seconda se si richiede un maggiore livello di dettaglio La scelta dipende dagli obiettivi e dai requesiti prefissi 4 Informazione incompleta e valori nulli Lo schema di una relazione e estremamente rigido e la struttura delle tuple e predefinita. Tuttavia: In una tupla di una relazione un attributo potrebbe non avere valore Per esempio: non ha telefono in Persone(,,Indirizzo,Telefono) Oppure il valore di un attributo potrebbe esistere ma essere sconosciuto a chi inserisce i dati nel DB Per esempio: ha telefono, ma non ne conosciamo il numero 4 Informazione incompleta e valori nulli Informazione incompleta e valori nulli Tecnica rudimentale ma efficace: : valore nullo Assegnato agli elementi di tuple inesistenti o sconosciuti e valore aggiuntivo rispetto al dominio di un attributo e ben distinto da ogni altro valore del dominio Nelle basi di dati, i due casi indicati sono trattati come assenza di informazione In assenza di informazione su un attributo bisogna usare perché non si confonde con altri valori del dominio dell attributo 4 44

Informazione incompleta e valori nulli Informazione incompleta e valori nulli Una tecnica più ingenua: Utilizzare un valore del dominio che, per l attributo in questione, non viene mai assegnato Esempio: Un numero di telefono sconosciuto potrebbe essere rappresentato con 0 (numero che nessun telefono può avere) Questa convenzione non è generale Per alcuni attributi potrebbe non esistere un valore nel dominio che non viene mai assegnato La distinzione tra valori reali e valori fittizi non e trasparente 45 Non tutti gli attributi di una relazione devono poter assumere valore nullo In definizione di relazione, si può specificare quali attributi non devono mai essere nulli nelle tuple 76545 58764 9765 erdi Bruni Maria Anna abio DataNascita //98 /0/98 0/0/98 0//98 46 Informazione incompleta e valori nulli Non tutti gli attributi di una relazione devono poter assumere valore nullo In definizione di relazione, si può specificare quali attributi non devono mai essere nulli nelle tuple Informazione incompleta e valori nulli Non tutti gli attributi di una relazione devono poter assumere valore nullo In definizione di relazione, si può specificare quali attributi non devono mai essere nulli nelle tuple 76545 58764 9765 erdi Bruni DataNascita Maria Anna //98 abio OK: in qualche /0/98 contesto la data potrebbe 0/0/98 essere non necessaria 0//98 76545 58764 9765 Maria Anna erdi Bruni abio No: matricola usata per correlare relazione DataNascita //98 /0/98 0/0/98 0//98 47 48

Informazione incompleta e valori nulli No: informazione inutile 76545 00768 58764 oto 8 7 5 4 0 0 Informazione incompleta e valori nulli 76545 00768 58764 oto 8 7 5 4 0 0 No: informazione inutile 0 0 Titolo Analisi Docente Giani Belli 0 0 Titolo Analisi Docente Giani Belli 49 50 Informazione incompleta e valori nulli Informazione incompleta e valori nulli 76545 00768 58764 oto 8 7 5 4 0 0 76545 00768 58764 oto 8 7 5 4 0 0 No: codice usato per correlare relazione 0 0 Titolo Analisi Docente Giani Belli 0 0 Titolo Analisi OK: temporaneamente il docente non e assegnato al corso Docente Giani Belli 5 5

Istanze inconsistenti incoli di integrità Non tutte le tuple rappresentano informazione corretta per un applicazione Abbiamo visto il caso dei valori nulli ediamo altri esempi 5 54 Istanze inconsistenti Istanze inconsistenti oto Lode Titolo Docente oto Lode Titolo Docente 76545 8 0 Analisi Giani 76545 8 0 Analisi Giani 6 0 Melli 6 0 Melli 654 0 lode 0 Belli 654 0 lode 0 Belli 58764 4 lode 58764 4 lode DataNascita DataNascita Il valore e fuori dal dominio dell attributo 76545 00768 erdi Maria Anna abio 5//98 //98 /0/98 La lode viene data solo se oto=0 76545 00768 erdi Maria Anna abio 5//98 //98 /0/98 58764 0/0/98 58764 0/0/98 58764 Bruni 0//98 55 58764 Bruni 0//98 56

Istanze inconsistenti Istanze inconsistenti oto Lode Titolo Docente oto Lode Titolo Docente 76545 8 0 Analisi Giani 76545 8 0 Analisi Giani 6 0 Melli 6 0 Melli 654 0 lode 0 Belli 654 0 lode 0 Belli 58764 4 lode 58764 4 lode diversi con lo stesso numero di matricola 76545 00768 58764 erdi Maria Anna abio DataNascita 5//98 //98 /0/98 0/0/98 non presente nella relazione 76545 00768 58764 erdi Maria Anna abio DataNascita 5//98 //98 /0/98 0/0/98 58764 Bruni 0//98 57 58764 Bruni 0//98 58 Istanze inconsistenti Istanze inconsistenti 76545 654 58764 non presente nella relazione oto 8 6 0 4 Lode lode 0 lode 76545 00768 58764 Titolo Docente 0 Analisi Giani 0 Melli Belli DataNascita Maria 5//98 Anna //98 erdi abio /0/98 0/0/98 Non tutte le tuple rappresentano informazione corretta per un applicazione alori non compresi nel dominio dell attributo Tuple con valori uguali per attributi identificanti Per esempio: tuple con la stessa matricola in relazione alori inesistenti in attributi usati per corrispondenze tra relazioni Per esempio: studente in relazione 58764 Bruni 0//98 59 60

incoli di integrità incoli di integrità Proprietà che devono essere soddisfatte dalle istanze corrette per un applicazione Sono predicati che associano ad ogni istanza il valore vero o falso ero: istanza corretta (ammissibile, lecita) also: istanza inconsistente Definendo lo schema di un base di dati si associano vincoli di integrità che si riferiscono a tutte le istanze della base di dati Questi vincoli permettono di considerare corrette le sole istanze che li verificano tutti 6 6 incoli intrarelazionali incoli di tupla incoli intrarelazionali (interni a una relazione): Soddisfacimento definito rispetto ad una singola relazione della base di dati. incolo di tupla : esprime condizioni sui valori di ciascuna tupla indipendentemente dalle altre tuple incolo di dominio (vincolo su valori): restrizione su dominio di attributo incoli su assegnamento di valori ad attributi diversi di una tupla. incolo di chiave 6 e Esprimibili mediante espressioni booleane (AND, OR, NOT) i cui termini contengono: Uguaglianze, disuguaglianze, ordinamenti di valori di attributo Espressione aritmetiche su valori di attributo e e AND e e e e OR e e NOT e 64

incoli di tupla Per esempio: incolo di dominio (oto 8) AND (oto 0) incolo su più attributi (NOT(Lode = lode )) OR (oto = 0) Pagamenti(Data, Importo, Ritenute, Netto) Netto = Importo - Ritenute incoli di chiave Chiave : insieme di attributi usato per identificare univocamente le tuple di una relazione Superchiave : un insieme K di attributi è detto superchiave di una relazione r se r non contiene due tuple t e t con t[k] = t[k] K è una chiave di r se è una superchiave minimale di r 65 66 Chiavi e Superchiavi Table {, } è una superchiave, ma non una chiave -> {} è sufficiente 48 68 4766 4856 556 Luigi Dario Nascita 9//79 9//79 0/05/8 0/05/8 05/0/78 Informatica Informatica isica Economia Economia Chiavi e Superchiavi Table {} è una superchiave minimale, quindi una chiave Il valore di identifica univocamente gli studenti in modo non ambiguo 48 68 4766 4856 556 Luigi Dario Nascita 9//79 9//79 0/05/8 0/05/8 05/0/78 Informatica Informatica isica Economia Economia 67 68

Chiavi e Superchiavi Supponendo che i dati anagrafici identifichino univocamente una persona, {,, Nascita} è una chiave Chiavi e Superchiavi {, } non è una superchiave Nascita Nascita Table 48 Luigi 9//79 Informatica Table 48 Luigi 9//79 Informatica 68 Dario 9//79 Informatica 68 Dario 9//79 Informatica 4766 0/05/8 isica 4766 0/05/8 isica 4856 0/05/8 Economia 4856 0/05/8 Economia 556 05/0/78 Economia 556 05/0/78 Economia 69 70 Chiavi e Superchiavi Table {, } è adesso una chiave È una chiave per caso -> ale per la relazione in esempio, ma non in generale 68 4766 4856 556 Dario Nascita 9//79 0/05/8 0/05/8 05/0/78 Informatica isica Economia Informatica incoli di chiave Ogni relazione r(x) ha una chiave Essendo un insieme, r(x) è costituita da tuple diverse tra loro X è sicuramente superchiave di r Le chiavi corrispondenti a vincoli di integrita devono valere per tutte le relazioni lecite su un certo schema. Questa non e accettabile! 7 7

incoli di chiave Il fatto che ogni schema di relazione abbia almeno una chiave garantisce Identificabilità univoca dei dati Definizione di corrispondenze tra dati contenuti in relazioni diverse (i riferimenti tra relazioni vanno fatti attraverso delle chiavi) Per esempio: nella base di dati Università corrisponde a della relazione corrisponde a della relazione 7 Chiavi e valori nulli La presenza di valori nulli nelle chiavi non permette di identificare univocamente le tuple Tupla : ha entrambe le chiavi incomplete ({}, {,, Nascita}) 4766 4856 Dario Nascita 0/05/8 05/0/78 Informatica isica Economia La tupla non e identificabile e non puo essere riferita da altre relazioni Se inseriamo i dati di un nuovo Dario non possiamo essere sicuri che sia un altro studente o sempre lo stesso 74 Chiavi e valori nulli Tuple e 4: hanno una chiave completamente specificata, ma sono lo stesso individuo? 4766 4856 Dario Nascita 0/05/8 05/0/78 Informatica isica Economia 75 Chiave e valori nulli Una delle chiavi della relazione viene definita: Chiave primaria : la chiave primaria non può avere valori nulli Identificata mediante sottolineatura ({}) Usata per stabilire corrispondenza tra tabelle Se nessun attributo della relazione può prendere il ruolo di chiave primaria se ne definisce uno aggiuntivo a tale scopo (codice univoco attribuito ad ogni tupla quando viene inserita) Prima ancora della nascita delle basi di dati codici identificativi erano utilizzati per garantire identificazione univoca dei soggetti di un dominio (numero di matricola, codice fiscale, targa di un autovettura) 76

Chiavi Primarie incoli interrelazionali 0 0 Titolo Analisi Docente Giani Melli Belli incoli interrelazionali sono i vincoli che coinvolgono più relazioni della base di dati Per verificarli si devono considerare le istanze di più relazioni DataNascita 76545 Maria 5//98 Anna //98 00768 erdi abio /0/98 58764 0/0/98 58764 Bruni 0//98 77 78 incoli di integrità referenziale incoli interrelazionali Per esempio, per le relazioni: (,,,DataNascita) (,Titolo,Docente) (Numero,,oto,Lode,) Un valore può comparire nell attributo di una tupla della relazione solo se compare anche come valore di in un istanza della relazione incoli di integrità referenziale (foreign keys, referential integrity constraints): Servono a garantire che i riferimenti tra tabelle siano possibili Un vincolo di integrità referenziale fra un insieme di attributi X di una relazione R ed una relazione R è soddisfatto se i valori su X di ciascuna tupla dell istanza di R compaiono come valori della chiave (primaria) dell istanza di R 79 80

incoli di integrità referenziale incoli di integrità referenziale Se la chiave di R è composta da un solo attributo B, X è composto di un solo attributo A Il vincolo di integrità referenziale tra A in R e B in R è soddisfatto se, per ogni tupla t in R per cui t[a] non è nullo, esiste una tupla t in R tale che t[a] = t [B] K A B R R 8 8 incoli di integrità referenziale incoli di integrità referenziale 76545 00768 58764 oto 8 6 0 4 0 76545 00768 58764 457455 DataNascita Maria 5//98 Anna Guidi //98 abio erdi /0/98 ni 0/0/98 Giani 0//98 Se la chiave di R contiene più attributi bisogna stabilire una corrispondenza tra gli attributi di R e R Chiave di R: {B,,Bp} X={A,,Ap} incolo di integrità referenziale tra (A,,Ap) in R e (B,,Bp) in R è soddisfatto se, per ogni tupla t in R per cui t[a,,ap] non contiene valori nulli, esiste una tupla t in R tale che t[ai] = t [Bi] per tutte le i tali che i p 8 84

incoli di integrità referenziale incoli di integrità referenziale Infrazioni 987554 Data 6/0/0 Agente 456 Art 4 Prov RM Numero 764 60876 5/0/9 456 5 I 4E54 K A Ap B Bp Agenti 567 C RSSM 68 NREP Piero R R Auto Prov RM Numero A96 Proprietario erdi Piero Indirizzo ia Tigli MI 764 Luci Gino ia Noci 85 I 4E54 Bini ia Po 86 incoli di integrità referenziale incoli di integrità referenziale Infrazioni 987554 Data 6/0/0 Agente 456 Art 4 Prov RM Numero 764 Infrazioni 987554 Data 6/0/0 Agente 456 Art 4 Prov RM Numero 764 60876 5/0/9 456 5 I 4E54 60876 5/0/9 456 5 I 4E54 Agenti 567 C RSSM Agenti 567 C RSSM 68 NREP Piero 68 NREP Piero Auto Prov RM Numero A96 Proprietario erdi Piero Indirizzo ia Tigli Auto Prov RM Numero A96 Proprietario erdi Piero Indirizzo ia Tigli MI 764 Luci Gino ia Noci MI 764 Luci Gino ia Noci I 4E54 Bini ia Po 87 I 4E54 Bini ia Po 88

incoli di integrità referenziale L ordinamento degli attributi nei vincoli referenziali è essenziale perché non sempre la corrispondenza tra tabelle si può stabilire per nome di attributo Per esempio: Incidenti(,Prov,Numero,Prov,Numero) Auto(Prov,Numero,Proprietario,Indirizzo) Prov, Numero e Prov, Numero sono diversi dai nomi della chiave primaria di Auto L integrità referenziale deve valere su entrambe le coppie (sarebbero indistinguibili senza ordinamento) incoli di integrità referenziale Non tutti i DBMS permettono di definire chiavi primarie Si devono definire esplicitamente gli attributi coinvolti in vincoli di integrità referenziale 89 90 Esercizi. Si considerino le informazioni per la gestione dei prestiti di una biblioteca personale. Il proprietario presta i libri ai suoi amici, che indica semplicmente attraverso i nomi o soprannomi (in modo da eviatre omonimie) e fa riferimento ai libri attraverso i titoli (non possiede due libri con lo stesso titolo). Quando presta un libro annota la data prevista per la restituzione. Definire uno schema di relazione per rappresentare queste informazioni, individuando opportuni domini per i vari attributi e mostrarne un istanza in forma tabellare. Indichare la chiave (o le chiavi) della relazione. Esercizi. Rappresentare per mezzo di una o piu relazioni le informazioni contenute nell orario delle partenze da una stazione ferroviaria: numero, orario di partenza, categoria, destinazione finale e fermate intermedie di tutti I treni in partenza. 9 9

Esercizi. Un albero genealogico rappresenta, in forma grafica, la struttura di una o piu famiglie. Mostrare come si possa rappresentare, in una base di dati relazionale, un albero genealogico. Si consideri una struttura semplificata in cui si rappresentano solo le discendenze femminili (i figli vengono rappresentati solo per le componenti di sesso femminile). Esercizi 4. Per ciascuno degli esercizi precedenti valutare le eventuali esigenze di rappresentazione di valori nulli, con i benefici e le difficolta connesse. 9 94 Esercizi 5. Definire uno schema di base di dati per organizzare le informazioni di un azienda che ha impiegati (ognuno con codice fiscale, cognome, nome e data di nascita), filiali (con codice, sede e direttore, che e un impiegato). Ogni impiegato lavora presso una filiale. Indicare le chiavi e i vincoli di integrita referenziale dello schema. Mostrare un istanza della base di dati e verificare che soddisfa i vincoli. 95 Esercizi 6. Descrivere in linguaggio naturale le informazioni organizzate nella base di dati seguente. Pazienti A0 B7 B54 B444 S555 Reparti A B C Necchi ni Missoni Missoni Rossetti Chirurgia Pediatria Medicina 0 574 50 Piero Nadia Luigi Gino Primario Ricoveri Medici 0 574 46 50 405 50 Paziente A0 A0 S555 B444 S555 Bisi Bargio Belli Mizzi Monti Inizio 0/05/005 0//005 05/0/005 0//005 05/0/005 Piero Sergio Nicola Nicola Maria ine 09/05/005 0/0/006 0//005 0/0/006 0//005 Reparto A B B C C A Reparto A A B B A 96

Esercizi 7. Individuare le chiavi e i vincoli di integrita referenziale che sussistono nella base di dati dell Esercizio 6 e che e ragionevole assumere siano soddisfatti da tutte le basi di dati sullo stesso schema. Individuare anche gli attributi sui quali possa essere sensato ammettere valori nulli. Esercizi 8. Definire uno schema di base di dati che organizzi i dati necessari a generare la pagina dei programmi radiofonoci di un quotidiano, con stazioni, ore e titoli dei programmi; per ogni stazione sono memorizzati, oltre al nome, anche la frequenza di trasmissione e la sede. 97 98