Vincoli di Integrità Non tutte le combinazioni possibili di valori dei domini su cui è definita una relazione sono accettabili. Alcuni attributi possono.

Slides:



Advertisements
Presentazioni simili
Algebra Relazionale Linguaggio procedurale, cioè le operazioni vengono descritte attraverso la descrizione della sequenza di azioni da compiere per ottenere.
Advertisements

Relazioni Relazione : concetto mutuato dalla definizione di relazione matematica della teoria degli insiemi, come sottoinsieme del prodotto cartesiano.
Informazione incompleta Le tuple che compongono la base di dati devono essere omogenee. Quindi ad ogni attributo deve essere associato un valore in ogni.
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 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.
Il Modello Relazionale. I modelli logici dei dati Tradizionalmente, esistono tre modelli logici: –gerarchico –reticolare –relazionale I modelli gerarchico.
Basi di dati - Fondamenti
Il modello logico Il modello logico.
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning
Progettazione di una base di dati relazionale
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Rileaborato da M. Lenzerini - Basi di dati
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning
Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Le operazioni relazionali
Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Il Modello Relazionale
Secondo Compito: PROGETTAZIONE DI UN DATABASE Claudia Angione
PROGETTAZIONE DATABASE SECONDO COMPITO CAROLINA CASIELLO
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Universita’ di Milano Bicocca Corso di Basi di Dati 1 in eLearning C
Atzeni-Ceri-Paraboschi-Torlone, Basi di dati, Capitolo 3
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Progettazione di una base di dati relazionale
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
A. A – 2008 Basi di dati 1 Corso Prof
Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Corso di Basi di Dati Il Linguaggio SQL
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Progettazione di una base di dati relazionale
Universita’ di Milano Bicocca Corso di Basi di Dati 1 in eLearning C
Definizione e caratteristiche
Progettazione di una base di dati relazionale
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Integrità referenziale
La normalizzazione delle relazioni
Basi di Dati e Sistemi Informativi
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Interrogazione di una base di dati relazionale
Interrogazione di una base di dati relazionale
Un’università vuole raccogliere ed organizzare in un database
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Progettazione di una base di dati relazionale
I vincoli di integrità Alcuni aspetti della realtà NON possono essere modellati solamente con entità, attributi e relazioni, per esempio i vincoli di integrità.
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Il modello relazionale
Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Progettazione logica: Il modello relazionale
OBJECT ORIENTED DATABASE
Partizionamento/accorpamento di concetti
OGGETTO E TIPO DI OGGETTO
Modello Relazionale Proposto agli inizi degli anni ‘70 da Codd
Dipendenze funzionali
Join, una difficoltà Impiegato Reparto Rossi A Neri B Bianchi Reparto
Il modello relazionale
Selezione e Proiezione
Il questionario: progettazione e redazione II Modulo
Definizione e caratteristiche
Transcript della presentazione:

Vincoli di Integrità Non tutte le combinazioni possibili di valori dei domini su cui è definita una relazione sono accettabili. Alcuni attributi possono assumere valori in un certo range Alcuni attributi devono essere diversi in ogni tupla della stessa relazione Es. valori dell’attributo Matricola in una relazione del tipo Studenti(Matricola, Cognome, Nome, DataNascita)

Vincoli di Integrità Alcuni valori possono essere incompatibili con altri all’interno della stessa relazione Es. data la relazione Esami(Matricola, Voto, Lode, CodCorso) una stessa coppia Matricola,Corso può apparire una sola volta Il valore Vero per l’attributo Lode è corretto solo se Voto=30 Alcuni valori possono essere incompatibili con i valori di un’altra relazione Es. Data la relazione Esami e la relazione Corsi(CodCorso, Titolo, Docente) ogni valore di CodCorso in Esami deve essere un valore esistente di CodCorso in Corsi

Vincoli di Integrità Sono condizioni, sotto forma di predicati logici, che sono inserite nella base di dati per garantirne la consistenza. Ogni istanza della base di dati deve soddisfare i vincoli di integrità (il predicato deve assumere valore vero). Una istanza che soddisfi tutti i vincoli è detta corretta (o lecita o ammissibile)

Vincoli di Integrità Possono essere di vario tipo: Intrarelazionale se coinvolge attributi della stessa relazione Vincoli di tupla possono essere valutati su ciascuna tupla indipendentemente dalle altre Vincoli di dominio sono definiti su singoli valori Interrelazionale se coinvolge più relazioni

Vincoli di tupla Possono essere definiti attraverso operatori booleani (Voto >= 18) AND (Voto <= 30) (NOT (lode=Vero)) OR (Voto=30) oppure, data la relazione Pagamenti(Data, Importo, Ritenute, Netto) Netto = Importo - Ritenute

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

Chiavi Una chiave è un insieme minimale di attributi utilizzato per identificare univocamente le tuple di una relazione. Formalmente: Un insieme di attributi K è superchiave per una relazione r se r non contiene due tuple t1 e t2 tali che t1[K] = t2[K] Un insieme di attributi K è chiave per r se è superchiave minimale, cioè se non esiste un’altra superchiave K’ che sia sottoinsieme di K

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

Chiavi Una chiave è tale se soddisfa la definizione per tutte le possibili tuple appartenenti alla relazione, e non solo per quelle che effettivamente appaiono come istanze della relazione stessa. Quindi la chiave è legata allo schema della relazione. Ogni relazione, per definizione, possiede una chiave. Infatti l’insieme X su cui è definita è sicuramente superchiave.

Chiavi La presenza di valori nulli in una chiave può vanificare la proprietà di unicità delle tuple identificate da una certa chiave. Si impone quindi che almeno una chiave non contenga valori nulli. Tale chiave è detta chiave primaria. Di solito la chiave primaria è sottolineata nello schema di una relazione. Es. Studenti(Matricola, Cognome, Nome, Nascita, Corso)

Vincoli di Integrità Referenziale In alcuni casi (corrispondenze fra relazioni) è necessario che i valori degli attributi di una relazione R1 si possano trovare anche in attributi corrispondenti di R2. Un vincolo di integrità referenziale (o foreign key) fra un insieme di attributi X di R1 e un’altra relazione R2 è soddisfatto se i valori su X di ciascuna tupla di R1 compaiono come valori della chiave (primaria) di R2. Non tutti i DBMS consentono di definire una chiave come primaria, in presenza di più chiavi. Quindi sarà necessario esprimere il vincolo specificando per esteso gli attributi dell’una e dell’altra relazione collegati dal vincolo stesso.

Algebra Relazionale Operatori: Linguaggio procedurale, in cui le operazioni vengono descritte descrivendo la procedura per ottenere la soluzione. Operatori: unione intersezione differenza derivati dalla teoria degli insiemi ridenominazione selezione proiezione specifici dell’algebra relazionale join che può assumere diverse forme (naturale, theta-join, prodotto cartesiano)

Operatori derivati dagli insiemi Le relazioni sono insiemi e quindi è naturale estendere ad esse le operazioni relative. Tuttavia le relazioni sono insiemi di tuple omogenee e quindi ha senso definire ed applicare tali operatori solo a tuple definite sugli stessi attributi. Es. l’unione fra due relazioni su tuple non omogenee non è una relazione.

Operatori derivati dagli insiemi Unione L’unione fra due relazioni r1 e r2 definite sullo stesso insieme di attributi X è indicata con r1  r2 ed è una relazione su X contenente le tuple che appartengono a r1 o r2 oppure ad entrambe. Intersezione L’intersezione fra due relazioni r1 e r2 definite sullo stesso insieme di attributi X è indicata con r1  r2 ed è una relazione su X contenente le tuple che appartengono sia a r1 che a r2. Differenza La differenza fra due relazioni r1 e r2 definite sullo stesso insieme di attributi X è indicata con r1 - r2 ed è una relazione su X contenente le tuple che appartengono a r1 e non a r2.

Unione Laureati Matricola 7432 9824 Età 54 45 Nome Neri Verdi 7274 42 Rossi Quadri Matricola 7432 9824 9297 Età 54 45 33 Nome Neri Verdi Laureati  Quadri Matricola Età Nome 7432 54 Neri 9824 45 Verdi 9297 33 7274 42 Rossi 7432 54 Neri 9824 45 Verdi 9297 33 7274 42 Rossi 7432 54 Neri 9824 45 Verdi 7274 42 Rossi 7432 54 Neri 9824 45 Verdi 9297 33

Intersezione Laureati Quadri Matricola 7432 9824 9297 Età 54 45 33 Nome Neri Verdi Matricola Nome Età 7274 42 Rossi 7432 7432 54 Neri 9824 45 Verdi Neri 54 9824 Verdi 45 Laureati  Quadri Matricola Età Nome 7432 54 Neri 9824 45 Verdi

Differenza Laureati Quadri Matricola 7432 9824 9297 Età 54 45 33 Nome Neri Verdi Matricola Età Nome 7432 54 Neri 9824 45 Verdi 7274 42 Rossi Laureati – Quadri Matricola Età Nome 7274 42 Rossi 7432 54 Neri 9824 45 Verdi 7274 42 Rossi 7432 54 Neri 9824 45 Verdi

Ridenominazione E’ un operatore che consente di modificare i nome di un attributo per poterlo associare ad un altro attributo in una operazione algebrica. Si indica con  nuovonome  vecchionome (Relazione) Es. date le relazioni Paternità(Padre, Figlio) e Maternità(Madre, Figlio) è possibile ottenere  Genitore  Padre(Paternità)   Genitore  Madre (Maternità)

 RENGenitore  Padre (Paternità) Genitore Figlio Adamo Caino Abramo Isacco Abele RENGenitore  Padre (Paternità)  RENGenitore  Madre (Maternità) Genitore Figlio Adamo Caino Abramo Isacco Abele RENGenitore  Madre (Maternità) Genitore Figlio Eva Set Sara Isacco Abele Eva Set Sara Isacco Abele