La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

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.

Presentazioni simili


Presentazione sul tema: "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."— Transcript della presentazione:

1 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. 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!

2 CHIAVI ESTERNE E COMPOSTE
Una chiave composta è una chiave primaria formata da due o più attributi. 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. Città ID_Città(pk) id_Nazione(fk) id_Continente(fk) Continente ID_Continente(pk) appartiene Nazione ID_Nazione(pk) forma

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

4 MODELLO RELAZIONALE 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) Nome Cognome Indirizzo Automobile Targa(pk) Modello Produttore Cilindrata PrezzoListino DataAcquisto PrezzoAcquisto Acquistare  Persone (CodiceFiscale, Nome, Cognome, Indirizzo) Automobili (Targa, Modello, Produttore, Cilindrata, PrezzoListino, CodiceFiscale, DataAcquisto, PrezzoAcquisto)

5 MODELLO RELAZIONALE 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) Nome Cognome Indirizzo Materia CodiceMateria(pk) NomeMateria NumeroOre Data Voto  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.

6 OPERAZIONI RELAZIONALI
Agenti CodiceAgente NomeAgente Codice Zona Bia Bianchi Nord Ner Neri Centro Ros Rossi Sud Ver Verdi Isole Clienti CodiceCliente RagioneSociale Provincia CodiceAgente Lami Lamiere per Auto TO Bia Levi Levigatoria Toscana FI Ner Luci Lucidatura Metalli RM Meta Metallurgica Emiliana BO Metb Metalli Rari NA Ros Rame Rame & Metalli PA Ver Vite Viteria Lombarda MI

7 OPERAZIONI RELAZIONALI
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

8 OPERAZIONI RELAZIONALI
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

9 OPERAZIONI RELAZIONALI
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 S A B C 1 2 3 6 7 8 9 5 B C D 2 3 4 5 12 7 8 10 A B C D 1 2 3 4 5 6 7 8 10 9 Join naturale tra tabelle R e S, tale che vale la proprietà: R.B = S.B and R.C = S.C

10 Metallurgica Emiliana
JOIN TRA TABELLE 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 Meta Metallurgica Emiliana BO Metb Metalli Rari NA Ros Rossi Sud Rame Rame & Metalli PA Ver Verdi Isole Vite Viteria Lombarda MI 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 !

11 JOIN TRA TABELLE 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 D 1 2 3 4 5 6 7 8 10 9 A B C 1 2 3 6 7 8 9 5 B C D 2 3 4 5 12 7 8 10 R Right Join S R Full Join S A B C D 1 2 3 4 5 12 6 7 8 10 9 A B C D 1 2 3 4 5 12 6 7 8 10 9

12 JOIN TRA TABELLE 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 3 Rossi 28000 Leoni 40000 5 Gatti 45000 Codice Nome Stipendio Dir NomeDir StipendioDir DirDelDir 1 Bianchi 26000 4 Leoni 40000 5 2 Neri 24000 3 Rossi 28000 Gatti 45000

13 OPERAZIONI RELAZIONALI
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 σP Clienti Temp1 = Selezione di Clienti per Provincia=‘RM’ Temp1A AgentiA Temp2 = Congiunzione di Temp1 e Agenti su CodiceAgente ∏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.

14 OPERAZIONI RELAZIONALI (slide di collegamento)
Agenti CodiceAgente NomeAgente Codice Zona Bia Bianchi Nord Ner Neri Centro Ros Rossi Sud Ver Verdi Isole Clienti CodiceCliente RagioneSociale Provincia CodiceAgente Lami Lamiere per Auto TO Bia Levi Levigatoria Toscana FI Ner Luci Lucidatura Metalli RM Meta Metallurgica Emiliana BO Metb Metalli Rari NA Ros Rame Rame & Metalli PA Ver Vite Viteria Lombarda MI

15 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. Si ha dipendenza funzionale tra attributi quando il valore di un insieme di attributi A determina un singolo valore dell’attributo B. A (determinante) B NumeroInventario è determinante per ogni attributo di Inventario {Prodotto, Magazzino} è determinante per ogni attributo di Inventario Magazzino è 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.

16 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) NO 1FN Dipendenti (Matricola, Nome, Indirizzo) Familiari (CodiceFam, NomeFam, MatricolaDip)

17 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 ! NO Essendo Magazzino  IndirizzoMagazzino R1 (Magazzino, IndirizzoMagazzino) R2 (Prodotto, Magazzino, Qtà) 2FN

18 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. Studenti (Nome, Scuola, TelefonoScuola) Nome  Scuola  TelefonoScuola Nome  TelefonoScuola attraverso l’attributo non-chiave Scuola ! NO La normalizzazione viene eseguita con lo stesso algoritmo descritto per 2FN. Studenti (Nome, Scuola) Istituti (Scuola, TelefonoScuola) 3FN La normalizzazione permette di rispettare l’integrità e la consistenza dei dati.

19 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. Integrità sull’ entità: è una regola di integrità sui dati secondo la quale la chiave primaria non può avere valore nullo. 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.


Scaricare ppt "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."

Presentazioni simili


Annunci Google