Progettazione Logica. ISProgLog 1

Documenti analoghi
Basi di Dati Relazionali

Basi di dati McGraw-Hill

Atzeni, Ceri, Paraboschi, Torlone Basi di dati

Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw -Hill, Progettazione logica. Dati di ingresso e uscita

Corso di Laurea in Ingegneria Informatica Fondamenti di informatica II Modulo Basi di dati a.a

Progettazione logica. Requisiti della base di dati. Schema concettuale. Schema logico. Schema fisico. Obiettivo della progettazione logica

Basi di dati. Progettazione logica

E. Giunchiglia Basi di dati 1 (trasparenze basate su Atzeni,, Ceri, Paraboschi, Torlone: : Basi di dati, Capitolo 8) Progettazione logica

LA PROGETTAZIONE LOGICA. Prima parte

Obiettivi della progettazione logica. Fasi della progettazione logica. Ristrutturazione dello schema ER. Parte VI. Progettazione logica

Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, Progettazione logica. Dati di ingresso e uscita

Progettazione logica

Requisiti della base di dati. Schema concettuale

Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, Obiettivo della progettazione logica. Dati di ingresso e uscita

Progettazione logica relazionale (1/2) Progettazione logica. Progettazione logica relazionale (2/2) Introduzione. Progettazione logica

Progettazione logica relazionale. Basi di dati. Elena Baralis 2007 Politecnico di Torino D B M G D B M G3 D B M G6 D B M G5

Progettazione di basi di dati D B M G

Corso di Laurea in Informatica Basi di Dati a.a

Progettazione logica relazionale (1/2)

Ristrutturazione di schemi E-R. Ridondanze. Analisi delle ridondanze. Vantaggi semplificazione delle interrogazioni

La Progettazione Logica

Unità 3. Modello Relazionale

Informatica Industriale

Ciclo di vita di un sistema informativo

La progettazione logica Traduzione dal modello Entità-Associazione al modello relazionale Anno accademico 2008/2009

Analisi delle ridondanze

Progettazione logica: criteri di ottimizzazione

La progettazione logica

Progettazione logica

I prodotti della varie fasi sono schemi di alcuni modelli di dati:

Corso di Basi di Dati

Ciclo di vita di un sistema informativo

Atzeni, Ceri, Paraboschi, Torlone Basi di dati. Progettazione logica. Attenzione

Progettazione logica D O C E N T E P R O F. A L B E R T O B E L U S S I. Anno accademico 2012/2013

Progettazione logica: criteri di ottimizzazione

DOCENTE PROF. ALBERTO BELUSSI. Anno accademico 2010/11

PROGETTAZIONE LOGICA. Patrizio Dazzi a.a

Generalizzazione. Docente : Alfredo Cuzzocrea Tel. : Informatica

Corso di Basi di Dati

D. Gubiani Progettazione di Basi di Dati 3. D. Gubiani Progettazione di Basi di Dati 2. Slide create in collaborazione con il prof. A.

Basi di Dati Relazionali

Progettazione Logica. T. Catarci, M. Scannapieco, Corso di Basi di Dati, A.A. 2008/2009, Sapienza Università di Roma

Fondamenti di Informatica e Programmazione

Traduzione dal modello E/R al modello relazionale

2 - Metodologie e modelli per la progettazione di BD. Informatica II Basi di Dati (08/09) Parte 1. Introduzione alla progettazione

LE BASI DI DATI. Seconda parte La progettazione di database Relazionali SCHEMA LOGICO - Ristrutturazione dello schema concettuale

Il modello relazionale. A. Ferrari

Analisi di una ridondanze. Numero abitanti. (1,1) (0,N) Residenza

Sistemi informativi D B M G

Metodologie e Modelli di Progetto

adattato da Atzeni et al., Basi di dati, McGrawHill

Basi di dati (Sistemi Informativi)

Modello E/R avanzato: Gerarchie di Generalizzazione/ specializzazione. Concetti Definizioni Esempi

Modello Entità - Relazione. Basi di dati. Elena Baralis 2007 Politecnico di Torino D B M G D B M G2 D B M G4 D B M G6. Progettazione di basi di dati

A. Ferrari modello relazionale

MODULO Il sistema azienda. Sistema Informativo e Informatico Requisiti dei dati

Sommario. Introduzione... 13

D B M G D B M G 2. Sistemi informativi. Progettazione di basi di dati

D. Gubiani Progettazione 3

Controllo degli accessi

Progettazione Logica. Progettazione Concettuale. Metodologia per Basi di Dati e Modelli. Progettazione Fisica. Modello Concettuale

Controllo degli accessi. Controllo degli accessi. Controllo degli accessi. Controllo degli accessi

Modulo 10: Basi di dati e loro gestione

D B M G D B M G 2. Basi di dati. Progettazione di basi di dati. Elena Baralis 2007 Politecnico di Torino 1. Modello Entità-Relazione

CAPITOLO 6 : Metodologie e modelli per il progetto

Gerarchia di Generalizzazione. Esempio. Rappresentazione grafica. Cap. 4 - Modello E/R avanzato: Gerarchie di Generalizzazione/ specializzazione

Progettare Basi di Dati

Il modello Entità-Relazioni (entity-relationship)

Conversione Modello ER in Modello Relazionale. A.Bardine - Conversione Modello ER in Modello Relazionale

Un esempio di progettazione concettuale

Metodologie e modelli di progetto

INTRODUZIONE ALLA PROGETTAZIONE. Patrizio Dazzi a.a

Tecnologie dei sistemi informatici: Basi di Dati e Reti. Lezione 3. Parte I Il modello ERA: introduzione e concetti base

PROGETTAZIONE DI BASE DI DATI. Metodologie e modelli

Laboratorio di Basi di Dati

Cerca di unire i vantaggi delle strategie top-down e bottomup.

A. Ferrari modello relazionale

Strategie top-down. Primitive di trasformazione top-down. Primitive di trasformazione top-down

Basi di dati Progettazione di basi di dati. Elena Baralis Politecnico di Torino

Fondamenti di Informatica A. A / 1 9

Laboratorio di Basi di Dati

CAPITOLO IV. DATABASE: definizione e progettazione. Definizioni

Basi di dati. Docente Prof. Alberto Belussi. Anno accademico 2009/10

Laboratorio di Basi di Dati

Progettazione di basi di dati. Progettazione di basi di dati: Progettazione Concettuale e Progettazione Logica. Fasi (tecniche) del ciclo di vita

Laboratorio di Basi di Dati

Progettazione di basi di dati

Basi di dati Prova di autovalutazione 16 dicembre 2010 Cenni sulle soluzioni

Progettazione di basi di dati. Progettazione di basi di dati: Progettazione Concettuale e Progettazione Logica. Fasi (tecniche) del ciclo di vita

SQL e linguaggi di programmazione. Cursori. Cursori. L interazione con l ambiente SQL può avvenire in 3 modi:

V. Moriggia Modelli di Base Dati. Modelli di Base Dati. a.a. 2001/

3.1. CorsodiElementidiBasididati Il modello Entita Relazione (72) vendita ordine studente. Impiegato. Dipartimento. città. Città.

Prova Scritta di Basi di Dati

Tecnico della progettazione implementazione e manutenzione di sistemi di gestione di database

DOCENTE PROF. ALBERTO BELUSSI. Anno accademico 2010/11

Esercitazione 3. Vincoli di integrità. Approccio Procedurale

Progettazione logica: figure

Prova Scritta di Basi di Dati

Transcript:

Progettazione Logica vaccaricarlo@gmail.com ISProgLog 1

Metodologia di progettazione Una metodologia di progettazione consiste generalmente in: Generare una decomposizione in passi successivi e indipendenti dell'intera attività di progetto. Stabilire una serie di strategie da seguire nei vari passi. Stabilire alcuni modelli di riferimento, per descrivere i dati in ingresso e in uscita dalle varie fasi. ISProgLog 2

La Progettazione Studio di fattibilità Tra le fasi del progetto di Sistemi Informativi segue la raccolta ed analisi dei requisiti. Raccolta ed analisi dei requisiti Progettazione Implementazione Validazione e collaudo Funzionamento ISProgLog 3

Fasi della progettazione Le tre fasi in cui si deve articolare un progetto di database sono: La progettazione concettuale. Rappresentare le specifiche con una descrizione formale e completa senza preoccuparsi né della modalità con cui queste informazioni verranno definite in un sistema reale. La progettazione logica. Traduzione dello schema concettuale in termini del modello di dati proprio del tipo di DBMS a disposizione. In questa fase si tiene conto anche dei criteri di ottimizzazione delle rappresentazioni, in base alle operazioni da effettuare sui dati. La progettazione fisica. Lo schema logico è completato con la specifica dei parametri di memorizzazione dei dati. ISProgLog 4

Requisiti della base di dati Progettazione di basi di dati Progettazione concettuale SCHEMA CONCETTUALE Progettazione logica SCHEMA LOGICO Progettazione fisica ISProgLog SCHEMA FISICO 5

Progettazione logica Obiettivo: tradurre" lo schema concettuale in uno schema logico che rappresenti gli stessi dati in maniera corretta ed efficiente Input: schema concettuale informazioni sul carico applicativo del database modello logico del DBMS utilizzato Output: schema logico, con vincoli e documentazione associata Non si tratta di una pura e semplice traduzione per due motivi: alcuni aspetti non sono univocamente rappresentabili è necessario prestare attenzione alle prestazioni Lo schema logico deve essere: equivalente allo schema concettuale di partenza efficiente rispetto alle operazioni sulla base di dati previste dalle specifiche (analisi funzionale) ISProgLog 6

Obiettivi Progettazione Logica Rendere lo schema elaborabile dal DBMS: trasformare lo schema ER in schema relazionale scegliere lo schema + efficiente tra quelli possibili ottimizzare lo schema in termini di minor carico è necessario semplificare lo schema ER per agevolare la sua trasformazione in schema relazionale Fasi della Progettazione Logica: Ristrutturazione schema analisi ridondanze eliminazione delle generalizzazioni accorpamento e separazione scelta degli identificatori Traduzione da schema ER a schema relazionale Normalizzazione/denormalizzazione ISProgLog 7

Analisi delle prestazioni schemi ER Parametri: costo di una operazione: numero delle occorrenze di entità e associazioni che vengono coinvolte in media per completare una operazione sulla base di dati; occupazione di memoria: viene valutato lo spazio di memoria di massa necessario a memorizzare i dati descritti dallo schema (ad es. in byte). Informazioni necessarie per quantificare i parametri: volume dei dati: numero di occorrenze di ogni entità e associazione dimensione di ciascun attributo caratteristiche delle operazioni: tipo dell operazione: interattiva o batch frequenza: numero medio di esecuzioni in un intervallo di tempo dati coinvolti: entità o relazioni. ISProgLog 8

Esempio di tavola dei volumi Concetto Tipo Volume Studente E 10.000 3.000.000 Corso E 500 3.000.000 Docente E 300 3.000.000 Tesi R 800 3.000.000 Esame R 5.000 ISProgLog 9

Tavola delle operazioni Operazione Inserire uno studente Assegnare uno studente a un docente Trovare i corsi impartiti da un docente Trovare i corsi seguiti da uno studente Per ogni corso, trovare quanti studenti hanno sostenuto l esame Frequenza 50/giorno 3.000.000 100/giorno 3.000.000 5/giorno 3.000.000 30/giorno 3.000.000 5/anno ISProgLog 10

Esempio Anagrafe: lo schema (0,1) Capo (1,1) (1,1) Membro grado (1,n) Codice fiscale Cognome Sesso Data di nascita Cittadino Famiglia Indirizzo Numero membri Locale Pag. registro N. registro Immigrato Comune di nascita Data di immigrazione ISProgLog 11

Esempio Anagrafe: le richieste Un esempio di requisiti utente da soddisfare con lo schema precedente: 1. Leggere tutti i dati di un cittadino, compresi quelli della sua famiglia (domicilio, numero membri), ma non quelli degli altri membri 2. Inserire un cittadino e assegnarlo a una famiglia 3. Inserire una famiglia e il suo capo 4. Produrre lo stato di una famiglia 5. Produrre il cognome e il nome degli immigrati dopo una certa data ISProgLog 12

Esempio Anagrafe: possibile soluzione Cittadino ( CodiceFiscale (PK), Cognome, Nome, DataNascita, Sesso, CodiceFiscaleCapoFamiglia) Famiglia (CodiceFiscaleCapoFamiglia (PK), Indirizzo, NumeroMembri) Membro (CodiceFiscale (PK), CodiceFiscaleCapoFamiglia, Grado) Locale ( CodiceFiscale (PK), PaginaRegistro, NumeroRegistro) Immigrato (CodiceFiscale (PK), ComuneNascita, DataImmigrazione) ISProgLog 13

Esempio Anagrafe: considerazioni Ridondanza: il numero dei membri è ricavabile o da un attributo o, indirettamente, dalla relazione membri : valutare frequenza della richiesta, spazio occupato e procedure di aggiornamento Accorpamenti di entità: si potrebbe eliminare membro accorpando famiglia e cittadino (eliminando anche capo?); cittadino però viene acceduto spesso senza famiglia Accorpamenti di relazione: si potrebbero accorpare capo e membro, aggiungendo un attributo tipo relazione ISProgLog 14

Analisi delle prestazioni schemi ER Le prestazioni che si possono ottenere da un certo schema spesso non sono valutabili con precisione (perché dipendono da fattori non noti: resto del carico del sistema, parametri fisici, caratteristiche prestazionali del DBMS) Consideriamo indici di prestazioni" per spazio e tempo: spazio: dimensione dei dati tempo: numero di occorrenze (di entità e relazioni) visitate ISProgLog 15

Ristrutturazione dello schema ER Motivazioni - semplificare lo schema perché il modello relazionale è meno potente nella rappresentazione della realtà; ad esempio non prevede la generalizzazione; vanno dunque eliminati i costrutti per i quali non esiste una traduzione immediata - ottimizzare lo schema in funzione delle operazioni: uno schema è ottimo solo per alcune operazioni, bisogna scegliere Nota bene: uno schema ER ristrutturato non è (più) uno schema concettuale nel senso stretto del termine, perché rappresenta i dati tenendo presenti aspetti realizzativi (facilità di traduzione e prestazioni) ISProgLog 16

Ristrutturazione dello schema ER Serie di passi da effettuare in sequenza: analisi delle ridondanze: si eliminano o si mantengono eventuali ridondanze presenti nello schema; eliminazione delle generalizzazioni: tutte le generalizzazioni presenti nello schema vengono analizzate e sostituite da altri costrutti; suddivisione o accorpamento di entità e associazioni: si decide se e opportuno suddividere dei concetti o accorparne altri; scelta degli identificatori primari: si seleziona un identificatore per quelle entità che ne hanno più di uno. ISProgLog 17

Ridondanze A seconda delle metodologie seguite, possiamo avere schemi E-R che ammettono ridondanze oppure no in questa fase si decide se mantenere le ridondanze e/o se introdurne di nuove In uno schema concettuale, possiamo avere ridondanze per: rappresentare informazioni significative ma derivate in uno schema logico Le ridondanze possono semplificare le interrogazioni appesantire gli aggiornamenti (sia come prestazioni sia come onere di programmazione) e occupare più spazio ISProgLog 18

Ridondanze Attributi derivabili da altri attributi della stessa entità: es. data di nascita derivabile dal codice fiscale, età dalla data di nascita Attributi derivabili da attributi di altre entità o relazioni di solito attraverso funzioni di aggregazione (somma, media, conteggio,...) : - es. importo fattura = somma dei prodotti del prezzo unitario x quantità - numero esami sostenuti dallo studente calcolabile conteggiando le istanze della relazione esame Relazioni derivabili da altre relazioni: i ricoveri seguiti da un medico sono derivabili dalle visite effettuate dai pazienti ISProgLog 19

Ridondanze - dati derivati I dati derivati comportano vantaggi ed svantaggi : vantaggi - riduzione del numero di accessi necessari per calcolare il dato derivato - maggior facilità nella formulazione delle interrogazioni svantaggi - maggior occupazione di memoria - necessità di operazioni aggiuntive per mantenere aggiornato il dato derivato ISProgLog 20

Eliminazione delle gerarchie: diverse possibili ristrutturazioni Si ricorda che in una generalizzazione ogni proprietà della entità padre e anche proprietà delle entità figlie. Per proprietà si intende: gli attributi, le relazioni e le generalizzazioni cui partecipa la entità. In uno schema logico relazionale non e possibile rappresentare direttamente generalizzazioni: di conseguenza conviene trasformare questi costrutti in altri con una traduzione diretta/semplice. Accorpamento delle figlie della generalizzazione nel padre Le entità figlie vengono eliminate e le loro proprietà vengono aggiunte all entità padre. Accorpamento del padre della generalizzazione nelle figlie L entità padre viene eliminata e, per la proprietà dell ereditarietà, i suoi attributi, il suo identificatore e le relazioni a cui partecipava, vengono aggiunti alle entità figlie ISProgLog 21

Eliminazione delle gerarchie: diverse possibili ristrutturazioni Sostituzione della generalizzazione con associazioni La generalizzazione si trasforma in due associazioni uno a uno chelegano rispettivamente l entita padre con le figlie. Non ci sono trasferimenti di attributi o associazioni e le entita E 2 e E 3 sono identificate esternamente dall entita E 1. Le cardinalita delle associazioni preesistenti non vengono alterate. Nello schema ottenuto bisogna verificare che, dopo ogni operazione di aggiornamento delle entita coinvolte nella generalizzazione, per ogni occorrenza di E 2 e di E 3 esista una occorrenza di E 1 collegata e, per le generalizzazioni totali, che per ogni occorrenza di E 1 ci sia una occorrenza collegata in E 2 o E 3. ISProgLog 22

Accorpamento delle figlie della generalizzazione nel padre PERSONA Nome CodFiscale Indirizzo Tipo Materia NumMat PERSONA Nome CodFiscale Indirizzo STUDENTE DOCENTE ( 0,1 ) ( 1,1 ) NumMat ( 1,N ) Materia ( 0,N ) ISCRITTO INSEGNA ISCRITTO INSEGNA FACOLTA' CORSO FACOLTA' CORSO ISProgLog 23

Accorpamento delle figlie della generalizzazione nel padre Le entità figlie (chiamate anche Entità Specializzanti) vengono eliminate e le loro proprietà, attributi e relazioni, vengono assegnate all entità padre All entità padre viene aggiunto un ulteriore attributo per poter distinguere il tipo delle istanze Le proprietà, attributi e relazioni, delle entità figle possono risultare non significative per alcune istanze dell entità padre, con l introduzione di valori nulli ISProgLog 24

Accorpamento del padre della generalizzazione nelle figlie PROGETTO ( 1,N ) PROGETTO Nome CodFisc ( 1,1 ) LAVORA (1,N) ( 0,1 ) IMPIEGATO ( 0,1 ) S-LAVR T-LAVR ( 1,1 ) M-LAVR Velocità ( 0,1 ) Spec.lità ( 0,1 ) CodFisc Nome (0,1) SEGR.TARIA TECNICO MANAGER SEGR.TARIA TECNICO MANAGER Velocità Specialità ( 1,N ) Nome CodFisc (1,1) Nome CodFisc ( 1,1 ) DIRIG-S DIRIG-T ( 0,1 ) ( 1,N DIRIG-M DIRIGE ( 1,N ) ( 1,N ) ISProgLog 25

Accorpamento del padre della generalizzazione nelle figlie Viene rimossa l entità padre e tutte le sue proprietà, identificatore, attributi e relazioni, vengono ereditate dalle entità figlie la trasformazione è possibile solo se la generalizzazione è di tipo totale gli attributi ereditati dalle entità figlie non necessariamente assumono valori nulli le cardinalità delle relazioni presenti non vengono modificate ISProgLog 26

Accorpamento del padre della generalizzazione nelle figlie E conveniente quando le operazioni sulla base dati fanno riferimento solo alle istanze di una o dell altra entità figlia, fanno cioè distinzione tra le entità figlie; Tale accorpamento comporta : un risparmio di memoria rispetto all alternativa precedente, poiché gli attributi non assumono mai valori nulli; ISProgLog 27

Altre trasformazioni dello schema ER Rimozione degli attributi composti (es. Indirizzo composto da Via, Numero e Città) due alternative: Considerare tutte le componenti cone un unico singolo attributo Considerare Ciascuna componente come un singolo distinto attributo, con perdita della nozione di interrelazione tra le componenti Rimozione degli attributi multivalore (es. Autore(1,n) come attributo di Libro) Richiede l introduzione di una nuova entità per ciascun distinto attributo multivalore La nuova entità ha come attributi : l attributo multivalore (Autore) più l identificatore dell entità da cui deriva es. ISBN per Libro) ISProgLog 28

Scelta degli identificatori principali E indispensabile nella progettazione nel modello relazionale In altri contesti (modello gerarchici - reticolari) si tratta di una scelta legata alla struttura fisica (alla chiave primaria viene associato un cammino d'accesso privilegiato) Criteri per la scelta: assenza di valori nulli semplicità utilizzo nelle operazioni più frequenti o importanti preferenza per gli identificatori interni ISProgLog 29

Dall ER al Relazionale Traduzione verso il modello relazionale - idee fondamentali: le entità diventano tabelle (sugli stessi attributi) la chiave primaria della tabella è costituita dagli attributi formanti l identificatore univoco dell entità nelle relazioni 1:1 le due tabelle e la relazione divengono un unica tabella nelle relazioni 0:1 unica tabella con possibili valori nulli o due tabelle distinte con tabella di link (chiave1-chiave2- attributi_della_relazione) le relazioni 1:n vengono tradotte inserendo in una tabella (quella molti ) la chiave primaria della tabella uno come chiave esterna le relazioni m:n vengono risolte con tabelle di link ISProgLog 30

Cenni di Normalizzazione La teoria della normalizzazione interviene nella fase del progetto dei Data Base Relazionali. Dalle proprietà semantiche dei dati consente di analizzare/definire la struttura più appropriata per le tabelle. La teoria definisce diverse regole che le tabelle devono rispettare per evitare la presenza di dati ridondanti, quindi di anomalie durante le operazioni di DM ISProgLog 31

Normalizzazione e Forme Normali Lo scopo della normalizzazione e' di progettare dei "buoni" schemi di basi di dati; gli schemi normalizzati evitano specifiche anomalie La teoria della normalizzazione e' stata sviluppata per il modello relazionale E' da notare che se si usano metodologie basate su una definizione in termini del modello Entità-Relazione dello schema e successiva traduzione di questo in termini del modello relazionale gran parte delle anomalie non si verificano Le anomalie che si vuole evitare sono le seguenti: ripetizione di informazioni (ridondanza) potenziali inconsistenze nelle modifiche problemi nelle inserzioni e nelle cancellazioni ISProgLog 32

Le Forme Normali Una relazione è in una Forma Normale (Normal Form NF) se rispetta un certo insieme di regole. Relazioni Normalizzate e non Relazioni Normalizzate (1NF) 2NF 3NF BCNF 4NF Project/Join NF ISProgLog 33

De-Normalizzazione Il processo di Normalizzazione, se portato in fondo, azzera la ridondanza nel disegno di un Data Base moltiplicando il numero delle tabelle Nella progettazione di un Data Base si è introdotta una fase di De-Normalizzazione che : ammette un certo grado di ridondanza controllata riduce dunque il numero di tabelle nel sistema, rendendolo più gestibile permette di progettare un Data Base più efficiente necessita di definire chiare regole di propagazione delle modifiche tra i dati ridondanti ISProgLog 34