1 / 19

MODELLO RELAZIONALE

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

march
Download Presentation

MODELLO RELAZIONALE

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. MODELLO RELAZIONALE Somiglianza con la struttura di un file: record= tupla; campo= attributo; tabella= relazione. 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. 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. 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. Nazione ID_Nazione(pk) id_Continente(fk) Città ID_Città(pk) id_Nazione(fk) id_Continente(fk) Continente ID_Continente(pk) appartiene CHIAVI ESTERNE E COMPOSTE forma appartiene

  3. MODELLO RELAZIONALE • 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à. 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. Cittadino Codice Fiscale Corrisponde --> AnagrafiTributarie (CodiceFiscale, Cognome, Nome, DataNascita, LuogoNascita)

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

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

  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. σPTindica un’operazione su T che estrae le sole righe per le quali P è vera. Esempio. σPClienti Selezione di Clienti per Provincia= ‘MI’ 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). ∏LT La lista L elenca le colonne da estrarre da T. Esempio. ∏LClienti Proiezione di Clienti su CodiceCliente, RagioneSociale 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 S OPERAZIONI RELAZIONALI Join naturale tra tabelle R e S, tale che vale la proprietà: R.B = S.B and R.C = S.C

  10. RA SACongiunzione di Clienti con Agenti su CodiceAgente Clienti Join Agenti JOIN TRA TABELLE 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 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 JOIN TRA TABELLE R Right Join S R Full Join S

  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 JOIN TRA TABELLE

  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 OPERAZIONI RELAZIONALI σPClienti Temp1 = Selezione di Clienti per Provincia=‘RM’ Temp1AAgentiA Temp2 = Congiunzione di Temp1 e Agenti su CodiceAgente ∏LTemp2Proiezione 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. Agenti OPERAZIONI RELAZIONALI (slide di collegamento) Clienti

  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 NO 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) 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) NO 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) 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.

More Related