Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
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
Modello relazionale
Formalizzando:
- L'associazione fra domini e attributi è definita da una funzione dom: X→D che associa a ciascun attributo un dominio.
- Una tupla su un insieme di attributi X è una funzione che associa a ciascun attributo A in X un valore del dominio dom(A).
- Una relazione su X è un insieme di tuple su X.
Notazioni:
- Se t è una tupla su X e A∈X, allora t[A] (o t. A) indica il valore di t su A.
- Nell'esempio, se t è la prima tupla della tabella t[Fuori] = Lazio.
- La stessa notazione è estesa anche ad insiemi di attributi, nel qual caso denota tuple: t[Fuori,RetiF] è una tupla su due attributi.
Tabelle e relazioni:
- Una tabella rappresenta una relazione se:
- I valori di ciascuna colonna sono fra loro omogenei (dallo stesso dominio).
- Le righe sono diverse fra loro.
- Le intestazioni (attributi) delle colonne sono.
diverse tra loro• Inoltre, in una tabella che rappresenta una relazione– l’ordinamento tra le righe è irrilevante– l’ordinamento tra le colonne è irrilevante
12Modello relazionaleIl modello relazionale è basato su valori• i riferimenti fra dati in relazioni diverse sono rappresentati permezzo di valori dei domini che compaiono nelle ennuple• Nel modello relazionale, non è definito il concetto di puntatore
13Modello relazionale
14Modello relazionale
15Modello relazionaleVantaggi della struttura basata su valori• indipendenza dalle strutture fisiche (si potrebbe avere anchecon puntatori di alto livello) che possono cambiare anchedinamicamente• si rappresenta solo ciò che è rilevante dal punto di vistadell’applicazione (dell’utente); i puntatori sono menocomprensibili per l’utente finale (senza, l’utente finale vede glistessi dati dei programmatori)• i dati sono
1relazione: come il nome della relazione, ma in minuscolo
schema di base di dati: lettera maiuscola in grassetto R, S, ...
base di dati: stesso simbolo dello schema, ma in minuscolo 18
Modello relazionale Esempio• sono possibili relazioni su un solo attributo 19
Modello relazionale Strutture nidificate 20
Modello relazionaleRappresentazione di strutture nidificate permezzo di relazioni 21
Modello relazionale• Abbiamo rappresentato veramente tutti gli aspetti delle ricevute?• Dipende da che cosa ci interessa realmente!– l'ordine delle righe e' rilevante?– possono esistere linee ripetute in una ricevuta?• Sono possibili rappresentazioni diverse 22
Modello relazionale Rappresentazione alternativa 23
Modello relazionale Informazione incompleta• ll modello relazionale impone ai dati una struttura rigida:– le informazioni sono rappresentate per mezzo di ennuple– solo alcuni formati di ennuple sono
Ammessi: quelli che corrispondono agli schemi di relazione
I dati disponibili possono non corrispondere esattamente al formato previsto, per varie ragioni.
Modello relazionale
Informazione incompleta: motivazioni
- Firenze è provincia, ma non conosciamo l'indirizzo della prefettura
- Tivoli non è provincia: non ha prefettura
- Prato è "nuova" provincia: ha la prefettura?
Modello relazionale Tipi di valore nullo
- (almeno) tre casi differenti
- valore sconosciuto: esiste un valore del dominio, ma non è noto (Firenze)
- valore inesistente: non esiste un valore del dominio (Tivoli)
- valore senza informazione: non è noto se esista o meno un valore del dominio (Prato)
I DBMS non distinguono i tipi di valore nullo (e quindi implicitamente adottano il valore senza informazione)
Modello relazionale Informazione incompleta: soluzioni?
non conviene (anche se spesso si fa) utilizzare
valori ordinari del dominio (0, stringa nulla, "99", etc), per vari motivi: - potrebbero non esistere valori "non utilizzati" - valori "non utilizzati" potrebbero diventare significativi - in fase di utilizzo (ad esempio, nei programmi) sarebbe necessario ogni volta tener conto del "significato" di questi valori Modello relazionale Informazione incompleta nel modello relazionale - Si adotta una tecnica rudimentale ma efficace: - valore nullo: denota l'assenza di un valore del dominio (e non è un valore del dominio) - Formalmente, è sufficiente estendere il concetto di tupla: t[A], per ogni attributo A, è un valore del dominio dom(A) oppure il valore nullo NULL - Si possono (e debbono) imporre restrizioni sulla presenza di valori nulli Modello relazionale Troppi valori nulli! Modello relazionale Vincoli di integrità - Esistono istanze di basi di dati che, pursintatticamente corrette, non rappresentano informazioni possibili per l'applicazione di interesse.
Modello relazionale Vincolo di integrità
- Definizione - proprietà che deve essere soddisfatta dalle istanze che rappresentano informazioni corrette per l'applicazione. Ogni vincolo può essere visto come una funzione booleana (o un predicato) che associa ad ogni istanza il valore vero o falso.
- Tipi di vincoli:
- vincoli intrarelazionali; casi particolari:
- vincoli su valori (o di dominio)
- vincoli di tupla
- vincoli interrelazionali
Modello relazionale Vincoli di integrità, motivazioni
- risultano utili al fine di descrivere la realtà di interesse in modo più accurato di quanto le strutture permettano;
- forniscono un contributo verso la "qualità dei dati";
- costituiscono uno strumento di ausilio alla progettazione (vedremo la "normalizzazione");
- sono
Corso è superchiave minimale e quindi chiave. Possiamo dire che questa proprietà è sempre soddisfatta? - No! In generale ci possono essere in un corso di studio studenti con lo stesso cognome.
Modello relazionale Chiavi, schemi e istanze:
- I vincoli corrispondono a proprietà del mondo reale modellato dalla base di dati.
- Quindi interessano a livello di schema (con riferimento cioè a tutte le istanze):
- Ad uno schema associamo un insieme di vincoli e consideriamo corrette (lecite, valide, ammissibili) solo le istanze che soddisfano tutti i vincoli.
- Singole istanze possono soddisfare ulteriori vincoli ("per pura coincidenza").
Modello relazionale Individuazione delle chiavi:
- Definendo uno schema di relazione, associamo ad esso i vincoli di chiave che vogliamo siano soddisfatti dalle sue istanze (corrette).
- Li individuiamo considerando le proprietà che i dati
soddisfa nell'applicazione (il "frammento di mondo reale di interesse); - notando quali insiemi di attributi permettono di identificare univocamente le ennuple; - e individuando i sottoinsiemi minimali di tali insiemi che conservano la capacità di identificare le ennuple.
Modello relazionale
Individuazione delle chiavi, esempio
Allo schema di relazione STUDENTI (Matricola, Cognome, Nome, Corso, Nascita) associamo i