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 S3 S1 S2 E2 E3 C1 C2 S4 E4 C3 Studente 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 Confronto Peggiore 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à Data nascita Nome Impiegato Nascita Città Stipendio 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 Impiegato Codice Partecipazione Direzione Afferenza Data Telefono Dipartimento Nome Composizione Budget Progetto Nome Via CAP Indirizzo Sede 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) (0,50) Impiegato 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 S1 R1 C1 S3 S2 R2 C2 S4 S5 Studente R3 R4 C3 Città Cardinalità di Residenza (1,1) (1,N) Studente 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 Studente (0,N) Esame (0,N) Corso Montagna (0,N) Scalata (1,N) Alpinista Macchinista (0,N) Abilitazione (0,N) Locomotore 16
Relazioni uno a molti Persona (0,1) (1,N) Impiego Azienda Persona (1,1) (1,N) Nascita Città Comune (1,1) (1,N) Ubicazione Provincia Relazioni uno a uno Ordine (0,1) (1,1) Vendita Fattura Professore (1,1) (0,1) Docenza Corso Impiegato (0,1) (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 Impiegato Nome (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 Persona Data Nascita Cognome Nome 19
Identificatore esterno Cognome Matricola Nome (1,1) (1,N) Studente Iscrizione Università Anno Iscrizione 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
Cognome (0,1) Direzione (1,1) Telefono (1,N) Impiegato Codice (0,N) Partecipazione (1,N) (0,1) (1,N) Afferenza (0,1) Data Dipartimento (1,1) Nome Composizione (1,N) Budget Progetto Nome Via CAP Indirizzo Sede 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) Nascita (1,1) Persona Codice fiscale Nome Stipendio Età 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 Studente Uomo 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 Cognome Persona Stipendio Età Matr. Uomo Donna Impiegato Studente Militare Segretario Direttore Progettista Responsabile Documentazione associata agli schemi concettuali dizionario dei dati entità relazioni vincoli non esprimibili 26
Cognome Impiegato Codice (0,N) Partecipazione (1,N) (0,1) (1,1) Telefono Direzione (1,N) Dipartimento (0,1) (1,N) Afferenza (1,1) Nome (0,1) Composizione Data (1,N) Budget Progetto Nome Via CAP Indirizzo Sede Città Dizionario dei dati (entità) Entità Descrizione Attributi Identificatore Impiegato Dipendente Codice, Codice dell'azienda Cognome, Stipendio Progetto Progetti Nome, Nome aziendali Budget Dipartimento Struttura Nome, Nome, Sede aziendale Sede dell'azienda Telefono Città, Indirizzo Sede Città 27
Dizionario dei dati (relazioni) Relazioni Descrizione Componenti Attributi Direzione Direzione di un dipartimento Impiegato, Dipartimento Afferenza Afferenza a un Impiegato, Data dipartimento Dipartimento Partecipazione Partecipazione a un progetto Impiegato, Progetto Composizione Composizione dell'azienda Dipartimento, Sede Cognome Impiegato Codice (0,N) Partecipazione (1,N) (0,1) (1,1) Direzione (0,1) (1,N) Afferenza (0,1) Data Telefono Dipartimento (1,1) Composizione (1,N) (1,N) Nome Budget Progetto Nome Via CAP Indirizzo Sede 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
Possibili fonti: utenti, attraverso: interviste Requisiti 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 Sinonimi Collegamenti Partecipante Persona che partecipa ai corsi Studente Corso, Società Docente Docente dei corsi. Può essere esterno Insegnante Corso Corso Corso organizzato Seminario Docente dalla società. Può avere più edizioni. Società Ente presso cui i partecipanti lavorano o hanno lavorato Posti 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 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 Specifiche intermedio iniziale finale Primitive di raffinamento top-down Cognome Età Persona Studente Impiegato Persona Esame Corso Uomo Stipendio Donna 43
Strategia bottom-up Schema 1,1 Specifiche 1,1 Schema 2,1 Specifiche 2,1 Specifiche SpecificheSpecifiche 1 2 Schema finale Schema 1,2 Specifiche 1,2 Schema 2,2 Specifiche 2,2 Primitive di raffinamento Bottom-up Persona Studente Uomo Specifica Impiegato Esame su impiegato Donna Corso 44
Strategia inside-out: un esempio Cognome Impiegato Codice (0,N) Partecipazione (1,N) (0,1) (1,1) Telefono Direzione (1,N) Dipartimento (0,1) (1,N) Afferenza (1,1) Nome (0,1) Composizione Data (1,N) Budget Progetto Nome Via CAP Indirizzo Sede 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 Nome (0,N) (1,1) Impiego corrente (0,N) (0,N) Impiego passato.. CF Partecipante Codice.. Dipendente Professionista Livello Posizione 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 inizio (1,1) Data fine Edizione corso N.Part. (1,N) (0,N) Tipologia Corso Composizione (1,1) Lezione Titolo Codice 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 (1,N) CF Città nascita Docente Cognome Età Collaboratore Interno Integrazione Corso Partecipazione Docenza Partecipante Docente 52
(0,N) partecipazione passata (0,N) Partecipante (0,1) (0,N) partecipazione Partecipazione corrente Edizione Corso corso Data inizio Edizione Corso corso (1,1) Tipologia (0,1) (0,N) Docenza passata Docenza (0,1) (0,1) Docenza corrente (0,N) Docente (1,N) Corso (1,N) Abilitazione 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