Progettazione di basi di dati Metodologie e modelli Studio di fattibilità Raccolta e analisi dei requisiti Progettazione Realizzazione Validazione e collaudo Funzionamento Le nuove tecnologie Software 21 December, 2015 - slide La progettazione di un sistema informativo riguarda due aspetti: progettazione dei dati progettazione delle applicazioni Ma: i dati hanno un ruolo centrale i dati sono più stabili Le nuove tecnologie Software 21 December, 2015 - slide Studio di fattibilità Raccolta e analisi dei requisiti Progettazione dei dati Realizzazione Validazione e collaudo Funzionamento Le nuove tecnologie Software 21 December, 2015 - slide Requisiti della base di dati “CHE COSA”: analisi Progettazione concettuale Schema concettuale Progettazione logica Schema logico “COME”: progettazione Progettazione fisica Schema fisico Le nuove tecnologie Software 21 December, 2015 - slide Schemi e istanze In ogni base di dati esistono: lo schema, sostanzialmente invariante nel tempo, che ne descrive la struttura (aspetto intensionale) nel modello relazionale, le intestazioni delle tabelle l’istanza, i valori attuali, che possono cambiare anche molto rapidamente (aspetto estensionale) nel modello relazionale, il “corpo” di ciascuna tabella Le nuove tecnologie Software 21 December, 2015 - slide Due tipi (principali) di modelli modelli logici: utilizzati nei DBMS esistenti per l’organizzazione dei dati utilizzati dai programmi indipendenti dalle strutture fisiche esempi: relazionale, reticolare, gerarchico, a oggetti modelli concettuali: permettono di rappresentare i dati in modo indipendente da ogni sistema cercano di descrivere i concetti del mondo reale sono utilizzati nelle fasi preliminari di progettazione il più noto è il modello Entity-Relationship Le nuove tecnologie Software 21 December, 2015 - slide Architettura (semplificata) di un DBMS utente Schema logico Schema interno BD Le nuove tecnologie Software 21 December, 2015 - slide Progettazione concettuale Progettazione logica Progettazione fisica Le nuove tecnologie Software 21 December, 2015 - slide Modello Entity-Relationship (Entità-Relazione) Il più diffuso modello concettuale Ne esistono molte versioni, (più o meno) diverse l’una dall’altra Le nuove tecnologie Software 21 December, 2015 - slide I costrutti del modello E-R Entità Relationship Attributo Identificatore Generalizzazione …. Le nuove tecnologie Software 21 December, 2015 - slide Entità Classe di oggetti (fatti, persone, cose) della applicazione di interesse con proprietà comuni e con esistenza “autonoma” Esempi: impiegato, città, conto corrente, ordine, fattura Le nuove tecnologie Software 21 December, 2015 - slide Relationship Legame logico fra due o più entità, rilevante nell’applicazione di interesse Esempi: Residenza (fra persona e città) Esame (fra studente e corso) Le nuove tecnologie Software 21 December, 2015 - slide Uno schema E-R, graficamente Studente Le nuove tecnologie Software Esame Corso 21 December, 2015 - slide Entità Classe di oggetti (fatti, persone, cose) della applicazione di interesse con proprietà comuni e con esistenza “autonoma” Esempi: impiegato, città, conto corrente, ordine, fattura Le nuove tecnologie Software 21 December, 2015 - slide Entità: schema e istanza Entità: classe di oggetti, persone, … "omogenei" Occorrenza (o istanza) di entità: elemento della classe (l'oggetto, la persona, …, non i dati) nello schema concettuale rappresentiamo le entità, non le singole istanze (“astrazione”) Le nuove tecnologie Software 21 December, 2015 - slide Rappresentazione grafica di entità Impiegato Dipartimento Città Vendita Le nuove tecnologie Software 21 December, 2015 - slide Entità, commenti Ogni entità ha un nome che la identifica univocamente nello schema: nomi espressivi opportune convenzioni singolare Le nuove tecnologie Software 21 December, 2015 - slide Relationship Legame logico fra due o più entità, rilevante nell’applicazione di interesse Esempi: Residenza (fra persona e città) Esame (fra studente e corso) Chiamata anche: relazione, correlazione, associazione Le nuove tecnologie Software 21 December, 2015 - slide Rappresentazione grafica di relationship Studente Esame Corso Impiegato Residenza Città Le nuove tecnologie Software 21 December, 2015 - slide Relationship, commenti Ogni relationship ha un nome che la identifica univocamente nello schema: nomi espressivi opportune convenzioni singolare sostantivi invece che verbi (se possibile) Le nuove tecnologie Software 21 December, 2015 - slide Esempi di occorrenze E1 E2 S1 E3 S2 C2 S3 S4 Studente Le nuove tecnologie Software C1 E4 C3 Corso 21 December, 2015 - slide Relationship, occorrenze Una occorrenza di una relationship binaria è coppia di occorrenze di entità, una per ciascuna entità coinvolta Una occorrenza di una relationship n-aria è una n-upla di occorrenze di entità, una per ciascuna entità coinvolta Nell'ambito di una relationship non ci possono essere occorrenze (coppie, ennuple) ripetute Le nuove tecnologie Software 21 December, 2015 - slide Due relationship sulle stesse entità Sede di lavoro Impiegato Le nuove tecnologie Software Residenza Città 21 December, 2015 - slide Relationship n-aria Fornitore Fornitura Prodotto Dipartimento Le nuove tecnologie Software 21 December, 2015 - slide Relationship ricorsiva: coinvolge “due volte” la stessa entità Conoscenza Persona Le nuove tecnologie Software 21 December, 2015 - slide Relationship ricorsiva con “ruoli” Successione Successore Le nuove tecnologie Software Sovrano Predecessore 21 December, 2015 - slide Relationship ternaria ricorsiva Superficie Migliore Peggiore Confronto Tennista Le nuove tecnologie Software 21 December, 2015 - slide Attributo Proprietà elementare di un’entità o di una relationship, di interesse ai fini dell’applicazione Associa ad ogni occorrenza di entità o relationship un valore appartenente a un insieme detto dominio dell’attributo Le nuove tecnologie Software 21 December, 2015 - slide Attributi, rappresentazione grafica Cognome Nome Data Studente Matricola Le nuove tecnologie Software Voto Esame Titolo Corso Codice 21 December, 2015 - slide Attributi composti Raggruppano attributi di una medesima entità o relationship che presentano affinità nel loro significato o uso Esempio: Via, Numero civico e CAP formano un Indirizzo Le nuove tecnologie Software 21 December, 2015 - slide Rappresentazione grafica Cognome Impiegato Età Indirizzo Via Numero CAP Le nuove tecnologie Software 21 December, 2015 - slide Cognome Telefono Direzione Impiegato Dipartimento Afferenza Codice Nome Composizione Partecipazione Data Progetto Budget Le nuove tecnologie Software Nome Sede Via Indirizzo CAP Città 21 December, 2015 - slide Altri costrutti del modello E-R Cardinalità di relationship di attributo Identificatore interno esterno Generalizzazione Le nuove tecnologie Software 21 December, 2015 - slide Cardinalità di relationship Coppia di valori associati a ogni entità che partecipa a una relationship specificano il numero minimo e massimo di occorrenze delle relationship cui ciascuna occorrenza di una entità può partecipare Le nuove tecnologie Software 21 December, 2015 - slide Esempio di cardinalità (1,5) Impiegato Le nuove tecnologie Software (0,50) Assegnamento Incarico 21 December, 2015 - slide per semplicità usiamo solo tre simboli: 0 e 1 per la cardinalità minima: 0 = “partecipazione opzionale” 1 = “partecipazione obbligatoria” 1 e “N” per la massima: “N” non pone alcun limite Le nuove tecnologie Software 21 December, 2015 - slide Tipi di relationship Con riferimento alle cardinalità massime, abbiamo relationship: uno a uno uno a molti molti a molti Le nuove tecnologie Software 21 December, 2015 - slide Relationship “molti a molti” (0,N) Studente (0,N) Corso Esame (0,N) Montagna (1,N) Scalata Alpinista (1,N) Macchinista Le nuove tecnologie Software (1,N) Abilitazione Locomotore 21 December, 2015 - slide Relationship “uno a molti” (0,1) Persona (0,N) Impiego Azienda (1,1) Cinema (0,N) Ubicazione Località (1,1) Comune Le nuove tecnologie Software (1,N) Ubicazione Provincia 21 December, 2015 - slide Relationship “uno a uno” (0,1) Professore Professore di ruolo Professore di ruolo Le nuove tecnologie Software (0,1) Cattedra Titolarità (1,1) (0,1) Cattedra Titolarità (1,1) (1,1) Titolarità Cattedra coperta 21 December, 2015 - slide Cardinalità di attributi E’ possibile associare delle cardinalità anche agli attributi, con due scopi: indicare opzionalità ("informazione incompleta") indicare attributi multivalore Le nuove tecnologie Software 21 December, 2015 - slide Rappresentazione grafica (0,N) Nome Impiegato (0,1) Le nuove tecnologie Software Telefono Numero patente 21 December, 2015 - slide (0,1) (1,1) Direzione Cognome Impiegato Codice (0,N) (0,1) (0,N) Partecipazione Afferenza (0,1) Data (1,N) Progetto Budget Le nuove tecnologie Software Nome Telefono (1,N) Dipartimento Nome (1,1) Composizione (1,N) Sede Via Indirizzo CAP Città 21 December, 2015 - slide Generalizzazione mette in relazione una o più entità E1, E2, ..., En con una entità E, che le comprende come caso particolare E è generalizzazione di E1, E2, ..., En E1, E2, ..., En sono specializzazioni (o sottotipi) di E Le nuove tecnologie Software 21 December, 2015 - slide Rappresentazione grafica Dipendente Impiegato Le nuove tecnologie Software Funzionario Dirigente 21 December, 2015 - slide Proprietà delle generalizzazioni Se E (genitore) è generalizzazione di E1, E2, ..., En (figlie): ogni proprietà di E è significativa per E1, E2, ..., En ogni occorrenza di E1, E2, ..., En è occorrenza anche di E Le nuove tecnologie Software 21 December, 2015 - slide Città (0,N) Nascita (1,1) Persona Codice fiscale Nome Età Stipendio Lavoratore Le nuove tecnologie Software Studente 21 December, 2015 - slide Ereditarietà tutte le proprietà (attributi, relationship, altre generalizzazioni) dell’entità genitore vengono ereditate dalle entità figlie e non rappresentate esplicitamente Le nuove tecnologie Software 21 December, 2015 - slide Tipi di generalizzazioni totale se ogni occorrenza dell'entità genitore è occorrenza di almeno una delle entità figlie, altrimenti è parziale esclusiva se ogni occorrenza dell'entità genitore è occorrenza di al più una delle entità figlie, altrimenti è sovrapposta consideriamo (senza perdita di generalità) solo generalizzazioni esclusive e distinguiamo fra totali e parziali Le nuove tecnologie Software 21 December, 2015 - slide Persona Disoccupato Le nuove tecnologie Software Lavoratore 21 December, 2015 - slide Persona Uomo Le nuove tecnologie Software Donna 21 December, 2015 - slide Esercizio Le persone hanno CF, cognome ed età; gli uomini anche la posizione militare; gli impiegati hanno lo stipendio e possono essere segretari, direttori o progettisti (un progettista può essere anche responsabile di progetto); gli studenti (che non possono essere impiegati) un numero di matricola; esistono persone che non sono né impiegati né studenti (ma i dettagli non ci interessano) Le nuove tecnologie Software 21 December, 2015 - slide CF Persona Cognome Uomo Stipendio Donna Età Matr. Impiegato Studente Direttore Progettista Militare Segretario Responsabile Le nuove tecnologie Software 21 December, 2015 - slide Documentazione associata agli schemi concettuali dizionario dei dati entità relationship vincoli non esprimibili Le nuove tecnologie Software 21 December, 2015 - slide (0,1) (1,1) Direzione Cognome Impiegato Codice (0,N) (0,1) (0,N) Partecipazione Afferenza (0,1) Data (1,N) Progetto Budget Le nuove tecnologie Software Nome Telefono (1,N) Dipartimento Nome (1,1) Composizione (1,N) Sede Via Indirizzo CAP Città 21 December, 2015 - slide Dizionario dei dati (entità) Entità Impiegato Progetto Descrizione Dipendente dell'azienda Progetti aziendali Dipartimento Struttura aziendale Sede Sede dell'azienda Le nuove tecnologie Software Attributi Codice, Cognome, Stipendio Nome, Budget Nome, Telefono Città, Indirizzo Identificatore Codice Nome Nome, Sede Città 21 December, 2015 - slide Dizionario dei dati (relationship) Relazioni Direzione Descrizione Direzione di un dipartimento Afferenza Afferenza a un dipartimento Partecipazione Partecipazione a un progetto Composizione Composizione dell'azienda Le nuove tecnologie Software Componenti Attributi Impiegato, Dipartimento Impiegato, Data Dipartimento Impiegato, Progetto Dipartimento, Sede 21 December, 2015 - slide Vincoli non esprimibili Vincoli di integrità sui dati (1) Il direttore di un dipartimento deve a afferire a tale dipartimento (2) Un impiegato non deve avere uno stipendio maggiore del direttore del dipartimento al quale afferisce (3) Un dipartimento con sede a Roma deve essere diretto da un impiegato con più di dieci anni di anzianità (4) Un impiegato che non afferisce a nessun dipartimento non deve partecipare a nessun un progetto Le nuove tecnologie Software 21 December, 2015 - slide