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



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

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

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

MODELLO RELAZIONALE. Introduzione

Vincoli di integrità

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

Introduzione alla progettazione. Metodologie e modelli per la progettazione di basi di dati. Il ciclo di vita dei sistemi informativi

Elena Baralis 2013 Politecnico di Torino 1

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

Informatica (Basi di Dati)

Modulo 2 Data Base 2

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

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

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

Rappresentazione grafica di entità e attributi

Progettazione di Basi di Dati

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

MODELLO RELAZIONALE. cesarini-bdsi mod relazionale 1 MODELLO RELAZIONALE

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

Identificatori delle entità

BASE DI DATI: sicurezza. Informatica febbraio ASA

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

Alessandra Raffaetà. Basi di Dati

Progettazione base dati relazionale

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

Corso di Informatica (Basi di Dati)

Progettazione di basi di dati. Progettazione di basi di dati. Ciclo di vita dei sistemi informativi. Fasi del ciclo di vita [1]

Il modello relazionale

Progettazione concettuale

Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci

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

Corso di Sistemi di Elaborazione delle Informazioni I Anno 2005/2006. Esercizi entità relazione risolti. a cura di Angela Campagnaro

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

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

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

Organizzazione degli archivi

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

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

Progettazione del Software, Laurea in Ingegneria Gestionale Progettazione del Software Laurea in Ing. Gestionale

Le Basi di Dati. Le Basi di Dati

DIPARTIMENTO IMPIEGATO PROGETTO SEDE. (0,1) (1,1) DIREZIONE Cognome. Codice. Telefono (0,1) (1,N) AFFERENZA. Stipendio (0,N) Nome (1,1) Età

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

Basi di dati 9 febbraio 2010 Compito A

Data Base Relazionali

MODELLO E/R. Modellazione dei dati

Basi di Dati. Conversione Modello ER in Modello Relazionale. K. Donno - Conversione Modello ER in Modello Relazionale

Introduzione ai database relazionali

Progettazione di un Database

Il modello relazionale

BASI DI DATI - : I modelli di database

I Sistemi Informativi

Progettazione Logica. Progettazione Logica

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

I database. Cosa sono e a cosa servono i Database

PROGETTAZIONE CONCETTUALE

Esercitazione di Basi di Dati

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

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

Modello dei Dati ENTITÀ-RELAZIONE (ENTITY-RELATIONSHIP) é l insieme di concetti, simboli, regole che useremo per rappresentare il modello concettuale

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

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

DATABASE. A cura di Massimiliano Buschi

IL MODELLO RELAZIONALE

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

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

Data Base. Ing. Maria Grazia Celentano

TEORIA sulle BASI DI DATI

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

Database. Si ringrazia Marco Bertini per le slides

Gli attributi di STUDENTE saranno: Matricola (chiave primaria), Cognome, Nome.

Progettazione di un DB....in breve

Il Modello Relazionale

Il modello relazionale dei dati

Modellazione dei dati in UML

GERARCHIA IS-A (è un) GENERALIZZAZIONI / SPECIALIZZAZIONI ESEMPIO 1

CAPITOLO 7 ESERCIZI SUL MODELLO ER

Capitolo 13. Interrogare una base di dati

Università degli Studi di L Aquila. Facoltà di Ingegneria. Corso di Laurea in Ingegneria Elettronica Corso di Sistemi Informativi

Il Modello Relazionale

Progettazione di Database

PROGETTAZIONE DI UN DATABASE

Informatica per le discipline umanistiche 2 lezione 10

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

Esercitazione di Basi di Dati

CORSO I.F.T.S. "TECNICHE PER LA PROGETTAZIONE E LA GESTIONE DI DATABASE. Matricola 2014LA0033 DISPENSE DIDATTICHE MODULO DI PROGETTAZIONE SOFTWARE

PROGETTAZIONE CONCETTUALE

LE BASI DI DATI. Seconda parte La progettazione di database Relazionali SCHEMA CONCETTUALE LE ASSOCIAZIONI

Informatica (Basi di Dati)

ALGEBRA RELAZIONALE RIEPILOGO

UNIVERSITÀ DEGLI STUDI DI UDINE Facoltà di Medicina e Chirurgia CORSO DI LAUREA IN TECNICHE DI RADIOLOGIA MEDICA PER IMMAGINI E RADIOTERAPIA ESAME

Modello relazionale. ing. Alfredo Cozzi 1

database: modello entityrelationship

I casi d uso corrispondono ai compiti che l attore (che può essere una persona fisica e non) può svolgere.

70555 Informatica Sicurezza Mario Rossi Anna Bianchi. Esempio istanza:

Corso sul linguaggio SQL

Sistemi Informativi e Basi di Dati

UNIVERSITA DEGLI STUDI DI BRESCIA Facoltà di Ingegneria

Lezione V. Aula Multimediale - sabato 29/03/2008

1.1 I componenti di un DBMS... 5

Progettazione di Database. Un Esempio

Transcript:

Informatica Lezione 3 Laurea magistrale in Psicologia Laurea magistrale in Psicologia dello sviluppo e dell'educazione Anno accademico: 2008-2009 delle associazioni: engono specificate per ciascuna partecipazione di entità a una associazione Descrivono il numero minimo e massimo di occorrenze di associazione cui una occorrenza dell entità può partecipare Cioè: quante volte, in una associazione tra entità, un occorrenza di una di queste entità può essere legata a occorrenze delle altre entità coinvolte associazione Assegnato a tra le entità Impiegato e Incarico Impiegato (nel contesto dell associazione Assegnato a): cardinalità minima=1, massima=5 Un impiegato può partecipare a un minimo di una occorrenza e a un massimo di cinque occorrenze dell associazione Assegnato a Cioè: ogni impiegato ha da 1 a 5 incarichi Incarico (nel contesto della associazione Assegnato a): cardinalità minima=0, massima=50 Un certo incarico può partecipare o a nessuna occorrenza oppure al massimo a 50 occorrenze dell associazione Assegnato a Cioè: un incarico può non essere assegnato ad alcun impiegato oppure può essere assegnato al massimo a 50 impiegati Impiegato (1,5) Assegnato a Incarico Impiegato Assegnato a (1,5) (0,50) Incarico Nella maggiore parte dei casi, è sufficiente utilizzare solo tre valori: Zero Uno Il simbolo N: indica genericamente un intero maggiore di uno minima: Zero: la partecipazione dell entità relativa è opzionale Uno: la partecipazione dell entità relativa è obbligatoria massima: Uno: la partecipazione dell entità relativa associa a un occorrenza dell entità una sola occorrenza (o nessuna) dell altra entità che partecipa all associazione N: c èun associazione con un numero arbitrario di occorrenze dell altra entità

Esempio: Persona Possiede (0,N) (0,1) Automobile Turista Prenota (0,N) iaggio Card. min tra Persona e Possiede 0: esistono persone che non possiedono auto Card. min tra Automobile e Possiede 0: esistono auto che non hanno proprietari Card. maxtra Persona e Possiede N: ogni persona può possedere anche pi ù di un auto Card. maxtra Automobile e Possiede 1: ogni auto ha al più un proprietario massima pari a N per entrambe le entità coinvolte Associazione molti a molti Persona Risiede (1,1) (0,N) Città Ordine endite (0,1) (1,1) attura Ogni persona può essere residente in una e una sola città Ogni città può avere qualsiasi numero di residenti (anche nessuno) Card max di Persona 1 e card max di Città N Associazione uno a molti massima pari a uno per entrambe le entità coinvolte: definisce una corrispondenza uno a uno tra le occorrenze di tali entità Associazione uno a uno minime: la partecipazione obbligatoria per tutte le entità coinvolte è rara Quando si aggiunge una nuova occorrenza di entità, spesso non sono note (o non esistono ancora) le corrispondenti occorrenze delle entità a essa collegate degli attributi: Possono essere specificate per gli attributi di entità o relazioni Descrivono il numero minimo e massimo di valori dell attributo associati a ogni occorrenza di entità o relazione Nella maggior parte dei casi, la cardinalità di un attributo è (1,1) (e viene omessa)

degli attributi : Il valore per un certo attributo può essere nullo: minimo della cardinalità=0 Possono esistere diversi valori di un certo attributo per una occorrenza: massimo della cardinalità=n Persona (0,N) Targa automobile Cognome Numero patente (0,1) degli attributi: minima=0: l attributo è opzionale (l informazione potrebbe essere non disponibile) minima=1: l attributo è obbligatorio massima=n: l attributo è multivalore Identificatori delle entità Identificatori delle entità: Sono gli attributi che permettono di identificare univocamente le occorrenze delle entità identificatore interno (o chiave interna) non possono esistere due automobili con la stessa targa Quindi, l attributo Targa può essere un identificatore interno per l entità Automobile Automobile Targa Modello Colore Identificatori delle entità Entità Persona con gli attributi Nome, Cognome, Indirizzo e Data di nascita Un identificatore interno per Persona può essere Nome, Cognome e Data di nascita (forse non sufficiente) Persona Data di nascita Cognome Nome Indirizzo Identificatori esterni Alcune volte gli attributi di una entità non sono sufficienti a identificare univocamente le sue occorrenze Per esempio, in un DB degli studenti universitari italiani, due studenti iscritti a università diverse possono avere lo stesso numero di matricola Identificatori esterni Per identificare univocamente uno studente serve, oltre al numero di matricola, anche la relativa università Un identificatore corretto per l entità Studente è costituito dall attributo Matricola e dall entità Università L identificazione è resa possibile dall associazione Iscritto a tra Studente e Università Matricola Anno iscrizione Cognome Studente (1,1) Iscritto a Università Nome Città Indirizzo

Identificatori esterni Identificatore esterno (chiave esterna): l identificazione di una entità è ottenuta utilizzando altre entità (cioè tramite gli identificatori di altre entità) Altri costrutti: identificatori delle entità Identificatori delle entità: considerazioni generali Un identificatore può coinvolgere uno o pi ù attributi Una identificazione esterna può coinvolgere una o pi ù entità Una identificazione esterna può coinvolgere una entità che è a sua volta identificata esternamente Purché non venga generato un circolo vizioso di identificazioni esterne Ogni entità deve avere almeno un identificatore, ma in generale ne può avere pi ù di uno e identificatori Codice Cognome Stipendio Età Nome Budget (0,1) Data consegna Partecipa a (0,1) Dirige (1,1) (0,1) Impiegato Afferisce a Dipartimento (0,N) (1,1) Data afferenza Progetto Data inizio Composta da Sede Telefono Nome Città Numero civico ia CAP : rappresentano legami logici tra una entità E e una o più entità E1,,En E: padre E1,,En: figli E è più generale rispetto a E1,,En, nel senso che le comprende come caso particolare E è generalizzazione di E1,,En E1,,En sono specializzazioni dell entità E l entità Persona è una generalizzazione delle entità Uomo e Donna Professionista è una generalizzazione delle entità Ingegnere, Medico e Avvocato iceversa, Uomo e Donna sono specializzazioni dell entità Persona, Ogni occorrenza di una entità figlia è anche una occorrenza dell entità padre Per esempio: una occorrenza dell entità Avvocato è anche una occorrenza dell entità Professionista

Ogni proprietà dell entità padre (attributi, identificatori, relazioni e altre generalizzazioni) è anche una proprietà delle entità figlie (ereditarietà) Per esempio: se l entità Persona ha attributi Cognome ed Età, anche le entità Uomo e Donna possiedono questi attributi Per esempio: l identificatore di Persona è un identificatore valido anche per le entità Uomo e Donna Per le entità figlie, le proprietà ereditate non vanno rappresentate esplicitamente Situazione militare Codice fiscale Cognome Età Uomo Persona Donna Due classificazioni ortogonali per le generalizzazioni: 1. Una generalizzazione è totalese ogni occorrenza della classe padre è una occorrenza di almeno una delle entità figlie, altrimenti è parziale Codice fiscale Cognome Età Persona La generalizzazione tra l entità Persona e le entità Uomo e Donna è totale t La generalizzazione tra l entit à eicolo e le entit à eicolo Automobile e Bicicletta è parziale p 2. Una generalizzazione è esclusiva se ogni occorrenza della classe padre è al più una occorrenza di una delle entità figlie, altrimenti è sovrapposta La generalizzazione tra l entità eicolo e le entità Automobile e Bicicletta è esclusiva La generalizzazione tra l entità Persona e le entità Studente e Lavoratore è sovrapposta Uomo Donna Automobile Bicicletta Situazione militare Le generalizzazioni sovrapposte possono essere trasformate in generalizzazioni esclusive: Aggiungere una o più entità figlie, per rappresentare i concetti che costituiscono le intersezioni delle entità che si sovrappongono Per esempio: aggiungere l entità StudenteLavoratore Una stessa entità può essere coinvolta in più generalizzazioni diverse Possono esserci generalizzazioni su più livelli (una gerarchia)

Modello Entità-Associazione Numero Generalizzazione iglia di (1,1) Padre di (0,N) Nome (0,N) Entità (0,N) Cardinalit à massima Costrutto Costrutto base Partecipa a Cardinalit à minima Nome (0,N) (1,1) Appartiene a Cardinalit à Attributo massima (0,1) Composto da Associazione (2,N) Cardinalit à minima Attributo composto Basi di dati - parte 3 Basi di dati relazionali: relazioni, tabelle, chiavi, vincoli 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 rappresentate graficamente come tabelle Le righe si chiamano tuple risultati partite di calcio SquadraDiCasa SquadraOspitata RetiCasa RetiOspitata Torino Lazio 3 2 Roma Milan 2 0 Juventus Roma 0 2 Roma Milan 2 1 Relazioni e tabelle Relazioni e tabelle Una relazione è un insieme di tuple: Torino Lazio 3 2 Roma Milan 2 0 Juventus Roma 0 2 Roma Milan 2 1 Sequenza di caratteri (stringa) Numero naturale (intero) 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)

Relazioni con attributi Relazioni con attributi Attributi Usiamo nome di attributo per identificare le rispettive componenti delle tuple In una tabella: attributo intestazione di colonne della 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 Relazioni e Basi di Dati 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 Studenti Matricola Cognome Nome DataNascita 276545 Rossi Maria 25/11/1981 485745 Neri Anna 23/04/1982 200768 erdi abio 12/02/1982 587614 Rossi Luca 10/10/1981 937653 Bruni Mario 01/12/1981 Esami Corsi Studente oto 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 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 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,oto,Corso) Esami Studente oto Corso 276545 28 01 485745 27 04 200768 25 01 587614 24 04

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à = {Studenti(Matricola, Cognome, Nome, DataNascita), Esami(Studente,oto,Corso), Corso(Codice,Titolo,Docente)} 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 è una relazione sullo schema R i (X i ) Esempi di relazioni Esempi di relazioni DA MARIO Ricevuta n. 1357 Del 5/2/09 3 coperti 3,00 2 antipasti 6,00 3 primi 12,00 2 bistecche 18,00 Totale 39,00 DA MARIO Ricevuta n. 2334 Del 7/2/09 2 coperti 2,00 1 antipasti 3,00 2 primi 8,00 2 orate 14,00 2 caffè 2,00 Totale 29,00 DA MARIO Ricevuta n. 3002 Del 13/2/09 3 coperti 3,00 2 antipasti 6,00 3 primi 14,00 1 Orate 18,00 1 Caprese 2,00 2 Caffè 2,00 Totale 45,00 Le ricevute hanno una struttura che prevede alcune informazioni fisse Numero, data e totale e un numero di righe variabile Esempi di relazioni Esempi di relazioni Dettaglio Ricevute Num Data Totale 1357 5/2/09 39,00 2334 7/2/09 29,00 3002 13/2/09 45,00 Num Qtà Descr Importo 1357 3 Coperti 3,00 1357 2 Antipasti 6,00 1357 3 Primi 12,00 1357 2 Bistecche 18,00 2334 2 Coperti 2,00 2334 1 Antipasti 3,00 2334 2 Primi 8,00 2334 2 Orate 14,00 2334 2 Caffè 2,00 3002 3 Coperti 3,00 3002 2 Antipasti 6,00 3002 3 Primi 14,00 3002 1 Orate 18,00 3002 1 Caprese 2,00 3002 2 Caffè 2,00 La base di dati nella slide precedente rappresenta correttamente le ricevute solo a due condizioni: Non ci interessa mantenere traccia dell ordine con cui le righe compaiono in ciascuna ricevuta In una ricevuta non compaiono due righe uguali Altrimenti, si può risolvere il problema aggiungendo un attributo, che indica la posizione della riga sulla ricevuta

Esempi di relazioni Dettaglio Ricevute Num Data Totale 1357 5/2/09 39,00 2334 7/2/09 29,00 3002 13/2/09 45,00 Num Riga Qtà Descr Importo 1357 1 3 Coperti 3,00 1357 2 2 Antipasti 6,00 1357 3 3 Primi 12,00 1357 4 2 Bistecche 18,00 2334 1 2 Coperti 2,00 2334 2 1 Antipasti 3,00 2334 3 2 Primi 8,00 2334 4 2 Orate 14,00 2334 5 2 Caffè 2,00 3002 1 3 Coperti 3,00 3002 2 2 Antipasti 6,00 3002 3 3 Primi 14,00 3002 4 1 Orate 18,00 3002 5 1 Caprese 2,00 3002 6 2 Caffè 2,00 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 Numero di telefono sconosciuto potrebbe essere rappresentato con 0 (numero che nessun telefono può avere). Però questa convenzione non è generale Inoltre, per altri attributi, potrebbe non esistere valore di dominio che non si può assegnare mai usare NULL 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 Studenti Matricola Cognome Nome DataNascita 276545 Rossi Maria NULL NULL Neri Anna 23/04/1982 NULL erdi abio 12/02/1982 587614 Rossi Luca 10/10/1981 937653 Bruni Mario 01/12/1981 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 Studenti Matricola Cognome Nome DataNascita 276545 Rossi Maria NULL NULL Neri Anna 23/04/1982 NULL erdi abio 12/02/1982 587614 Rossi Luca 10/10/1981 937653 Bruni Mario 01/12/1981 OK

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 Studenti Matricola Cognome Nome DataNascita 276545 Rossi Maria NULL NULL Neri Anna 23/04/1982 NULL erdi abio 12/02/1982 No: matricola usata per correlare relazione 587614 Rossi Luca 10/10/1981 937653 Bruni Mario 01/12/1981 Esami No: informazione inutile Corsi Studente oto Corso 276545 28 01 NULL 27 NULL 200768 25 01 587614 24 NULL Codice Titolo Docente 01 Analisi Giani 03 Chimica NULL NULL Chimica Belli Esami No: informazione inutile Studente oto Corso 276545 28 01 NULL 27 NULL 200768 25 01 587614 24 NULL Esami Studente oto Corso 276545 28 01 NULL 27 NULL 200768 25 01 587614 24 NULL Corsi Codice Titolo Docente 01 Analisi Giani 03 Chimica NULL NULL Chimica Belli Corsi No: codice usato per correlare relazione Codice Titolo Docente 01 Analisi Giani 03 Chimica NULL NULL Chimica Belli Istanze incoerenti Esami Corsi Studente oto Corso 276545 28 01 NULL 27 NULL 200768 25 01 587614 24 NULL Codice Titolo Docente 01 Analisi Giani 03 Chimica NULL NULL Chimica OK Belli Non tutte le tuple rappresentano informazione corretta per un applicazione alori nulli alori fuori del dominio di un attributo voto = 36 Tuple incoerenti (valori di più attributi non simultaneamente assegnabili) voto = 24, lode = Sì

Istanze incoerenti Non tutte le tuple rappresentano informazione corretta per un applicazione Tuple con valori uguali per attributi identificanti tuple con la stessa matricola in relazione Studenti alori inesistenti in attributi usati per corrispondenze tra relazioni studente in relazione Esami 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 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 incoli di integrità incoli intrarelazionali incolo di tupla incolo di dominio incoli su assegnamento di valori ad attributi diversi di una tupla incolo di chiave incoli interrelazionali incoli intrarelazionali incoli 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 incoli di tupla incoli di tupla Esprimibili mediante espressioni booleane (eventualmente usando gli operatori logici AND, OR, NOT) i cui termini contengono: Uguaglianze, disuguaglianze, ordinamenti di valori di attributo Espressione aritmetichesu valori di attributo A B A and B A B A or B A not A incolo di dominio (oto 18) AND (oto 30) incolo su più attributi NOT(Lode = Sì AND oto?30) Pagamenti(Data, Importo, Ritenute, Netto) Netto = Importo - Ritenute

incoli di tupla incoli di tupla incolo di dominio (oto 18) AND (oto 30) incolo di dominio (oto 18) AND (oto 30) Studente oto Lode 123456 30 Sì 654321 18 No 456123 24 No 321654 30 Sì 135246 25 No Tutte le tuple/record della relazione/tabella soddisfano il vincolo Quindi, diciamo che la relazione/tabella soddisfa il vincolo Studente oto Lode 123456 30 Sì 654321 18 No 456123 24 No 321654 36 Sì 135246 25 No Un record della tabella non soddisfa il vincolo Quindi, la relazione/tabella non soddisfa il vincolo incoli di tupla incoli di tupla incolo su più attributi NOT(Lode = Sì AND oto?30) incolo su più attributi NOT(Lode = Sì AND oto?30) Studente oto Lode 123456 30 Sì 654321 18 No 456123 24 No 321654 30 Sì 135246 25 No Tutte le tuple/record della relazione/tabella soddisfano il vincolo Quindi, diciamo che la relazione/tabella soddisfa il vincolo Studente oto Lode 123456 30 Sì 654321 18 No 456123 24 No 321654 26 Sì 135246 25 No Una riga della tabella non soddisfa il vincolo Quindi, la relazione/tabella non soddisfa il vincolo incoli di tupla incoli di tupla incolo su più attributi NOT(Lode = Sì AND oto?30) Pagamenti(Data, Importo, Ritenute, Netto) Netto = Importo - Ritenute Studente oto Lode 123456 30 No 654321 18 No 456123 24 No 321654 30 Sì 135246 25 No Un cambiamento in questa cella, ma comunque la tupla/record soddisfa il vincolo La relazione/tabella continua a soddisfare il vincolo Importo Ritenute Netto 30 10 20 45 15 30 50 5 45 20 8 12 5 3 2 Tutte le tuple/record della relazione/tabella soddisfano il vincolo Quindi, diciamo che la relazione/tabella soddisfa il vincolo

incoli di tupla Pagamenti(Data, Importo, Ritenute, Netto) Netto = Importo - Ritenute Importo Ritenute Netto 30 10 20 45 15 30 50 5 5 20 8 12 5 3 25 Alcune tuple/record della tabella non soddisfano il vincolo Quindi, la relazione/tabella non soddisfa il vincolo