PROGETTAZIONE DI DATA BASE Maurizio Fermeglia - DICAMP Data Base Relazionali: cosa sono? Decidere che tabelle creare, che colonne contengono e che relazioni ci sono tra tabelle Prendere decisioni su come considerare sistemi nel mondo reale e modellarli in un database Tabelle Le nuove tecnologie Software Tabelle rappresentano ‘entità‘ del mondo reale Ciascuna tabella deve rappresentare solo una entità Tali entità possono essere oggetti oppure eventi 4 June, 2017 - slide 2 Tabelle, unicità e chiavi Ciascuna riga di una tabella deve esere unica Ci si garantisce unicità attraverso le primary key - una colonna che contiene valori unici Ciascuna tabella puo’ avere solo una primary key (PK) Chiavi semplici/composte Decidere sull’assegnazione di PK Minimalità Stabilità Semplicità Le migliori PK spesso sono Integer, Long Integer, o Counter Le nuove tecnologie Software 4 June, 2017 - slide 3 Chiavi Esterne e Domini Primary keys (PK) sono essenziali quando si devono creare relazioni Foreign key (FK): una colonna in una tabella usata per referirsi ad una PK in un’altra tabella PK e FK devono appartenere allo stesso dominio Relazioni nel mondo reale sono molto complesse Relazioni nel RDB sono collegamenti tra due tabelle: Le nuove tecnologie Software One-to-one One-to-many Many-to-many 4 June, 2017 - slide 4 Normalizzazione Normalizzazione è il processo di semplificazione di un data base per ottenere la struttura ottimale Forme Normali sono progressioni lineari di regole da applicare al data base, con ciascuna forma normale si ottiene un miglioramento del data base …per diventare Normali Le nuove tecnologie Software 1NF: Una colonna un valore. Rimuovere gruppi ripetuti 2NF: Spezzare in tabelle che descrivano entità separate. Spezzare le tabelle con PK composte 3FN: Rimuovere colonne calcolate e creare tabelle di lookup 4 June, 2017 - slide 5 Regole di Integrità Regole generali Entita PK Appartenenza al dominio Valori NULL Vincolo di ennupla Referenziale Database non deve contenere chiavi esterne non corrispondenti a PK Regole specifiche del Database... Le nuove tecnologie Software Business rules (trigger, Stored Procedures, User Def, Functions) Processi transazionali 4 June, 2017 - slide 6 Approccio Pratico alla progettazione di Database 1. Analisi dell’applicazione 2. Scrittura obiettivi fondamentali su carta 3. Bozza dei data entry forms su carta 4. Creazione di un diagramma E/R basata sul punto 3 5. Considera reports esistenti (o creane di nuovi su carta) 6. Modifica schema concettuale in funzione dei reports 7. Semplificazione dello schema concettuale – progettazione logica – schema delle tabelle 8. Su carta, aggiungi records, usando dati reali. 9. Incomincia la normalizzazione. Crea PK su ciascuna tabella. Assicurati che la PK prevenga possibili duplicazioni. Le nuove tecnologie Software 4 June, 2017 - slide 7 Approccio Pratico alla progettazione di Database 10. Su carta, annota le chiavi esterne, aggiungendole se necessario alle tabelle. Stabilisci le relazioni tra le tabelle specificando se sono 1-1 o… Se si tratta di relazioni molti a molti progetta le tabelle di sponda (linking table) e valuta se utilizzare chiavi composte su queste tabelle. 11. 1NF? Tutti i campi sono atomici? Ci sono gruppi che si ripetono? 12. 2NF? Ciascuna tabella descrive una singola entità? Ciscuna PK delle singole tabelle implica tutte le altre colonne. Se sono presenti chiavi primarie composte, spezza le chiavi. Le nuove tecnologie Software 4 June, 2017 - slide 8 Approccio Pratico alla progettazione di Database 13. 14. 15. 16. 17. Le nuove tecnologie Software 3NF? Ci sono colonne calcolate? Ci sono colonne dipendenti? Eliminale con delle tabelle di lookup. Aggiusta le relazioni tra le tabelle ed eventualmente denormalizza il data base solo dove risulta necessario. Crea tabelle e relazioni nel programma scelto (Access) Crea il prototipo delle queries, forms e reports. Potrebbero in questa fase evidenziarsi problemi nel progetto. Aggiusta il progetto. Mostra il prototipo al cliente. 4 June, 2017 - slide 9 Approccio Pratico alla progettazione di Database 18. 19. 20. 21. Le nuove tecnologie Software Torna al progetto ed aggiungi Business Rules Crea le forms e report finali. Sviluppa l’applicazione. Consegna al cliente per il test. Modifica il progetto di conseguenza Consegna finale 4 June, 2017 - slide 10 Approccio Pratico alla progettazione di Database 22. Le nuove tecnologie Software (Opzionale) Vai a berti qualcosa! 4 June, 2017 - slide 11 Dalla creazione del prototipo… Gli step precedenti hanno permesso di definire e relizzare un prototipo di applicazione che soddisfa il cliente… … ma per ottenere performances e multiutenza reale è consigliabile passare sotto motore SQL… … realizzando una applicazione professionale. Le nuove tecnologie Software 4 June, 2017 - slide 12 … al data base reale... 1. Separa, sotto Access il prototipo in due files: 1 contenete il front end e l’altro contenete solo i dati Split data base 2. Collega i due file (link tables ed ODBC – OLE db) 3. Porta sotto motore (SQL server, Oracle,…) il file dati usando appositi strumenti di porting 4. Imposta/verifica il driver ODBC / OLEdb per il data base appena convertito 5. Collega il vecchio front end Access al motore usando il driver ODBC / OLEdb 6. Verifica che il funzionamento sia uguale al prototipo Le nuove tecnologie Software 4 June, 2017 - slide 13 … al data base reale 7. Implementa il sistema di security sul server pensando all’utilizzo in rete 8. Implementa caratteristiche specifiche del motore (business rules, stored procedures,…) 9. Verifica che il database sia utilizzabile via ODBC / OLEdb da applicazioni standard e che il sistema di sicurezza funzioni 10. Scegli un sistema di sviluppo del front-end (VB, C, Delphi, Power Builder,…) e valuta l’esitenza di strumenti di porting 11. Scrivi il front end 12. Verifica finale di funzionamento Le nuove tecnologie Software 4 June, 2017 - slide 14