IL MODELLO RELAZIONALE. Modello Relazionale2 Cronologia dei modelli per la rappresentazione dei dati  Modello gerarchico (anni 60)  Modello reticolare.

Slides:



Advertisements
Presentazioni simili
Modulo 5 DataBase ACCESS.
Advertisements

Il raffinamento dello schema e la normalizzazione nei database relazionali Eugenio Di Sciascio.
DB - Modello relazionale dei dati
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità C1 Il linguaggio SQL.
Vincoli sulle basi di dati
Algebra relazionale Presentazione 12.1
Basi di dati: il modello relazionale
1 Progettazione logica: Il modello relazionale Eugenio Di Sciascio.
Semantica delle Informazioni
4 – Progettazione – Introduzione e Modello E-R
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
Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill,
Archivio Cé necessità di immagazzinare in modo permanente grandi quantità di dati. Esempio: anagrafe dei cittadini di un comune.
Microsoft Office: Access OpenOffice: Base
L’uso dei database in azienda
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 Laurea in Biotecnologie Informatica (Basi di Dati) Modello Relazionale Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi, Torlone - Basi.
Basi di dati. Vantaggi degli archivi digitali Risparmio di spazio: sono facilmente trasferibili e duplicabili Risparmio di tempo: si può accedere ai dati.
Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill,
MODELLO RELAZIONALE.
Modello Relazionale Definisce tipi attraverso il costruttore relazione, che organizza i dati secondo record a struttura fissa, rappresentabili attraverso.
Progettazione di una base di dati
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 E-R Generalizzazioni
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.
Basi di dati Claudia Raibulet
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.
Il modello relazionale (II). Informazione incompleta e valori nulli In una tupla di una relazione un attributo può non avere valore Per esempio: Mario.
MODELLO LOGICO DEI DATI
Introduzione a Oracle 9i
Sistemi di Elaborazione delle Informazioni Mod.I.
Introduzione alle Basi di Dati
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:
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
I DBMS BASI DI DATI (DATABASE) Insieme organizzato di dati utilizzati
Informatica Introduzione alle basi di dati Lezione 4 Scienze e tecniche psicologiche dello sviluppo e dell'educazione, laurea magistrale Anno accademico:
Il Linguaggio SQL. Le interrogazioni in SQL (continua…) La parte di SQL dedicata alla formulazione di interrogazioni fa parte del DML. SQL esprime le.
Il modello relazionale. Modello logico dei dati basato su concetti relazione e tabella Relazione: da teoria degli insiemi Tabella: rappresentazione grafica.
Algebra relazionale. Accesso ai dati di un DB Aggiornamento di DB: funzione che, data istanza di DB, produce altra istanza di DB, sullo stesso schema.
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.
Progettazione di una base di dati relazionale Vincoli.
Progettazione di una base di dati relazionale Terza forma normale.
Vincoli interrelazionali
Basi di dati I Prof.ssa Rosalba Giugno Prof. Alfredo Pulvirenti SQL: Amministrazione e Viste.
S. Costantini 06/05/2006 (parte del materiale è tratto da slide del 2001 di Ceri-Atzeni) Normalizzazione di Schemi.
Il modello relazionale
Cloud informatica V anno.
NORMALIZZAZIONE ESERCIZI. INTRODUZIONE La modellazione E-R ci ha consentito di descrivere schemi relazionali Lo strumento base per la modellizzazione.
DB- Sistemi Informativi Insieme di programmi in grado di acquisire, elaborare, trasmettere ed archiviare informazioni in genere ad uso di un’organizzazione.
Linguaggi per basi di dati Linguaggi di definizione dei dati Utilizzati per definire gli schemi e le autorizzazioni per l’accesso Linguaggi di manipolazione.
Normalizzazione. Introduzione Nell’organizzazione tradizionale degli archivi, si verificano alcuni problemi, quali: Ridondanza dei dati (gli stessi dati.
Il Modello Relazionale. I modelli logici dei dati Tradizionalmente, esistono tre modelli logici: –gerarchico –reticolare –relazionale I modelli gerarchico.
Il modello relazionale. Modello Relazionale 2 Dal modello concettuale a quello logico Una volta stabilita la rappresentazione concettuale della realtà.
BASI DATI: modello relazionale BIOINGEGNERIA ELETTRONICA ED INFORMATICA Lezione IIIb - AA 2014/20151.
Linguaggio SQL. Linguaggi per database La diffusione del modello relazionale ha favorito l’uso prevalente di linguaggi non procedurali: in questo modo.
I DONEITÀ DI C ONOSCENZE E C OMPETENZE I NFORMATICHE ( A – D ) Un database è un insieme di record (registrazioni) e di file (archivi) organizzati per uno.
Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Transcript della presentazione:

IL MODELLO RELAZIONALE

Modello Relazionale2 Cronologia dei modelli per la rappresentazione dei dati  Modello gerarchico (anni 60)  Modello reticolare (anni 70)  Modello relazionale (anni 80-90)  Modello a oggetti (2000)

Modello Relazionale3 Il modello relazionale  Proposto da E. F. Codd nel 1970 per favorire l’indipendenza dei dati  Disponibile in DBMS reali nel 1981 (non è facile implementare l’indipendenza con efficienza e affidabilità!)  Si basa sul concetto matematico di relazione

Modello Relazionale4 Relazione: tre accezioni  relazione matematica: come nella teoria degli insiemi  relazione secondo il modello relazionale dei dati  relazione nel modello Entity-Relationship (chiamata anche associazione)

Modello Relazionale5 Relazione matematica  D 1, …,D n (n insiemi anche non distinti)  prodotto cartesiano D 1 ×…×D n : l’insieme di tutte le n-uple (d 1, …, d n ) tali che d 1  D 1, …, d n  D n  relazione matematica su D 1, …, D n : un sottoinsieme di D 1 ×…×D n.  D 1, …, D n sono i domini della relazione  n è il grado della relazione

Modello Relazionale6 Relazione matematica, esempio  una relazione r  D 1 × D 2 a a a b b b x y z x y z a a b x z y D 1 ={a,b} D 2 ={x,y,z} prodotto cartesiano D 1 × D 2

Modello Relazionale7 Relazione matematica, proprietà  Una relazione è un insieme; quindi: non c'è ordinamento fra le n-uple; due tabelle con le stesse righe rappresentano la stessa tabella le n-uple sono distinte ciascuna n-upla è ordinata: l’ i-esimo valore proviene dall’ i-esimo dominio

Modello Relazionale8 Relazione matematica, esempio  Ciascuno dei domini ha due ruoli diversi, distinguibili attraverso la posizione: La struttura è posizionale Juve Lazio Juve Roma Lazio Milan Roma Milan Partite  string × string × int × int

Modello Relazionale9 Struttura non posizionale Juve Lazio Juve Roma Lazio Milan Roma Milan A ciascun dominio si associa un nome (attributo), che ne descrive il "ruolo" RetiCasaRetiFuoriCasaFuori

Modello Relazionale10 Tabelle e relazioni  Una tabella rappresenta una relazione se i valori di ogni colonna sono fra loro omogenei le righe sono diverse fra loro le intestazioni delle colonne sono diverse tra loro  In una tabella che rappresenta una relazione l’ordinamento tra le righe è irrilevante l’ordinamento tra le colonne è irrilevante

Modello Relazionale11 Confronto della terminologia DEFINIZIONE FORMALE DEFINIZIONE INFORMALE relazionetabella attributocolonna t-uplariga dominiotipo di dato cardinalitànumero righe gradonumero colonne unica differenza significativa: definizione formale: assenza di duplicati definizione informale: possibili duplicati

Modello Relazionale12 Relazioni e basi dati  Una relazione può essere usata per rappresentare dati di interesse, ma in genere non è sufficiente  Una base di dati è costituita da più relazioni, le cui n-uple contengono valori comuni;  Il modello relazionale è basato sui valori  i riferimenti fra dati in relazioni diverse sono rappresentati per mezzo di valori dei domini che compaiono nelle ennuple

MatricolaCognomeNomeData di nascita 6554RossiMario05/12/ NeriPaolo03/11/ RossiMaria01/02/ VerdiLuisa12/11/1979 studentiCodiceTitoloDocente 01AnalisiMario 02ChimicaBruni 04ChimicaVerdi corsi StudenteVotoCorso esami

MatricolaCognomeNomeData di nascita 6554RossiMario05/12/ NeriPaolo03/11/ RossiMaria01/02/ VerdiLuisa12/11/1979 studentiCodiceTitoloDocente 01AnalisiMario 02ChimicaBruni 04ChimicaVerdi corsi StudenteVotoCorso esami 26

Modello Relazionale15 Vantaggi della struttura basata su valori la rappresentazione logica dei dati non fa riferimento a quella fisica: si ha indipendenza dalle strutture fisiche che possono cambiare dinamicamente si rappresenta solo ciò che è rilevante dal punto di vista dell’utente; i puntatori sono qualcosa di aggiuntivo legato ad aspetti realizzativi l’utente finale vede gli stessi dati dei programmatori i dati sono portabili piu' facilmente da un sistema ad un altro perchè l'informazione è tutta contenuta nei dati

Modello Relazionale16 Definizioni  Schema di relazione: un nome R con un insieme di attributi A 1,..., A n : R(A 1,..., A n ) A ogni attributo A i è associato un dominio DOM(A i ) Es. STUDENTI(Matricola, Cognome, Nome, Data_Nascita) Matricola, Cognome, Nome, Data_Nascita: Attributi DOM(Matricola)= Numeri Naturali DOM(Cognome)= String

Modello Relazionale17 Definizioni (2)  Schema di base di dati: insieme di schemi di relazione: R = {R 1 (X 1 ),..., R k (X k )} Es. UNIVERSITA (STUDENTI, ESAMI, CORSI)

Modello Relazionale18 Definizioni, (3)  Una ennupla t su un insieme di attributi X è una funzione che associa a ciascun attributo A in X un valore di DOM (A)  t[A] denota il valore della ennupla t sull'attributo A  t[A]  DOM (A)

MatricolaCognomeNomeData di nascita 6554RossiMario05/12/ NeriPaolo03/11/ RossiMaria01/02/ VerdiLuisa12/11/1979 studenti t: (6554, Rossi, Mario, 05/12/1978) : n-upla t[Matricola ]= 6554, t[Cognome, Data di nascita ]= (Rossi, 05/12/1978)

Modello Relazionale20 Definizioni, (4)  (Istanza di) relazione su uno schema R(X): insieme r di ennuple su X  (Istanza di) base di dati su uno schema R= {R 1 (X 1 ),..., R n (X n )  insieme di relazioni r = {r 1,..., r n } (con r i relazione su R i )

Modello Relazionale21 Relazioni su singoli attributi MatricolaCognomeNomeData di nascita 6554RossiMario05/12/ NeriPaolo03/11/ RossiMaria01/02/ VerdiLuisa12/11/1979 studenti Matricola studenti lavoratori

Strutture nidificate Da Filippo Via Roma 2, Roma Ricevuta Fiscale 1235 del 12/10/2000 3Coperti 3,00 2Bistecche18,00 3Primi12,00 2Antipasti6,20 Totale39,20 Da Filippo Via Roma 2, Roma Ricevuta Fiscale 1240 del 13/10/2000 2Coperti2,00 2Orate20,00 2Primi8,00 2Antipasti7,00 2Caffè2,00 Totale39,00 2,00

Modello Relazionale23 Relazioni che rappresentano strutture nidificate Coperti3,00 2Bistecche18,00 3Primi12,00 2Antipasti6,20 39,2012/10/2000 NumeroTotaleData ,0013/10/2000 Ricevute Dettaglio QtàDescr.Importo 1235 Numero Coperti2,00 …………

Modello Relazionale24 Strutture nidifcate, riflessione  Le tabelle rappresentano correttamente le ricevute solo se: Non ci interessa mantenere l'ordine delle righe in ciascuna ricevuta Non possono esistere linee ripetute in una ricevuta (potrebbe accadere in presenza di ordinazioni diverse relative alle stesse pietanze)  Sono possibili rappresentazioni diverse

Modello Relazionale25 Rappresentazione alternativa per strutture nidificate Coperti3,00 2Bistecche18,00 3Primi12,00 2Antipasti6,20 39,2012/10/2000 NumeroTotaleData ,0013/10/2000 Ricevute Dettaglio QtàDescrizioneImporto 1235 Numero Coperti2,00 ………… Riga 1 …

Modello Relazionale26 Informazione incompleta  ll modello relazionale impone ai dati una struttura rigida: le informazioni sono rappresentate per mezzo di ennuple omogenee solo alcuni formati di ennuple sono ammessi: quelli che corrispondono agli schemi di relazione  I dati disponibili possono non corrispondere al formato previsto

Modello Relazionale27 Informazione incompleta: motivazioni RomaVia IV novembre CittàPrefettura Firenze Tivoli Prato Firenze è provincia ma non conosciamo la sede della prefettura Tivoli non è una provincia: non ha prefettura Prato è nuova provincia: avrà la prefettura?

Modello Relazionale28 Valori nulli  In alcuni casi può essere necessario rappresentare in modo semplice la non disponibilità di valori: 1. valore sconosciuto; 2. valore inesistente; 3. valore senza informazione;

Modello Relazionale29 Informazione incompleta: soluzioni?  non conviene (anche se spesso si fa) usare valori del dominio (0, stringa nulla, “99”,...): potrebbero non esistere valori “non utilizzati” valori “non utilizzati” potrebbero diventare significativi in un momento successivo potrebbe creare confusione: i programmi che accedono alla base di dati devono distinguere tra valori ''veri'' e fittizi, e dunque sarebbe necessario ogni volta tener conto del “significato” di questi valori

Modello Relazionale30 Informazione incompleta nel modello relazionale  Si adotta una tecnica rudimentale ma efficace per esprimere la non disponibilità di valori: valore nullo: denota l’assenza di un valore del dominio (e non è un valore del dominio) I DBMS non distinguono i tipi di valore nullo  Definizione estesa: per ogni t-upla t, e per ogni attributo A, t[A], è un valore del dominio dom(A) oppure il valore nullo NULL  Si possono (e debbono) imporre restrizioni sulla presenza di valori nulli: solo alcune configurazioni debbono essere ammesse

Modello Relazionale31 MatricolaCognomeNomeData di nascita 6554RossiMarioNULL RossiMaria01/02/ VerdiLuisa12/11/1979 studenti CodiceTitoloDocente 01AnalisiMario 02ChimicaNULL ChimicaVerdi corsi StudenteVotoCorso NULL30NULL esami Troppi valori nulli !

Modello Relazionale32 Vincoli di integrità Non è vero che ogni insieme di ennuple sullo schema rappresenta informazioni corrette per l'applicazione Esistono istanze di basi di dati che, pur sintatticamente corrette, non rappresentano informazioni possibili per l’applicazione di interesse

Modello Relazionale33 Una base di dati "scorretta" StudenteVotoLodeCorso e lode e lode Esami Matricola Cognome Rossi Neri Bianchi Nome Mario Piero Luca Studenti e lode

Modello Relazionale34 Vincolo di integrità Proprietà che deve essere soddisfatta dalle istanze che rappresentano informazioni corrette per l’applicazione Un vincolo è una funzione booleana che associa ad ogni istanza il valore vero (in tal caso l'istanza soddisfa il vincolo) o falso Ogni schema di base dati ha associato un insieme di vincoli Una istanza della base di dati è corretta se soddisfa tutti i vincoli

Modello Relazionale35 descrizione più accurata della realtà contributo alla “qualità dei dati” utili nella progettazione della base di dati usati dai DBMS nell‘esecuzione delle interrogazioni Osservazione: non tutte le proprietà di interesse sono rappresentabili per mezzo di vincoli formulabili in modo esplicito Vincoli di integrità, perché?

Modello Relazionale36 Tipi di vincoli vincoli intrarelazionali vincoli su valori (o di dominio) vincoli di ennupla vincoli interrelazionali (vincoli di integrità referenziale)

Modello Relazionale37 StudenteVotoLodeCorso e lode e lode Esami Matricola Cognome Rossi Neri Bianchi Nome Mario Piero Luca Studenti 32 27e lode Vincolo di colonna Vincolo di n-upla

Modello Relazionale38 Vincoli di ennupla Esprimono condizioni sui valori di ciascuna ennupla, indipendentemente dalle altre ennuple Caso particolare: Vincoli di colonna (o dominio): coinvolgono un solo attributo

Modello Relazionale39 Sintassi ed esempi  Una possibile sintassi: espressione booleana di atomi che confrontano valori di attributo o espressioni aritmetiche su di essi (Voto  18) AND (Voto  30) (Voto = 30) OR NOT (Lode = "e lode")

Modello Relazionale40 Vincoli di ennupla, esempio Impiegato Rossi Neri Bruni Stipendi Lordo Netto Ritenute Lordo = (Ritenute + Netto)

Modello Relazionale41 Identificazione delle ennuple non ci sono due ennuple con lo stesso valore sull’attributo Matricola non ci sono due ennuple uguali su tutti e tre gli attributi Cognome, Nome e Nascita Matricola Nome Mario Piero Mario Mario Cognome Rossi Neri Rossi Piero Corso Ing Inf Ing Mecc Ing Inf Ing Mecc Nascita 5/12/78 10/7/79 3/11/76 5/12/78

Modello Relazionale42 Chiave  Una chiave è un insieme di attributi che identificano univocamente le ennuple di una relazione Formalmente:  un insieme K di attributi è superchiave per r se r non contiene due ennuple distinte t 1 e t 2 con t 1 [K] = t 2 [K]  K è chiave per r se è una superchiave minimale per r (cioè non contiene propriamente un’altra superchiave)

Modello Relazionale43 Una chiave  Matricola è una chiave: è superchiave contiene un solo attributo e quindi è minimale Matricola Nome Mario Piero Mario Mario Cognome Rossi Neri Rossi Piero Corso Ing Inf Ing Mecc Ing Inf Ing Mecc Nascita 5/12/78 10/7/79 3/11/76 5/12/78

Modello Relazionale44  Cognome, Nome, Nascita è un’altra chiave: è superchiave minimale Matricola Nome Piero Mario Cognome Neri Mario Rossi Piero Corso Ing Inf Ing Mecc Ing Inf Ing Mecc Nascita 5/12/78 10/7/79 3/11/76 5/12/78 Mario Rossi 5/12/78 Rossi Mario 3/11/76 Mario Un'altra chiave

Modello Relazionale45  Non ci sono ennuple uguali su Cognome e Corso: Cognome e Corso formano una chiave?  Ma è sempre vero? Matricola Nome Mario Piero Mario Mario Cognome Rossi Neri Rossi Piero Corso Ing Inf Ing Mecc Ing Inf Ing Civile Ing Mecc Nascita 5/12/78 10/7/79 3/11/76 5/12/78 Un'altra chiave??

Modello Relazionale46 Vincoli, schemi e istanze  i vincoli corrispondono a proprietà del mondo reale modellato dalla base di dati  interessano a livello di schema (con riferimento cioè a tutte le istanze lecite)  ad uno schema associamo un insieme di vincoli e consideriamo corrette le istanze che soddisfano tutti i vincoli  un'istanza può soddisfare altri vincoli (“per caso”)

Modello Relazionale47  chiavi: Matricola Cognome, Nome, Nascita MatricolaNomeCognomeCorsoNascita Studenti

Modello Relazionale48  È corretta: soddisfa i vincoli  Ne soddisfa anche altri ("per caso"): Cognome, Corso è chiave Matricola Nome Mario Piero Mario Mario Cognome Rossi Neri Rossi Piero Corso Ing Inf Ing Mecc Ing Inf Ing Civile Ing Mecc Nascita 5/12/78 10/7/79 3/11/76 5/12/78

Modello Relazionale49 Esistenza delle chiavi  Una relazione non può contenere ennuple distinte ma uguali  Ogni relazione R(X) ha come superchiave l’insieme degli attributi X su cui è definita  e quindi ha (almeno) una chiave

Modello Relazionale50 Importanza delle chiavi  l’esistenza delle chiavi garantisce l’accessibilità a ciascun dato della base di dati e la loro univoca identificabilità  le chiavi permettono di correlare i dati in relazioni diverse: il modello relazionale è basato su valori

Modello Relazionale51 Chiavi e valori nulli  In presenza di valori nulli, i valori della chiave non permettono di identificare le ennuple di realizzare facilmente i riferimenti da altre relazioni

Modello Relazionale52 Matricola Nome Piero Mario87654 NULL Mario Cognome Neri Rossi NeriMario Corso Ing Mecc Ing Inf Ing Civile NULL Nascita NULL Mario NULL Ing Inf 5/12/78 10/7/79 NULL 3/11/76 5/12/78 Mario87654 NULL Neri Mario Ing Inf NULL 5/12/78 NULL Mario NULL Ing Inf 5/12/78 Troppi valori nulli

Modello Relazionale53 Chiave primaria  Chiave su cui non sono ammessi nulli  Notazione: sottolineatura Matricola Nome Piero Mario Mario Cognome Neri Rossi NeriMario Corso Ing Mecc Ing Inf Ing Civile NULL Nascita 86765Mario NULL Ing Inf 5/12/78 10/7/79 NULL 3/11/76 5/12/78

Modello Relazionale54  informazioni in relazioni diverse sono correlate attraverso valori comuni  in particolare, valori delle chiavi (primarie)  le correlazioni debbono essere "coerenti" Vincoli di integrità referenziale

Matricola Vigili Cognome Rossi Neri Nome Luca Piero Mario MoriGino7543 Infrazioni Codice Data 1/2/95 4/3/95 5/4/96 5/2/98 Vigile ProvNumero MI TO PR 39548K E

Auto ProvNumero MI TO PR 39548K E Cognome Rossi Neri Nome Mario Luca Infrazioni Codice Data 1/2/95 4/3/95 5/4/96 5/2/98 Vigile ProvNumero MI TO PR 39548K E MI TO PR 39548K E MI TO PR 39548K E

Modello Relazionale57 Un vincolo di integrità referenziale (“foreign key”) fra gli attributi X di una relazione R 1 e un’altra relazione R 2 impone ai valori su X in R 1 di comparire come valori della chiave primaria di R 2 Vincolo di integrità referenziale

Modello Relazionale58  vincoli di integrità referenziale fra: l’attributo Vigile della relazione INFRAZIONI e la relazione VIGILI gli attributi Prov e Numero di INFRAZIONI e la relazione AUTO

Modello Relazionale59 Infrazioni Codice Data 1/2/95 4/3/95 5/4/96 5/2/98 Vigile ProvNumero MI TO PR 39548K E Auto ProvNumero MI TO PR E39548 F Cognome Rossi Neri Nome Mario Luca TOE39548 TO E39548 Violazione di vincolo di integrità referenziale

Modello Relazionale60 Vincoli di integrità referenziale: commenti  Giocano un ruolo fondamentale nel concetto di “modello basato su valori.” In presenza di valori nulli i vincoli possono essere resi meno restrittivi Attenzione ai vincoli su più attributi

Modello Relazionale61 Integrità referenziale e valori nulli Impiegati Matricola Cognome Rossi Neri Verdi Progetto IDEA XYZ NULL Progetti Codice IDEA BOH XYZ Inizio 01/ / /2001 Durata Costo BianchiIDEA

Modello Relazionale62 Auto ProvNumero MI TO PR 39548K E Cognome Rossi Neri Nome Mario Luca Incidenti Codice Data 1/2/95 5/4/96 ProvBNumeroB MI TO 39548K E39548 ProvANumeroA TO PR E Vincoli multipli su più attributi

Modello Relazionale63  vincoli di integrità referenziale fra: gli attributi ProvA e NumeroA di INCIDENTI e la relazione AUTO gli attributi ProvB e NumeroB di INCIDENTI e la relazione AUTO  L'ordine degli attributi è significativo

Modello Relazionale64 Operazioni del modello relazionale  Operazioni di recupero  Operazioni di aggiornamento Inserimento Cancellazione Modifica Ogni operazione di aggiornamento può violare dei vincoli specificati sullo schema

Modello Relazionale65 Inserimento  L’operazione di inserimento fornisce un elenco di valori di attributi per una nuova t-upla da inserire in una relazione R.  Può violare i vincoli: di n-upla assegnazione di valore nullo o già esistente a una chiave integrità referenziale Generalmente il DBMS rifiuta inserimenti che violano i vincoli

Modello Relazionale66 Cancellazione  Può violare l’integrità referenziale, se la t-upla cancellata è riferita dalle chiavi esterne di altre t-uple della base di dati  Azioni compensative: Rifiutare la cancellazione Far ricadere in cascata la cancellazione Modifcare gli attributi riferenti che causano la violazione (es. porre NULL questi attributi)

Modello Relazionale67 Eliminazione in cascata Impiegati Matricola Cognome Rossi Neri Verdi Progetto IDEA XYZ NULL 73032BianchiIDEA Progetti Codice IDEA BOH XYZ Inizio 01/ / /2001 Durata Costo XYZ07/ XYZ07/ XYZ07/ NeriXYZ

Modello Relazionale68 Introduzione di valori nulli Impiegati Matricola Cognome Rossi Neri Verdi Progetto IDEA XYZ NULL 73032BianchiIDEA Codice IDEA BOH XYZ Inizio 01/ / /2001 Durata Costo XYZ07/ XYZ07/ XYZ07/ NULL Progetti

Modello Relazionale69 Modifica  E’ usata per cambiare i valori di uno o più attributi di t-uple presenti in una qualche relazione  Se l’attributo non è chiave primaria o chiave esterna non ci sono problemi  Altrimenti l’operazione si può ricondurre a una combinazione di operazioni di cancellazione e inserimento con le conseguenti azioni compensative in caso di violazione

Modello Relazionale70 Base di dati per la gestione dell’attività dell’ufficio biciclette Obiettivo (del progetto) è la realizzazione di un sistema informatico in grado di gestire le attività dell’ufficio biciclette. Tale ufficio fornisce ai cittadini una gamma completa di servizi che comprende l’installazione/rimozione di rastrelliere, la gestione di parcheggi custoditi, la marcatura delle biciclette per disincentivare i furti e la rimozione delle biciclette in divieto di sosta o abbandonate. Il sistema informatico permetterà di: reperire le informazioni sulle installazioni delle rastrelliere e sulle rimozioni delle biciclette; registrare ordini e pagamenti verso le ditte esterne; fornire diversi diritti sulle operazioni del sistema in base al tipo di utente; fornire ai cittadini la visualizzazione di tre tipi di mappe: una relativa ai furti, una alla locazione delle rastrelliere e una ai parcheggi; immagazzinare le informazioni relative alle biciclette marcate.

Modello Relazionale71 Base di dati