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



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

MODELLO RELAZIONALE. Introduzione

Vincoli di integrità

Cardinalità e identificatori. Informatica. Generalizzazioni. Generalizzazioni. Generalizzazioni. Generalizzazioni

Elena Baralis 2013 Politecnico di Torino 1

BASE DI DATI: sicurezza. Informatica febbraio ASA

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

Modulo 2 Data Base 2

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

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

Progettazione di Basi di Dati

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

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

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

Il modello relazionale

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

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

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

Il Modello Relazionale

Il Modello Relazionale

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

Data Base Relazionali

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

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

Organizzazione degli archivi

Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci

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

IL MODELLO RELAZIONALE

Definizione di domini

Corso di Informatica (Basi di Dati)

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

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

MODELLO RELAZIONALE. cesarini-bdsi mod relazionale 1 MODELLO RELAZIONALE

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

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

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

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

Informatica (Basi di Dati)

BASI DI DATI - : I modelli di database

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

Il modello relazionale dei dati

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

Progettazione di Database. Un Esempio

Il Modello Relazionale

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

Il database management system Access

Basi di Dati e Microsoft Access

Il modello relazionale

Corso di Access. Prerequisiti. Modulo L2A (Access) 1.1 Concetti di base. Utilizzo elementare del computer Concetti fondamentali di basi di dati

Informatica (Basi di Dati)

ARCHIVI E DATABASE (prof. Ivaldi Giuliano)

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

Capitolo 2. Esercizio 2.1. Esercizio 2.2

database: modello entityrelationship

Corso sul linguaggio SQL

Le Basi di Dati. Le Basi di Dati

DDL, VINCOLI D INTEGRITÁ, AGGIORNAMENTI E VISTE. SQL è più di un semplice linguaggio di interrogazione

Il Modello Relazionale (1)

Archivi e Basi di Dati

DBMS (Data Base Management System)

DATABASE. A cura di Massimiliano Buschi

LA NORMALIZZAZIONE. Introduzione

Database. Si ringrazia Marco Bertini per le slides

Basi di dati 9 febbraio 2010 Compito A

Segreteria da campo. Database Relazionali

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

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

ALGEBRA DELLE PROPOSIZIONI

Sistemi Informativi e Basi di Dati

Alessandra Raffaetà. Basi di Dati

Basi di Dati: Corso di laboratorio

I DATABASE Database relazionale

MODELLO E/R. Modellazione dei dati

TEORIA sulle BASI DI DATI

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

Progettazione di un Database

SQL SQL. Definizione dei dati. Domini. Esistono 6 domini elementari:

DATABASE RELAZIONALI

Basi di Dati. Programmazione e gestione di sistemi telematici

Informatica per le discipline umanistiche 2 lezione 10

Esercizio sui data base "Gestione conti correnti"

Esercizio data base "Biblioteca"

Unità C1 Modello logico

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

Facoltà di Farmacia - Corso di Informatica

Organizzazione delle informazioni: Database

IL SISTEMA INFORMATIVO

NORMALIZZAZIONE DI SCHEMI RELAZIONALI. Prof.ssa Rosalba Giugno

Basi di Dati. Progettazione del Modello ER. K. Donno - Progettazione del Modello ER

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

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

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

I database. Cosa sono e a cosa servono i Database

Database/Banche Dati/Sistemi Informativi

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

SISTEMI INFORMATIVI AVANZATI -2010/ Introduzione

Uso delle basi di dati DBMS. Cos è un database. DataBase. Esempi di database

Operazioni sui database

Transcript:

Adottato Il Definisce dalla modello come maggior sono parte dei DBMS in commercio relazionale organizzati i dati e non come sono poi Codd, 1970 Il di preoccuparsi modello concetto tabellaèintuitivo relazionale di del relazioneproviene livello permette fisicoovvero di trattare dalla di come matematica i dati i dati ad sono un livello mentre effettivamente logicosenza quello elaborati le strutture e memorizzati. fisiche con cui Per sono accedere realizzati! ai dati non ènecessario conoscere memorizzati e gestiti dal sistema informatico Relazione - Tabella I Implicazioni Le dati sono visti come tabelle Struttura Gli tabelle soddisfano dei vincoli di integrità (relazioni) Integrità tabelle operatori (relazioni) sono a disposizione operatori che per derivano manipolare tabelle la tabelle (relazioni) da Manipolazione 1 2

Consideriamo dipendenti l insieme dei Nomi e dei numeri di telefono dei Prodotto cartesiano 2345 Mario Rossi 2367 (NOME,TELEFONO) Il prodotto cartesianod1xd2èl insieme di tutte D2 le coppie ordinate Luca Verdi 2378 Anna Bianchi 2356 Mario Rossi Prodotto Luca cartesiano Verdi 2356 2 2345 2367 elementi Il prodotto cartesiano Anna contiene Bianchitutte le 2378 2356 La possibili rubrica coppie degli dei insiemi numeri telefonici contiene possibili solo alcune associazioni di tuttele fra gli 3 4

Una Le sottoinsieme relazioni relazione si del possono matematicasugli prodotto visualizzare cartesiano insiemi efficacemente D1 D1e x D2D2(domini) con una èun Relazioni tabella riga a un elemento cui Mario ogni colonna della relazione corrisponde ad un dominio e ogni La rubrica contiene Luca La relazione Rossi 2345 solo le VerdiRUBRICA Anna Bianchi coppie (NOME,TELEFONO) 2356 2378 2367 che esistono 5 Si Il D1 possono,d2,,dnconsiderare ndomini non necessariamente distinti Una n-uple dominio prodotto (v1,v2,.., DicartesianoD1 vn) dove vièuno xd2 x xdncontiene dei possibili tutte valori le presenti possibile nel Il prodotto numero relazioner delle componenti sui domini R D1 D1 xd2 del,d2 x xdn prodotto,,dnèun (n) èdetto sottoinsieme gradodella del Un dominio relazione; della relazione. il numero n-uple della relazione èla cardinalità prodotto finite. può cartesiano avere dimensione èinfinito, mentre infinita possono (es. Di= essere N). In definite tal caso relazioni il 6 Definizione generale

D3= D1= Squadre di Serie A D2= Squadre di Serie A Risultati Relazione Numero D4= Numero Un delle esempio partite Lazio Fiorentina Milandella II giornata Inter Roma del campionato Bologna Udinese Bari Parma Lecce Perugia Napoli 1 1 Reggina Atalanta Verona Vicenza Juventus Brescia 023 02 Proprietà non delle relazioni le ciascunan-uplaèordinata una l i-esimovaloreprovienedall i-esimodominio n-uplesonodistinte c'èordinamentofrale n-uple relazione matematica è un insieme ordinate una relazione è insieme, quindi: Dn insieme di n-uple ordinate (d1,, dn) tali che d1 D1,, dn ciascuno dei domini ha un ruolo diverso, dipendente dalla posizione (struttura posizionale) 7 8

SquadraDiCasaSquadraOspiteRetiCasaRetiOspitata bologna parma 01 9 attributi e descrivono Ciascuna Gli record, omogenei ovvero n-upla una della relazione èsostanzialmente può essere vista un come insieme un di Si nome campi può attributi del accedere campo definiscono al valore di struttura un attributo del record di un ovvero record usando i suoi SquadraDiCasaSquadraOspitataRetiCasaRetiOspitata il Si usa il nome tuplaper Fiorentina Milan Bolognaindicare una Bari Parma Romariga di nvalori 03corrispondenti 01 ad attributi10 Relazioni con attributi Ogni n-upla della relazione stabilisce un legame fra i dati (definisce l esistenza di un fatto) Il significato dei valori dipende dall ordine con cui sono elencati nell n-upla Si può associare un nome alle componenti della n-upla I nomi associati ai domini si dicono attributi il ruolo che il dominio rappresenta nella relazione Record e campi tuple

Attributi e tuple che associa a ciascun attributo A X un dominio DOM(A) DOM: X D Se X è un insieme di attributi e D un insieme di domini, si stabilisce una corrispondenza fra attributi e domini con una funzione D 11 La funzione DOM corrisponde alla definizione del tipo dati di ogni attributo Una tupla su un insieme di attributi X è una funzione t che associa a ciascun attributo A X un valore in DOM(A) L insieme elemento l attributo) di del tutti dominio i valori (e possibili quindi i valori che può ammessi assumere per un Dominio: Gli dominio operatori che possono essere applicati ai valori di quel Operatori: N comparazione (INTEGER)(=,>,<), aritmetici (+,-,*,/) 12 Non è necessariamente legata alla rappresentazione Domini e tipi di dato Un dominio è praticamente un tipo di dato La definizione di un dominio comprende fisica dei dati

Data una SquadraDiCasaSquadraOspitataRetiCasaRetiOspitata Fiorentina tuplaposso estrarne il valore degli attributi Le tuple t[squadradicasa] t[squadraospitata] Roma = = Fiorentina Roma 3 1 Si possono estrarre t[squadradicasa,squadraospitata]= SquadraDiCasaSquadraOspitata anche insiemi di attributi ottenendo tuple Fiorentina Roma in In tuple una n-upla tupla gli per posizione e gli relazioni SquadraDiCasaSquadraOspitataRetiCasaRetiOspitata elementi sono individuati per attributi relazionefiorentina Milan Bologna serie ARoma Parma Bariserie A attributi30 N grado 10 N tuple domini cardinalità Una relazione su X è un insieme di tuple su X Si usa la definizione di tupla al posto di n-upla 13 14

Tabelle i e relazioni le valoridi righesonodiverse ognicolonnasonofraloroomogenei Una intestazionidelle colonnesonodiverse tabella rappresenta righeèirrilevante traloro una relazione se l ordinamentotrale colonneèirrilevante In una tabella che rappresenta una relazione Una Si possono Relazioni ottengono base di creare dati corrispondenze èin corrispondenzefra genere costituita le da tuple piùrelazioni di relazioni distinte e basi tuple di di relazioni dati Il gli indipendenzadallestrutturefisiche modello stessi valori relazionale su un insieme èbasato assegnato su valori di attributi diverse aventi sirappresentasolo l utentefinale i datisonoportabilipiùfacilmenteda puntatorisonodirezionali vedeglistessidatideiprogrammatori ciòcheèrilevanteunsistemaad unaltro 15 16

Corrispondenze fra relazioni Matricola Cognome Nome Data di nascita A80198760 Bianchi Anna 22/03/1967 A80293450 Rossi Andrea 13/04/1968 A80198330 Neri Luca 04/08/1970 A80295640 Felici Lorenzo 25/02/1969 A80197456 Melli Mara 17/10/1966 STUDENTI Studente Voto Corso A80198760 28 01 A80293450 30 04 A80198330 27 01 A80198330 25 03 A80197456 21 05 ESAMI Codice Titolo Docente 01 Analisi I Anna Verdi 03 Geometria Andrea Pitagora 04 Fisica I Luca Galileo 05 Chimica Lorenzo Argenti 17 CORSI Uno schema di relazioneècostituito dal nome della relazione e Schemi per basi di dati Uno da STUDENTI(Matricola,Cognome,Nome,Data un insieme di attributi X={A1, A2,, An} con nomi schema base di datièun insieme di schemi di Nascita) di relazioni R = { diversi: ESAMI(Studente,Voto,Corso), CORSI(Codice,Titolo,Docente) STUDENTI(Matricola,Cognome,Nome,Data } di Nascita), R={R1(X1), R2(X2),, Rm(Xm)} 18

Istanze di basi di dati Una istanza di relazione su uno schema R(X) è un insieme di r tuple su X Un istanza di base di dati su uno schema R={R1(X1), R2(X2),, Rm(Xm)} è un insieme di relazioni r = {r1,r2,...,rn}, dove ogni ri, per 1 i n, è una relazione dello schema Ri(Xi) 19 Archivio forniture Codice Descrizione Magazzino Costo A0001 Chiodi 35mm 234000 15 A0004 Viti 12mm 102400 25 P0010 Pinza 200 7000 P0230 Cacciavite 600 3500 PRODOTTI Articolo Quantita Data Cliente A0001 3000 25/06/2000 0034 A0004 500 25/06/2000 0034 P0010 3 12/07/2000 0001 P0230 2 13/07/2000 0101 A0004 100 15/07/2000 0034 FORNITURE Codice Nome Indirizzo PIVA 0001 Carlo Berti Via Roma 6 02332002 0034 BCD Spa Via Verdi 4 04554303 0101 A&G Srl Viale Morgagni 16 10920393 0076 Luca Nelli Piazza Bixio 5 08832822 CLIENTI 20

Sono Può un altra attributo ammesse relazioni un solo attributo Se essere relazione, Relazioni dell altra utilizzata relazione se per contiene selezionare valori che un sottoinsieme appaiono come delle valori tuple di di un un solo attributo piùefficiente booleano gli elementi nella questa del sottoinsieme soluzione piuttosto sono pochi che rispetto utilizzare al un totale attributo può essere Lavoratori Studenti relazionematricola 21 Cognome Nome Data di nascita M atricola A80198760 Bianchi Anna 22/03/1967 A80198760 A80293450 Rossi Andrea 13/04/1968 A80198330 A80198330 Neri Luca 04/08/1970 A80295640 Felici Lorenzo 25/02/1969 A80197456 Melli Mara 17/10/1966 Strutture Fattura n. nidificate A: PI: 2312 Dipartimento Computer 00874567434 1234 portatile di del Ingegneria 1/10/2001 Mouse IBM schede DB2 PS/2 SCSI personal 5000 Totale 5270 100 150 20 Rappresentare col modello relazionale un archivio di fatture emesse in seguito ad una fornitura di materiale 22

CodNome Relazioni per 0001Dipartimento 0034BCD strutture Spadi IngegneriaVia Indirizzo Roma Verdi 456 PIVA nidificate clienti 00874567434 045543038745 Num ero D ata Cliente Totale fatture 1234 01/10/2001 0001 5270 1235 02/10/2001 0101 10 1236 dettaglio 02/10/2001 0034 230 Fattura Quantita descrizione Prezzo 1234 2 Computer portatile 5000 1234 3 Mouse PS/2 20 1234 1 IBM DB2 personal 100 1234 2 Scheda SCSI 150 1235 1 Scatola di CD-RW 10 1236 1 Gamepad 30 1236 2 giochi 200 23 Strutture essere ci siano uniche) righe ripetute in una stessa fattura (le tuple devono nidificate: note Non fattura conti l ordine con cui devono essere riportate le righe nella Si aggiunge l attributo Rigaalla relazione Dettaglio Fatture è un attributo La base di dati precedente rappresenta correttamente le fatture purché: Si può arricchire la rappresentazione in modo che sia rappresentato l ordine del dettaglio Il campo Totale della relazione Fatture ridondante (potrebbe essere calcolato?) 24

Informazione incompleta Non Può accadere il valore di un attributo non sia disponibile L uso usato per tutte le tuple Non accede èdetto che esista un valore del dominio che non sia mai è corretto usare del utilizzato (es. fittizidei come ai valori dati valore si del deve valido dominio aver (es. chiaro può se generare l attributo quali sono confusione: èuna i valori data) veri quando e quelli si 0, 99, stringa vuota), per rappresentare l assenza dell informazione Si deve estendere il concetto di relazione... Si Il informazione introduce un nullo(null NULL) che denota l assenza di èsconosciuto valore sul valore di A può un attributo appartenere una a DOM(A) data tupla o essere NULL ll valore di un attributo èrealmente èsenza inesistente può (l attributo mancare non perché 0001 CodiceNome informazione(non Carlo Berti Indirizzo si Roma sa se 6esiste èapplicabile o PIVA meno) ad una data tupla) 0034 0101 BCD A&G Spa Srl Viale Verdi Morgagni 4 16NULL 04554303 inesistente sconosciuto 25 26

Non ammesso! Tuple non corrette???? 27 Può essere accettabile Occorre che le tuple rappresentino informazioni corrette per l applicazione Ex: Valori nulli Matricola Cognome Nome Data di nascita NULL Bianchi Anna 22/03/1967 A80293450 NULL NULL NULL A80197456 Melli Mara NULL Alcuni campi non possono assumere valori nulli! STUDENTI se non è un attributo essenziale Vincoli di integrità Un vincolo di integrità è una proprietà che deve essere soddisfatta dalle istanze della base di dati che rappresentano informazioni corrette per l applicazione Un vincolo può essere visto come un predicato che associa ad un istanza istanza di base di dati il valore vero o falso 28 ammissibile se Se il predicato assume il valore vero, l istanza soddisfa il vincolo Ad uno schema di base di dati si può associare un insieme di vincoli di integrità. Un istanza è ammissibile soddisfa tutti i vincoli definiti.

E definito Tipi rispetto ad una singola relazione. Può riguardare: di nel complesso vincolo le i uno valori tuple stesso ammessi indipendentemente valore per per un un (es. attributo dato non le une attributo possono (vincolo dalle A altre esistere -vincoli di dominio) (vincolo due di chiave) tuple di tupla) con Coinvolge riferimenti piùrelazioni appesi (vincoli di integritàreferenziale referenziale) Vincolo interrelazionale Vincolo intrarelazionale Vincolo 29 Vincoli ESAMI intrarelazionali Sono vincoli che coinvolgono il valore degli attributi all interno di una stessa relazione Non ci possono essere due studenti con matricola uguale! Studente Voto Lode Corso A80198760 37 01 A80293450 30 L 04 A80198330 22 01 A80198330 25 L 03 Valore non ammesso STUDENTI 30 Combinazione non ammessa Matricola Cognome Nome Data di nascita A80198760 Bianchi Anna 22/03/1967 A80293450 Rossi Andrea 13/04/1968 A80198760 Felici Lorenzo 25/02/1969 A80197456 Melli Mara 17/10/1966

Vincoli interrelazionali Sono vincoli che coinvolgono più relazioni Garantiscono l integrità dei riferimenti fra tabelle Studente Voto Corso A80198760 28 01 A80293450 30 04 A80198330 27 01 A80198330 25 03 A80197456 21 05? ESAMI Codice Titolo Docente 01 Analisi I Anna Verdi 03 Geometria Andrea Pitagora 04 Fisica I Luca Galileo 31 CORSI Vincoli di tupla NOT((Lode= L ) (Voto 18) AND AND (Voto 30) (Voto 30)) PAGAMENTI(Data,Importo,Ritenute,Netto) Netto = Importo-Ritenute Esprimono condizioni sui valori degli attributi ciascuna tupla indipendentemente dalle altre Sono espressi con predicati che devono essere veri per tutte le tuple Possono anche essere definite da espressioni aritmetiche che legano fra loro i valori degli attributi 32

Chiavi I vincoli di chiave sono fondamentali Una chiave è un insieme di attributi utilizzato per identificare univocamente le tuple di una relazione M a tric o la C o g n o m e N o m e D a ta d i n a sc ita C o r so NO A 8 0 1 9 8 7 6 0 R o ssi A n d rea 2 2 /0 3 /1 9 6 7 In g eg n e ria A 8 0 2 9 3 4 5 0 R o ssi L u c a 2 2 /0 3 /1 9 6 7 In g eg n e ria A 8 0 2 9 3 8 5 6 R o ssi F ilip p o 2 5 /0 2 /1 9 6 9 F isic a A 8 0 1 9 8 7 7 7 B ian ch i F ilip p o 2 5 /0 2 /1 9 6 9 L ette re A 8 0 1 9 7 4 5 6 B ian ch i F ilip p o 2 2 /1 0 /1 9 6 6 L ette re SI Matricola Nome, Cognome, Data di Nascita Nome, Cognome, Corso Cognome, Data di Nascita 33 Un non insieme contiene Kdi due attributi attributi tuple Kèchiave distinte èsuperchiaveper t1e t2 una con relazione t1[k]=t2[k] una relazione rse èuna rse r Superchiavi e chiavi {Matricola} superchiave che ècontenuta minimale(cioènon propriamente in esiste K) un altra superchiave K {Nome, Cognome, {Nome, Data di Nome} Nascita} {Matricola,... Cognome, Corso} Data di Nascita, Corso} 34 SUPERCHIAVI CHIAVI (Superchiavi Minimali)

Chiavi... per caso! Alcune combinazioni di attributi possono essere chiavi per caso per una data istanza di relazione M a tric o la C o g n o m e N o m e D a ta d i n a sc ita C o r so A 8 0 1 9 8 7 6 0 R o ssi A n d rea 2 2 /0 3 /1 9 6 7 In g eg n e ria A 8 0 2 9 3 4 5 0 R o ssi L u c a 2 2 /0 3 /1 9 6 7 In g eg n e ria A 8 0 2 9 3 8 5 6 R o ssi F ilip p o 2 5 /0 2 /1 9 6 9 F isic a A 8 0 1 9 8 7 7 7 B ian ch i F ilip p o 2 5 /0 2 /1 9 6 9 L ette re A 8 0 1 9 7 4 5 6 B ian ch i F ilip p o 2 2 /1 0 /1 9 6 6 L ette re Niente vieta che prima o poi possano iscriversi allo stesso corso due persone nate lo stesso giorno e con lo stesso nome 35 L insiemedi tuttigliattributix èunasuperchiavedato che I non possonoesistere2 tupleuguali validi vincoli per sono ogni definiti istanza a corretta livello di nel schema mondo e reale devono essere 36 campo ad hoc (ad esempio Scelta delle chiavi Ogni relazione r(x) ha sempre una chiave La scelta della chiave deve tenere conto delle proprietà del mondo reale da cui provengono i dati Può essere aggiunto un campo ad hoc la matricola) da usare come chiave

l esistenzadelle le di dati chiavigarantiscel accessibilitàa ciascundato dellabase Importanza delle chiavi ammetterevalorinulliper relazionaleèbasatosuvalorie ambiguità chiavipermettonodi correlarele gliattributidi non tuplein supuntatori) unachiavepuòcausare relazionidiverse (il modello 37 M a tricola C o g n o m e N o m e D a ta di n a scita C o rso A 8 0 1 9 87 7 7 B ianch i F ilip p o 2 5 /0 2 /1 9 69 L ettere N U L L B ianch i F ilip p o N U L L L ettere???? non può (es. èdetto essere codice progressivo) generato che tale attributo in modo automatico abbia un significato all atto dell inserimento per l applicazione 38 M a tricola C o g n o m e N o m e D a ta di n a scita C o rso A 8 0 1 9 87 7 7 B ianch i F ilip p o 2 5 /0 2 /1 9 69 L ettere A 8 0 7 1 01 1 1 B ianch i F ilip p o 2 2 /0 9 /1 9 71 L ettere Chiavi primarie E una chiave su cui sono vietati i valori nulli Si può sempre definire un attributo che ha la proprietà di essere una chiave primaria

Le per corrispondenze mezzo dei valori fra di i chiavi dati in delle relazioni tuplediverse si stabiliscono Integrità referenziale Matricola Cognome Nome 672 Rossi Mario 223 Verdi Francesco 532 Belli Carlo AGENTI Codice Data Agente Art Prov Numero 174655 25-12-1999 672 44 FI G03635 156732 13-05-2000 223 12 SI 734563 456345 17-08-1999 672 44 GR 234322 AUTO INFRAZIONI Prov Numero Proprietario Indirizzo FI G03635 Gilli Luca Via Oro SI 734563 Tilli Nedo Via Abete GR 234322 Billi Aldo Via Sole 39 Un soddisfatto di come attributi vincolo valori X di se della di integritàreferenziale i una valori chiave relazione su referenziale(foreign (primaria) X di ciascuna R1e un altra dell istanza foreignkey tupla relazione key) in R1compaiono di fra R2un R2 èinsieme Codice Data Agente Art Prov Numero Occorre relazione definire INFRAZIONI un vincolo e la relazione di integritàreferenziale AGENTI (chiave fra primaria l attributo Matricola) Agente 40 dellaagenti Vincoli di integrità referenziale 174655 25-12-1999 672 44 FI G03635 156732 13-05-2000 223 12 SI 734563 456345 17-08-1999 345 44 GR 234322? INFRAZIONI Matricola Cognome Nome 672 Rossi Mario 223 Verdi Francesco 532 Belli Carlo

Un esempio Targa Proprietario Indirizzo BE370TZ Fabio Rossi Via Abete 13 Siena FIG04546 Giovanni Neri Via Moro 7 Firenze 1) 2) vincolo e la relazione di integritàreferenziale AUTOVEICOLIfra l attributo Targa2 Targa1 della relazione INCIDENTI 41 INCIDENTI AB234TV Michele Bessi Via Sila 4 Terni TV443AZ Maria Bianchi Via Belli 4 Roma Codice Targa1 Targa2 Luogo Danni 5434 BE370TZ AB234TV Siena Fari 5534 FIG04546 TV443AZ Monteroni Paraurti AUTOVEICOLI Rifiutodell'operazione Azioni compensative Eliminazionein Introduzionedi cascata valorinulli impiegati M atricola C ognom e P rogetto A 007 R ossi 672 C A 015 V erdi 223 A 016 B elli 532 un operazione causa una violazione di un vincolo di integrità referenziale... cosa accade? Es. cancellazione di una tupla referenziata od ic e progetti In izio D u ra ta 6 72 1 /1 0 /2 00 1 1 2 2 23 1 /1 2 /2 00 1 2 4 5 32 6 /1 1 /2 00 1 6 42

impiegati Azioni compensative sostituzione [esempio] impiegaticon valori nulli M atricola C ognom e P rogetto A 007 R ossi 672 A 015 V erdi N U L L M atricola C ognom e P rogetto progetti progetti C od ic e In izio D u ra ta 6 72 1 /1 0 /2 00 1 1 2 A 016 B elli 532 2 23 1 /1 2 /2 00 1 2 4 5 32 6 /1 1 /2 00 1 6 cancellazione in cascata A 007 R ossi 672 C od ic e In izio D u ra ta A 015 V erdi 223 6 72 1 /1 0 /2 00 1 1 2 A 016 B elli 532 2 23 1 /1 2 /2 00 1 2 4 5 32 6 /1 1 /2 00 1 6 43