(03) Progettazione Concettuale - BD Nettuno17-20
Transcript
(03) Progettazione Concettuale - BD Nettuno17-20
IL MODELLO ENTITA’ - RELAZIONE I costruttori di base Argomenti della lezione • Entità • Relazioni • Attributi • Costruzione di schemi con i costrutti di base • Cenni sugli altri costrutti 1 Entità Classe di oggetti (fatti, persone, cose) della applicazione di interesse con proprietà comuni e con esistenza “autonoma” Esempi: impiegato fattura città conto corrente ordine studente 2 Occorrenza (o istanza) di entità: oggetto della classe che l’entità rappresenta nello schema concettuale rappresentiamo le entità, non le singole istanze (“astrazione”) Rappresentazione grafica di entità Impiegato Dipartimento Città Vendita 3 Ogni entità ha un nome che la identifica univocamente nello schema: nomi espressivi opportune convenzioni – singolare Relazione 4 Legame logico, significativo per l’applicazione di interesse, fra due o più entità. Esempi: Residenza (tra Persona e Città) Afferenza (tra Impiegato e Dipartimento) Rappresentazione grafica di relazione Studente Esame Corso Impiegato Residenza Città 5 Ogni relazione ha un nome che la identifica univocamente nello schema: nomi espressivi opportune convenzioni – singolare – sostantivi invece che verbi Esempi di occorrenze E1 E2 S1 E3 S2 C1 C2 S3 S4 Studente E4 C3 Corso 6 Due osservazioni Una occorrenza di entità non è un valore che identifica un oggetto, ma l’oggetto stesso In una occorrenza di relazione non ci possono essere ripetizioni Due entità possono essere coinvolte in più relazioni Sede di lavoro Impiegato Residenza Città 7 Le relazioni possono coinvolgere più di due entità Fornitore Fornitura Prodotto Dipartimento Una relazione può coinvolgere “due volte” la stessa entità (relazione ricorsiva) Matrimonio Persona 8 Nelle relazioni ricorsive in alcuni casi vanno specificati i “ruoli” Successione Successore Sovrano Predecessore Relazione ternaria ricorsiva Superficie Migliore Peggiore Confronto Tennista 9 Attributi Proprietà elementare di un’entità o di una relazione, di interesse ai fini dell’applicazione Un attributo associa ad ogni occorrenza di entità o relazione un valore appartenente a un insieme detto dominio dell’attributo 10 Rappresentazione grafica Cognome Età Impiegato Stipendio Data nascita Nome Nascita Città Provincia Attributi composti Si ottengono raggruppando attributi di una medesima entità o relazione che presentano affinità nel loro significato o uso Esempio: Via, Numero civico e CAP formano un Indirizzo 11 Rappresentazione grafica Cognome Impiegato Età Indirizzo Via Numero CAP Con i costrutti presentati è già possibile costruire schemi di una certa complessità Vediamo un esempio più articolato di schema Entità-Relazione con entità relazioni e attributi 12 Cognome Telefono Direzione Impiegato Dipartimento Afferenza Codice Nome Composizione Partecipazione Data Progetto Budget Nome Sede Via Indirizzo CAP Città Cardinalità delle relazioni Coppia di valori che si associa a ogni entità che partecipa a una relazione specificano il numero minimo e massimo di occorrenze delle relazione cui ciascuna occorrenza di una entità può partecipare 13 Esempio di cardinalità (1,5) Impiegato (0,50) Assegnamento Incarico 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 14 Occorrenze di Residenza R1 S1 C1 S2 C2 S3 R2 S4 C3 R3 S5 R4 Città Studente Cardinalità di Residenza (1,1) Studente (1,N) Residenza Città 15 Classificazione di relazioni Con riferimento alle cardinalità massime, abbiamo relazioni: uno a uno, uno a molti, molti a molti Relazioni “molti a molti” (0,N) Studente (0,N) Corso Esame (0,N) Montagna (1,N) Scalata Alpinista (0,N) Macchinista (0,N) Abilitazione Locomotore 16 Relazioni “uno a molti” (0,1) Persona (1,N) Azienda Impiego (1,1) Persona (1,N) Città Nascita (1,1) Comune (1,N) Ubicazione Provincia Relazioni “uno a uno” (0,1) Ordine (1,1) (1,1) Professore (0,1) Corso Docenza (0,1) Impiegato Fattura Vendita (1,1) Direzione Progetto 17 Cardinalità di attributi E’ possibile associare delle cardinalità anche agli attributi, con due scopi: indicare opzionalità indicare attributi multivalore Rappresentazione grafica (0,N) Targa auto Nome Impiegato (0,1) Numero patente 18 Identificatore di una entità “strumento” per l’identificazione univoca delle occorrenze di un’entità costituito da: attributi dell’entità →identificatore interno (attributi +) entità esterne attraverso relazioni →identificatore esterno Identificatori interni Targa Automobile Modello Colore Data Nascita Persona Cognome Nome 19 Identificatore esterno Cognome Matricola Nome (1,1) Studente Anno Iscrizione (1,N) Iscrizione Università Indirizzo Alcune osservazioni ogni entità deve possedere almeno un identificatore, ma può averne in generale più di uno una identificazione esterna è possibile solo attraverso una relazione a cui l’entità da identificare partecipa con cardinalità (1,1) 20 (0,1) Cognome (1,1) Telefono Direzione Impiegato Codice (1,N) (0,1) (0,N) Partecipazione Afferenza (0,1) Data (1,N) Progetto Budget Nome (1,N) Dipartimento Nome (1,1) Composizione (1,N) Sede Via Indirizzo CAP Città 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 21 Rappresentazione grafica Dipendente Impiegato Funzionario Dirigente Proprietà di generalizzazioni Se E (padre) è 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 ogni occorrenza di E è occorrenza al più di una entità tra E1, E2, ..., En 22 Città (1,N) Codice fiscale Nascita (1,1) Nome Persona Età Stipendio Lavoratore Studente Ereditarietà tutte le proprietà (attributi, relazioni, altre generalizzazioni) dell’entità padre vengono ereditate dalle entità figlie e non rappresentate esplicitamente 23 Classificazione di generalizzazioni una generalizzazione è totale se ogni occorrenza della entità padre è un occorrenza di almeno una delle entità figlie, altrimenti è parziale una generalizzazione è esclusiva se ogni occorrenza della entità padre è al più un occorrenza di una delle entità figlie, altrimenti è sovrapposta Persona Uomo Studente Lavoratore Donna 24 Altre proprietà possono esistere gerarchie a più livelli e multiple gerarchie allo stesso livello un'entità può essere inclusa in più gerarchie, come genitore e/o come figlia se una generalizzazione ha solo un’entità figlia si parla di sottoinsieme 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) 25 CF Persona Cognome Uomo Stipendio Donna Età Matr. Impiegato Studente Direttore Progettista Militare Segretario Responsabile Documentazione associata agli schemi concettuali dizionario dei dati – entità – relazioni vincoli non esprimibili 26 (0,1) Cognome (1,1) Telefono Direzione Impiegato Codice (1,N) (0,1) (0,N) (1,N) Dipartimento Afferenza (0,1) Partecipazione Composizione Data (1,N) (1,N) Progetto Budget Nome Nome (1,1) Sede Via Indirizzo CAP Città Dizionario dei dati (entità) Entità Impiegato Progetto Descrizione Dipendente dell'azienda Progetti aziendali Dipartimento Struttura aziendale Sede Sede dell'azienda Attributi Codice, Cognome, Stipendio Nome, Budget Nome, Telefono Città, Indirizzo Identificatore Codice Nome Nome, Sede Città 27 Dizionario dei dati (relazioni) Relazioni Direzione Afferenza Partecipazione Composizione Descrizione Direzione di un dipartimento Afferenza a un dipartimento Partecipazione a un progetto Composizione dell'azienda Componenti Attributi Impiegato, Dipartimento Impiegato, Data Dipartimento Impiegato, Progetto Dipartimento, Sede (0,1) Cognome (1,1) Telefono Direzione Impiegato Codice (1,N) (0,1) (0,N) Partecipazione Afferenza (0,1) Data (1,N) Progetto Budget Nome (1,N) Dipartimento Nome (1,1) Composizione (1,N) Sede Via Indirizzo CAP Città 28 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 Analisi dei dati Comprende attività di acquisizione dei requisiti analisi dei requisiti costruzione dello schema concettuale costruzione del glossario attività spesso interconnesse 29 Requisiti Possibili fonti: utenti, attraverso: – interviste – documentazione apposita documentazione esistente: – normative (leggi, regolamenti di settore) – regolamenti interni, procedure aziendali – realizzazioni preesistenti modulistica Acquisizione e analisi dei requisiti Il reperimento dei requisiti è un'attività difficile e non standardizzabile l'attività di analisi inizia con i primi requisiti raccolti e spesso indirizza verso altre acquisizioni 30 Acquisizione per interviste utenti diversi possono fornire informazioni diverse utenti a livello più alto hanno spesso una visione più ampia ma meno dettagliata le interviste portano spesso ad una acquisizione dei requisiti “per raffinamenti successivi” Interazione con gli utenti Alcune regole: effettuare spesso verifiche di comprensione e coerenza verificare anche per mezzo di esempi (generali e relativi a casi limite) richiedere definizioni e classificazioni far evidenziare gli aspetti essenziali rispetto a quelli marginali 31 Organizzazione dei requisiti Alcune regole: scegliere il corretto livello di astrazione standardizzare la struttura delle frasi suddividere le frasi articolate separare le frasi sui dati da quelle sulle funzioni Organizzazione dei requisiti Alcune regole: costruire un glossario dei termini individuare omonimi e sinonimi e unificare i termini rendere esplicito il riferimento fra termini riorganizzare le frasi per concetti 32 Un primo esempio di raccolta dei requisiti: Base di dati bibliografica Base di dati bibliografica Si vogliono organizzare i dati di interesse per automatizzare la gestione dei riferimenti bibliografici 33 Base di dati bibliografica Si vogliono organizzare i dati di interesse per automatizzare la gestione dei riferimenti bibliografici, con tutte le informazioni da riportarsi in una bibliografia. Per ogni pubblicazione deve esistere un codice identificante costituito da sette caratteri, indicanti le iniziali degli autori, l'anno di pubblicazione e un carattere aggiuntivo per la discriminazione delle collisioni. Base di dati bibliografica Si vogliono organizzare i dati di interesse per automatizzare la gestione dei riferimenti bibliografici, con tutte le informazioni da riportarsi in una bibliografia. Le pubblicazioni sono di due tipi, monografie (per le quali interessano editore, data e luogo di pubblicazione) e articoli su rivista (con nome della rivista, volume, numero, pagine e anno di pubblicazione); per entrambi i tipi si debbono ovviamente riportare i nomi degli autori. Per ogni pubblicazione deve esistere un codice identificante ..... 34 Un esempio articolato di analisi dei requisiti: Società di formazione Società di formazione (1) Si vuole realizzare una base di dati per una società che eroga corsi, di cui vogliamo rappresentare i dati dei partecipanti ai corsi e dei docenti. Per gli studenti (circa 5000), identificati da un codice, si vuole memorizzare il codice fiscale, il cognome, l'età, il sesso, il luogo di nascita, il nome dei loro attuali datori di lavoro, i posti dove hanno lavorato in precedenza insieme al periodo, l'indirizzo e il numero di telefono, i corsi che hanno frequentato (i corsi sono in tutto circa 200) e il giudizio finale. 35 Società di formazione (2) Rappresentiamo anche i seminari che stanno attualmente frequentando e, per ogni giorno, i luoghi e le ore dove sono tenute le lezioni. I corsi hanno un codice, un titolo e possono avere varie edizioni con date di inizio e fine e numero di partecipanti. Se gli studenti sono liberi professionisti, vogliamo conoscere l'area di interesse e, se lo possiedono, il titolo. Per quelli che lavorano alle dipendenze di altri, vogliamo conoscere invece il loro livello e la posizione ricoperta. Società di formazione (3) Per gli insegnanti (circa 300), rappresentiamo il cognome, l'età, il posto dove sono nati, il nome del corso che insegnano, quelli che hanno insegnato nel passato e quelli che possono insegnare. Rappresentiamo anche tutti i loro recapiti telefonici. I docenti possono essere dipendenti interni della società o collaboratori esterni. 36 Glossario dei termini Termine Descrizione Partecipante Persona che partecipa ai corsi Docente Corso Società Sinonimi Studente Collegamenti Corso, Società Insegnante Corso Docente dei corsi. Può essere esterno Corso organizzato Seminario dalla società. Può avere più edizioni. Ente presso cui i Posti partecipanti lavorano o hanno lavorato Docente Partecipante Strutturazione dei requisiti in gruppi di frasi omogenee 37 Frasi di carattere generale Si vuole realizzare una base di dati per una società che eroga corsi, di cui vogliamo rappresentare i dati dei partecipanti ai corsi e dei docenti. Frasi relative ai partecipanti Per i partecipanti (circa 5000), identificati da un codice, rappresentiamo il codice fiscale, il cognome, l'età, il sesso, la città di nascita, i nomi dei loro attuali datori di lavoro e di quelli precedenti (insieme alle date di inizio e fine rapporto), le edizioni dei corsi che stanno attualmente frequentando e quelli che hanno frequentato nel passato, con la relativa votazione finale in decimi. 38 Frasi relative ai datori di lavoro Relativamente ai datori di lavoro presenti e passati dei partecipanti, rappresentiamo il nome, l'indirizzo e il numero di telefono. Frasi relative ai corsi Per i corsi (circa 200), rappresentiamo il titolo e il codice, le varie edizioni con date di inizio e fine e, per ogni edizione, rappresentiamo il numero di partecipanti e il giorno della settimana, le aule e le ore dove sono tenute le lezioni. Frasi relative a tipi specifici di partecipanti Per i partecipanti che sono liberi professionisti, rappresentiamo l'area di interesse e, se lo possiedono, il titolo professionale. Per i partecipanti che sono dipendenti, rappresentiamo invece il loro livello e la posizione ricoperta. 39 Frasi relative ai docenti Per i docenti (circa 300), rappresentiamo il cognome, l'età, la città di nascita, tutti i numeri di telefono, il titolo del corso che insegnano, di quelli che hanno insegnato nel passato e di quelli che possono insegnare. I docenti possono essere dipendenti interni della società di formazione o collaboratori esterni. Quale costrutto E-R va utilizzato per rappresentare un concetto presente nelle specifiche? Bisogna basarsi sulle definizioni dei costrutti del modello E-R 40 se ha proprietà significative e descrive oggetti con esistenza autonoma →entità se è semplice e non ha proprietà →attributo se correla due o più concetti →relazione se è caso particolare di un altro →generalizzazione Strategie di progetto top-down bottom-up inside-out 41 Qualità di uno schema concettuale correttezza completezza leggibilità minimalità Strategie di progetto top-down bottom-up inside-out 42 Strategia top-down Schema Schema intermedio iniziale Schema Specifiche intermedio Schema finale Primitive di raffinamento top-down Cognome Età Persona Studente Impiegato Esame Persona Esame Uomo Corso Donna Stipendio 43 Strategia bottom-up Specifiche 2,1 Schema 2,1 Specifiche 1,1 Schema 1,1 Specifiche Specifiche 1 Specifiche 2 Schema finale Specifiche 2,2 Schema 2,2 Specifiche1,2 1,2 Schema Primitive di raffinamento Bottom-up Persona Studente Uomo Specifica su Esame Impiegato impiegato Corso Donna 44 Strategia inside-out: un esempio (0,1) Cognome (1,1) Telefono Direzione Impiegato Codice (1,N) (0,1) (0,N) Partecipazione Afferenza (0,1) Data (1,N) Progetto Budget Nome (1,N) Dipartimento Nome (1,1) Composizione (1,N) Sede Via Indirizzo CAP Città 45 In pratica si procede di solito con una strategia ibrida (detta anche mista): si individuano i concetti principali e si realizza uno schema scheletro sulla base di questo si può decomporre poi si raffina, si espande, si integra Definizione dello schema scheletro Si individuano i concetti più importanti, ad esempio perché più citati o perché indicati esplicitamente come cruciali e li si organizza in un semplice schema concettuale 46 Qualità di uno schema concettuale correttezza completezza leggibilità minimalità Un esempio di progettazione concettuale Società di formazione 47 Frasi di carattere generale Si vuole realizzare una base di dati per una società che eroga corsi, di cui vogliamo rappresentare i dati dei partecipanti ai corsi e dei docenti. Schema scheletro Corso Partecipazione Docenza Partecipante Docente 48 Frasi relative ai partecipanti Per i partecipanti (circa 5000), identificati da un codice, rappresentiamo il codice fiscale, il cognome, l'età, il sesso, la città di nascita, i nomi dei loro attuali datori di lavoro e di quelli precedenti (insieme alle date di inizio e fine rapporto), le edizioni dei corsi che stanno attualmente frequentando e quelli che hanno frequentato nel passato, con la relativa votazione finale in decimi. Frasi relative ai datori di lavoro Relativamente ai datori di lavoro presenti e passati dei partecipanti, rappresentiamo il nome, l'indirizzo e il numero di telefono. Frasi relative a tipi specifici di partecipanti Per i partecipanti che sono liberi professionisti, rappresentiamo l'area di interesse e, se lo possiedono, il titolo professionale. Per i partecipanti che sono dipendenti, rappresentiamo invece il loro livello e la posizione ricoperta. 49 Datore (0,N) (0,N) (1,1) Impiego corrente (0,N) Impiego passato Partecipante Nome ….. CF Codice ….. Dipendente Livello Posizione Professionista Titolo prof. Area Frasi relative ai corsi Per i corsi (circa 200), rappresentiamo il titolo e il codice, le varie edizioni con date di inizio e fine e, per ogni edizione, rappresentiamo il numero di partecipanti e il giorno della settimana, le aule e le ore dove sono tenute le lezioni. 50 Data fine Data inizio N.Part. Edizione corso (1,1) Tipologia (0,N) Composizione (1,1) Corso Titolo (1,N) Codice Lezione Orario Aula Giorno Frasi relative ai docenti Per i docenti (circa 300), rappresentiamo il cognome, l'età, la città di nascita, tutti i numeri di telefono, il titolo del corso che insegnano, di quelli che hanno insegnato nel passato e di quelli che possono insegnare. I docenti possono essere dipendenti interni della società di formazione o collaboratori esterni. 51 Telefono CF (1,N) Cognome Docente Città nascita Età Collaboratore Interno Integrazione Corso Partecipazione Docenza Partecipante Docente 52 (0,N) partecipazione passata (0,1) (0,N) partecipazione Partecipazione corrente Partecipante (0,1) Edizione Corso corso Data inizio (0,N) (0,N) Docenza passata Docente Docenza (0,1) (1,1) Edizione Corso corso (0,1) Docenza corrente Tipologia (1,N) (0,N) Corso Abilitazione (1,N) Titolo Codice 53 Una metodologia generale (1) Analisi dei requisiti Costruire un glossario dei termini Analizzare i requisiti ed eliminare le ambiguità presenti Raggruppare i requisiti in insiemi omogenei Una metodologia generale (2) Passo base Individuare i concetti più rilevanti e rappresentarli in uno schema scheletro (3) Passo di decomposizione Effettuare una decomposizione con riferimento ai concetti dello schema scheletro 54 Una metodologia generale (4) Passo iterativo (da ripetere finché non si è soddisfatti) Raffinare i concetti presenti sulla base delle loro specifiche; Aggiungere concetti per descrivere specifiche non ancora descritte; Una metodologia generale (5) Passo di integrazione Integrare i vari sotto-schemi con riferimento allo schema scheletro (6) Analisi di qualità (ripetuta e distribuita) Verificare le qualità dello schema ed eventualmente ristrutturarlo 55