Progettazione concettuale usando il modello Entità-Relazione (ER) e Progettazione Logica



Documenti analoghi
Lezione 2. Il modello entità relazione

LABORATORIO di INFORMATICA

Progettazione concettuale usando il modello Entità-Relazione (ER) II parte

LA PROGETTAZIONE LOGICA

Basi di Dati. Progettazione del Modello ER. K. Donno - Progettazione del Modello ER

Raffinamento dello schema e forme normali. T. Catarci, M. Scannapieco, Corso di Basi di Dati, A.A. 2008/2009, Sapienza Università di Roma

Progettazione concettuale

SISTEMI INFORMATIVI AVANZATI -2010/ Introduzione

Organizzazione degli archivi

Progettaz. e sviluppo Data Base

Prova scritta del corso di Basi di dati attive 17 Dicembre Agenzia

Rappresentazione grafica di entità e attributi

Basi di dati. Il Modello Relazionale dei Dati. K. Donno - Il Modello Relazionale dei Dati

DDL, VINCOLI D INTEGRITÁ, AGGIORNAMENTI E VISTE. SQL è più di un semplice linguaggio di interrogazione

Volumi di riferimento

Access. P a r t e p r i m a

IL MODELLO RELAZIONALE

Database. Si ringrazia Marco Bertini per le slides

Progettazione di basi di dati. Progettazione di basi di dati. Ciclo di vita dei sistemi informativi. Fasi del ciclo di vita [1]

Basi di Dati e Sistemi Informativi. Progettazione logica: Il modello relazionale

DIPARTIMENTO IMPIEGATO PROGETTO SEDE. (0,1) (1,1) DIREZIONE Cognome. Codice. Telefono (0,1) (1,N) AFFERENZA. Stipendio (0,N) Nome (1,1) Età

TEORIA sulle BASI DI DATI

Database. Appunti di Amaranto Oronzo e Giancane Diego Lezione dell Ing. Lucia Vaira 24/04/2014

Progettazione e realizzazione di un applicativo Web Annunci Immobiliari

La Progettazione Concettuale

Progettazione concettuale usando il modello Entità-Relazione (ER)

Basi di dati. Il Linguaggio SQL. K. Donno - Il Linguaggio SQL

Lo schema concettuale risultante dalla progettazione concettuale è l input alla fase di progettazione logica.

Attributi e domini. A per {A}; XY per X Y (pertanto A 1 A 2 A 3 denota

La manutenzione come elemento di garanzia della sicurezza di macchine e impianti

Progettazione di Basi di Dati

1.Tutte 2.Spesso P.IVAe le CF volte che si visualizza i dati un fornitore si mostranoanche. La mensa. La mensa

Informatica 3. Informatica 3. LEZIONE 10: Introduzione agli algoritmi e alle strutture dati. Lezione 10 - Modulo 1. Importanza delle strutture dati

Introduzione al corso

BASI DI DATI - : I modelli di database

Si formulino le seguenti interrogazioni tramite il linguaggio SQL:

CORSO ACCESS PARTE II. Esistono diversi tipi di aiuto forniti con Access, generalmente accessibili tramite la barra dei menu (?)

Il Modello Relazionale

Basi di Dati Relazionali

Modello Relazionale dei DBMS - Vincoli Tradizionalmente, esistono quattro modelli logici: Gerarchico Reticolare Relazionale A oggetti XML I modelli

Lezione 4. Dallo schema ER al relazionale

Progettazione di una base di dati Ufficio della Motorizzazione

DATABASE. A cura di Massimiliano Buschi

Progettazione di un Database

DBMS (Data Base Management System)

Lezione 4. Modello EER

Introduzione alla teoria dei database relazionali. Come progettare un database

Database: collezione di fatti, registrabili e con un ben preciso significato, relazionati fra di loro

Basi di Dati. Conversione Modello ER in Modello Relazionale. K. Donno - Conversione Modello ER in Modello Relazionale

DATABASE RELAZIONALI

database: modello entityrelationship

Ottimizzazione delle interrogazioni (parte I)

UNIVERSITA DEGLI STUDI DI BRESCIA Facoltà di Ingegneria

Il Modello Relazionale

Informatica Generale Andrea Corradini Sistemi di Gestione delle Basi di Dati

La normalizzazione Trasformazione da concettuale a relazionale

Vincoli di Integrità Approccio dichiarativo alla loro implementazione

I casi d uso corrispondono ai compiti che l attore (che può essere una persona fisica e non) può svolgere.

FORME NORMALI E DIPENDENZE

Capitolo 13. Interrogare una base di dati

Capitolo 8. Esercizio 8.1

UNIVERSITÀ DEGLI STUDI DI UDINE Facoltà di Medicina e Chirurgia CORSO DI LAUREA IN TECNICHE DI RADIOLOGIA MEDICA PER IMMAGINI E RADIOTERAPIA ESAME

a.a. 2012/13 12 Novembre 2012 Preparazione al Test in itinere, Compito A 1. Modellare tramite uno schema entità- relazione la seguente base di dati:

Identificare le classi in un sistema

BASE DI DATI: sicurezza. Informatica febbraio ASA

Per visualizzare e immettere i dati in una tabella è possibile utilizzare le maschere;

Stefania Marrara - Esercitazioni di Tecnologie dei Sistemi Informativi. Integrazione di dati di sorgenti diverse

Normalizzazione. Relazionali

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi.

I database relazionali sono il tipo di database attualmente piu diffuso. I motivi di questo successo sono fondamentalmente due:

Esercitazione di Basi di Dati

N ORE LEZIONI FRONTALI: STUDIO INDIVIDUALE ( ) N ORE ESERCITAZIONI/LABORATORIO: STUDIO INDIVIDUALE ( )

Vincoli di Integrità

LA NORMALIZZAZIONE. Introduzione

Introduzione Ai Data Bases. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San giovanni

ECDL - Database. European Computer Driving Licence - Modulo 5 - Database LEZIONE 2

PROCEDURA INVENTARIO DI MAGAZZINO di FINE ESERCIZIO (dalla versione 3.2.0)

Università degli Studi di L Aquila. Facoltà di Ingegneria. Corso di Laurea in Ingegneria Elettronica Corso di Sistemi Informativi

Progettazione Logica. Progettazione Logica

Guida all uso di Java Diagrammi ER

Università degli Studi di Parma Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica. Ingegneria del Software. La fase di Analisi

Basi di dati. Esercitazione ER. Paolo Papotti. Esercizio giugno 2005

Versione 7.0 Taglie e Colori. Negozio Facile

1. Schema concettuale della base di dati Lo schema concettuale (o statico) è uno dei due schemi del progetto concettuale di un sistema informativo.

Capitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti

UTILIZZATORI A VALLE: COME RENDERE NOTI GLI USI AI FORNITORI

Basi di dati. (Sistemi Informativi) teoria e pratica con Microsoft Access. Basi di dati. Basi di dati. Basi di dati e DBMS DBMS DBMS

LABORATORIO. 2 Lezioni su Basi di Dati Contatti:

1. BASI DI DATI: GENERALITÀ

per immagini guida avanzata Uso delle tabelle e dei grafici Pivot Geometra Luigi Amato Guida Avanzata per immagini excel

H1 Hrms Gestione eventi/scadenze automatiche

a) Si progetti uno schema concettuale Entità-Relazioni per lo scenario più sotto descritto.

Introduzione ai database relazionali

I Sistemi Informativi

Basi Di Dati, 09/12/2003

Corso sul linguaggio SQL

Corso di Basi di Dati A.A. 2014/2015

MODULO 5 Appunti ACCESS - Basi di dati

70555 Informatica Sicurezza Mario Rossi Anna Bianchi. Esempio istanza:

Transcript:

Progettazione concettuale usando il modello Entità-Relazione (ER) e Progettazione Logica 1

Introduzione alla progettazione delle basi di dati v Progettazione concettuale (in questa fase si usa il modello ER) Quali sono le entità e le relazioni dell organizzazione? Quali informazioni su queste entità e relazioni dovrebbero essere memorizzate nella base di dati? Quali sono i vincoli di integrità o le business rules in vigore? Uno schema di base di dati nel modello ER può essere rappresentato graficamente (diagrammi ER) Si può tradurre un diagramma ER in uno schema relazionale v Raffinamento dello schema (normalizzazione): controllo dello schema relazionale per trovare ridondanze e relative anomalie. v Progettazione fisica e ulteriore raffinamento dello schema: si considerano il carico di lavoro e le prestazioni del sistema per effettuare ulteriori modifica sullo schema. 2

Basi del modello ER cf pp v Entità: oggetto del mondo reale distinguibile da altri oggetti v Una entità è descritta (nel DB) usando un insieme di attributi Insieme di entità: una collezione di entità simili. Ad esempio, tutti gli impiegati Tutte le entità in un insieme di entità hanno lo stesso insieme di attributi (almeno fino a quando non consideriamo gerarchie ISA!) Ciascun insieme di entità ha una chiave Ciascun attributo ha un dominio Si può tradurre facilmente un insieme di entità in una tabella relazionale Impiegati CREATE TABLE Impiegati (cf CHAR(15), CHAR(20), pp INTEGER, PRIMARY KEY (cf)) 3

Basi del modello ER (segue) cf pp cf pp dal rid r budget subordinato supervisore Impiegati Impiegati Lavora_In Reparti Dipende_da v Relazione: associazione tra 2 o più entità. Ad esempio, Attishoo lavora nel reparto Farmacia v Insieme di relazioni: collezione di relazioni simili Un insieme n-ario di relazioni R correla n insiemi di entità E1.. En; ciascuna relazione in R coinvolge entità e1 Œ E1,... en Œ En u Lo stesso insieme di entità può partecipare a diversi insiemi di relazioni, o in ruoli differenti all interno dello stesso insieme 4

Basi del modello ER (segue) v Gli insiemi di relazioni possono anche avere attributi descrittivi (ad esempio l attributo dal di Lavora_In) v Nel tradurre un insieme di relazioni ER in una tabella relazionale, gli attributi della tabella devono includere: chiavi per ciascun insieme di entità partecipante (come chiavi esterne) u questo insieme di attributi forma la superchiave per la relazione tutti gli attributi descrittivi CREATE TABLE Lavora_In( cf CHAR(15), rid INTEGER, dal DATE, PRIMARY KEY (cf, rid), FOREIGN KEY (cf) REFERENCES Impiegati, FOREIGN KEY (rid) REFERENCES Reparti) 5

Vincoli di chiave dal r cf pp rid budget v Consideriamo Lavora_In: un impiegato può lavorare in molti reparti; un reparto può avere molti impiegati Impiegati Dirige v Di contro, ciascun reparto ha al più un direttore, in accordo con il vincolo di 1-a-1 1-a-Molti Molti-a-1 chiave su Dirige *Traduzione nel modello relazionale? Reparti Molti-a-molti 6

Traduzione dei diagrammi ER con vincoli di chiave v Tradurre una relazione in una tabella: notate che adesso la chiave è rid! separare le tabelle per Impiegati e Reparti v Poiché ciascun reparto ha un unico direttore, possiamo invece combinare Dirige e Reparti CREATE TABLE Dirige( cf CHAR(15), rid INTEGER, dal DATE, PRIMARY KEY (rid), FOREIGN KEY (cf) REFERENCES Impiegati, FOREIGN KEY (rid) REFERENCES Reparti) CREATE TABLE Rep_Dir( Rid INTEGER, R CHAR(20), Budget REAL, Cf CHAR(15), Dal DATE, PRIMARY KEY (rid) FOREIGN KEY (cf) REFERENCES Impiegati) 7

Vincoli di partecipazione v C è un direttore per ogni reparto? Se sì, questo è un vincolo di partecipazione: la partecipazione di Reparti in Dirige viene detta totale (piuttosto che parziale) u Ogni valore rid nella tabella Reparti deve apparire in una riga della tabella Gestisce (con un valore di cf non nullo!) cf name pp since dal did rid dname r budget Impiegati Dirige Reparti Lavora_In dal 8

Vincoli di cardinalità v Vincoli di chiave e di partecipazione considerati insieme sono anche detti vincoli di cardinalità (essi definiscono una cardinalità massima e minima, rispettivamente) v I vincoli di cardinalità definiscono il massimo (minimo) numero di istanze della relazioni cui partecipa una istanza dell entità Ex.: Persona (1,1) (1,n) Vive Città 9

Vincoli di partecipazione in SQL Possiamo catturare i vincoli di partecipazione che coinvolgono un insieme di entità in una relazione binaria, ma poche altre cose (senza ricorrere a vincoli CHECK) CREATE TABLE Rep_Dir( Rid INTEGER, R CHAR(20), Budget REAL, Cf CHAR(15), Dal DATE, PRIMARY KEY (rid), FOREIGN KEY (cf) REFERENCES Impiegati, ON DELETE NO ACTION) 10

Entità deboli v v v Una entità debole può essere indentificata univocamente solo considerando la chiave primaria di un altra entità (proprietario) L insieme di entità proprietarie e l insieme di entità deboli devono partecipare in un insieme di relazioni uno-a-molti (1 proprietario, molte entità deboli) L insieme di entità deboli deve avere partecipazione totale in questo insieme di relazioni identificanti cf pp costo p età Impiegati Polizza Familiari 11

Traduzione di insiemi di entità deboli v Un insieme di entità deboli e l insieme di relazioni identificanti sono tradotte in una tabella singola Quando l entità proprietaria viene cancellata, anche tutte le sue entità deboli devono essere cancellate CREATE TABLE Politica_Rep( R CHAR(20), età INTEGER, costo REAL, cf CHAR(15) NOT NULL, PRIMARY KEY (r, cf) FOREIGN KEY (cf) REFERENCES Impiegati, ON DELETE CASCADE) 12

cf pp Gerarchie ISA Impiegati Paghe_orarie Ore_lavorate ISA idcontratto Come in C++, o altri linguaggi di programmazione, Imp_A_Ore gli attributi vengono ereditati. Se dichiariamo A ISA B, ogni entità A è considerata anche come entità B (le risposte alle interrogazioni dovrebbero riflettere questo fatto) Vincoli di sovrapposizione: può Joe essere un Imp_A_Ore e anche una entità di Imp_A_Contratto? (Permesso/non permesso) Vincoli di copertura: deve, ogni entità di Impiegati, essere anche una entità di Imp_A_Ore o una entità di Imp_A_Contratto? (Sì/No) Motivi per usare ISA: Aggiungere attributi descrittivi specifici a una sottoclasse Identificare le entità che partecipano a una relazione Imp_A_Contratto 13

Traduzione delle gerarchie ISA in tabelle relazionali v Approccio generale: 3 relazioni: Impiegati, Imp_A_Ore e Imp_A_Contratto u Imp_A_Ore: ogni impiegato è registrato in Impiegati. Per gli impiegati a ore, informazioni aggiuntive sono registrate in Imp_A_Ore (paghe_orarie, ore_lavorate, CF); bisogna cancellare le tuple di Imp_A_Ore se viene cancellata la relativa tupla di Impiegati u Le interrogazioni che coinvolgono tutti gli impiegati sono facili, quelle che coinvolgono solo Imp_A_Ore richiedono un join per leggere alcuni attributi v Alternativa: solo Imp_A_Ore e Imp_A_Contratto Imp_A_Ore: cf,, pp, paghe_orarie, ore_lavorate v Ciascun impiegato deve appartenere a una di queste due sottoclassi 14

cf pp Aggregazione Impiegati v Usata quando dobbiamo modellare una relazione che coinvolge (insiemi di entità e) un insieme di relazioni L aggregazione ci permette di trattare un insieme di relazioni come un insieme di entità allo scopo di permetterne la partecipazione in (altre) relazioni Controllori è tradotta con una tabella come qualunque altro insieme di relazioni pid Iniziato_il Progetti Controllori pbudget Sponsors rid Fino_al r Reparti * Aggregazione verso Relazione ternaria: Controllori è una relazione distinta, con un attributo descrittivo Inoltre, possiamo dire che ogni sponsorizzazione è monitorata da al più un impiegato budget 15

Progettazione concettuale usando il modello ER v Scelte di progetto: Un concetto dovrebbe essere modellato come una entità o come un attributo? Un concetto dovrebbe essere modellato come una entità o come una relazione? Identificare le relazioni: binarie o ternarie? Aggregazione? v Vincoli nel modello ER: molta della semantica dei dati può (e dovrebbe) essere catturata però alcuni vincoli non possono essere catturati dai diagrammi ER v Necessità di ulteriori raffinamenti dello schema: lo schema relazionale ottenuto dai diagrammi ER è un buon punto di partenza. Ma il progetto ER è soggettivo e non può esprimere certi vincoli; quindi questo lo schema relazionale può aver bisogno di raffinamenti 16

Entità verso Attributi v Indirizzo dovrebbe essere un attributo di Impiegati o una entità (connessa a Impiegati da una relazione)? v Dipende dall uso che vogliamo fare delle informazioni sull indirizzo, e dalla semantica dei dati: se abbiamo diversi indirizzi per impiegati, indirizzo deve essere una entità (poiché gli attributi non possono assumere più valori) se la struttura (città, via, etc) è importante, ad esempio vogliamo trovare gli impiegati in una data città, indirizzo deve essere modellato come una entità (poiché i valori degli attributi sono atomici) 17

Entità verso Attributi (segue) v Lavora_In2 non permette a un impiegato di lavorare in un reparto per due o più periodi cf Impiegati pp dal al Lavora_In2 rid r Reparti budget v Simile al problema della registrazione di indirizzi multipli per un impiegato: vogliamo registrare diversi valori degli attributi descrittivi per ciascuna istanza della relazione cf Impiegati pp Lavora_In3 rid r budget Reparti dal Durata al 18

Entità verso Relazioni v v v Il primo diagramma ER va bene se un direttore ha un budget discrezionale separato per ciascun reparto Che succede se un direttore ha un budget discrezionale che copre tutti i reparti da lui diretti? Ridondanza di rbudget, che è memorizzato per ciascun reparto gestito dal direttore Ingannevole: suggerisce che rbudget sia legato al reparto cf cf Impiegati Impiegati pp pp numincarico dal rbudget Gestisce2 Gestisce3 Mgr_Incarico rid rid dal r Reparti r Reparti rbudget budget budget 19

Relazioni binarie verso relazioni ternarie v Se ogni polizza è posseduta da un solo impiegato: un vincolo di chiave su Polizze significherebbe che una polizza può coprire solo un familiare! v Quali sono i vincoli aggiuntivi nel secondo diagramma? cf cf Impiegati pp Brutto progetto Impiegati pp polizzaid Intestatario Progetto migliore Copre Polizze Polizze costo Beneficiario p p età Familiari età Familiari polizzaid costo 20

Relazioni binarie verso relazioni ternarie (segue) v Il vincolo di chiave ci permette di combinare Acquirente con Polizze e Beneficiario con Familiari v I vincoli di partecipazione portano a vincoli NOT NULL v Che succederebbe se Polizze fosse un insieme di entità deboli? CREATE TABLE Polizze( polizzaid INTEGER, costo REAL, cf CHAR(15) NOT NULL, PRIMARY KEY (polizzaid), FOREIGN KEY (CF) REFERENCES Impiegati ON DELETE CASCADE) CREATE TABLE Familiari ( P CHAR(20), Età INTEGER, polizzaid INTEGER, PRIMARY KEY (p, polizzaid), FOREIGN KEY (polizzaid) REFERENCES Polizze ON DELETE CASCADE) 21

Relazioni binarie verso relazioni ternarie (segue) v L esempio precedente illustra un caso in cui due relazioni binarie sono migliori di una relazione ternaria v Un esempio nell altra direzione: una relazione ternaria Contratti mette in relazione gli insiemi Pezzi, Reparti e Fornitori, e ha l attributo descrittivo qta. Nessuna combinazione di relazioni binarie è un sostituto adeguato: v F può fornire P, D ha bisogno di P, e D tratta con F non implicano che D sia d accordo sul comprare P da F v Come registriamo qta? 22

Vincoli oltre il modello ER v Dipendenze funzionali: ad esempio, un reparto può ordinare due pezzi distinti dallo stesso fornitore u Non si può esprimere in termini della relazione ternaria Contratti La normalizzazione raffina il progetto ER tenendo in considerazione le DF v Dipendenze di inclusione: caso speciale: chiavi esterne (si possono esprimere nel modello ER) ad esempio, almeno una persona deve dipendere da ciascun direttore (l insieme dei valori cf in Dirige deve essere un sottoinsieme dei valori supervisore_cf in Dipende_da) Chiave esterna? Esprimibile nel modello ER? v Vincoli generali Ad esempio, budget discrezionale del direttore minore del 10% dei budget combinati di tutti i reparti che gestisce 23

Riassunto della progettazione concettuale v La progettazione concettuale segue l analisi dei requisiti Porta a una descrizione ad alto livello dei dati che devono essere memorizzati v Il modello ER è molto usato per la progettazione concettuale I costrutti sono espressivi, vicini al modo in cui la gente pensa alle applicazioni v Costrutti di base: entità, relazioni e attributi (di entità e relazioni) v Alcuni costrutti addizionali: entità deboli, gerarchie ISA e aggregazione v Nota: ci sono molte varianti del modello ER 24

Riassunto della progettazione concettuale (segue) v Nel modello ER si possono esprimere diversi tipi di vincoli di integrità: vincoli di chiave, vincoli di partecipazione e vincoli di sovrapposizione/copertura per le gerarchie ISA. Nella definizione di insieme di relazioni sono anche impliciti alcuni vincoli di chiave esterna. Alcuni di questi vincoli possono essere espressi in SQL solo se usiamo vincoli CHECK o asserzioni generali. Alcuni vincoli (in particolare le dipendenze funzionali) non possono essere espressi nel modello ER I vincoli giocano un ruolo importante nel determinare il miglior progetto di base di dati per una organizzazione. 25

Riassunto della progettazione concettuale (segue) v Il progetto ER è soggettivo. Ci sono spesso molti modi per modellare un dato scenario! Analizzare le alternative può essere complicato, specialmente per una grande azienda. Scelte comuni includono: v Entità verso attributo, entità verso relazione, relazione binaria o n-aria, uso delle gerarchie ISA, uso dell aggregazione v Garantire un buon progetto della base di dati: lo schema relazionale risultante dovrebbe essere analizzato e ulteriormente raffinato. Le informazioni delle DF e le tecniche di normalizzazione sono particolarmente utili. 26

Metodologie di progetto v Le metodologie per la progettazione concettuale sono basate su: raffinamento incrementale dello schema astrazione come meccanismo di raffinamento controllo della qualità dello schema concettuale decomposizione in sottoschemi analisi integrata di dati e funzioni v Le principali metodologie sono top-down bottom-up mista 27

Top-down v Implementa una serie di trasformazioni dello schema iniziando con concetti molto astratti per andare verso concetti più concreti e dettagliati v Il primo schema contiene (in una rappresentazione molto astratta) tutto il contenuto di informazione della realtà da rappresentare v Meccanismo di trasformazione: raffinamento Es. Persona Impiegati Studente 28

Bottom-up v Parte dai requisiti dettagliati, raggruppandoli in concetti più astratti v Meccanismo di trasformazione: astrazione Es. cf cf pp pp Impiegati Problemi: conflitti tra le definizioni dei concetti, ridondanze, necessità di ristrutturazione (ma PIÙ NATURALE) 29

Mista v Decomposizione controllata dei requisiti v Struttura globale dello schema v Generazione bottom-up dei sottoschemi v Integrazione dei sottoschemi guidata dalla struttura 30

Qualità dello schema concettuale v Correttezza: lo schema rappresenta correttamente (sintatticamente e semanticamente) i requisiti iniziali v Completezza: lo schema rappresenta tutti i requisiti v Minimalità: lo schema rappresenta solo i requisiti e ogni loro aspetto appare solo una volta v Leggibilità: lo schema è facile da interpretare ed esprime i requisiti in modo naturale v Modificabilità: lo schema può essere facilmente modificato se i requisiti cambiano v Auto-documentabilità: lo schema non ha bisogno di materiale aggiuntivo esterno 31

Esempio di top-down Requisiti Vogliamo rappresentare le informazioni sugli impiegati. In particolare, i dati si riferiscono a: v persone, con, data di nascita e sesso; v località dove le persone sono nate e vivono attualmente. Ci sono due tipi di località: stati degli USA e paesi stranieri. Nel primo caso, vogliamo rappresentare anche l ammontare della popolazione dello stato, mentre nel secondo caso vogliamo rappresentare la capitale del paese; v impiegati con il loro salario; v direttori con associato il del reparto che dirigono 32

Primi raffinamenti Dati personali Dati personali Dati delle persone Dati delle località Dati delle persone Riferiti a Dati delle località 33

Ulteriore raffinamento Dati delle persone Persona Impiegato Direttore Dati delle località Località Stato Paese Riferiti a Nato Vive 34

Raffinamento finale sesso Persona Persona Data di nascita Impiegato salario Impiegato Reparto Direttore Direttore popolazione Stato Stato capitale Paese Paese 35

Schema finale (1,1) Nato (1,n) (1,1) Vive (1,n) sesso Persona Data di nascita reparto Località capitale Impiegato direttore stato paese salario popolazione 36

Bottom-up Scelta degli attributi Nome dell impiegato Data di nascita dell impiegato Sesso dell impiegato Salario dell impiegato Nome del direttore Data di nascita del direttore Reparto del direttore Sesso del direttore Nome del paese Capitale del paese Nome dello stato Popolazione dello stato 37

Scelta delle entità sesso Data di nascita popolazione Impiegato salario Paese sesso Data di nascita capitale Direttore reparto Stato 38

ISA Persona sesso Data di nascita sesso Data di nascita Impiegato salario Direttore reparto Località capitale popolazione Stato Paese 39

Ristrutturazione degli attributi sesso Persona Data di nascita reparto Località capitale Impiegato Direttore stato Paese salario popolazione 40

Relazioni (1,1) Nato (1,n) (1,1) Vive (1,n) sesso Persona Data di nascita reparto località capitale Impiegato Direttore stato paese salario popolazione 41

Da concettuale a logico v Traduzione di uno schema concettuale (E-R) in uno schema (relazionale) logico v Fare attenzione ai vincoli di integrità! v La prima ottimizzazione si basa sulla frequenza degli accessi alle entità e alle relazioni v Due fasi: ristrutturazione dello schema concettuale e prima ottimizzazione traduzione e ulteriore ottimizzazione (basata sul modello logico) 42

Ristrutturazione v Analisi delle ridondanze v Traduzione delle gerarchie IS-A v Partizionamento delle entità v Fusione delle entità v Scelta delle chiavi primarie 43

Ridondanze Es.: v Pro Maggiore velocità di esecuzione di alcune interrogazioni v Contro cd Aumento in memoria Alto costo del mantenimento dell integrità Impiegato (1,1) (1,n) Lavora in Reparto Codice Numero di Imp. 44

Transazioni 1. Per ciascun reparto, visualizzare il corrispondente numero di impiegati (ogni giorno) 2. Assegnare ogni nuovo impiegato a un reparto (ogni giorno) 3. Spostare un impiegato da un reparto a un altro (ogni 3 giorni) Dimensione di entità e relazioni: Impiegati 100 Lavora in 100 Reparto 100 45

Modifiche di tempo e memoria con ridondanza Operazione 1: 10 accessi a Reparto; -100 accessi a Impiegato Operazione 2: 1 accesso a Impiegato; +1 accesso a Reparto Operazione 3: 1 accesso a Impiegato; +2 accessi a Reparto Incremento di memoria: 10 Accessi (ogni 3 giorni): -300 + 3 + 2 46

Traduzione in gerarchia IS-A A1 A2 E1 A3 E2 E3 E1 A2 A1 E2 A2 A1 A3 A1 Type Due estremi E3 A3 47

Fusione contro divisione v Fusione Grande occupazione di memoria quando le sotto-entità hanno molti attributi Inutile se l entità principale ha pochi attributi e/o relazioni (utile nel caso opposto) Valori null v Divisione Nessuno spreco di memoria se non c è sovrapposizione tra le sotto-entità Inutile se ci sono molti accessi di tipo join alle sotto-entità Necessità di procedure per il controllo dell integrità 48

Confronto tra gli accessi delle transazioni Confrontare Z(E) (ossia il costo delle transazioni che accedono l entità principale) con SUM(Z(Ei)) (cioè la somma dei pesi delle transazioni che accedono alle sotto-entità) Date le transazioni P1,...,Pn che accedono a una entità T: Z(T) = S i=1,... n F(Pi) * S(Pi) Dove F è la frequenza e S la priorità di Pi 49

Vincoli di integrità v Fusione E1 = E e TIPO = E1 E2 = E e TIPO = E2 v Divisione E = E1» E2 R = R1» R2 (per ogni R cui partecipa E) v E1 «E2 = f (se non sono permesse sovrapposizioni) 50

Altre soluzioni v Traduzione mista (parte delle entità della gerarchia sono fuse, altre vengono separate) v Ridondanza (vengono lasciate tutte le entità) Operazioni di aggiornamento molto complesse (controllo dell integrità) Spreco di memoria 51

Partizionamento e fusione delle entità Partizionamento: le entità vengono separate in base agli accessi delle transazioni Es. Persona cf Dati personali Persona1 cf Dati personali cf Dati medici Persona2 Dati medici Vincolo di integrità: Persona1[CF] = Persona2[CF] Nota: quando si divide, ricordare che le proprietà delle entità non sono solo attributi, ma anche relazioni e gerarchie 52

Fusione v Le entità cui si accede spesso possono essere fuse Es.: A1 A2 A2 A1 (1,1) (1,1) E1 R E2 E12 Vincoli di integrità : E12[A1] = E1[A1] E12[A2] = E2[A2] 53

Chiavi primarie v Per ciascuna entità si deve scegliere una chiave primaria v La chiave primaria di una relazione è data dall unione delle chiavi primarie delle entità che vi partecipano 54

Traduzione v Ciascuna entità diventa una relazione, con la chiave primaria corrispondente v Ciascuna relazione (m:n) diventa una relazione, con la chiave primaria corrispondente v Ciascuna relazione (1:n) e (1:1) viene tradotta tramite inclusione della chiave esterna A1 E1 A2 (1,1) R (1,n) E2 K A3 R E1 (A1, A2, K, A4) R E2 (K, A3) R E2 [K] & R E1 [K] A4 R E1 [K] & R E2 [K] v Le relazioni con cardinalità minima uguale a 0 possono originare valori null 55

Note v Tutti i vincoli di integrità che si originano durante la progettazione logica e/o la traduzione devono essere importati nello schema relazionale (principalmente come vincoli di inclusione di chiave) v Tutte le relazioni devono essere in 1NF (vedi normalizzazione), cioè tutti gli attributi sono atomici e monovalore v Le relazioni ottenute traducendo lo schema ER possono essere ulteriormente normalizzate (3NF o BCNF) (vedi normalizzazione) 56