Progettazione concettuale Requisiti della base di dati Progettazione concettuale Schema concettuale Progettazione logica Schema logico Progettazione fisica Schema fisico Progettazione ER 21 December, 2015 - slide 2 Analisi dei requisiti e progettazione concettuale ("Analisi dei dati") Comprende attività (interconnesse) di Progettazione ER acquisizione dei requisiti analisi dei requisiti costruzione dello schema concettuale costruzione del glossario 21 December, 2015 - slide 3 Requisiti Possibili fonti: utenti, attraverso: interviste documentazione apposita documentazione esistente: normative (leggi, regolamenti di settore) regolamenti interni, procedure aziendali realizzazioni preesistenti Progettazione ER modulistica 21 December, 2015 - slide 4 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 Progettazione ER 21 December, 2015 - slide 5 Acquisizione per interviste Progettazione ER 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” 21 December, 2015 - slide 6 Interazione con gli utenti Spunti: Progettazione ER 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 21 December, 2015 - slide 7 Requisiti: documentazione descrittiva Regole generali: Progettazione ER scegliere il corretto livello di astrazione standardizzare la struttura delle frasi suddividere le frasi articolate separare le frasi sui dati da quelle sulle funzioni 21 December, 2015 - slide 8 Requisiti: organizzazione di termini e concetti Regole generali Progettazione ER costruire un glossario dei termini individuare omonimi e sinonimi e unificare i termini rendere esplicito il riferimento fra termini riorganizzare le frasi per concetti 21 December, 2015 - slide 9 Requisiti, un esempio Base di dati bibliografica Si vogliono organizzare i dati di interesse per automatizzare la gestione dei riferimenti bibliografici Progettazione ER 21 December, 2015 - slide 10 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. Progettazione ER 21 December, 2015 - slide 11 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 ..... Progettazione ER 21 December, 2015 - slide 12 Un esempio più articolato 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. Progettazione ER 21 December, 2015 - slide 13 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. Progettazione ER 21 December, 2015 - slide 14 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. Progettazione ER 21 December, 2015 - slide 15 Glossario dei termini Termine Descrizione Partecipante Persona che partecipa ai corsi Docente Corso Società Progettazione ER 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 21 December, 2015 - slide 16 Strutturazione dei requisiti in gruppi di frasi omogenee Progettazione ER 21 December, 2015 - slide 17 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. Progettazione ER 21 December, 2015 - slide 18 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. Progettazione ER 21 December, 2015 - slide 19 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. Progettazione ER 21 December, 2015 - slide 20 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. Progettazione ER 21 December, 2015 - slide 21 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. Progettazione ER 21 December, 2015 - slide 22 Quale costrutto E-R va utilizzato per rappresentare un concetto presente nelle specifiche? Bisogna basarsi sulle definizioni dei costrutti del modello E-R Progettazione ER 21 December, 2015 - slide 23 se ha proprietà significative e descrive oggetti con esistenza autonoma se è semplice e non ha proprietà relazione se è caso particolare di un altro Progettazione ER attributo se correla due o più concetti entità generalizzazione 21 December, 2015 - slide 24 Design pattern Soluzioni progettuali a problemi comuni Largamente usati nell’ingegneria del software Vediamo alcuni pattern comuni nella progettazione concettuale di basi di dati Progettazione ER 21 December, 2015 - slide 25 Reificazione di attributo di entità Codice Nome Azienda IMPIEGATO Codice Nome Nome (1,1) IMPIEGATO Progettazione ER (1,N) IMPIEGO AZIENDA 21 December, 2015 - slide 26 Part-of Nome Numero (1,N) CINEMA (1,1) SALA COMPOSIZ. Nome Codice (1,N) TEAM Progettazione ER (0,1) COMPOSIZ. TECNICO 21 December, 2015 - slide 27 Istance-of Codice Orario Origine Data (1,N) VOLO (1,1) OCCORRENZ. REALE Destinazione Nome Anno (1,N) TORNEO Progettazione ER VOLO OCCORRENZ. (1,1) EDIZIONE TORNEO 21 December, 2015 - slide 28 Reificazione di relazione binaria Matricola Codice Data (0,N) STUDENTE (0,N) ESAME CORSO Voto Data Matricola (0,N) STUDENTE (1,1) Codice (1,1) ESAME S-E (0,N) CORSO E-C Voto Codice Matricola (0,N) STUDENTE Data (1,1) S-E Codice (1,1) ESAME (0,N) E-C CORSO Voto Progettazione ER 21 December, 2015 - slide 29 Reificazione di relazione ricorsiva (1,1) (1,N) CASA Nome Data SQUADRA PARTITA Risultato (1,1) (1,N) Città OSPITE Progettazione ER 21 December, 2015 - slide 30 Reificazione di attributo di relazione Codice Nome (1,N) MUSICISTA Codice Nome Strumento Tipologia (1,N) ORCHESTRA PARTECIPAZ. Nome Nome (1,N) MUSICISTA (1,1) M-P (1,N) (1,1) PARTECIPAZ. Tipologia P-O ORCHESTRA (1,1) P-S (1,N) STRUMENTO Sigla Progettazione ER Descrizione 21 December, 2015 - slide 31 Caso particolare Codice Nome Nome (0,N) IMPIEGATO Scadenza (1,N) PARTECIP. PROGETTO (1,1) MANAGER (1,N) GESTIONE 25/07/2009 Progettazione ER 21 December, 2015 - slide 32 Storicizzazione di concetto P. IVA Nome Indirizzo Data inizio Telefono ANAGRAFICO validità AZIENDA Data fine validità Capitale ANAGRAFICO ANAGRAFICO STORICO CORRENTE Nome Nome Dimensione Data rilascio S.O. SOFTWARE Requisiti Data fine validità Progettazione ER SOFTWARE SOFTWARE OBSOLETO AGGIORNATO 21 December, 2015 - slide 33 Storicizzazione di concetto Inizio (0,1) IMPIEGO (1,N) CORRENTE CF Inizio PERSONA Indirizzo Nome (0,N) IMPIEGO AZIENDA Città (1,N) PASSATO Fine Inizio CF (0,N) (1,1) PERSONA Indirizzo Nome (1,N) IMPIEGO AZIENDA Città (0,1) (1,1) Progettazione ER (1,1) IMPIEGO IMPIEGO CORRENTE PASSATO Fine 21 December, 2015 - slide 34 Evoluzione di concetto Codice Nome Obiettivo Nome (1,N) PROGETTO CV (1,1) PARTECIP. RICERCATORE Finanziamento PROGETTO Data inizio Progettazione ER ACCETTATO 21 December, 2015 - slide 35 Relazione ternaria Codice Durata Nome (1,N) OPERATORE Nome Indirizzo (1,N) INTERVENTO SEDE (1,N) ATTIVITA’ Sigla Progettazione ER Descrizion e 21 December, 2015 - slide 36 Reificazione di relazione ternaria Codice (1,N) OPERATORE Nome Durata Nome (1,1) O-I (1,N) (1,1) INTERVENTO Indirizzo I-S SEDE (1,1) I-A (1,N) ATTIVITA’ Sigla Progettazione ER Descrizion e 21 December, 2015 - slide 37 Reificazione di relazione ternaria 2 Codice (1,N) OPERATORE Progettazione ER Durata Sigla Descrizione Nome (1,1) (1,1) O-S ATTIVITA’ Nome Indirizzo (1,N) S-I SEDE 21 December, 2015 - slide 38 Strategie di progetto Progettazione ER top-down bottom-up inside-out 21 December, 2015 - slide 39 Strategia top-down Schema Schema intermedio iniziale Schema Specifiche intermedio Schema finale Progettazione ER 21 December, 2015 - slide 40 Primitive di raffinamento top-down Cognome Età Persona Studente Impiegato Esame Esame Persona Uomo Corso Donna Stipendio Progettazione ER 21 December, 2015 - slide 41 Strategia bottom-up Specifiche 1,1 Schema 1,1 Specifiche 2,1 Schema 2,1 Specifiche Specifiche 1 Specifiche 2 Schema finale Specifiche1,2 1,2 Schema Progettazione ER Specifiche 2,2 Schema 2,2 21 December, 2015 - slide 42 Primitive di raffinamento Bottom-up Persona Studente Uomo Progettazione ER Specifica su Esame Impiegato impiegato Corso Donna 21 December, 2015 - slide 43 Strategia inside-out: un esempio Progettazione ER 21 December, 2015 - slide 44 (0,1) Cognome (1,1) Telefono Direzione Impiegato Codice (1,N) (0,1) (0,N) Partecipazione Afferenza (0,1) Data (1,N) Progetto Budget Progettazione ER Nome (1,N) Dipartimento Nome (1,1) Composizione (1,N) Sede Via Indirizzo CAP Città 21 December, 2015 - slide 45 In pratica si procede di solito con una strategia ibrida (mista): Progettazione ER 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 21 December, 2015 - slide 46 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 Progettazione ER 21 December, 2015 - slide 47 Qualità di uno schema concettuale Progettazione ER correttezza completezza leggibilità minimalità 21 December, 2015 - slide 48 Una metodologia Analisi dei requisiti Analizzare i requisiti ed eliminare le ambiguità Costruire un glossario dei termini Raggruppare i requisiti in insiemi omogenei Passo base Definire uno schema scheletro con i concetti più rilevanti Passo iterativo (da ripetere finché non si è soddisfatti) Raffinare i concetti presenti sulla base delle loro specifiche Aggiungere concetti per descrivere specifiche non descritte Analisi di qualità (ripetuta e distribuita) Progettazione ER Verificare le qualità dello schema e modificarlo 21 December, 2015 - slide 49 Una metodologia con integrazione Analisi dei requisiti Passo base Decomposizione decomporre i requisiti con riferimento ai concetti nello schema scheletro Passo iterativo, per ogni sottoschema Integrazione integrare i vari sottoschemi in uno schema complessivo, facendo riferimento allo schema scheletro Analisi di qualità Progettazione ER 21 December, 2015 - slide 50 Un'altra metodologia con integrazione Analisi dei requisiti Decomposizione dei requisiti individuazione di settoro di interesse e suddivisione dei requisiti (o addirittura acquisizione separata) Per ciascun settore Passo base Passo iterativo Integrazione Analisi di qualità Progettazione ER 21 December, 2015 - slide 51 Un esempio di progettazione concettuale Società di formazione Progettazione ER 21 December, 2015 - slide 52 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. Progettazione ER 21 December, 2015 - slide 53 Schema scheletro Corso Progettazione ER Partecipazione Docenza Partecipante Docente 21 December, 2015 - slide 54 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. Progettazione ER 21 December, 2015 - slide 55 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. Progettazione ER 21 December, 2015 - slide 56 Datore (0,N) (0,N) (1,1) Impiego corrente (0,N) Impiego passato Partecipante Nome ….. CF Codice ….. Dipendente Livello Progettazione ER Posizione Professionista Titolo prof. Area 21 December, 2015 - slide 57 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. Progettazione ER 21 December, 2015 - slide 58 Data fine Data inizio N.Part. Edizione corso (1,1) Tipologia (0,N) Progettazione ER Composizione (1,1) Corso Titolo (1,N) Codice Lezione Orario Aula Giorno 21 December, 2015 - slide 59 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. Progettazione ER 21 December, 2015 - slide 60 Telefono CF (1,N) Cognome Docente Città nascita Età Collaboratore Progettazione ER Interno 21 December, 2015 - slide 61 Integrazione Corso Progettazione ER Partecipazione Docenza Partecipante Docente 21 December, 2015 - slide 62 (0,N) Partecipante Progettazione ER partecipazione passata (0,N) (0,1) (0,N) partecipazione Partecipazione corrente Edizione Corso corso 21 December, 2015 - slide 63 (0,1) Edizione Corso corso Data inizio (0,N) Docenza passata Docente Docenza (0,1) (1,1) (0,1) Docenza corrente Tipologia (1,N) (0,N) Corso Abilitazione (1,N) Titolo Progettazione ER Codice 21 December, 2015 - slide 64