Strategie di proge-o • Come procediamo con tante specifiche anche de-agliate? Come ci orizzon'amo? • Strategie: Basi di da' – top‐down: • Lo schema conce-uale viene prodo-o mediante una serie di raffinamen' successivi a par're da uno schema iniziale che descrive le specifiche con pochi conceC molto astraC – bo-om‐up: Proge-azione e Qualità di uno schema conce-uale • Le specifiche iniziali sono suddivise in componen' via via più piccole fino a che non descrivono un frammento elementare di interesse. Le varie componen' vengono poi integrate fino a giungere allo schema finale – inside‐out: 1 Strategia top‐down • Si individuano solo alcuni conceC fondamentali e poi si parte da ques' espnadendosi a “macchia d’olio” Strategia bo-om‐up Specifiche 1,1 Schema 1,1 Schema finale Specifiche1,2 1,2 Schema (0,1) (1,1) Telefono Direzione Impiegato Codice (0,N) Partecipazione Afferenza (0,1) Data (1,N) Progetto Budget Nome (1,N) (1,N) (0,1) Dipartimento Nome (1,1) Composizione (1,N) Sede Specifiche 2,2 Schema 2,2 Una metodologia • Analisi dei requisi' – Analizzare i requisi' ed eliminare le ambiguità – Costruire un glossario dei termini – Raggruppare i requisi' in insiemi omogenei • Passo base – Definire uno schema scheletro con i conceC più rilevan' • Passo itera'vo (da ripetere finché non si è soddisfaC) – Raffinare i conceC presen' sulla base delle loro specifiche – Aggiungere conceC per descrivere specifiche non descri-e • Analisi di qualità (ripetuta e distribuita) Via Indirizzo CAP Specifiche 2,1 Schema 2,1 Specifiche Specifiche 1 Specifiche 2 Schema Schema intermedio iniziale Schema Specifiche intermedio Schema finale Cognome 2 – Verificare le qualità dello schema e modificarlo Città 6 1 Una metodologia con integrazione In pra'ca • Analisi dei requisi' • Passo base • Decomposizione – decomporre i requisi' con riferimento ai conceC nello schema scheletro • Passo itera'vo, per ogni so-oschema • Integrazione – integrare i vari so-oschemi in uno schema complessivo, facendo riferimento allo schema scheletro • Analisi di qualità • si procede di solito con una strategia mista: – si individuano i conceC principali e si realizza uno schema scheletro – sulla base di questo si può decomporre – poi si raffina, si espande, si integra • Si individuano i conceC più importan', ad esempio perché più cita' o perché indica' esplicitamente come cruciali e li si organizza in un semplice schema conce-uale 7 Qualità di uno schema conce-uale 8 Completezza e Corre-ezza – corre-ezza – completezza – leggibilità – minimalità • Rappresentare in modo completo e corre-oi requisi' • Sono proprietà ovvie ma sulle quali c’è poco da aggiungere • Per la completezza: – assicurarsi che i da' consentano di eseguire tu-e le applicazioni • Per la corre-ezza: – assicurarsi che sia possibile popolare la base di da' anche con informazione parzialmente incompleta durante fasi iniziali della sua evoluzione 9 Leggibilità Conce-uale 10 Leggibilità grafica 11 12 2 Requisiti della base di dati Progettazione concettuale Schema concettuale Basi di Da' Progettazione logica Schema logico Progettazione fisica Schema fisico 13 14 Carico applicativo ObieCvo della proge-azione logica • "tradurre" lo schema conce-uale in uno schema logico che rappresen' gli stessi da' in maniera corre-a ed efficiente • Ingresso: Schema E-R Ristrutturazione dello schema E-R – schema conce-uale – informazioni sul carico applica'vo – modello logico Modello logico • Uscita: Schema E-R ristrutturato Traduzione nel modello logico – schema logico – documentazione associata • Non si tra-a di una pura e semplice traduzione! Schema logico – alcuni aspeC non sono dire-amente rappresentabili – è necessario considerare le prestazioni 15 Ristru-urazione schema E‐R 16 Prestazioni? • Mo'vazioni: • Per oCmizzare il risultato abbiamo bisogno di analizzare le prestazioni a questo livello • Ma: – semplificare la traduzione – "oCmizzare" le prestazioni • Osservazione: – uno schema E‐R ristru-urato non è (più) uno schema conce-uale nel senso stre-o del termine 17 – le prestazioni non sono valutabili con precisione su uno schema conce-uale! 18 3 (0,1) Cognome Prestazioni, approssimate (1,1) Telefono Direzione Impiegato • Consideriamo: – “indicatori” dei parametri che regolano le prestazioni Afferenza – numero di occorrenze previste • tempo: Budget (1,N) Sede Progetto – numero di occorrenze (di en'tà e rela'onship) visitate durante un’operazione Nome Composizione Data (1,N) Dipartimento (1,1) (0,1) Partecipazione • spazio: (1,N) (0,1) (0,N) Codice (1,N) Via Indirizzo Nome CAP Città 19 20 Telefono Cognome Esempio di valutazione di costo (1,N) Impiegato • Operazione: – trova tuC i da' di un impiegato, del dipar'mento nel quale lavora e dei progeC ai quali partecipa Codice (0,N) Partecipazione • Si costruisce una tavola degli accessi basata su uno schema di navigazione (1,N) (0,1) (1,N) Afferenza Dipartimento (1,1) Nome (0,1) Data Progetto Budget Nome 21 22 Analisi delle ridondanze ACvità della ristru-urazione • Una ridondanza in uno schema E‐R è una informazione significa'va ma derivabile da altre • Analisi delle ridondanze • Eliminazione delle generalizzazioni • Par'zionamento/accorpamento di en'tà e rela'onship • Scelta degli iden'ficatori primari • in questa fase si decide se eliminare le ridondanze eventualmente presen' o mantenerle (o anche di introdurne di nuove) 23 24 4 Ridondanze ACvità della ristru-urazione • Vantaggi – Analisi delle ridondanze – Eliminazione delle generalizzazioni – Par'zionamento/accorpamento di en'tà e rela'onship – Scelta degli iden'ficatori primari – semplificazione delle interrogazioni • Svantaggi – appesan'mento degli aggiornamen' – maggiore occupazione di spazio 25 26 A01 Eliminazione delle gerarchie E0 • il modello relazionale non può rappresentare dire-amente le generalizzazioni • en'tà e rela'onship sono invece dire-amente rappresentabili • si eliminano perciò le gerarchie, sos'tuendole con en'tà e rela'onship A02 R1 E1 E2 A11 A21 E3 R2 Tre possibilità • 1. 2. 3. accorpamento delle figlie della generalizzazione nel genitore accorpamento del genitore della generalizzazione nelle figlie sos'tuzione della generalizzazione con rela'onship E4 27 A01 28 A02 A01 A02 (0,1) A11 A21 E0 E3 R1 E0 R1 E3 (0,1) TIPO (0,..) R2 1. accorpamento delle figlie della generalizzazione nel genitore E4 29 E1 E2 A11 A21 R2 E4 30 5 A01 A02 R11 R12 E3 E1 E2 R2 A01 A11 A02 A01 A21 A02 E0 E4 R1 E1 E2 A11 A21 E3 R2 E4 accorpamento del genitore della generalizzazione nelle figlie 31 A01 A02 E0 R1 32 • la scelta fra le alterna've si può fare con metodo simile a quello visto per l'analisi delle ridondanze (però non basato solo sul numero degli accessi) E3 • (0,1) (0,1) (1,1) (1,1) RG1 1. conviene se gli accessi al padre e alle figlie sono contestuali RG2 2. conviene se gli accessi alle figlie sono dis'n' E1 E2 A11 A21 R2 3. conviene se gli accessi alle en'tà figlie sono separa' dagli accessi al padre • E4 sostituzione della generalizzazione con relationship A01 è possibile seguire alcune semplici regole generali: sono anche possibili soluzioni “ibride”, sopra-u-o in gerarchie a più livelli 33 34 A02 A01 A02 (0,1) E0 R1 A11 E3 E0 TIPO R1 E3 (0,1) RG2 (1,1) E1 E2 A11 A21 E2 R2 A21 E4 35 R2 E4 36 6 ACvità della ristru-urazione – Analisi delle ridondanze – Eliminazione delle generalizzazioni – Par'zionamento/accorpamento di en'tà e rela'onship – Scelta degli iden'ficatori primari • Ristru-urazioni effe-uate per rendere più efficien' le operazioni in base a un semplice principio • Gli accessi si riducono: – separando a-ribu' di un conce-o che vengono accedu' separatamente – raggruppando a-ribu' di conceC diversi accedu' insieme 37 ACvità della ristru-urazione 38 Scelta degli iden'ficatori principali • operazione indispensabile per la traduzione nel modello relazionale • Criteri • Analisi delle ridondanze • Eliminazione delle generalizzazioni • Par'zionamento/accorpamento di en'tà e rela'onship • Scelta degli iden'ficatori principali – assenza di opzionalità – semplicità – u'lizzo nelle operazioni più frequen' o importan' 39 40 Traduzione verso il modello relazionale Se nessuno degli iden'ficatori soddisfa i requisi' vis'? Si introducono nuovi attributi (codici) contenenti valori speciali generati appositamente per questo scopo 41 • idea di base: – le en'tà diventano relazioni sugli stessi a-ribu' – le rela'onship diventano relazioni sugli iden'ficatori delle en'tà coinvolte (più gli a-ribu' propri) 42 7 En'tà e rela'onship mol' a mol' Cognome Matricola Nome (1,N) (0,N) Impiegato Codice Data inizio En'tà e rela'onship mol' a mol' Progetto Partecipazione Impiegato(Matricola, Cognome, S'pendio) Proge-o(Codice, Nome, Budget) Partecipazione(Matricola, Codice, DataInizio) • con vincoli di integrità referenziale fra – Matricola in Partecipazione e (la chiave di) Impiegato – Codice in Partecipazione e (la chiave di) Proge-o Stipendio Budget Impiegato(Matricola, Cognome, Stipendio) Progetto(Codice, Nome, Budget) Partecipazione(Matricola, Codice, DataInizio) 43 44 Nota Nomi più espressivi per gli attributi della chiave della relazione che rappresenta la relationship • La traduzione non riesce a tener conto delle cardinalità minime delle rela'onship mol' a mol' (se non con vincoli di CHECK complessi e poco usa') Impiegato(Matricola, Cognome, Stipendio) Progetto(Codice, Nome, Budget) Partecipazione(Matricola, Codice, DataInizio) Partecipazione(Impiegato, Progetto, DataInizio) 45 Rela'onship n‐arie Rela'onship ricorsive Nome Quantità (0,N) Composizione Composto Costo Prodotto Nome 46 Quantità Partita IVA (0,N) (0,N) Fornitore Genere Codice (1,N) Fornitura Prodotto (1,N) Componente Nome Dipartimento Codice Prodotto(Codice, Nome, Costo) Composizione(Composto, Componente, Quantità) 47 Telefono Fornitore(PartitaIVA, Nome) Prodotto(Codice, Genere) Dipartimento(Nome, Telefono) Fornitura(Fornitore, Prodotto, Dipartimento, Quantità) 48 8 Rela'onship uno a mol' Cognome Data nascita (1,1) Giocatore Ingaggio Città Soluzione più compa-a Nome (0,N) Squadra Contratto Ruolo Colori sociali Giocatore(Cognome, DataNascita, Ruolo) Contratto(CognGiocatore, DataNascG, Squadra, Ingaggio) Squadra(Nome, Città, ColoriSociali) • corretto? Giocatore(Cognome, DataNascita, Ruolo) Contra-o(CognGiocatore, DataNascG, Squadra, Ingaggio) Squadra(Nome, Ci-à, ColoriSociali) Giocatore(Cognome, DataNasc, Ruolo, Squadra, Ingaggio) Squadra(Nome, Città, ColoriSociali) • con vincolo di integrità referenziale fra Squadra in Giocatore e la chiave di Squadra • se la cardinalità minima della relationship è 0, allora Squadra in Giocatore deve ammettere valore nullo 49 Nota 50 En'tà con iden'ficazione esterna • La traduzione riesce a rappresentare efficacemente la cardinalità minima della partecipazione che ha 1 come cardinalità massima: Cognome Matricola Nome (1,1) Studente – 0 : valore nullo ammesso – 1 : valore nullo non ammesso Città (1,N) Università Iscrizione Indirizzo AnnoDiCorso Studente(Matricola, Università, Cognome, AnnoDiCorso) Università(Nome, Città, Indirizzo) • con vincolo … 51 Rela'onship uno a uno 52 Una possibilità privilegiata Data inizio Cognome Data inizio Sede Codice (1,1) Impiegato Cognome Nome (0,1) (1,1) Direzione Stipendio Sede Codice Dipartimento Impiegato Stipendio Telefono Nome (1,1) Direzione Dipartimento Telefono Impiegato (Codice, Cognome, Stipendio) • varie possibilità: • fondere da una parte o dall'altra • fondere tutto? Dipartimento (Nome, Sede, Telefono, Direttore, InizioD) • con vincolo di integrità referenziale, senza valori nulli 53 54 9 Sede Codice (0,1) Impiegato (0,1) Telefono Direzione Data inizio Cognome (0,1) Cognome Un altro caso Impiegato Nome (0,1) Direzione Codice Dipartimento Stipendio Partecipazione (1,N) Telefono Progetto • Associazione uno a uno con partecipazione opzionale da entrambe le entità Budget 55 (0,N) (1,1) (0,N) Nome (1,1) Afferenza (0,1) Data Dipartimento Nome (1,1) Composizione (1,N) Sede Via Indirizzo CAP Città 56 Schema finale Impiegato(Codice, Cognome, Dipartimento,Sede, Data*) Dipartimento(Nome, Città, Telefono, Direttore*) Sede(Città, Via, CAP) Progetto(Nome, Budget) Partecipazione(Impiegato, Progetto) 57 10