MODELLO RELAZIONALE La relazione su n insiemi A 1, A 2…., A n è un sottoinsieme dell insieme di...

19
MODELLO RELAZIONALE La relazione su n insiemi A 1, A 2…., A n è un sottoinsieme dell’ insieme di tutte le n-uple a 1, a 2,…., a n che si possono costruire prendendo nell’ordine un elemento a 1 dal primo insieme A 1, a 2 dal secondo insieme A 2 , e così via. Grado= n° di colonne della relazione; Attributo= nome della colonna; Dominio= insieme dei valori assunti da un attributo; Cardinalità= n° di righe (tuple) che compongono la relazione. 1 Somiglianza con la struttura di un file: record= tupla; campo= attributo; tabella= relazione. Rappresentazione: Automobili (Modello , Costruttore, Segmento, Prezzo, Acquirente) La chiave primaria è sottolineata, la chiave esterna è evidenziata in corsivo! Nel passaggio dall’ Entità (Modello E/R) alla Relazione il nome è convertito al plurale!

Transcript of MODELLO RELAZIONALE La relazione su n insiemi A 1, A 2…., A n è un sottoinsieme dell insieme di...

Page 1: MODELLO RELAZIONALE La relazione su n insiemi A 1, A 2…., A n è un sottoinsieme dell insieme di tutte le n-uple a 1, a 2,…., a n che si possono costruire.

MODELLO RELAZIONALE

La relazione su n insiemi A1, A2….,An è un sottoinsieme dell’ insieme di tutte le n-uple a1, a2,….,an che si possono costruire prendendo nell’ordine un elemento a1 dal primo insieme A1, a2 dal secondo insieme A2, e così via.

Grado= n° di colonne della relazione;

Attributo= nome della colonna;

Dominio= insieme dei valori assunti da un attributo;

Cardinalità= n° di righe (tuple) che compongono la relazione.

1

Somiglianza con la struttura di un file: record= tupla; campo= attributo; tabella= relazione.

Rappresentazione:Automobili (Modello, Costruttore, Segmento, Prezzo, Acquirente)

La chiave primaria è sottolineata, la chiave esterna è evidenziata in corsivo!Nel passaggio dall’ Entità (Modello E/R) alla Relazione il nome è convertito al plurale!

Page 2: MODELLO RELAZIONALE La relazione su n insiemi A 1, A 2…., A n è un sottoinsieme dell insieme di tutte le n-uple a 1, a 2,…., a n che si possono costruire.

CHIAVI ESTERNE E COMPOSTE

2

Una chiave esterna è un attributo che completa una relazione attraverso l’identificazione dell’ entità padre. Fornisce un metodo per mantenere l’integrità referenziale dei dati e per navigare tra le diverse istanze di un’ entità. Utilizza la notazione (fk) iniziali di «foreign key». Ogni relazione «1 a molti» nel modello deve essere supportata da una chiave esterna.

Una chiave composta è una chiave primaria formata da due o più attributi.

Città

ID_Città(pk)id_Nazione(fk)id_Continente(fk)

Continente

ID_Continente(pk)

appartiene

Nazione

ID_Nazione(pk)id_Continente(fk)appartiene forma

Page 3: MODELLO RELAZIONALE La relazione su n insiemi A 1, A 2…., A n è un sottoinsieme dell insieme di tutte le n-uple a 1, a 2,…., a n che si possono costruire.

MODELLO RELAZIONALE

Requisiti:1)Tutte le righe della tabella hanno lo stesso numero di colonne.2)Gli attributi rappresentano informazioni elementari, non scomponibili ulteriormente.3)I valori assunti da un campo sono omogenei tra loro, cioè dello stesso tipo.4)In una relazione ogni riga è diversa dall’altra per la funzione della chiave primaria; essa non può avere valore nullo o contenere nessun valore.5)Le n-uple compaiono nella tabella secondo un ordine non prefissato.

3

Regole di derivazione delle relazioni dal modello E/R:•Entità Relazione;•Attributo dell’entità Attributo della relazione;•Identificatore Chiave primaria;•Associazione 1:1 diventa un’ unica relazione che contiene gli attributi della prima e della seconda entità.

Cittadino Codice Fiscale

Corrisponde -->

AnagrafiTributarie (CodiceFiscale, Cognome, Nome, DataNascita, LuogoNascita)

Page 4: MODELLO RELAZIONALE La relazione su n insiemi A 1, A 2…., A n è un sottoinsieme dell insieme di tutte le n-uple a 1, a 2,…., a n che si possono costruire.

MODELLO RELAZIONALE

4

Regole di derivazione•Associazione 1:N viene rappresentata aggiungendo, agli attributi dell’entità che svolge il ruolo «a molti», l’identificatore univoco dell’entità che svolge il ruolo «a uno», che viene identificato come chiave esterna, inoltre sono aggiunti gli eventuali attributi dell’associazione.

Persona

CodiceFiscale(pk)NomeCognomeIndirizzo

Automobile

Targa(pk)ModelloProduttoreCilindrataPrezzoListino

DataAcquistoPrezzoAcquisto

Acquistare

Persone (CodiceFiscale, Nome, Cognome, Indirizzo)Automobili (Targa, Modello, Produttore, Cilindrata, PrezzoListino, CodiceFiscale, DataAcquisto, PrezzoAcquisto)

Page 5: MODELLO RELAZIONALE La relazione su n insiemi A 1, A 2…., A n è un sottoinsieme dell insieme di tutte le n-uple a 1, a 2,…., a n che si possono costruire.

MODELLO RELAZIONALE

5

Regole di derivazione•Associazione N:N diventa una nuova relazione (in aggiunta alle relazioni derivate dalle entità) composta dagli identificatori univoci delle due entità e dagli eventuali attributi dell’associazione. La chiave della nuova relazione è formata dall’insieme degli attributi chiave delle due entità più altri attributi dell’associazione necessari a garantire l’unicità delle tuple nella relazione ottenuta.

Studente

Matricola(pk)NomeCognomeIndirizzo

Materia

CodiceMateria(pk)NomeMateriaNumeroOre

DataVoto

Valutare

Studenti (Matricola, Nome, Cognome, Indirizzo)Materie (CodiceMateria, NomeMateria, NumeroOre)Valutazioni (Matricola, CodiceMateria, Data, Voto)

La chiave primaria di Valutazioni è formata da: Matricola, CodiceMateria, Data.

Page 6: MODELLO RELAZIONALE La relazione su n insiemi A 1, A 2…., A n è un sottoinsieme dell insieme di tutte le n-uple a 1, a 2,…., a n che si possono costruire.

OPERAZIONI RELAZIONALI

6

CodiceAgente NomeAgente Codice Zona

Bia Bianchi Nord

Ner Neri Centro

Ros Rossi Sud

Ver Verdi Isole

Agenti

Clienti

CodiceCliente RagioneSociale Provincia CodiceAgente

Lami Lamiere per Auto TO Bia

Levi Levigatoria Toscana FI Ner

Luci Lucidatura Metalli RM Ner

Meta Metallurgica Emiliana BO Ner

Metb Metalli Rari NA Ros

Rame Rame & Metalli PA Ver

Vite Viteria Lombarda MI Bia

Page 7: MODELLO RELAZIONALE La relazione su n insiemi A 1, A 2…., A n è un sottoinsieme dell insieme di tutte le n-uple a 1, a 2,…., a n che si possono costruire.

OPERAZIONI RELAZIONALI

7

SELEZIONE: genera una nuova relazione costituita solo dalle n-uple della relazione di partenza che soddisfano a una determinata condizione.Il grado della nuova relazione è pari a quello della relazione di partenza, mentre la cardinalità è minore o uguale.σPT indica un’operazione su T che estrae le sole righe per le quali P è vera.

Esempio. σPClienti Selezione di Clienti per Provincia= ‘MI’

CodiceCliente RagioneSociale Provincia CodiceAgente

Vite Viteria Lombarda MI Bia

Page 8: MODELLO RELAZIONALE La relazione su n insiemi A 1, A 2…., A n è un sottoinsieme dell insieme di tutte le n-uple a 1, a 2,…., a n che si possono costruire.

OPERAZIONI RELAZIONALI

8

PROIEZIONE: genera una nuova relazione estraendo dalla tabella iniziale solo alcune colonne.Il grado della nuova relazione è minore o uguale a quello della relazione di partenza, mentre la cardinalità è uguale (oppure minore).∏L T La lista L elenca le colonne da estrarre da T.

Esempio. ∏L Clienti Proiezione di Clienti su CodiceCliente, RagioneSociale

CodiceCliente RagioneSociale

Lami Lamiere per Auto

Levi Levigatoria Toscana

Luci Lucidatura Metalli

Meta Metallurgica Emiliana

Metb Metalli Rari

Rame Rame & Metalli

Vite Viteria Lombarda

Page 9: MODELLO RELAZIONALE La relazione su n insiemi A 1, A 2…., A n è un sottoinsieme dell insieme di tutte le n-uple a 1, a 2,…., a n che si possono costruire.

OPERAZIONI RELAZIONALI

9

CONGIUNZIONE (Join): tra due tabelle R e S combina due relazioni aventi uno o più attributi in comune, generando una nuova relazione le cui righe contengono gli attributi di R e S e abbinando le sole righe di R e S con valori identici negli attributi comuni. Se i gradi di partenza sono N1 e N2 e le due tabelle hanno K attributi in comune allora il grado della nuova relazione sarà N1 + N2 – K. La cardinalità non è prevedibile a priori. Esempio. RB,C SB,C

R S R JOIN SA B C

1 2 3

6 7 8

9 7 8

5 7 9

B C D

2 3 4

2 3 5

2 4 12

7 8 10

A B C D

1 2 3 4

1 2 3 5

6 7 8 10

9 7 8 10

Join naturale tra tabelle R e S, tale che vale la proprietà: R.B = S.B and R.C = S.C

Page 10: MODELLO RELAZIONALE La relazione su n insiemi A 1, A 2…., A n è un sottoinsieme dell insieme di tutte le n-uple a 1, a 2,…., a n che si possono costruire.

JOIN TRA TABELLE

10

RA SA Congiunzione di Clienti con Agenti su CodiceAgente

Clienti Join Agenti

CodiceCliente RagioneSociale Provincia CodiceAgente NomeAgente CodiceZona

Lami Lamiere per Auto TO Bia Bianchi Nord

Levi Levigatoria Toscana FI Ner Neri Centro

Luci Lucidatura Metalli RM Ner Neri Centro

Meta Metallurgica Emiliana BO Ner Neri Centro

Metb Metalli Rari NA Ros Rossi Sud

Rame Rame & Metalli PA Ver Verdi Isole

Vite Viteria Lombarda MI Bia Bianchi Nord

L’ equi-join permette di congiungere tabelle con valori uguali, ma nomi diversi, relativamente agli attributi.Agenti (CodiceAgente, NomeAgente, CodiceZona)Clienti (CodiceCliente, RagioneSociale, Provincia, AgenteDiZona) E’ possibile la join tra le due tabelle perchè CodiceAgente e AgenteDiZona sono attributi comuni anche se hanno nomi diversi !

Page 11: MODELLO RELAZIONALE La relazione su n insiemi A 1, A 2…., A n è un sottoinsieme dell insieme di tutte le n-uple a 1, a 2,…., a n che si possono costruire.

JOIN TRA TABELLE

11

Join esterno: è una congiunzione che restituisce le righe dell’una e dell’altra tabella anche se non sono presenti valori uguali per gli attributi comuni. Comprende: Left Join, Right Join e Full Join. R S R Left Join S

A B C

1 2 3

6 7 8

9 7 8

5 7 9

B C D

2 3 4

2 3 5

2 4 12

7 8 10

A B C D

1 2 3 4

1 2 3 5

6 7 8 10

9 7 8 10

5 7 9

A B C D

1 2 3 4

1 2 3 5

2 4 12

6 7 8 10

9 7 8 10

R Right Join S R Full Join SA B C D

1 2 3 4

1 2 3 5

2 4 12

6 7 8 10

9 7 8 10

5 7 9

Page 12: MODELLO RELAZIONALE La relazione su n insiemi A 1, A 2…., A n è un sottoinsieme dell insieme di tutte le n-uple a 1, a 2,…., a n che si possono costruire.

JOIN TRA TABELLE

12

Self Join: vengono combinate righe di una tabella con le righe della stessa tabella quando sono presenti valori corrispondenti per attributi, cioè due attributi con lo stesso dominio.

Impiegati

Codice Nome Stipendio Dir

1 Bianchi 26000 4

2 Neri 24000 4

3 Rossi 28000 4

4 Leoni 40000 5

5 Gatti 45000

Codice Nome Stipendio Dir NomeDir StipendioDir

DirDelDir

1 Bianchi 26000 4 Leoni 40000 5

2 Neri 24000 4 Leoni 40000 5

3 Rossi 28000 4 Leoni 40000 5

4 Leoni 40000 5 Gatti 45000

Page 13: MODELLO RELAZIONALE La relazione su n insiemi A 1, A 2…., A n è un sottoinsieme dell insieme di tutte le n-uple a 1, a 2,…., a n che si possono costruire.

OPERAZIONI RELAZIONALI

13

Le operazioni di selezione e proiezione hanno come operando una sola tabella, mentre la congiunzione opera su due o più tabelle.

•Gli operatori descritti possono essere combinati ed applicati in successione alle tabelle.Esempio. Per ottenere l’elenco delle ragioni sociali e degli agenti per i clienti di Roma, occorre applicare la seguente sequenza di operatori:OPERAZIONI RELAZIONALI

1) σP Clienti Temp1 = Selezione di Clienti per Provincia=‘RM’

2) Temp1A AgentiA Temp2 = Congiunzione di Temp1 e Agenti su CodiceAgente

3) ∏L Temp2 Proiezione di Temp2 su RagioneSociale, NomeAgente Theta Join tra due relazioni R e S è la relazione ottenuta componendo tutte le righe di R con tutte le righe di S e includendo nella congiunzione le sole righe che soddisfano a una determinata condizione. R P S (equivale al prodotto cartesiano R x S seguito da una selezione)

Esempio: Rep1 e Rep2 rappresentano i dipendenti di 2 reparti con i rispettivi stipendi. Condizione: lo stipendio dei dipendenti del primo reparto deve essere maggiore dello stipendio di quelli del secondo reparto.

Page 14: MODELLO RELAZIONALE La relazione su n insiemi A 1, A 2…., A n è un sottoinsieme dell insieme di tutte le n-uple a 1, a 2,…., a n che si possono costruire.

OPERAZIONI RELAZIONALI (slide di collegamento)

14

CodiceAgente NomeAgente Codice Zona

Bia Bianchi Nord

Ner Neri Centro

Ros Rossi Sud

Ver Verdi Isole

Agenti

Clienti

CodiceCliente RagioneSociale Provincia CodiceAgente

Lami Lamiere per Auto TO Bia

Levi Levigatoria Toscana FI Ner

Luci Lucidatura Metalli RM Ner

Meta Metallurgica Emiliana BO Ner

Metb Metalli Rari NA Ros

Rame Rame & Metalli PA Ver

Vite Viteria Lombarda MI Bia

Page 15: MODELLO RELAZIONALE La relazione su n insiemi A 1, A 2…., A n è un sottoinsieme dell insieme di tutte le n-uple a 1, a 2,…., a n che si possono costruire.

NORMALIZZAZIONE DELLE RELAZIONI

Inventario (NumeroInventario, Prodotto, Magazzino, Qtà, IndirizzoMagazzino)

Possiamo dire che:

•NumeroInventario è una chiave candidata;

•Prodotto non è una chiave candidata e ugualmente Magazzino;

•L’insieme {Prodotto, Magazzino} è una chiave candidata;

•L’insieme {Prodotto, Magazzino, Qtà} non è chiave candidata perché contiene il sottoinsieme {Prodotto, Magazzino} chiave candidata.

15

Si ha dipendenza funzionale tra attributi quando il valore di un insieme di attributi A determina un singolo valore dell’attributo B. A (determinante) BNumeroInventario è determinante per ogni attributo di Inventario{Prodotto, Magazzino} è determinante per ogni attributo di InventarioMagazzino è determinante per IndirizzoMagazzino.

Si ha dipendenza transitiva tra attributi quando un attributo A determina B e B determina C; si dice che C dipende transitivamente da A.

Page 16: MODELLO RELAZIONALE La relazione su n insiemi A 1, A 2…., A n è un sottoinsieme dell insieme di tutte le n-uple a 1, a 2,…., a n che si possono costruire.

NORMALIZZAZIONE DELLE RELAZIONI

Una relazione è in prima forma normale (1FN) quando rispetta i requisiti fondamentali del modello relazionale.

Dipendenti (Matricola, Nome, Indirizzo, FamiliariACarico)

FamiliariACarico non è elementare, in quanto è costituito da un gruppo di attributi ripetuti dello stesso tipo (i nomi dei familiari)

16

Dipendenti (Matricola, Nome, Indirizzo)Familiari (CodiceFam, NomeFam, MatricolaDip)

Page 17: MODELLO RELAZIONALE La relazione su n insiemi A 1, A 2…., A n è un sottoinsieme dell insieme di tutte le n-uple a 1, a 2,…., a n che si possono costruire.

NORMALIZZAZIONE DELLE RELAZIONI

Una relazione è in seconda forma normale (2FN) quando è in prima forma normale e tutti i suoi attributi non-chiave dipendono dall’ intera chiave, cioè non possiede attributi che dipendono soltanto da una parte della chiave.

Inventario (Prodotto, Magazzino, Qtà, IndirizzoMagazzino)

IndirizzoMagazzino dipende funzionalmente da Magazzino, che rappresenta una porzione di chiave !

17

Essendo Magazzino IndirizzoMagazzino•R1 (Magazzino, IndirizzoMagazzino)

•R2 (Prodotto, Magazzino, Qtà)

Page 18: MODELLO RELAZIONALE La relazione su n insiemi A 1, A 2…., A n è un sottoinsieme dell insieme di tutte le n-uple a 1, a 2,…., a n che si possono costruire.

NORMALIZZAZIONE DELLE RELAZIONI

Una relazione è in terza forma normale (3FN) quando è in seconda forma normale e tutti gli attributi non-chiave dipendono direttamente dalla chiave, cioè elimina la dipendenza transitiva degli attributi dalla chiave.

18

Studenti (Nome, Scuola, TelefonoScuola)

Nome Scuola TelefonoScuola

Nome TelefonoScuola attraverso l’attributo non-chiave Scuola !

La normalizzazione viene eseguita con lo stesso algoritmo descritto per 2FN.

Studenti (Nome, Scuola)Istituti (Scuola, TelefonoScuola)

La normalizzazione permette di rispettare l’integrità e la consistenza dei dati.

Page 19: MODELLO RELAZIONALE La relazione su n insiemi A 1, A 2…., A n è un sottoinsieme dell insieme di tutte le n-uple a 1, a 2,…., a n che si possono costruire.

REGOLE DI INTEGRITA’

Integrità significa garantire che le operazioni effettuate sul database da utenti autorizzati non provochino la perdita di consistenza (significatività) dei dati.

Il modello relazionale fissa due regole di integrità dei dati.

1)Integrità sull’ entità: è una regola di integrità sui dati secondo la quale la chiave primaria non può avere valore nullo.

2)Integrità referenziale: garantiscono l’ integrità dei dati quando si hanno relazioni associate tra di loro attraverso la chiave esterna.

Quando viene applicata, è necessario osservare le seguenti regole:

•Non è possibile immettere un valore nella chiave esterna della tabella associata, se tale valore non esiste tra le chiavi della tabella primaria.

•Non è possibile eliminare una n-upla dalla tabella primaria, se esistono righe legate ad essa attraverso la chiave esterna nella tabella correlata.

•Non si può modificare il valore alla chiave nella tabella primaria, se ad essa corrispondono righe nella tabella correlata.

19