La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

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.

Presentazioni simili


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

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 prendendo nellordine 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!

2 CHIAVI ESTERNE E COMPOSTE 2 Una chiave esterna è un attributo che completa una relazione attraverso lidentificazione dell entità padre. Fornisce un metodo per mantenere lintegrità 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

3 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 dallaltra 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 dellentità Attributo della relazione; Identificatore Chiave primaria; Associazione 1:1 diventa un unica relazione che contiene gli attributi della prima e della seconda entità. CittadinoCodice Fiscale Corrisponde --> AnagrafiTributarie (CodiceFiscale, Cognome, Nome, DataNascita, LuogoNascita)

4 MODELLO RELAZIONALE 4 Regole di derivazione Associazione 1:N viene rappresentata aggiungendo, agli attributi dellentità che svolge il ruolo «a molti», lidentificatore univoco dellentità che svolge il ruolo «a uno», che viene identificato come chiave esterna, inoltre sono aggiunti gli eventuali attributi dellassociazione. 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 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 dellassociazione. La chiave della nuova relazione è formata dallinsieme degli attributi chiave delle due entità più altri attributi dellassociazione necessari a garantire lunicità 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 6 CodiceAgenteNomeAgenteCodice Zona BiaBianchiNord NerNeriCentro RosRossiSud VerVerdiIsole Agenti Clienti CodiceClienteRagioneSocialeProvinciaCodiceAgente LamiLamiere per AutoTOBia LeviLevigatoria ToscanaFINer LuciLucidatura MetalliRMNer MetaMetallurgica EmilianaBONer MetbMetalli RariNARos RameRame & MetalliPAVer ViteViteria LombardaMIBia

7 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. σ P T indica unoperazione su T che estrae le sole righe per le quali P è vera. Esempio. σ P Clienti Selezione di Clienti per Provincia= MI CodiceClienteRagioneSocialeProvinciaCodiceAgente ViteViteria LombardaMIBia

8 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 CodiceClienteRagioneSociale LamiLamiere per Auto LeviLevigatoria Toscana LuciLucidatura Metalli MetaMetallurgica Emiliana MetbMetalli Rari RameRame & Metalli ViteViteria Lombarda

9 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 N 1 e N 2 e le due tabelle hanno K attributi in comune allora il grado della nuova relazione sarà N 1 + N 2 – K. La cardinalità non è prevedibile a priori. Esempio. R B,C S B,C R S R JOIN S ABC BCD ABCD Join naturale tra tabelle R e S, tale che vale la proprietà: R.B = S.B and R.C = S.C

10 JOIN TRA TABELLE 10 R A S A Congiunzione di Clienti con Agenti su CodiceAgente Clienti Join Agenti CodiceClienteRagioneSocialeProvinciaCodiceAgenteNomeAgenteCodiceZona LamiLamiere per AutoTOBiaBianchiNord LeviLevigatoria ToscanaFINerNeriCentro LuciLucidatura MetalliRMNerNeriCentro MetaMetallurgica EmilianaBONerNeriCentro MetbMetalli RariNARosRossiSud RameRame & MetalliPAVerVerdiIsole ViteViteria LombardaMIBiaBianchiNord 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 11 Join esterno: è una congiunzione che restituisce le righe delluna e dellaltra 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 ABC BCD ABCD ABCD R Right Join S R Full Join S ABCD

12 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 CodiceNomeStipendioDir 1Bianchi Neri Rossi Leoni Gatti45000 CodiceNomeStipendioDirNomeDirStipendio Dir DirDelDir 1Bianchi260004Leoni Neri240004Leoni Rossi280004Leoni Leoni400005Gatti45000

13 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 lelenco delle ragioni sociali e degli agenti per i clienti di Roma, occorre applicare la seguente sequenza di operatori: OPERAZIONI RELAZIONALI 1) σ P ClientiTemp1 = Selezione di Clienti per Provincia=RM 2) Temp1 A Agenti A 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.

14 OPERAZIONI RELAZIONALI (slide di collegamento) 14 CodiceAgenteNomeAgenteCodice Zona BiaBianchiNord NerNeriCentro RosRossiSud VerVerdiIsole Agenti Clienti CodiceClienteRagioneSocialeProvinciaCodiceAgente LamiLamiere per AutoTOBia LeviLevigatoria ToscanaFINer LuciLucidatura MetalliRMNer MetaMetallurgica EmilianaBONer MetbMetalli RariNARos RameRame & MetalliPAVer ViteViteria LombardaMIBia

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; Linsieme {Prodotto, Magazzino} è una chiave candidata; Linsieme {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 dellattributo 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) 16 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 ! 17 Essendo Magazzino IndirizzoMagazzino R1 (Magazzino, IndirizzoMagazzino) R2 (Prodotto, Magazzino, Qtà)

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. 18 Studenti (Nome, Scuola, TelefonoScuola) Nome Scuola TelefonoScuola Nome TelefonoScuola attraverso lattributo 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 lintegrità 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. 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


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

Presentazioni simili


Annunci Google