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



Documenti analoghi
Cardinalità e identificatori. Informatica. Generalizzazioni. Generalizzazioni. Generalizzazioni. Generalizzazioni

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

Vincoli di integrità

Elena Baralis 2013 Politecnico di Torino 1

MODELLO RELAZIONALE. Introduzione

Modulo 2 Data Base 2

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

Modello Relazionale. Modello Relazionale. Relazioni - Prodotto Cartesiano. Relazione: tre accezioni. Es. Dati gli insiemi

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

BASE DI DATI: sicurezza. Informatica febbraio ASA

2.2b: RELAZIONI E BASI DI DATI. Atzeni, cap

Modello Relazionale dei DBMS - Vincoli Tradizionalmente, esistono quattro modelli logici: Gerarchico Reticolare Relazionale A oggetti XML I modelli

Data Base Relazionali

Il modello relazionale

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

DB - Modello relazionale dei dati. DB - Modello Relazionale 1

MODELLO RELAZIONALE. cesarini-bdsi mod relazionale 1 MODELLO RELAZIONALE

Basi di dati. Concetti introduttivi ESEMPIO. INSEGNAMENTI Fisica, Analisi, Aule. Docenti. Entità Relazioni Interrogazioni. Ultima modifica: 26/02/2007

Progettazione di Basi di Dati

Basi di Dati e Sistemi Informativi. Progettazione logica: Il modello relazionale

Basi di dati. Concetti Introduttivi ESEMPIO. Fisica, Analisi, Informatica. Entità Relazioni Interrogazioni. Database 2

Basi di dati. Il Linguaggio SQL. K. Donno - Il Linguaggio SQL

Associazioni. Informatica. Associazioni. Associazioni. Associazioni. Attributi. Possono esistere associazioni diverse che coinvolgono le stesse entità

Database: collezione di fatti, registrabili e con un ben preciso significato, relazionati fra di loro

Progettazione di un Database

Attributi e domini. A per {A}; XY per X Y (pertanto A 1 A 2 A 3 denota

Il modello relazionale

DATABASE. A cura di Massimiliano Buschi

Database. Appunti di Amaranto Oronzo e Giancane Diego Lezione dell Ing. Lucia Vaira 24/04/2014

Data Base. Master "Bio Info" Reti e Basi di Dati Lezione 5

Join in SQL (primo modo) Informatica. Tabella Dipartimento. Interrogazione 4a. Interrogazione 4b. Interrogazione 4a

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

Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci

Corso di Informatica (Basi di Dati)

Il Modello Relazionale

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

Le Basi di Dati. Le Basi di Dati

BASI DI DATI - : I modelli di database

Basi di dati. (Sistemi Informativi) teoria e pratica con Microsoft Access. Basi di dati. Basi di dati. Basi di dati e DBMS DBMS DBMS

Uso delle variabili di alias. SQL slide aggiuntive. Interrogazione 25. Interrogazione 26

Informatica (Basi di Dati)

Introduzione. Elenco telefonico Conti correnti Catalogo libri di una biblioteca Orario dei treni aerei

Introduzione ai database relazionali

Organizzazione degli archivi

Corso sul linguaggio SQL

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

Il modello relazionale dei dati

Informatica (Basi di Dati)

Progettazione di Database. Un Esempio

IL MODELLO RELAZIONALE

Capitolo 2. Esercizio 2.1. Esercizio 2.2

I database relazionali sono il tipo di database attualmente piu diffuso. I motivi di questo successo sono fondamentalmente due:

Il Modello Relazionale

Database/Banche Dati/Sistemi Informativi

Definizione di domini

Decomposizione senza perdita. Decomposizione senza perdita. Conservazione delle dipendenze. Conservazione delle dipendenze

Database. Si ringrazia Marco Bertini per le slides

Basi di Dati. Programmazione e gestione di sistemi telematici

Rappresentazione grafica di entità e attributi

Informatica per le discipline umanistiche 2 lezione 10

Il modello relazionale dei dati e stato introdotto da Codd. nel 1970 (E.F. Codd, \A relational model of data for large

INFORMATICA PER L IMPRESA (Docente Prof. Alfredo Garro)

Segreteria da campo. Database Relazionali

Il Modello Relazionale

I Sistemi Informativi

Database 3 affitto veicoli. Testo del quesito

I livelli di progettazione possono essere così schematizzati: Esistono tre tipi diversi di modelli logici: Modello gerarchico: Esempio SPECIFICHE

Il Modello Relazionale (1)

I database. Cosa sono e a cosa servono i Database

Esercitazione di Basi di Dati

Basi di dati 9 febbraio 2010 Compito A

Per visualizzare e immettere i dati in una tabella è possibile utilizzare le maschere;

SQL. Linguaggio di interrogazione per basi di dati relazionali. Relazione = tabella con attributi (a 1, a 2,, a n ): Funzionalità principali di SQL:

Normalizzazione. Normalizzazione. Normalizzazione e modello ER. Esempio. Normalizzazione

Esercitazione 8 Mercoledì 21 gennaio 2015 (2 ore) DDL e progettazione

Introduzione al corso

Basi di dati. L Algebra Relazionale. K. Donno - L Algebra Relazionale

Introduzione all Algebra Relazionale

Capitolo 13. Interrogare una base di dati

ARCHIVI E DATABASE (prof. Ivaldi Giuliano)

MODELLO E/R. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

Concetti preliminari teorici per il corso di Access Avanzato - Sc.Elem Falcone - PON Prof. M. Simone

Basi di Dati e Microsoft Access

SQL: concetti base SQL. Definizione dei dati in SQL. SQL: "storia"

Modello Relazionale. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto san giovanni

LA NORMALIZZAZIONE. Introduzione

Basi di dati. Le funzionalità del sistema non vanno però ignorate

Implicazioni. Codd, Relazione - Tabella. Struttura. Integrità. Manipolazione. memorizzati e gestiti dal sistema informatico.

Microsoft Access. DataBase introduzione

Sistemi Informativi e Basi di Dati

Alessandra Raffaetà. Basi di Dati

Utilizzando Microsoft Access. Si crea la tabella Anagrafica degli alunni,le Materie e i voti si mettono alcuni campi

TEORIA sulle BASI DI DATI

Basi di Dati: Corso di laboratorio

MODELLO E/R. Modellazione dei dati

ECDL - Database. European Computer Driving Licence - Modulo 5 - Database LEZIONE 2

Esercitazione 1. Sistemi Informativi T. Versione elettronica: L01.2.DDLDMLbase.pdf

Basi di dati. 2. Il modello relazionale. Il modello relazionale. Relazione: tre accezioni. 2.1 Basi di dati relazionali. Giuseppe De Giacomo

La progettazione concettuale: il modello ER. 17/12/2007 Unità di Apprendimento A2 1

Compito DA e BD. Tempo concesso: 90 minuti 12 giugno 03 Nome: Cognome: Matricola: Esercizio 1

Transcript:

Informatica Basi di dati parte 3 Basi di dati relazionali: relazioni, tabelle, chiavi, vincoli Lezione 9 Laurea magistrale in Scienze della mente Laurea magistrale in Psicologia dello sviluppo e dell'educazione Anno accademico: 2011 2012 1 2 Il modello relazionale Il modello relazionale: Modello logico dei dati basato su concetti relazione e tabella Relazione: da teoria degli insiemi Tabella: rappresentazione grafica di una relazione; un concetto intuitivo Garantisce indipendenza dei dati Utenti che accedono ai dati e programmatori che sviluppano applicazioni fanno riferimento al livello logico dei dati Cioè, agli utenti e ai programmatori, non serve sapere come i dati sono memorizzati fisicamente Relazioni e tabelle Relazioni sono rappresentate graficamente come tabelle Tupla (di una relazione) = riga (di una tabella) Corrisponde a record risultati partite di calcio Esempio di una relazione: {(Torino, Lazio, 3, 2), (Roma, Milan, 2, 0), (Juventus, Roma, 0, 2), (Roma, Milan, 2, 1)} La tabella che rappresenta graficamente la relazione: Torino Lazio 3 2 Roma Milan 2 0 Juventus Roma 0 2 Roma Milan 2 1 3 4 Relazioni e tabelle Relazioni con attributi Una relazione è un insieme di tuple: Insieme: collezione di elementi L ordine degli elementi non è importante Un insieme non contiene duplicati Le tuple della relazione devono essere distinte (no righe ripetute in tabella) Le tuple non sono tra loro ordinate (tabelle con stesse righe ordinate in modo diverso rappresentano la stessa relazione) 5 Attributi Usiamo nome di attributo per identificare le rispettive componenti delle tuple In una tabella: attributo intestazione di colonne della tbll tabella SquadraDiCasa, SquadraOspitata, RetiCasa, RetiOspitata SquadraDiCasa SquadraOspitata RetiCasa RetiOspitata Torino Lazio 3 2 Roma Milan 2 0 Juventus Roma 0 2 Roma Milan 2 1 6 1

Relazioni e Basi di Dati Un DB è solitamente costituito da più relazioni le cui tuple contengono valori comuni (usati per stabilire corrispondenza tra tuple) relazioni che descrivono studenti, esami e corsi 276545 Rossi Maria 25/11/1990 485745 Neri Anna 23/04/1989 200768 Verdi Fabio 12/02/1982 587614 Rossi Luca 10/10/1990 937653 Bruni Mario 01/12/1991 Esami Corsi Relazioni e Basi di Dati Studente Voto Corso 276545 28 01 485745 27 04 200768 25 01 587614 24 04 Codice Titolo Docente 01 Analisi Giani 03 Chimica Melli 04 Chimica Belli 7 8 276545 Rossi Maria 25/11/1990 485745 Neri Anna 23/04/1989 200768 Verdi Fabio 12/02/1982 587614 Rossi Luca 10/10/1990 937653 Bruni Mario 01/12/1991 Studente Voto Corso 276545 28 01 485745 27 04 200768 25 01 587614 24 04 Relazioni e Basi di Dati Sono ammissibili relazioni con un solo attributo Per esempio: Lavoratori Matricola 276545 485745 200768 Si possono rappresentare informazioni complesse mediante relazioni diverse Codice Titolo Docente 01 Analisi Giani 03 Chimica Melli 04 Chimica Belli 9 10 Schemi di relazioni e di DB Schema di relazione: R(X) Costituita da simbolo R (nome della relazione) e dall insieme dei nomi di attributi X={A 1,,A n } Esami(Studente,Voto,Corso) Esami Studente Voto Corso 276545 28 01 485745 27 04 200768 25 01 587614 24 04 11 Schemi di relazioni e di DB Schema di base di dati: D={R 1 (X 1 ),, R n (X n )} Insieme di schemi di relazioni Le relazioni sono identificate per nome i nomi devono essere diversi Università = {(Matricola, Cognome, Nome, DataNascita), Esami(Studente,Voto,Corso), Corso(Codice,Titolo,Docente)} 12 2

Schemi di relazioni e di DB 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 D={R 1 (X 1 ),,R n (X n )} Insieme d di relazioni d={r 1,,r n } dove ogni r i è un istanza di relazione sullo schema R i (X i ) Istanze incoerenti Non tutte le tuple rappresentano informazione corretta per un applicazione Valori fuori del dominio di un attributo voto = 36 Record incoerenti (valori di più attributi non simultaneamente assegnabili) voto = 24, lode = Sì Record con valori uguali per attributi identificanti record con la stessa matricola in relazione Valori inesistenti in attributi usati per corrispondenze tra tabelle Matricola in tabella, e Studente in tabella Esami 13 14 Vincoli 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 Vero: istanza corretta (ammissibile, lecita) Falso: istanza incoerente Definendo lo schema di una 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 Vincoli di integrità Vincoli intrarelazionali Vincolo di tupla Vincolo di dominio Vincoli su assegnamento di valori ad attributi diversi di una tupla Vincolo di chiave Vincoli interrelazionali 15 16 Vincoli intrarelazionali Vincoli interni a una relazione: Soddisfacimento definito rispetto ad una singola tabella della base di dati Vincolo ditupla: esprime condizioni sui valori diciascuno record indipendentemente da altri record Vincolo di dominio (vincolo su valori): restrizione su dominio di attributo Vincoli su assegnamento di valori ad attributi diversi di un record Esprimibili mediante espressioni booleane (eventualmente usando gli operatori logici AND, OR, NOT) i cui termini contengono: Uguaglianze, disuguaglianze, ordinamenti di valori di attributo Espressione aritmetiche su valori di attributo Vincolo di dominio (Voto 18) AND (Voto 30) Vincolo su più attributi NOT(Lode = Sì AND Voto 30) Pagamenti(Data, Importo, Ritenute, Netto) Netto = Importo Ritenute 17 18 3

Vincolo di dominio (Voto 18) AND (Voto 30) Vincolo di dominio (Voto 18) AND (Voto 30) 123456 30 Sì 654321 18 No 321654 30 Sì Tutte i record della relazione/tabella soddisfano il vincolo Quindi, la relazione/tabella soddisfa il vincolo 123456 30 Sì 654321 18 No 321654 36 Sì Un record della tabella Quindi, la relazione/tabella 19 20 Vincolo su più attributi NOT(Lode = Sì AND Voto 30) Vincolo su più attributi NOT(Lode = Sì AND Voto 30) 123456 30 Sì 654321 18 No 321654 30 Sì Tutte i record della relazione/tabella soddisfano il vincolo Quindi, la relazione/tabella soddisfa il vincolo 123456 30 Sì 654321 18 No 321654 26 Sì Una riga della tabella Quindi, la relazione/tabella 21 22 Pagamenti(Importo, Ritenute, Netto) Netto = Importo Ritenute Pagamenti(Importo, Ritenute, Netto) Netto = Importo Ritenute Importo Ritenute Netto 30 10 20 45 15 30 50 5 45 20 8 12 5 3 2 Tutte i record della relazione/tabella soddisfano il vincolo Quindi, la relazione/tabella soddisfa il vincolo Importo Ritenute Netto 30 10 20 45 15 30 50 5 5 20 8 12 5 3 25 Alcuni record della tabella non soddisfano il vincolo Quindi, la relazione/tabella 23 24 4

Vincoli di chiave Chiave primaria: è un particolare insieme (non vuoto) di attributi che il progettista del DB definisce come modo preferito per identificare univocamente le righe di una tabella Una chiave primaria K di una tabella deve avere la proprietà seguente: la relazione non può contenere due righe che hanno valori uguali su K Una chiave primaria esiste per ogni tabella: l insieme di tutti gli attributi della tabella può essere impostato come chiave primaria Vincoli di chiave Esempi: Attributo Matricola della tabella (più precisamente, l insieme {Matricola} della tabella ) Insieme {Studente, Voto, Corso} della tabella Esami N.B.: Il concetto di chiave primaria è relativo alla relazione: Uno stesso insieme di attributi potrebbe essere chiave di una relazione, ma non esserlo di un altra Per es., l attributo Matricola è chiave della relazione, ma non della relazione Esami 25 26 Vincoli interrelazionali I vincoli interrelazionali sono i vincoli che coinvolgono più relazioni della base di dati Per verificare che siano rispettati, occorre considerare istanze di più relazioni Vincoli interrelazionali Vincoli di integrità referenziale (foreign keys, referential integrity constraints): Servono a garantire che i riferimenti tra tabelle siano possibili Un vincolo di integrità referenziale fra insieme di attributi X di una relazione R 1 ed una relazione R 2 è soddisfatto se i valori su X di ciascuna record di R 1 (eccetto potenzialmente NULL) compaiono come valori della chiave primaria di R 2 In altre parole: R 1 non può contenere valori per X che non esistono in R 2 (eccetto NULL) R 1 R 2 A B C D E F G 27 28 Vincoli di integrità referenziale Vincoli di integrità referenziale le relazioni (Matricola,Cognome,Nome,DataNascita) Corsi(Codice,Titolo,Docente) Esami(Studente,Data,Corso,Voto,Lode) Il valore dell attributo Studente delle tuple della relazione Esami deve comparire come valore di Matricola nella relazione Esami Infrazioni Agenti Codice Data Agente Articolo Targa 987554 26/10/02 456 34 RM2F7643 630876 15/10/93 456 53 FI4E5432 Matricola CF Cognome Nome 456 RSSM Rossi Mario 638 NREP Neri Piero Studente Data Corso Voto Lode 123456 12/01/12 P007 30 No 123456 15/01/12 P012 28 No 654321 12/01/12 P007 24 No 123456 Rossi Mario 19/12/90 456123 Bianco Silvia 6/02/89 Auto Targa Proprietario Indirizzo RM2F7643 Verdi Piero Via Tigli MI2F7643 Luci Gino Via Noci 456123 15/01/12 P025 30 No 29 FI4E5432 Bini Luca Via Po 30 5

Vincoli di integrità referenziale Vincoli di integrità referenziale Infrazioni Codice Data Agente Articolo Targa 987554 26/10/02 456 34 RM2F7643 Infrazioni Codice Data Agente Articolo Targa 987554 26/10/02 456 34 RM2F7643 630876 15/10/93 456 53 FI4E5432 630876 15/10/93 456 53 FI4E5432 Agenti Matricola CF Cognome Nome 456 RSSM Rossi Mario Agenti Matricola CF Cognome Nome 456 RSSM Rossi Mario 638 NREP Neri Piero 638 NREP Neri Piero Auto Targa Proprietario Indirizzo RM2F7643 Verdi Piero Via Tigli Auto Targa Proprietario Indirizzo RM2F7643 Verdi Piero Via Tigli MI2F7643 Luci Gino Via Noci MI2F7643 Luci Gino Via Noci FI4E5432 Bini Luca Via Po 31 FI4E5432 Bini Luca Via Po 32 In una tupla di una relazione un attributo può non avere valore Per esempio: Mario Rossi non ha telefono in Persone(Cognome,Nome,Indirizzo,Telefono) Oppure il valore di un attributo potrebbe esistere ma essere sconosciuto a chi inserisce i dati nel DB Per esempio: Mario Rossi ha telefono, ma non ne conosciamo il numero NULL: valore nullo Assegnato agli elementi di tuple inesistenti o sconosciuti NULL è un valore aggiuntivo rispetto al dominio di un attributo In basi di dati, i due casi sopra trattati come assenza di informazione In assenza di informazione su un attributo bisogna usare NULL perché NULL può venire confuso con gli altri valori del dominio dell attributo 33 34 Numero di telefono sconosciuto potrebbe essere rappresentato con 0 (numero che nessun telefono può avere). Però questa convenzione non è generale Inoltre, per altri attributi, ti potrebbe non esistere it valore di dominio che non si può assegnare mai usare NULL 35 Non tutti gli attributi di una relazione devono potere assumere valore nullo Nella definizione di relazione, si può specificare quali attributi non devono mai essere nulli nelle tuple 276545 Rossi Maria NULL NULL Neri Anna 23/04/1989 NULL Verdi Fabio 12/02/1982 587614 Rossi Luca 10/10/1990 937653 Bruni Mario 01/12/1991 36 6

Non tutti gli attributi di una relazione devono potere assumere valore nullo Nella definizione di relazione, si può specificare quali attributi non devono mai essere nulli nelle tuple Non tutti gli attributi di una relazione devono potere assumere valore nullo Nella definizione di relazione, si può specificare quali attributi non devono mai essere nulli nelle tuple OK 276545 Rossi Maria NULL NULL Neri Anna 23/04/1989 NULL Verdi Fabio 12/02/1982 587614 Rossi Luca 10/10/1990 937653 Bruni Mario 01/12/1991 276545 Rossi Maria NULL NULL Neri Anna 23/04/1989 NULL Verdi Fabio 12/02/1982 587614 Rossi No: matricola Luca usata 10/10/1990 937653 Bruni per correlare Mario relazione 01/12/1991 37 38 Chiave e valori nulli Chiave primaria: la chiave primaria non può avere valori nulli Identificata mediante sottolineatura (ad esempio, {Matricola}) Usata per stabilire corrispondenza tra tabelle Se nessun attributo della relazione può assumere il ruolo di chiave primaria, se ne definisce uno aggiuntivo a tale scopo Esercizi La tabella seguente soddisfa il vincolo (SeggiAperti>400) AND (SeggiAperti<600)? Regione SeggiAperti Piemonte 567 Lombardia 670 Puglia 504 Sicilia 594 39 40 Esercizi La tabella seguente soddisfa il vincolo NOT(Lode = lode AND Voto 30)? Esercizi Quali insiemi di attributi possono essere chiave primarie della tabella seguente? 123456 19 No 654321 30 No 321654 20 Sì 135246 24 No 123456 19 No 654321 30 No 321654 30 Sì 41 42 7

Esercizi Esiste un vincolo di integrità referenziale dall attributo Studente all attributo Matricola? Data Matricola Nome Cognome 123456 19 No 1/2/11 654321 Mario Rossi 654321 30 No 3/2/11 321654 Franca Verde 2/2/11 123456 Marta Bianco 321654 30 Sì 7/2/11 456123 Livia Nero 123456 21 No 9/2/11 135246 Gianfranco Bianco 1/2/12 43 8