Corso di Informatica (Basi di Dati)

Slides:



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

Corso di Laurea in Biotecnologie Informatica (Basi di Dati)
1 t Mobilità internazionale e conversione dei voti Maria Sticchi Damiani Università della Calabria 8 febbraio 2013.
Paolo Pipere Servizio Territorio, Ambiente e Cultura CCIAA di Milano
Presentazione del corso Paolo Atzeni 2/03/2012
Vincoli sulle basi di dati
Corso di laurea in INFORMATICA RETI di CALCOLATORI A.A. 2003/2004 Presentazione del corso Alberto Polzonetti
1 SPEGNETE GRAZIE. 2 MATEMATICA (A-L) a.a Numero di crediti :8 Docente:Prof. Gianni Ricci Periodo di svolgimento del corso: primo semestre.
G. Mecca – – Università della Basilicata Basi di Dati Sistemi per Basi di Dati Relazionali: Modello Logico Concetti Fondamentali versione.
DIRITTO DEL LAVORO DIRITTO DEL LAVORO 1
DIRITTO DEL LAVORO DIRITTO DEL LAVORO 1
Semantica delle Informazioni
4 – Progettazione – Introduzione e Modello E-R
Algoritmo di Query Optimization. Espressione Algebrica di Query LAlgebra Relazionale può essere utilizzata come linguaggio per interrogare una base di.
Basi di Dati prof. A. Longheu 4 – Progettazione – Introduzione e Modello E-R Cap. 5 Basi di dati Atzeni – Ceri – Paraboschi - Torlone.
1 Microsoft Access 1. 2 Contenuto Dovete progettare e realizzare, usando Access, una base di dati che riguarda gli esami sostenuti dagli studenti iscritti.
PRESENTAZIONE DEL CORSO E INFORMAZIONI PRELIMINARI
Corso di Informatica (Basi 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 (Basi di Dati)
1 Corso di Informatica (Basi di Dati) Esercitazione 1 (19 dicembre 2008) Modello Entità-Relazione Da: Lucidi del Corso di Basi di Dati 1, Prof. Carlo Batini,
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.
Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill,
Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, 1999
06/10/2009Basi di dati , presentazione1 Basi di dati (ordinamento DM 509/1999) Basi di dati I (ordinamento DM 270/2004) DocentePaolo.
Presentazione del corso Paolo Atzeni 1/03/2011
04/10/2010Basi di dati , presentazione1 Basi di dati I (ordinamento DM 270/2004) già Basi di dati (ordinamento DM 509/1999) DocentePaolo.
Basi di dati II Presentazione del corso (include la presentazione di Tecnologia delle basi di dati, corso attivo fino al e sostituito.
SISTEMI INFORMATICI Esempi di cartella clinica elettronica.
MODELLO RELAZIONALE.
Algoritmo di Query Optimization
Relazioni Relazione : concetto mutuato dalla definizione di relazione matematica della teoria degli insiemi, come sottoinsieme del prodotto cartesiano.
Modello Relazionale Proposto agli inizi degli anni ‘70 da Codd
Informazione incompleta Le tuple che compongono la base di dati devono essere omogenee. Quindi ad ogni attributo deve essere associato un valore in ogni.
Corso di Informatica - Basi di Dati Introduzione alle basi di dati Gabriella Pasi
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.
Prof. Cerulli – Dott.ssa Gentili
Il modello relazionale (II). Informazione incompleta e valori nulli In una tupla di una relazione un attributo può non avere valore Per esempio: Mario.
Incontro con le famiglie 24 ottobre 2009 CLASSIQuarteQuinte ISTITUTO DISTRUZIONE SUPERIORE L. da Vinci UMBERTIDE.
Prof. Cerulli – Dott.ssa Gentili
Informatica II – Basi di Dati (08/09) – Parte 2 Gianluca Torta Dipartimento di Informatica dellUniversità di Torino
Economia aziendale 1: Modulo di Strutture e processi aziendali
MATERIA: IL S.O. WINDOWS XP PRO 04/03/2011. GESTIONE DEGLI UTENTI.
Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill,
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 Laurea in Conservazione e Restauro dei Beni Culturali
DB- Sistemi Informativi
Il modello relazionale (II). Informazione incompleta e valori nulli In una tupla di una relazione un attributo può non avere valore Per esempio: Mario.
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
REQUISITI D’ACCESSO cdl Magistrali
Microsoft Access Query (II), filtri.
Percorso didattico per l’apprendimento di Microsoft Access
Prof. Romano Boni Assistente Silvia Torrani ECONOMIA AZIENDALE AA Note Organizzative.
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.
Introduzione alle basi di dati
Corso di laurea triennale in Chimica - Laboratorio di Informatica 1 ESERCITAZIONE 8 – BASI DI DATI - II ©2003/04 – Gruppo di lavoro Alberti, Boldi, Gaito,
Basi di dati - Modelli e linguaggi di interrogazione- Paolo Atzeni, Stefano Ceri, Stefano Paraboschi, Riccardo Torlone Copyright © The McGraw-Hill.
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.
Progettazione di una base di dati relazionale Vincoli.
Progettazione di una base di dati relazionale Terza forma normale.
Studenti iscritti primo anno A.A – 2007 Ingegneria informatica triennale … mediamente matricole: A.A : 134 matricole; A.A : 106.
Informatica II 2008/2009 Gianluca Torta Dipartimento di Informatica dell’Università di Torino
Basi di Dati Esercitazione Modello Relazionale 19 ottobre 2015 Luigi Bellomarini
Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Transcript della presentazione:

Corso di Informatica (Basi di Dati) Lezione 5 (14 gennaio 2009) Modello Relazionale: vincoli di integrità Da: Atzeni, Ceri, Paraboschi, Torlone - Basi di Dati Lucidi del Corso di Basi di Dati 1, Prof. Carlo Batini, Laurea in Informatica, AA 2007-2008

Vincoli di integrità Le strutture del modello relazionale (viste nella lezione precedente) permettono di organizzare i dati relativi alla realtà di interesse. Non è vero però che qualsiasi istanza su di uno schema (così definito, fino a questo punto) di una Base di Dati rappresenti informazioni corrette per l’applicazione. Si consideri ad esempio la seguente istanza sullo schema di Base di Dati definito nella lezione precedente (con le tre tabelle Studenti, Corsi ed Esami), modificato aggiungendo l’attributo Lode alla tabella Esami.

Vincoli di integrità Studenti Esami Corsi 200768 Verdi 937653 Rossi Bruni Fabio Luca Mario 12/02/1972 10/10/1971 01/12/1971 Matricola Cognome Nome DataNascita Esami 200768 36 937653 28 30 lode MatricolaStudente Voto Lode 05 01 04 CodiceCorso 276545 25 Corsi 01 Analisi 03 Chimica 04 Giani Melli Belli Codice Titolo Docente

Vincoli di integrità Quali sono gli aspetti scorretti nell’istanza precedente? nella tabella Esami il valore di Voto, in corrispondenza dello studente con matricola 200768, è 36 (e il voto deve essere <= 30!) il valore dell’attributo Lode, per lo studente con matricola 937653, non è nullo nonostante il valore di Voto sia 28 (e la lode si ha solo per un voto pari a 30!)

Vincoli di integrità Quali sono gli aspetti scorretti nell’istanza precedente? nella tabella Esami lo studente con matricola 200768 ha sostenuto un esame con codice 05 che però non compare nella tabella Corsi lo studente con matricola 276545 non compare nella tabella Studenti e quindi non si hanno informazioni su di esso nella tabella Studenti ci sono due studenti che hanno lo stesso numero di matricola

Vincoli di integrità Un vincolo di integrità è una proprietà che deve essere soddisfatta da tutte le istanze della Base di Dati al fine di rappresentare un’informazione corretta. Un vincolo è un predicato che associa ad un’istanza un valore booleano: VERO se l’istanza è corretta FALSO se l’istanza NON è corretta

Vincoli di integrità I vincoli di integrità sono dunque proprietà dello schema, cioè si riferiscono a tutte le istanze dello schema e: permettono una rappresentazione più accurata della realtà contribuiscono alla qualità dei dati, cioè fanno in modo che i dati rappresentino correttamente la realtà portano in fase di progettazione alla definizione di uno schema di qualità

Vincoli di integrità I vincoli di integrità sono possono essere di tipo: intrarelazionale, cioè definiti all’interno di una relazione (o tabella) interrelazionale, cioè definiti tra due o più relazioni (o tabelle)

Vincoli di integrità I vincoli di tipo intrarelazionale che vedremo sono: vincoli su singolo valore di attributo (o vincoli di dominio) vincoli di ennupla (o di tupla) vincoli di chiave e di chiave primaria Il vincolo di tipo interrelazionale che vedremo è il vincolo di integrità referenziale

Vincoli su singolo valore I vincoli su singolo valore coinvolgono un singolo attributo di una relazione. Ad esempio il valore di Voto delle ennuple della tabella Esami, definito sul dominio degli interi, può assumere valori che vanno da 18 a 30. Il vincolo è quindi esprimibile dalla seguente espressione booleana: (Voto >= 18) AND (Voto <= 30)

Vincoli di ennupla I vincoli di ennupla coinvolgono l’insieme dei valori di un’intera ennupla di una relazione. Ad esempio le ennuple della relazione Esami devono soddisfare il seguente vincolo: (Voto = 30) OR NOT (Lode = lode)

Vincoli su singolo valore e di ennupla Un vincolo su singolo valore o di ennupla è soddisfatto se ogni ennupla dell’istanza della relazione, sulla quale è definito, ha valori che soddisfano il vincolo stesso.

Vincoli di chiave e di chiave primaria La motivazione di un vincolo di chiave e di chiave primaria è la necessità di disporre di informazioni che permettano di rappresentare ogni oggetto della realtà di interesse tramite un’unica ennupla. In altre parole si ha la necessità di identificare in maniera univoca le ennuple di una relazione.

Definizione di superchiave e di chiave Data una relazione (o tabella) avente schema R(X), dove X è l’insieme degli attributi, un insieme K contenuto in X è una superchiave per R se R non contiene due ennuple distinte t1 e t2 tali che t1[K]= t2[K]. Si dice che K è superchiave minimale (o semplicemente chiave) se non contiene al suo interno nessun’altra superchiave, cioè se nessun sottoinsieme di K è esso stesso una superchiave.

Superchiave e chiave (esempi) Nella tabella Studenti3 l’attributo Matricola è una chiave in quanto è una superchiave (non ci sono due studenti con lo stesso numero di matricola) minimale (la superchiave è composta da un solo attributo)... Studenti3 276545 Rossi 485745 200768 Neri 587614 Mario Piero 5/12/1978 3/11/1976 10/07/1979 Matricola Cognome Nome DataNascita Ing Inf Ing Mecc Corso 587544 Ing El

Superchiave e chiave (esempi) … L’insieme di attributi (Cognome, Nome, DataNascita) è una superchiave minimale e quindi è un’altra chiave. Infatti nessun altro sottoinsieme di (Cognome, Nome, DataNascita) è una superchiave... Studenti3 276545 Rossi 485745 200768 Neri 587614 Mario Piero 5/12/1978 3/11/1976 10/07/1979 Matricola Cognome Nome DataNascita Ing Inf Ing Mecc Corso 587544 Ing El

Superchiave e chiave (esempi) … L’insieme di attributi (Matricola, Cognome, Nome, DataNascita) è una superchiave ma non è una chiave in quanto contiene le due chiavi (Matricola) e (Cognome, Nome, DataNascita). Studenti3 276545 Rossi 485745 200768 Neri 587614 Mario Piero 5/12/1978 3/11/1976 10/07/1979 Matricola Cognome Nome DataNascita Ing Inf Ing Mecc Corso 587544 Ing El

Superchiave e chiave (esempi) … L’insieme di attributi (Cognome, Corso) è una chiave. Studenti3 276545 Rossi 485745 200768 Neri 587614 Mario Piero 5/12/1978 3/11/1976 10/07/1979 Matricola Cognome Nome DataNascita Ing Inf Ing Mecc Corso 587544 Ing El

Superchiave e chiave NOTA BENE! Data una relazione avente schema R(X), dove X è l’insieme degli attributi, si ha che X è superchiave per definizione. Infatti tutte le ennuple della relazione sono per definizione distinte.

Vincolo di chiave Dato uno schema di relazione R(X), un vincolo di chiave su un sottoinsieme K di X, impone che ogni istanza di R(X) deve essere tale che, per ogni coppia di ennuple t1 e t2, si ha t1[K] diverso da t2[K].

Vincolo di chiave (esempio) Sullo schema della tabella Studenti3 si possono definire ad esempio due vincoli di chiave rispettivamente su K1=(Matricola) e su K2=(Cognome,Nome,DataNascita). L’istanza di Studenti3 delle slide precedenti (usata per definire superchiave e chiave) rispetta chiaramente tali due vincoli. L’istanza precedente non rispetterebbe invece un vincolo di chiave definito su K3=(Cognome, Nome) in quanto ci sono due ennuple che su K3 hanno valore (Rossi, Mario)

Vincolo di chiave Le chiavi sono importanti perché: permettono di identificare gli oggetti della base di dati accedere agli oggetti della base di dati correlare le informazioni tra relazioni diverse

Vincolo di chiave (esempio) La slide successiva riporta la Base di Dati (della lezione precedente) in cui in rosso sono evidenziati il vincolo di chiave definito per la tabella Studenti (sull’attributo Matricola) e quello per la tabella Corsi (sull’attributo Codice). Il legame tra Studenti e Corsi (tabella Esami) avviene grazie alla definizione dei due vincoli di chiave che consentono infatti di legare ogni ennupla di Esami a un’unica ennupla di Studenti e a un’unica ennupla di Corsi.

Vincolo di chiave (esempio) Studenti 276545 Rossi 485745 Neri 200768 Verdi 587614 Maria Anna Fabio Luca 25/11/1971 23/04/1972 12/02/1972 10/10/1971 Matricola Cognome Nome DataNascita 01 Analisi 03 Chimica 04 Giani Melli Belli Codice Titolo Docente 28 27 24 MatricolaStudente Voto CodiceCorso Esami Corsi

Valori nulli In una Base di Dati si ha spesso a che fare con informazione incompleta e quindi con valori nulli. Un valore nullo può essere dovuto al fatto che: il valore esiste ma è sconosciuto (tipo 1) il valore è inesistente (tipo 2) il valore è senza informazione (non si conosce oppure non esiste, non si sa nulla…) (tipo 3) Un DBMS non riesce purtroppo a distinguere il preciso significato di un valore nullo

Valori nulli (esempio) Ad esempio si consideri un‘istanza della semplice tabella Prefetture sotto riportata Prefetture Roma Via Manzoni Firenze Tivoli Chiasso Città IndirizzoPrefettura

Valori nulli (esempio) …Il valore nullo di Firenze è di tipo 1 in quanto a Firenze esiste sicuramente una Prefettura e quindi in questo caso non si conosce il suo indirizzo. Il valore nullo relativo a Tivoli è di tipo 2 poiché Tivoli non è provincia e quindi non esiste una Prefettura. Infine per Chiasso non si sa nulla (tipo 3) dal momento che si trova in Svizzera e in Svizzera non si sa se ci sono le Prefetture.

Valori nulli Come si rappresentano i valori nulli nel modello relazionale? Possibilità 1: usare particolari valori del dominio dell’attributo. Ad esempio: 0, la stringa nulla, etc. Questa possibilità è un po’ rischiosa in quanto si potrebbero utilizzare valori che poi diventano significativi…

Valori nulli Come si rappresentano i valori nulli nel modello relazionale? Possibilità 2: si usa un particolare valore denotato con NULL. Di conseguenza, data una ennupla t, si ha che il valore t[A] in corrispondenza dell’attributo A è un valore del dominio di A oppure il valore NULL.

Chiavi e valori nulli I valori nulli possono riguardare una chiave o parte di essa? Sì, anche se in presenza di valori nulli non è permesso alla chiave di svolgere correttamente le sue due funzioni di (1) identificare le ennuple della Base di Dati e (2) di determinare i riferimenti con altre relazioni. Quindi la presenza di valori nulli nelle chiavi deve essere limitata!

Vincolo di chiave primaria Dalle considerazioni della slide precedente emerge la necessità di definire un vincolo di chiave in cui i valori nulli non siano ammessi. Questo nuovo tipo di vincolo prende il nome di chiave primaria (primary key). Per uno schema di relazione R(X) si possono definire più di un vincolo di chiave e un solo vincolo di chiave primaria Nella Base di Dati della slide successiva, si possono definire due chiavi primarie rispettivamente su Matricola di Studenti e su Codice di Corsi (colonne in rosso).

Vincolo di chiave primaria (esempio) Studenti 276545 Rossi 485745 Neri 200768 Verdi 587614 Maria Anna Fabio Luca 25/11/1971 23/04/1972 12/02/1972 10/10/1971 Matricola Cognome Nome DataNascita 01 Analisi 03 Chimica 04 Giani Melli Belli Codice Titolo Docente 28 27 24 MatricolaStudente Voto CodiceCorso Esami Corsi

Vincolo di integrità referenziale Dati due schemi di relazione R1(X1) e R2(X2), un vincolo di integrità referenziale (chiave esterna o foreign key) di R1 (detta interna) rispetto a R2 (detta esterna o master), impone che un sottoinsieme K1 di X1 sia legato ad un sottoinsieme K2 di X2, definito come chiave primaria per R2. In altre parole, tale vincolo impone che ogni ennupla t1 in R1 abbia valori su K1 che compaiano come chiave primaria in R2. Negli esempi successivi le chiavi esterne sono evidenziate in blu, mentre le chiavi primarie sono evidenziate in rosso.

Vincolo di integrità referenziale (esempio1) 276545 Rossi 485745 Neri 200768 Verdi 587614 Maria Anna Fabio Luca 25/11/1971 23/04/1972 12/02/1972 10/10/1971 Matricola Cognome Nome DataNascita 01 Analisi 03 Chimica 04 Giani Melli Belli Codice Titolo Docente 28 27 24 MatricolaStudente Voto CodiceCorso Studenti Esami Corsi

Vincolo di integrità referenziale (esempio2) Infrazioni Auto 34321 1/2/95 53524 4/3/95 64521 5/4/96 73321 5/2/98 MI TO PR 39548K E39548 839548 Codice Data Provincia Numero 3987 3295 9345 Vigile Rossi Neri Cognome Mario Luca Nome Attenzione! Quando si definiscono chiavi esterne che coinvolgono più di un attributo occorre rispettare l’ordine degli attributi. In questo caso infatti (Provincia, Numero) in Infrazioni fa riferimento a (Provincia,Numero) in Auto presi in questo ordine.

Vincolo di integrità referenziale (violazione) Cosa succede quando l’aggiunta, la modifica o la cancellazione di una ennupla viola un vincolo di integrità referenziale? Sono possibili tre meccanismi compensativi: rifiuto dell’operazione eliminazione in cascata introduzione di valori nulli

Vincolo di integrità referenziale (violazione) Ad esempio nella Base di Dati dell’esempio precedente (Infrazioni e Auto) se si tenta di eliminare da Auto una ennupla a cui è associata un’infrazione in Infrazioni, viene violato il vincolo di integrità referenziale. Le slide successive mostrano il comportamento di due dei meccanismi di compensazione in seguito alla cancellazione della ennupla (TO, E39548, Rossi, Mario) da Auto.

Vincolo di integrità referenziale (violazione) Eliminazione in cascata della ennupla (53524, 4/3/95, 3295, TO, E39548) da Infrazioni Infrazioni Auto MI 39548K TO E39548 PR 839548 Rossi Neri Provincia Numero Cognome Mario Luca Nome 34321 1/2/95 53524 4/3/95 64521 5/4/96 73321 5/2/98 Codice Data 3987 3295 9345 Vigile

Vincolo di integrità referenziale (violazione) Introduzione di valori nulli nella ennupla (53524, 4/3/95, 3295, TO, E39548) in Infrazioni Infrazioni Auto 34321 1/2/95 53524 4/3/95 64521 5/4/96 73321 5/2/98 MI NULL PR 39548K 839548 Codice Data Provincia Numero 3987 3295 9345 Vigile TO E39548 Rossi Neri Cognome Mario Luca Nome