Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
vuoi
o PayPal
tutte le volte che vuoi
Formattazione del testo
NUMERO NOME
01 Progettazione Cosa c'è che non va ???
02 Amministrazione Sintatticamente è corretto ...
9 Informatica Generale Maria De Marsico
3 Una base di dati "scorretta"
Esami Studente Voto Lode Corso
276545 0132276545 30 si
02787643 27 si
03739430 15
04 Studenti Matricola Cognome Nome
276545 Rossi Mario
Neri Piero
787643787643 Bianchi Luca 10
Informatica Generale Maria De Marsico
Vincoli di integrità
Vincolo di integrità: proprietà che deve essere soddisfatta da ogni istanza della base di dati (legata quindi allo schema) specifiche del
I vincoli descrivono proprietà campo di applicazione, e quindi delle informazioni ad esso relative modellate attraverso la base di dati
Una istanza di base di dati è corretta se soddisfa tutti i vincoli di integrità associati al suo schema
Informatica Generale Maria De Marsico
Come evitare le "scorrettezze"
IMPIEGATO
CODICE COGNOME NOME RUOLO
DIPASSUNZIONECOD1 Rossi Mario Analista 1795 01
COD2 Bianchi Pietro Analista 1990 05
COD2 Neri Paolo Amministr 1985 01atore
DIPARTIMENTONUMERO NOME (ASSUNZIONE > 1980)
01 Progettazione COD2 UNIQUE
02 Amministrazione 12DIP REFERENCES DIPARTIMENTO.NUMERO
Informatica Generale Maria De Marsico 4
Come evitare le“scorrettezze”
Esami Studente Voto Lode Corso ≥ ≤(Voto 18) AND (Voto 30)
276545 0132276545 30 si 02 (Voto = 30) OR NOT (Lode = „si")
787643 27 si 03739430 24 04
Studente references Studenti.Matricola
Studenti Matricola Cognome Nome
276545 Rossi Mario Matricola unique
Neri Piero787643787643 Bianchi Luca 13
Informatica Generale Maria De Marsico
Vincoli di integrità
- Vincoli di dominio
- ASSUNZIONE > 1980≥ ≤
- (Voto 18) AND (Voto 30)
- Vincoli di tupla
- (Voto = 30) OR NOT (Lode = „si")
- Vincoli tra tuple della stessa relazione
- COD2 UNIQUE
- Matricola unique
- Vincoli tra valori in tuple di relazioni
diverse• DIP REFERENCES DIPARTIMENTO.NUMERO• Studente references Studenti.Matricola 14Informatica Generale Maria De Marsico
Vincoli di integrità• Vincoli intrarelazionali: definiti sui valori disingoli attributi (di dominio) o tra valori diattributi di una stessa tupla o tra tuple dellastessa relazione• Vincoli interrelazionali: definiti tra piùrelazioni• Non tutte le proprietà di interesse possonoessere rappresentate tramite vincoli espliciti 15Informatica Generale Maria De Marsico 5
Vincoli intrarelazionali• Vincolo di chiave primaria (primary key): unica emai nulla• Vincoli di dominio (es. ASSUNZIONE > 1980)• Vincoli di unicità (unique, Duplicati non ammessi)• Vincoli di esistenza del valore per un certo attributo(not null, Richiesto)• Espressioni sul valore di attributi della stessa tupla(es. data_arrivo < data_partenza) se arrivo epartenza ad esempio da un albergo 16Informatica Generale Maria De
MarsicoChiavi 1
- Occorre identificare univocamente le tuple di una istanza di relazione
- La chiave di una relazione è un attributo o insieme di attributi che identifica univocamente una tupla (significa che non possono esserci due tuple con valori uguali su quei campi!)
Informatica Generale Maria De Marsico
Esempio
- Istanza di relazione Staff
- CODICE
- COGNOME
- NOME
- RUOLO
- ASSUNZIONE
- Chiave? 18
Informatica Generale Maria De Marsico 6
Esempio
- Istanza di relazione Info_Città
- Città
- Regione
- Popolazione
- Chiave? Dipende...
Informatica Generale Maria De MarsicoChiavi 3
- Una relazione potrebbe avere più chiavi alternative
- Si sceglie quella più usata o quella composta da un numero minore di attributi = chiave primaria
- La chiave primaria non ammette
valori nulli
- Esiste sempre almeno una chiave … perché ?
- Sono le chiavi che consentono di mettere in relazione dati in tabelle diverse
Informatica Generale Maria De MarsicoEsempio
- Istanza di relazione Staff
- CF
- CODICE
- COGNOME
- NOME
- RUOLO
- ASSUNZIONE
- Chiavi?
- Secondo la definizione, è possibile che (Cognome, Ruolo) sia una chiave ?
Informatica Generale Maria De Marsico 7Vincoli interrelazionali
- Vincolo di integrità referenziale (foreign key): porzioni di informazione in relazioni diverse sono correlate attraverso valori di chiave
- Se una relazione fa riferimento al valore di un attributo o di un insieme di attributi che dovrebbecomparire in una seconda relazione, dobbiamo assicurarci che ciò avvenga realmente
- Un vincolo di integrità referenziale fra gli attributi X di una relazione R e
un'altra relazione R1 impone ai valori su X in R di comparire come valori della chiave primaria di R2
Informatica Generale Maria De Marsico
Infrazioni | Vigile | Prov | Numero | Data | Codice |
---|---|---|---|---|---|
34321 | 1/2/95 | 3987 | MI | 39548K | |
53524 | 4/3/95 | 3295 | TO | E39548 | |
64521 | 5/4/96 | 3295 | PR | 839548 | |
73321 | 5/2/98 | 9345 | PR | 839548 |
Vigili | Matricola | Cognome | Nome |
---|---|---|---|
3987 | Rossi | Luca | |
3295 | Neri | Piero | |
9345 | Neri | Mario | |
7543 | Mori | Gino |
Informatica Generale Maria De Marsico
Infrazioni | Codice | Data | Vigile | Prov | Numero |
---|---|---|---|---|---|
34321 | 1/2/95 | 3987 | MI | 39548K | |
53524 | 4/3/95 | 3295 | TO | E39548 | |
64521 | 5/4/96 | 3295 | PR | 839548 | |
73321 | 5/2/98 | 9345 | PR | 839548 |
Auto | Prov | Numero | Cognome | Nome |
---|---|---|---|---|
MI | 39548K | Rossi | Mario | |
TO | E39548 | Rossi | Mario | |
PR | 839548 | Neri | Luca |
Informatica Generale Maria De Marsico
8• vincoli di integrità referenziale fra:
- l'attributo Vigile della relazione INFRAZIONI e l'attributo Matricola (chiave) della relazione VIGILI
- gli attributi Prov e Numero di INFRAZIONI e gli attributi Prov e Numero (chiave) della relazione AUTO
25Informatica
Generale Maria De Marsico
Violazione di vincolo di integrità referenziale
Infrazioni
Codice | Data | Vigile | Prov | Numero |
---|---|---|---|---|
34321 | 1/2/95 | 3987 | MI | 39548 |
K53524 | 4/3/95 | 3295 | TO | E39548 |
64521 | 5/4/96 | 3295 | PR | 839548 |
73321 | 5/2/98 | 9345 | PR | 839548 |
Auto
Prov | Numero | Cognome | Nome | |
---|---|---|---|---|
MI | Rossi | Mario | ||
E39548 | TO | F34268 | Rossi | Mario |
PR | 839548 | Neri | Luca |
ATTENZIONE AI VINCOLI SU PIÙÙ ATTRIBUTI
PI 26
Informatica Generale Maria De Marsico
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
- E‘ possibile definire "azioni" compensative a seguito di violazioni
- Attenzione ai vincoli su più attributi
27
Informatica Generale Maria De Marsico 9
Integrità referenziale e valori nulli
Impiegati | Matricola | Cognome | Progetto |
---|---|---|---|
34321 | Rossi | IDEA | |
53524 | Neri | XYZ | |
64521 | Verdi | NULL | |
73032 | Bianchi | IDEA |
01/2000 36 200XYZ 07/2001 24 120BOH 09/2001 24 15028Informatica Generale Maria De Marsico
Azioni compensative:
- Esempio: Viene eliminata una ennupla causando una violazione
- Comportamento "standard":
- Rifiuto dell'operazione
- Azioni compensative:
- Eliminazione in cascata
- Introduzione di valori nulli
Eliminazione in cascata
Impiegati | Matricola | Cognome | Progetto |
---|---|---|---|
34321 | Rossi | IDEA | |
53524 | Neri | XYZ | |
64521 | Verdi | NULL | |
73032 | Bianchi | IDEA |
Introduzione di valori nulli
Impiegati | Matricola | Cognome | Progetto |
---|---|---|---|
34321 | Rossi | IDEA | |
53524 | Neri | XYZ | |
NULL | Verdi | NULL | |
73032 | Bianchi | IDEA |
Vincoli multipli su più attributi
Incidenti
Codice | Data | ProvA | NumeroA | ProvB | NumeroB |
---|---|---|---|---|---|
34321 | ... | ... | ... | ... | ... |
Collegamento ipertestuale | Proprietà dei campi |
---|---|
In base al tipo di campo, possono essere imposte ulteriori condizioni sui valori ammessi | Lo vedremo con la creazione delle tabelle |
Creazione tabelle in ACCESS | Crea una tabella in visualizzazione Struttura |
Il numero e il tipo di proprietà che possono essere impostate dipendono dal tipo di campo | Possiamo impostare dei criteri di validità. In questo esempio possiamo |