AC101: Introduction to Database Design

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