DIB 1 Sommario Diagramma delle Dipendenze Dai dati al data base: linea guida Note Bibliografiche DIB 2
Diagramma delle Dipendenze DIB 3 Data Modeling E un metodo che da un insieme di dati non strutturati, comunque organizzati, permette di ricavare un modello logico di dati in quinta forma normale. DIB 4
Convenzioni Grafiche Una Bolla rappresenta un dato elementare o composito Rappresenta una dipendenza singola Rappresenta una dipendenza multipla Due bolle concentriche rappresentano un dato appartenente a due cammini di dipendenza DIB 5 Dipendenza Singola... Siano A e B i dati elementari o compositi. Esiste una dipendenza singola da A a B (A B) se, ad ogni valore di A corrisponde un unico valore di B. A deve contenere valori unici e non nulli B può essere un valore duplicato o nullo ; Nullo significa: non appartenente al dominio di definizione di B (nell ultimo caso la dipendenza è rappresentata con: ) DIB 6
...Dipendenza Singola nome docente # docente stipendio Equivale a nazionalità # docente nome docente + stipendio + nazionalità DIB 7 Dipendenza Multipla... Siano A e B dati elementari o compositi. Esiste una dipendenza multipla da A a B (A B) se, ad un valore di A corrisponde un insieme di valori di B : Sia A che B non devono contenere valori nulli Ogni combinazione di valori di A e B deve essere unica DIB 8
...Dipendenza Multipla #corso testo DIB 9 Target E la bolla a cui arriva una dipendenza singola #docente stipendio target DIB 10
Chiave Finale E la bolla a cui arriva una dipendenza multipla e da cui non parte alcuna dipendenza #corso testo Chiave finale DIB 11 Chiave Primaria E il campo da cui dipende il campo Target, se la dipendenza è singola, oppure la Chiave Finale, se la dipendenza è multipla #Macchina Nome Studente Chiave Primaria Target Giorno Sett Chiave Finale DIB 12
Chiave Uplink E la bolla da cui parte una dipendenza multipla per una chiave primaria o per un altra uplink #macchina #gruppo lab Chiave uplink Nome studente Chiave primaria target Giorno sett Chiave finale DIB 13 Determinazione Totale Una chiave primaria determina totalmente il valore di un Target se essa non dipende da altre chiavi #docente stipendio Chiave primaria Target DIB 14
Determinazione Parziale Una chiave primaria determina parzialmente il valore di un target o di una chiave finale se esiste almeno una dipendenza multipla nel percorso di dipendenza #gruppo lab Nome studente #macchina Chiave uplink Chiave primaria target #gruppo lab Nome studente Giorno sett Chiave uplink Chiave primaria Chiave finale DIB 15 Bolla Doppia, Tripla, etc. Questo tipo di bolla serve a rappresentare diverse dipendenze tra i dati di uno stesso diagramma #studente chiave primaria chiave uplink #docente #corso chiave finale chiave primaria data + aula target DIB 16
Domini Semantici... Due o più bolle possono condividere il medesimo dominio semantico (significato dei valori di un attributo) Queste bolle vanno opportunamente contrassegnate DIB 17...Domini Semantici nome_ dipart. # dipart. # im p. # dir_ dipart. 1 # resp_ prog. 1 1 1 Codici dei dipendenti DIB 18
Dai Dati al Data Base: Linee Guida DIB 19 1: Definire i Legami... Inserire ogni bolla nel diagramma delle dipendenze Tra due bolle la dipendenza deve avere un solo verso A B A B Possibile Impossibile DIB 20
2: Definire i Legami Le dipendenze devono essere definite sulla base di come i dati sono utilizzati dalle funzioni del sistema che si sta progettando DIB 21 3: Trattamento dei Valori Nulli Si preferisce sempre rappresentare la dipendenza con il verso tale da evitare valori nulli # C.C. # Bancomat PREFERITA # Cliente # Bancomat # C.C. # C lien te ACCETTABILE DIB 22
4: Eliminazione delle Dipendenze Transitive #Bancomat #C.C. #Cliente Questo diagramma deve diventare: #Bancomat #C.C. #Cliente DIB 23 5: Trattamento delle Dipendenze Singole... La bolla da cui partono una o più dipendenze singole più le, eventuali, uplinks, diventano chiave identificativa della tavola costituenda Le bolle dipendenti dalla stessa chiave identificativa diventano campi della tavola costituenda e si segnano come utilizzate DIB 24
... 5: Trattamento delle Dipendenze Singole Ogni campo di questa tavola che è chiave primaria di un altra può diventare chiave esterna; dalla chiave esterna alla corrispondente chiave primaria si può disegnare un cammino di navigazione Il passo termina quando sono state annullate tutte le dipendenze singole e,quindi, tutte le bolle TARGET DIB 25 6: Trattamento delle Dipendenze Multiple... Ogni Chiave Finale con la sua Chiave Primaria e tutte le, eventuali, Uplink diventano una tavola in cui tutti i campi formano la chiave identificativa Se un campo è chiave primaria di un altra tavola, esso può diventare chiave esterna e si definisce il relativo cammino di navigazione DIB 26
... 6: Trattamento delle Dipendenze Multiple Si segna come utilizzata la dipendenza multipla della Chiave Finale Il processo finisce quando tutte le dipendenze multiple delle Chiavi Finali sono state utilizzate DIB 27 7: Uso delle Chiavi Fittizie Quando la chiave primaria di una tavola usa più campi di quanti sono consentiti dal D.B.M. si spacca la tavola in due utilizzando una chiave fittizia A B C D E F DIVENTA A B C FITTIZIA FITTIZIA D E F DIB 28
8: Trattamento di Campi a Dominio Uguale Per ogni coppia di campi a dominio semantico uguale, se uno dei due è chiave primaria di una tavola, allora si crea un cammino di navigazione dal secondo campo al primo. Il secondo campo diventa chiave esterna. DIB 29 9: Definizione delle Chiavi Secondarie Considerando le funzioni che utilizzano il database disegnato, si compila una mappa degli accessi FUNZIONI-TAVOLE Ogni tavola che viene letta per un campo che non è chiave primaria è candidata ad avere chiavi secondarie Il progettista deciderà, su basi di opportunità, quali delle tavole candidate avranno le chiavi secondarie e quali avranno modalità di accesso diversa dalla diretta DIB 30
Note Bibliografiche DIB 31 Approfondimenti H.C. Smith, Database design: composing fully normalized tables from a rigorous dependency diagram, Communication of the ACM, Vol. 28, No. 8, pp.826-838, 1985. (disponibile in biblioteca) DIB 32