Unità D3 La progettazione logica: il modello...

49
Unità 3 Modello Relazionale

Transcript of Unità D3 La progettazione logica: il modello...

  • Unità 3

    Modello Relazionale

  • Modello Logico• Modelli logico che deriva da concetti Matematici

    • Permette di descrivere in modo corretto ed efficiente tutte le informazioni contenute nel modello E/R

    • Meno astrato e più vicino al linguaggio per l’implementazione

    2

  • La progettazione logica

    La progettazione logica si articola in 2 fasi:

    • ristrutturazione dello schema Entità-Associazione: è una fase indipendente dal modello logico scelto e si concentra sui criteri di ottimizzazione dello schema e di semplificazione per la fase successiva;

    • traduzione nel modello logico: si tiene conto di uno specifico modello logico (nel nostro caso quello relazionale) all’interno del quale viene tradotta la realtà rappresentata dallo schema ER.

    3

  • Ristrutturazione dello schema ER

    Il seguente elenco rappresenta l’insieme dei passi da svolgere, in sequenza, nella fase di ristrutturazione dello schema Entità-Associazioni:

    • analisi delle ridondanze;

    • eliminazione delle generalizzazioni;

    • partizionamento/accorpamento di entità e associazioni;

    • scelta delle chiavi primarie.

    4

  • Analisi delle ridondanze

    • Attributi derivabili all’interno della stessa entità

    5

  • Analisi delle ridondanze

    • Attributi derivabili da altre entità

    6

  • Analisi delle ridondanze

    Attributi derivati da operazioni di conteggio occorrenze

    7

    Numero abitanti →conteggio persone

    residenti in quella città

  • Analisi delle ridondanze

    Ridondanza da operazioni di conteggio di occorrenze

    8

  • Eliminazione delle generalizzazioni

    Accorpamento delle figlie della generalizzazione nel padre

    Accorpamento del padre della generalizzazione nelle figlie

    Sostituzione della generalizzazione con associazione

    9

  • Accorpamento delle figlie della generalizzazione nel padre

    10

  • Accorpamento del padre della generalizzazione nelle figlie

    11

  • Sostituzione della generalizzazione con associazione

    12

  • Partizionamento di entità (Veramente utile ?)

    13

  • Eliminazione di attributi multivalore (Veramente utili ?)

    14

  • Accorpamento entità (Veramente utile ?)

    15

  • Modello Relazionale

    La progettazione logica relazionale consiste nel“mapping”, cioè nella conversione del diagramma ER in uninsieme di tabelle detto schema logico relazionale e nelladefinizione delle operazioni da compiere su di esso.

    Il modello relazionale introdotto dal 1970 da E.F. Codd

    16

  • Le relazioni

    17

  • Le relazioni

    Cardinalità: numero di t-uple

    Grado: numero di insiemi del prodotto cartesiano

    Schema: lista degli attributi

    Occorrenza: insieme delle istanze

    18

  • Esempi

    19

  • Il mapping di entità e attributi

    Partendo dal diagramma ER, il progettista deve quindi effettuare un “mapping” delle entità e delle associazioni trasformandole in relazioni del modello relazionale.

    Prima regola:

    • Ogni entità diventa una tabella

    • Ogni attributo dell’entità diventa attributo della relazione

    • Gli attributi della relazione hanno le stesse caratteristiche degli attributi dell’entità

    • La chiave dell’entità diventa la chiave primaria della relazione

    20

  • Il mapping di entità e attributi

    Esempi

    Eventuali attributi Opzionali vengono indicati facendoli seguire da un asterisco

    21

  • Il mapping di entità e attributi

    Esempi

    Eventuali attributi composti devono essere sostituiti con gli attributi componenti.

    22

  • Mapping delle associazioni binarie 1:N

    Un’associazione R di tipo 1:N tra due entità E1 ed E2, a cui corrispondono le rispettive relazioni E1 ed E2, è “mappata” aggiungendo alla relazione E1 gli attributi chiave primaria E2.

    Gli attributi chiave primaria di E2 presenti in E1 costituiscono una chiave esterna per la relazione E1, che viene rappresentata con una doppia sottolineatura.

    23

  • Esempio

    24

    Attenzione al «NOT NULL»

  • Esempio

    25

    Attenzione al «NOT NULL»

  • Mapping delle associazioni binarie 1:1

    Le associazioni binarie 1:1 sono un caso particolare delle associazioni 1:N e, per esse, esistono varie possibilità di mapping.

    26

  • Primo Caso

    27

  • Primo Caso

    28

  • Secondo Caso

    29

  • Secondo Caso

    30

  • Terzo Caso

    31

  • Terzo Caso

    32

  • Rappresentazione delle associazioni N:N

    Un’associazione R di tipo N:N tra due entità E1 ed E2, a cui corrispondono le relazioni E1 ed E2, è mappata creando per ogni entità una relazione R avente almeno gli attributi chiave primaria di E1 e gli attributi chiave primaria di E2 che insieme formano la chiave primaria della relazione R.

    33

  • 34

    Esempio

  • 35

    Associazioni ricorsive

  • 36

    Associazioni ricorsive

  • 37

    Associazioni ricorsive

  • ESEMPIO

  • Associazione n-aria

    39

  • Vincoli

    40

  • I vincoli di integritàUna relazione non deve (e non può) essere vista come un contenitore di dati arbitrari.

    È necessaria un’attività di analisi volta a evidenziare quali sono i vincoli che le istanze devono soddisfare affinché possano essere considerate valide.

    Vincoli intrarelazionali o interni, definiti all’interno di una singola relazione. Questi possono essere suddivisi in:

    • vincoli su singola ennupla, che esprimono una condizione:

    – sul dominio degli attributi;

    – su più attributi;

    • vincoli su più ennuple, che coinvolgono i valori di più ennuple.

    Vincoli interrelazionali o esterni, definiti tra più relazioni. Rientrano in questa categoria i vincoli referenziali.

    41

  • 42

  • L’integrità referenziale

    I vincoli di integrità referenziale riguardano i valori assunti dalle chiavi esterne nelle relazioni.

    Poiché una chiave esterna è utilizzata per stabilire un legame tra relazioni, il suo valore deve essere tenuto in stretto controllo per le operazioni di inserimento, modifica e cancellazione.

    43

  • Le anomalie

    Se lo schema della base di dati non è costruito correttamente, può accadere che si abbiano delle anomalie nel database:

    • anomalie in inserimento;

    • anomalie in cancellazione;

    • anomalie in aggiornamento.

    Queste anomalie, in particolare quelle in cancellazione e in aggiornamento, sono una diretta conseguenza della ridondanza, ossia della presenza di dati ripetuti inutilmente, cioè senza l’apporto di nuova informazione.

    44

  • La normalizzazione

    La normalizzazione è un procedimento di tipo graduale, che realizza un’ottimizzazione progressiva a partire da relazioni non normalizzate fino a raggiungere un certo livello di normalizzazione.

    In particolare, consente di verificare se la definizione dello schema corrisponde ai “canoni standard” di correttezza della base di dati e, in caso, avvalendosi di un preciso insieme di regole, di riportare le tabelle in quelle che sono definite le forme normali delle tabelle relazionali.

    Una forma normale è una proprietà di uno schema relazionale che ne garantisce la “qualità”, cioè l’assenza di determinati difetti.

    45

  • La normalizzazione: esempio

    La tabella contiene chiavi candidate realizzate su molti attributi.

    Decidiamo pertanto di aggiungere un nuovo campo, per esempio il codice dell’ordine, che sia una chiave minimale.

    46

  • La prima forma normale (1FN)

    Una relazione si dice in prima forma normale (1FN), chiamata anche forma atomica, se:

    • esiste una chiave primaria (un insieme di attributi che identifica in modo univoco ogni tupla della relazione);

    • ogni attributo è definito su un dominio di valori atomici (deve essere cioè un campo semplice, quindi non composto e non multiplo).

    47

  • La seconda forma normale (2FN)

    Sia R una relazione che contiene almeno due attributi X e Y.

    Se il valore di Y varia al variare del valore di X, si dice che Y ha una dipendenza funzionale da X e si indica con X → Y (si dice anche che X determina Y, o che X è un determinante per Y).

    Lo stesso vale se, invece di singoli attributi, si considerano insiemi di attributi.

    Dalla definizione si evidenzia chiaramente che una chiave primaria è determinante per ogni attributo della relazione.

    Una relazione R è in seconda forma normale (2FN) se è in prima forma normale e ogni attributo non chiave dipende funzionalmente e completamente (cioè non parzialmente) dalla chiave primaria.

    48

  • La terza forma normale (3FN)

    Una relazione R è in terza forma normale (3FN) se è in 2FN e ogni attributo non chiave dipende direttamente dalla chiave.

    Data una relazione con attributi A, B e C e con chiave primaria A:

    • se C dipende funzionalmente dal determinante B, a sua volta funzionalmente dipendente da A;

    • se il determinante B non è una chiave candidata della relazione, alternativa ad A;

    allora C ha una dipendenza funzionale transitiva da A.

    49