Il modello relazionale (II). Informazione incompleta e valori nulli In una tupla di una relazione un attributo può non avere valore Per esempio: Mario.

Slides:



Advertisements
Presentazioni simili
Informatica II – Basi di Dati (08/09) – Parte 1
Advertisements

DB -Algebra Relazionale
Calcolo Relazionale.
DB - Modello relazionale dei dati
Vincoli sulle basi di dati
DOCUMENTAZIONE DI SCHEMI E/R
G. Mecca – – Università della Basilicata Basi di Dati Sistemi per Basi di Dati Relazionali: Modello Logico Concetti Fondamentali versione.
Semantica delle Informazioni
Basi di Dati prof. A. Longheu 4 – Progettazione – Introduzione e Modello E-R Cap. 5 Basi di dati Atzeni – Ceri – Paraboschi - Torlone.
Il modello relazionale: strutture e vincoli
ESEMPI DI ARCHIVI DI DATI
Corso di Informatica (Basi di Dati)
1 Corso di Laurea in Biotecnologie Informatica (Basi di Dati) SQL: Data Manipulation Language (DML) Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi,
Corso di Informatica (Programmazione)
Corso di Informatica (Basi di Dati)
Corso di Informatica (Basi di Dati)
1 Corso di Laurea in Biotecnologie Informatica (Basi di Dati) Modello Relazionale Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi, Torlone - Basi.
Introduzione alla programmazione ll
Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill,
SQL Per la modifica di basi di dati
MODELLO RELAZIONALE.
Vincoli di integrità generici Con i costrutti visti sinora, non è sempre possibile definire tutti i possibili vincoli di integrità. Per questo esiste listruzione.
Duplicati Lalgebra relazionale non ammette duplicati, SQL li ammette. Quindi select Città from Persona where Cognome= Rossi estrae una lista di città in.
Relazioni Relazione : concetto mutuato dalla definizione di relazione matematica della teoria degli insiemi, come sottoinsieme del prodotto cartesiano.
Normalizzazione Le forme normali certificano che la base di dati soddisfa criteri di qualità che mirano ad evitare le ridondanze e i conseguenti effetti.
Modello Relazionale Proposto agli inizi degli anni ‘70 da Codd
Vincoli di integrità generici Con i costrutti visti sinora, non è sempre possibile definire tutti i possibili vincoli di integrità. Per questo esiste listruzione.
Informazione incompleta Le tuple che compongono la base di dati devono essere omogenee. Quindi ad ogni attributo deve essere associato un valore in ogni.
Basi di dati Claudia Raibulet
MODELLI DEI DATI I MODELLI COSTITUISCONO UNA STRUTTURAZIONE SEMPLIFICATA DELLA REALTA’ CHE NE ACCOGLIE ASPETTI SPECIFICI E AIUTA A COMPRENDERLA MEGLIO.
Introduzione alle Basi di Dati. Overview Informazione = contenuto + struttura Informazione non strutturata Molto contenuto, poca struttura Un romanzo.
Corso di INFORMATICA anno scolastico 2009/10 Linguaggio SQL IDENTIFICATORI di tabelle e attributi: stringhe di lunghezza max 18 caratteri, composte da.
Corso base Lorenzo Braidi Formazione e consulenza informatica
Elementi di Logica matematica Prima parte
Il modello relazionale (II). Informazione incompleta e valori nulli In una tupla di una relazione un attributo può non avere valore Per esempio: Mario.
1.Progettare il seguente DataBase in relazione ai due esempi presenti in piattaforma, Modulo 4, esempi 1 e 2: Considerare le informazioni per la gestione.
Si ringraziano per il loro contributo gli alunni della
INFORMATICA MATTEO CRISTANI. INDICE CICLO DELLE LEZIONI LEZ. 1 INTRODUZIONE AL CORSO LEZ. 2 I CALCOLATORI ELETTRONICI LEZ. 3 ELEMENTI DI TEORIA DELL INFORMAZIONE.
Informatica II – Basi di Dati (08/09) – Parte 2 Gianluca Torta Dipartimento di Informatica dellUniversità di Torino
Basi di Dati e Sistemi Informativi Il Linguaggio SQL Home page del corso:
Basi di dati - Modelli e linguaggi di interrogazione- Paolo Atzeni, Stefano Ceri, Stefano Paraboschi, Riccardo Torlone Copyright © The McGraw-Hill.
Informatica Introduzione alle basi di dati Lezione 6 Scienze e tecniche psicologiche dello sviluppo e dell'educazione, laurea magistrale Anno accademico:
Corso di Informatica Corso di Laurea in Conservazione e Restauro dei Beni Culturali Gianluca Torta Dipartimento di Informatica Tel: Mail:
Informatica II – Basi di Dati (07/08) – Parte 2 Gianluca Torta Dipartimento di Informatica dell’Università di Torino
DB- Sistemi Informativi
Microsoft Access (parte 5) Introduzione alle basi di dati Scienze e tecniche psicologiche dello sviluppo e dell'educazione, laurea magistrale Anno accademico:
Informatica II – Basi di Dati (07/08) – Parte 2 Gianluca Torta Dipartimento di Informatica dell’Università di Torino
Informatica II – Basi di Dati (07/08) – Parte 1
Congiunzione Disgiunzione Negazione Natalia Visalli.
Microsoft Access Query (II), filtri.
La logica è lo studio del ragionamento.
Introduzione a Javascript
Il modello relazionale. Modello logico dei dati basato su concetti relazione e tabella Relazione: da teoria degli insiemi Tabella: rappresentazione grafica.
IL MODELLO RELAZIONALE. Modello Relazionale2 Cronologia dei modelli per la rappresentazione dei dati  Modello gerarchico (anni 60)  Modello reticolare.
BASI DI DATI. 2 Sommario Introduzione e obiettivi Introduzione e obiettivi Il modello di dati relazionale Il modello di dati relazionale SQL SQL Software.
Progettazione di una base di dati Ciclo di vita di un sistema informativo Studio di fattibilità definisce le varie alternative possibili, i relativi costi.
Basi di dati e Relazioni Uno schema di relazione R(X) è costituito da un simbolo (nome della relazione) R e da una serie di attributi X={A 1, A 2, …, A.
Query languages per Basi di Dati Relazionali  Algebra Relazionale:  basato sulla teoria degli insiemi  procedurale  usato per l’implementazione di.
Join Proprietà Il join di r 1 e r 2 contiene un numero di tuple compreso fra zero e il prodotto di |r 1 | e |r 2 | se il join di r 1 e r 2 è completo allora.
Progettazione di una base di dati relazionale Vincoli.
Progettazione di una base di dati relazionale Terza forma normale.
Join Se ciascuna tupla di ciascun operando contribuisce ad almeno una tupla del risultato il join si dice completo. Se per alcune tuple non è verificata.
S. Costantini 06/05/2006 (parte del materiale è tratto da slide del 2001 di Ceri-Atzeni) Normalizzazione di Schemi.
Algebra relazionale (II). Join esterni Per combinare sempre le tuple di due relazioni, anche quando non ci sono corrispondenze tra i valori degli attributi.
Il modello relazionale
La logica degli enunciati interamente realizzata da GIANNUZZI SILVIA
NORMALIZZAZIONE ESERCIZI. INTRODUZIONE La modellazione E-R ci ha consentito di descrivere schemi relazionali Lo strumento base per la modellizzazione.
Microsoft Access Filtri, query. Filtri Un filtro è una funzione che provoca la visualizzazione dei soli record contenenti dati che rispondono a un certo.
DB- Sistemi Informativi Insieme di programmi in grado di acquisire, elaborare, trasmettere ed archiviare informazioni in genere ad uso di un’organizzazione.
Il Modello Relazionale. I modelli logici dei dati Tradizionalmente, esistono tre modelli logici: –gerarchico –reticolare –relazionale I modelli gerarchico.
Transcript della presentazione:

Il modello relazionale (II)

Informazione incompleta e valori nulli 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

Informazione incompleta e valori nulli NULL: valore nullo Assegnato agli elementi di tuple inesistenti o sconosciuti NULL è valore aggiuntivo rispetto al dominio di un attributo

Informazione incompleta e valori nulli In basi di dati, i due casi sopra trattati come assenza di informazione In assenza di informazione su un attributo bisogna usare NULL perché non si confonde con altri valori del dominio dell’attributo

Informazione incompleta e valori nulli Per esempio: 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

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 MatricolaCognomeNomeDataNascita RossiMariaNULL NeriAnna23/04/1982 NULLVerdiFabio12/02/ RossiLuca10/10/ BruniMario01/12/1981 Studenti

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 MatricolaCognomeNomeDataNascita RossiMariaNULL NeriAnna23/04/1982 NULLVerdiFabio12/02/ RossiLuca10/10/ BruniMario01/12/1981 Studenti OK

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 MatricolaCognomeNomeDataNascita RossiMariaNULL NeriAnna23/04/1982 NULLVerdiFabio12/02/ RossiLuca10/10/ BruniMario01/12/1981 Studenti No: matricola usata per correlare relazione

Informazione incompleta e valori nulli No: informazione inutile CodiceTitoloDocente 01AnalisiGiani 03ChimicaNULL ChimicaBelli StudenteVotoCorso NULL27NULL NULL Esami Corsi

Informazione incompleta e valori nulli No: informazione inutile CodiceTitoloDocente 01AnalisiGiani 03ChimicaNULL ChimicaBelli StudenteVotoCorso NULL27NULL NULL Esami Corsi

Informazione incompleta e valori nulli No: codice usato Per correlare relazione CodiceTitoloDocente 01AnalisiGiani 03ChimicaNULL ChimicaBelli StudenteVotoCorso NULL27NULL NULL Esami Corsi

Informazione incompleta e valori nulli CodiceTitoloDocente 01AnalisiGiani 03ChimicaNULL ChimicaBelli StudenteVotoCorso NULL27NULL NULL Esami Corsi OK

Instanze inconsistenti Non tutte le tuple rappresentano informazione corretta per un’applicazione Valori nulli Valori fuori del dominio di un attributo  Per esempio: voto = 36 Tuple inconsistenti (valori di più attributi non simultaneamente assegnabili)  Per esempio: voto = 24, lode = Sì …

Instanze inconsistenti Non tutte le tuple rappresentano informazione corretta per un’applicazione … Tuple con valori uguali per attributi identificanti  Per esempio: tuple con la stessa matricola in relazione Studenti Valori inesistenti in attributi usati per corrispondenze tra relazioni  Per esempio: studente in relazione Esami

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 inconsistente

Vincoli di integrità Definendo lo schema di un base di dati si associano vincoli di integrità che si riferiscono a tutte le istanze del 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

Vincoli intrarelazionali Vincoli interni a una relazione: Soddisfacimento definito rispetto ad una singola relazione del base di dati Vincolo di tupla: esprime condizioni sui valori di ciascuna tupla indipendentamente dalle altre tuple Vincolo di dominio (vincolo su valori): restrizione su dominio di attributo Vincoli su assegnamento di valori ad attributi diversi di una tupla

Vincoli di tupla Esprimibili mediante espressioni booleane (AND, OR, NOT) i cui termini contengono: Uguaglianze, disuguaglianze, ordinamenti di valori di attributo Espressione aritmetiche su valori di attributo pqp AND q FFF FVF VFF VVV pqp OR q FFF FVV VFV VVV pNOT p FV VF

Vincoli di tupla Per esempio: Vincolo di dominio (Voto  18) AND (Voto  30) Vincolo su più attributi (NOT(Lode = “lode”)) OR (Voto = 30) Pagamenti(Data, Importo, Ritenute, Netto) Netto = Importo - Ritenute

Vincoli di tupla Matricola>4000 AND Matricola<6000 Cognome=“Rossi” OR Cognome=“Neri” Corso=“Economia” OR (NOT(Cognome=“Neri”)) MatricolaCognomeNomeNascitaCorso 4328RossiLuigi29/04/79Informatica 6328RossiDario29/04/79Informatica 4766RossiLuca01/05/81Fisica 4856NeriLuca01/05/81Economia 5536NeriLuca05/03/78Economia

Vincoli 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 t1 e t2 con t1[K]=t2[K] K è una chiave di r se è una superchiave minimale di r

Vincoli di chiave {Matricola} è una chiave MatricolaCognomeNomeNascitaCorso 4328RossiLuigi29/04/79Informatica 6328RossiDario29/04/79Informatica 4766RossiLuca01/05/81Fisica 4856NeriLuca01/05/81Economia 5536NeriLuca05/03/78Economia Table1

Vincoli di chiave {Cognome, Nome, Nascita} è una chiave MatricolaCognomeNomeNascitaCorso 4328RossiLuigi29/04/79Informatica 6328RossiDario29/04/79Informatica 4766RossiLuca01/05/81Fisica 4856NeriLuca01/05/81Economia 5536NeriLuca05/03/78Economia Table1

Vincoli di chiave {Matricola, Corso} è una superchiave, ma non una chiave MatricolaCognomeNomeNascitaCorso 4328RossiLuigi29/04/79Informatica 6328RossiDario29/04/79Informatica 4766RossiLuca01/05/81Fisica 4856NeriLuca01/05/81Economia 5536NeriLuca05/03/78Economia Table1

Vincoli di chiave {Nome, Corso} non è una superchiave MatricolaCognomeNomeNascitaCorso 4328RossiLuigi29/04/79Informatica 6328RossiDario29/04/79Informatica 4766RossiLuca01/05/81Fisica 4856NeriLuca01/05/81Economia 5536NeriLuca05/03/78Economia Table1

Vincoli di chiave {Nome, Corso} è adesso una chiave È una chiave “per caso” MatricolaCognomeNomeNascitaCorso 6328RossiDario29/04/79Informatica 4766RossiLuca01/05/81Fisica 4856NeriLuca01/05/81Economia 5536NeriLuca05/03/78Informatica Table2

Vincoli di chiave Ogni relazione r(X) ha una chiave Essendo un insieme, r(X) è costituita da tupla diverse tra loro  X è sicuramente superchiave di r

Vincoli 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 Per esempio: nel base di dati Università Studente corrisponde a Matricola della relazione Studenti Corso corrisponde a Codice della relazione Corsi

Chiave e valori nulli Tupla 1: ha entrambe le chiave incomplete ({Matricola}, {Cognome, Nome, Nascita}) MatricolaCognomeNomeNascitaCorso NULLRossiDarioNULLInformatica 4766RossiLuca01/05/81Fisica 4856NeriLucaNULL NeriLuca05/03/78Economia

Chiave e valori nulli Tuple 3 e 4: hanno una chiave completamente specificata, ma sono lo stesso individuo? MatricolaCognomeNomeNascitaCorso NULLRossiDarioNULLInformatica 4766RossiLuca01/05/81Fisica 4856NeriLucaNULL NeriLuca05/03/78Economia

Chiave e valori nulli Chiave primaria: la chiave primaria non può avere valori nulli Identificata mediante sottolineatura ({Matricola}) 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

Vincoli interrelazionali Vincoli interrelazionali sono i vincoli che coinvolgono più relazioni del base di dati Per verificarli, 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 R1 ed una relazione R2 è soddisfatto se i valori su X di ciascuna tupla dell’istanza di R1 compaiono come valori della chiave (primaria) dell’istanza di R2

Vincoli di integrità referenziale Per esempio: le relazioni Studenti(Matricola,Cognome,Nome,DataNascita) Corsi(Codice,Titolo,Docente) Esami(Numero,Studente,Voto,Lode,Corso) Un numero può comparire in attributo Studente di una tupla di relazione Esami solo se compare come valore di Matricola in istanza di relazione Studenti

Vincoli di integrità referenziale Se chiave di R2 è composta da un solo attributo B, X è composto di un solo attributo A Vincolo di integrità referenziale tra A in R1 e B in R2 è soddisfatto se, per ogni tupla t1 in R1 per cui t1[A] non è nullo, esiste una tupla t2 in R2 tale che t1[A] = t[B]

Vincoli di integrità referenziale KA B… R1R2

Vincoli di integrità referenziale Se chiave di R2 contiene più attributo bisogna stabilire corrispondenza tra attributi di R1 e R2 Chiave di R2: {B1,…,Bp} X={A1,…,Ap} Vincolo di integrità referenziale tra (A1,…,Ap) in R1 e (B1,…,Bp) in R2 è soddisfatto se, per ogni tupla t1 in R1 per cui t1[A1,…,Ap] non contiene valori nulli, esiste una tupla t2 in R2 tale che t1[Ai] = t[Bi] per 1  i  p

Vincoli di integrità referenziale KAi Bi… R1R2

Vincoli di integrità referenziale CodiceDataAgenteArtProvNumero /10/ RM2F /10/ FI4E5432 MatricolaCFCognomeNome 567RSSM…RossiMario 638NREP…NeriPiero ProvNumeroProprietarioIndirizzo RM1A2396Verdi PieroVia Tigli MI2F7643Luci GinoVia Noci FI4E5432Bini LucaVia Po Infrazioni Agenti Auto

Vincoli di integrità referenziale CodiceDataAgenteArtProvNumero /10/ RM2F /10/ FI4E5432 MatricolaCFCognomeNome 567RSSM…RossiMario 638NREP…NeriPiero ProvNumeroProprietarioIndirizzo RM1A2396Verdi PieroVia Tigli MI2F7643Luci GinoVia Noci FI4E5432Bini LucaVia Po Infrazioni Agenti Auto

Vincoli di integrità referenziale CodiceDataAgenteArtProvNumero /10/ RM2F /10/ FI4E5432 MatricolaCFCognomeNome 567RSSM…RossiMario 638NREP…NeriPiero ProvNumeroProprietarioIndirizzo RM1A2396Verdi PieroVia Tigli MI2F7643Luci GinoVia Noci FI4E5432Bini LucaVia Po Infrazioni Agenti Auto

Vincoli di integrità referenziale Ordinamento di attributi in vincoli referenziali è essenziale perché non sempre la corrispondenza tra tabelle si può stabilire per nome di attributo Per esempio: Incidenti(Codice,Prov1,Numero1,Prov2,Numero2) Auto(Prov,Numero,Proprietario,Indirizzo) Prov1, Numero1 e Prov2, Numero2 sono diversi dai nomi della chiave primaria di Auto

Vincoli di integrità referenziale Non tutti i DBMS permettono di definire chiavi primarie Definire esplicitamente attributi coinvolti in vincoli di integrità