Il modello Entity-Relationship per il progetto
Transcript
Il modello Entity-Relationship per il progetto
1 Il modello Entity-Relationship per il progetto delle basi di dati Massimo Paolucci ([email protected]) DIST – Università di Genova Le metodologie di progettazione delle Basi di Dati 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. 2 3 Ciclo di vita di un S.I. Studio di fattibilità Raccolta ed analisi dei requisiti Progettazione Implementazione Validazione e collaudo Funzionamento 4 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. 5 Requisiti della base di dati Progettazione di basi di dati Progettazione concettuale SCHEMA CONCETTUALE Progettazione logica SCHEMA LOGICO Progettazione fisica SCHEMA FISICO I diagrammi Entità-Relazione (ER Diagram) Sono uno strumento per la progettazione concettuale di DB. Da essi può essere agevolmente ricavato lo schema fisico di DB relazionali. Sono utilizzati in strumenti di progettazione assistita (CASE) La sintassi utilizzata è semplice ed intuitiva. 6 I diagrammi Entità-Relazione (ER Diagram) (cont.) 7 La specifica del DB definita è composta da: Un insieme di diagrammi ER Rappresentano i dati operativi che devono essere strutturati nel SI Un insieme di dizionari dei dati associati ai diagrammi ER Descrivono verbalmente i diagrammi per mezzo di tabelle riassuntive Un insieme di vincoli di integrità sui dati Specificano condizioni particolari che non possono essere desunte dai diagrammi. Le componenti dei diagrammi ER Entità: Classi/insiemi di oggetti riguardo i quali si ha interesse a raccogliere informazioni. Entità Esempi Impiegato Città Fornitore 8 Le componenti dei diagrammi ER (cont.) 9 Relazione: Legame logico tra entità riguardo il quale si ha interesse raccogliere informazioni. Relazione Esempio Residenza Persona Città 10 Esempi di relazione Sede lavoro Due relazioni binarie tra le stesse entità Residenza Persona Città Componente Una relazione ricorsiva main Parte sub Dipartimento Una relazione ternaria Fornitore Fornitura Prodotto Le componenti dei diagrammi ER (cont.) 11 Attributi: Specificano le informazioni che devono essere raccolte riguardo entità e relazioni. Attributo 1 ... Relazione Entità Attributo 1 Attributo 2 ... z identificatore Esempio Esame Studente z Matricola Nome Voto Data esame Corso Nome Anno di corso z Le componenti dei diagrammi ER (cont.) Gli attributi possono anche essere composti. Entità Attributo 1 Attributo Composto [Comp1, Comp2,...] ... z Esempio Persona C.F Nome Indirizzo [Via, CAP, Città] .... z 12 Le componenti dei diagrammi ER (cont.) 13 Gli attributi possono essere obbligatori oppure opzionali. Entità Attributo obb (obbligatorio - default) Attributo obb (1) (obbligatorio - esplicito) Attributo opz (0) (opzionale) z Esempio Persona C.F Nome Targa auto (0) z Le componenti dei diagrammi ER (cont.) Nota Gli attributi che possiedono una molteplicità il più delle volte rappresentano entità. Esempio Persona C.F Nome Targa auto (0, N) z Persona z C.F Nome Possesso Auto z Targa auto 14 15 Un esempio di diagramma ER Direzione codice cognome stipendio età z Impiegato nome budget data consegna z nome telefono data afferenza Composizione Partecipazione z Dipartimento Afferenza data inizio Progetto Sede z città indirizzo [civico, via, CAP] Nota: esempi di notazioni alternative città Sede indirizzo civico via CAP Persona Possesso Auto Le componenti dei diagrammi ER (cont.) Cardinalità delle relazione: Specifica il numero minimo e massimo delle occorrenze delle entità nelle relazioni. (min1, max1) Entità 1 (min2, max2) Relaz. R Entità 2 min1: il numero minimo di volte in cui Entità 1 partecipa alla Relaz. R max1: il numero massimo di volte in cui Entità 1 partecipa alla Relaz. R min può valere: • 0 la relazione è opzionale per l’entità • 1 la relazione è obbligatoria per l’entità max può valere: • 1 l’entità può partecipare una sola volta alla relazione • N l’entità può partecipare più volte alla relazione 16 17 Esempio di cardinalità (1, N) Impiegato (0, N) Assegnamento Incarico Significato: ad un impiegato viene sempre assegnato un incarico ad un impiegato possono essere assegnati più incarichi un incarico può anche non essere (ancora) assegnato ad un impiegato uno stesso incarico può essere assegnato a tanti impiegati Le componenti dei diagrammi ER (cont.) Tipi di cardinalità delle relazione: Sono possibili tre tipi di relazioni in funzione della cardinalità massima: Relazioni 1-1 “uno a uno” Relazioni 1-N (oppure N-1) “uno a molti” Relazioni N-N “molti a molti” Esempi (0, 1) Relazione 1-1 Ordine Relazione 1-N Persona Relazione N-N Turista (1, 1) Vendita (1, 1) Fattura (0, N) Residenza (1, N) Città (0, N) Prenotazione Viaggio 18 Le componenti dei diagrammi ER (cont.) 19 Identificatori: Sono attributi che individuano univocamente un’entità. L’identificatore può essere: z Singolo Attributo 1 Attributo 2 ... z Entità z identificatore Multiplo (composto) Attributo 1 Attributo 2 Attributo 3 ... z Entità z identificatori z Esterno Studente z Matricola Nome (1, 1) Iscrizione (0, N) Università z identificatori Nome Città Un esempio di diagramma ER (cont.) (0, 1) codice cognome stipendio età z Impiegato (0, 1) Afferenza (0, N) Partecipazione (1, N) nome budget data consegna z Progetto (1, 1) Direzione (1, N) data afferenza z Dipartimento nome telefono (1, 1) Composizione data inizio (1, N) Sede z città indirizzo [civico, via, CAP] 20 Le componenti dei diagrammi ER (cont.) 21 Gerarchie: Specificano legami gerarchici tra entità, ossia generalizzazioni (bottom-up) o specializzazioni (top-down). Per mezzo delle gerarchie si esprimono: z Generalizzazioni totali Persona Donna Uomo z Generalizzazioni parziali Professionista z Avvocato Sottinsiemi Ingegnere Persona Studente Le componenti dei diagrammi ER (cont.) Gli attibuti nelle gerarchie vengono ereditati dalle entità superiori a quelle inferiori. Esempi CF cognome Persona età z situazione militare Uomo Donna CF cognome età z Persona situazion e militare Uomo Donna stipendio orario matricola Impiegato Studente Segretario Direttore Progettista Responsabile di progetto 22 Le componenti dei diagrammi ER (cont.) 23 Il dizionario del dati: E’ composto da due tabelle: z Tabella delle Entità Entità z Descrizione Attributi Identificatore Tabella delle Relazioni Relazione Descrizione Entità coinvolte Attributi Le componenti dei diagrammi ER (cont.) Il vincoli di integrità sui dati dati: Corrisponde all’insieme delle regole che non sono deducibili dal diagramma. Esempio (0, 1) (0, 1) codice cognome Impiegato stipendio età (0, N) (1, N) z Partecipazione (1, N) nome budget data consegna z Progetto (1, 1) Direzione Afferenza data afferenza z Dipartimento nome telefono (1, 1) Composizione data inizio (1, N) Sede z città indirizzo [civico, via, CAP] • un impiegato può dirigere solo un dipartimento alla volta • un impiegato non può avere un salario maggiore del direttore • il budget di un progetto deve essere maggiore della somma degli stipendi degli impiegati coinvolti 24 25 Modellazione dei dati con UML Unified Modeling Language • Un linguaggio (e notazione) universale, per rappresentare sistemi software • Uno standard OMG (Object Management Group) • Autori: Grady Booch Ivar Jacobson Jim Rumbaugh • Co-proponenti: Microsoft, IBM, Oracle, HP, Platinum, Sterling, Unysis (e tanti altri) Modellazione dei dati con UML 26 Il diagramma delle classi • Le componenti principali nei diagrammi delle classi sono le classi e le associazioni che corrispondono sostanzialmente alle entità e alle relazioni del modello • Le classi vengono rappresentate da rettangoli contenenti, in alto, il nome della classe e, al loro interno, gli attributi ad essa associati • Le associazioni binarie si presentano con delle linee che congiungono le classi coinvolte nell’associazione, mentre per le associazioni n-arie, la notazione grafica e’ la stessa del modello E-R • Gli attributi di una associazione vengono indicati attraverso le classi di associazione che descrivono appunto le relative proprietà • La relazione di aggregazione è un’associazione speciale che aggrega uno o più concetti che in un singolo concetto composito • Le generalizzazioni, in modo similare ai diagrammi E-R, sono indicate con opportune frecce, linee continue che terminano in un triangolo vuoto, che collegano i concetti figli al padre 27 Modellazione dei dati con UML Direzione 1 0..1 Impiegato 1..* Codice {id} Cognome Stipendio Eta Dipartimento 0..1 Nome {id}[1] Telefono[1..*] Afferenza -Data Afferenza 1..* Partecipazione 1 <<identificante>> Data Inizio * 1..* Progetto Nome {id} Budget Data Consegna Sede Citta' {id} Indirizzo 28 Modellazione dei dati con UML Persona Professionista Codice fiscale {id} Cognome Eta' Uomo Situazione militare -Partita IVA {id} -Indirizzo Donna Avvocato Ingegnere Dottore Specializzazione 29 La progettazione concettuale La raccolta dei requisiti Le principali fonti per d’informazione per l’acquisizione delle specifiche sono: • Gli utenti delle applicazioni • La documentazione esistente • Eventuali realizzazioni preesistenti Strumenti • Uso del linguaggio naturale • Interviste con il cliente e gli utenti finali • Questionari • Workshop 30 La progettazione concettuale La raccolta dei requisiti L’attività di specifica è atta a formalizzare un documento illustrante le informazioni raccolte • Scegliere il corretto livello di astrazione • Standardizzare la struttura delle frasi • Evitare frasi contorte • Unificare i termini (possibilmente evitando sinonimi) • Rendere esplicito il contesto di riferimento • Costruire un glossario dei termini 31 La progettazione concettuale Criteri di rappresentazione • Un concetto che ha proprietà significative atte a descrivere classi di oggetti deve essere rappresentato con una entità • Un concetto senza caratteristiche proprie rilevanti e avente struttura semplice verrà rappresentato come attributo di un concetto cui si riferisce • L’associazione tra due o più concetti del dominio applicativo è rappresentata con una relazione tra le rispettive entità • Entità aventi caratteristiche comuni possono essere associate facendo uso della struttura di generalizzazione La progettazione concettuale Strategie di progetto • Top-down - Lo schema concettuale è il frutto di una serie di raffinamenti successivi a partire da uno schema generale in cui sono presenti pochi concetti ad un alto livello di astrazione • Bottom-up - Lo schema concettuale è costruito attraverso una serie di fusioni successive a partire da un insieme di schemi elementari in cui vengono rappresentati singoli frammenti della realtà di interesse • Inside-out - Si basa sulla strategia bottom-up avendo però come base di partenza gli schemi dei concetti più rilevanti nel dominio applicativo • Mista - Lo scheletro dello schema viene costruito con una strategia bottom-up che mantiene però un alto livello di astrazione dei concetti rappresentati. Lo schema risultante è poi raffinato con strategia topdown 32 La progettazione logica: dai diagrammi ER alla struttura del DB relazionale 33 Il modello ER viene sviluppato dall’analisi dei requisiti procedendo generalmente in modo top-down. La progettazione logica consiste nel definire la struttura del DB relazionale partendo dal modello relazionale. Prima della traduzione il diagramma ER va riorganizzato: Eliminare le ridondanze Eliminare le generalizzazioni Partizionare/accorpare entità e/o associazioni Scegliere gli identificatori primari z z z z Questo passaggio da struttura concettuale a struttura logica non è necessario con modelli object-oriented. 34 Ristrutturazione dei diagrammi ER Ð Eliminazione delle ridondanze Le ridondanze sono causate da dati derivabili (che dovrebbero essere aggiornati). L’eliminazione può essere fatta valutando i singoli casi. Esempi: Importo netto IVA Importo lordo Fattura importo totale Acquisto (1, N) Composizione (1, N) Prodotto prezzo 35 Ristrutturazione dei diagrammi ER (cont.) Ð Eliminazione delle generalizzazioni z A01 A02 R1 E0 E1 (x, y) E2 A11 E3 R2 E4 A21 Tre possibilità: 1. Accorpamento delle entità figlie con l’entità madre A01 A02 A11 A21 Tipo z R1 E0 E3 (0, y) R2 E4 36 Ristrutturazione dei diagrammi ER (cont.) 2. Suddivisione delle caratteristiche dell’entità madre nelle entità figlie R11 R12 A01 A02 A11 z E1 3. A01 A02 A21 z E2 (x, y) E3 R2 E4 Sostituzione delle generalizzazioni con associazioni. z A01 A02 (0,1) R1 E0 E3 (0,1) Rg1 Rg2 (1,1) (1,1) E1 A11 E2 A21 (x, y) R2 E4 37 Ristrutturazione dei diagrammi ER (cont.) Ð Partizionare/accorpare entità o associazioni Questo significa: a. Suddividere in più entità distinte gruppi di dati che sono usati separatamente da diverse procedure. codice cognome stipendio data nascita indirizzo livello ritenute z Esempio Impiegato codice Dati Anag. cognome data nascita indirizzo z (1, 1) (1, 1) Dati Lavor. Dati impiegato codice stipendio livello ritenute z 38 Ristrutturazione dei diagrammi ER (cont.) b. Suddividere associazioni che contengono informazioni che vengono utilizzate separatamente. Esempio z cognome ruolo (1, N) (1, N) composizione Giocatore Squadra z nome città data acquisto data cessione (0,1) data acquisto comp. attuale (1, 1) z cognome ruolo Giocatore (1, N) (0, N) (1, N) comp. precedente data acquisto data cessione Squadra z nome città 39 Ristrutturazione dei diagrammi ER (cont.) c. Eliminare attributi multivalore. Esempio nome indirizzo città telefono (1,N) z Agenzia z numero Telefono (1, 1) Recapito (1, N) Agenzia nome indirizzo città z 40 Ristrutturazione dei diagrammi ER (cont.) d. Accorpare entità (associazioni). Esempio CF cognome nome età z Persona (0, 1) (1, 1) Intestazione CF cognome Persona nome età indirizzo (0,1) interno (0,1) z z indirizzo Appartamento zinterno Traduzione dei diagrammi ER nel modello relazionale 41 Definire le tabelle specificando le chiavi primarie ed esterne. Ð Le regole di traduzione 1. Entità: diventano tabelle ed i loro identificatori chiavi primarie. 2. Associazioni N-N: diventano tabelle con chiave primaria formata dall’unione delle chiavi delle entità coinvolte. 3. Associazioni 1-N: gli attributi dell’associazione e la chiave primaria della tabella relativa all’entità dal lato “N” sono inclusi nella tabella relativa all’entità dal lato “1”. Traduzione dei diagrammi ER nel modello relazionale (cont.) Ð Le regole di traduzione 4. Entità con identificatori esterni: si procede come per le associazioni 1-N ma la chiave primaria risulta composta. 5. Associazioni 1-1: se obbligatorie si procede come per le 1-N scegliendo il lato in cui includere gli attributi e la chiave esterna; se una opzionale si includono gli attributi e la chiave esterna sul lato “obbligatorio”; se entrambe opzionali si costruisce una tabella autonoma come per il caso N-N. 42 Traduzione dei diagrammi ER nel modello relazionale (cont.) 43 Esempi di regole di traduzione: associazioni molti a molti matricola cognome stipendio z Impiegato (0, N) Partecipazione (0, N) codice budget nome z Progetto data inizio Schema Relazionale IMPIEGATI (Matricola, Cognome, Stipendio) PROGETTI (Codice, Nome, Budget) PARTECIPAZIONI (Matricola, Codice, DataInizio) PARTECIPAZIONI (Impiegato, Progetto, DataInizio) Traduzione dei diagrammi ER nel modello relazionale (cont.) Esempi di regole di traduzione: associazioni molti a molti ricorsiva (0, N) Composizione (0, N) quantità Composto Prodotto codice costo nome Componente z Schema Relazionale PRODOTTI (Codice, Nome, Costo) COMPOSIZIONI (Composto, Componente, Quantità) 44 Traduzione dei diagrammi ER nel modello relazionale (cont.) 45 Esempi di regole di traduzione: associazioni molti a molti ternaria z nome Dipartimento telefono (1, N) z (0, N) P.IVA Nome ditta Fornitore Fornitura (1, N) Prodotto z codice genere quantità Schema Relazionale PRODOTTI (Codice, Genere) FORNITORI (P_IVA, NomeDitta) DIPARTIMENTI (Nome, Telefono) FORNITURE (Fornitore, Prodotto, Dipartimento, Quantità) Traduzione dei diagrammi ER nel modello relazionale (cont.) Esempi di regole di traduzione: associazioni uno a molti data nascita cognome ruolo z z Giocatore (1,1) Contratto (0, N) ingaggio Squadra nome città colori sociali z Schema Relazionale SQUADRE (Nome, Città, ColoriSociali) GIOCATORI (DataNascita, Cognome, NomeSquadra, Ruolo, Ingaggio) Foreig n Key 46 Traduzione dei diagrammi ER nel modello relazionale (cont.) 47 Esempi di regole di traduzione: entità con identificatore esterno matricola cognome anno iscizione z Studente (1,1) (1,N ) Iscrizione Università nome città indirizzo z Schema Relazionale STUDENTI (Matricola, NomeUniversità, Cognome, AnnoIscrizione) UNIVERSITA’ (Nome, Città, Indirizzo) Traduzione dei diagrammi ER nel modello relazionale (cont.) 48 Esempi di regole di traduzione: associazioni uno a uno (obbligatoria) codice cognome stipendio z Direttore (1,1) Direzione (0, 1) data inizio Dipartimento nome telefono sede z Schema Relazionale DIRETTORI (Codice, Cognome, Stipendio, DipartimentoDiretto, InizioDirezione) DIPARTIMENTI (Nome, Telefono, Sede) in alternativa DIRETTORI (Codice, Cognome, Stipendio) DIPARTIMENTI (Nome, Telefono, Sede, Direttore, InizioDirezione) Traduzione dei diagrammi ER nel modello relazionale (cont.) Esempi di regole di traduzione: associazioni uno a uno (opzionale) codice cognome stipendio z Impiegato (0,1) Direzione (0, 1) Dipartimento data inizio nome telefono sede z Schema Relazionale IMPIEGATI (Codice, Cognome, Stipendio) DIPARTIMENTI (Nome, Telefono, Sede, Direttore, InizioDirezione) in alternativa IMPIEGATI (Codice, Cognome, Stipendio) DIPARTIMENTI (Nome, Telefono, Sede) DIREZIONI (Direttore, Dipartimento, DataInizioDirezione) 49