3 livelli di progettazione:
concettuale (Entity / Relationship): indipendente dal DBMS che verrà scelta. Produce schema concettuale
logica: dipendente dal modello logico scelto (es. Rdbms per relazionale). Produce uno schema logico
fisica: dipendente dal motore di DB scelto (ad esempio se avessi scelto MySQL ci sono caratteristiche diverse da Oracle. Poduce la base di dati vera e propria
- Raccolta e analisi dei requisiti -> produce un documento in linguaggio naturale
Modelli concettuali:
Utilizzati nella fase di progettazione, di solito sono grafici.
Il più famoso é Entity-Relationship
Si parte astraendo dalla realtà le caratteristiche
interessate dei dati che sappiamo di dover raccogliere.
Es. se voglio descrivere "studente" sceglierò caratteristiche come anno e matricola e trascurerò altre caratteristiche che, seppure proprie di ogni studente non importano alla figura di studente stesso (es. colore degli occhi).
I tre metodi di astrazione più usati sono:
Classificazione
Definire un concetto come classe degli oggetti che voglio descrivere caratterizzati da proprietà comuni.
Trovo le proprietà comuni tra le informazioni che devo classificare.
Es.= Presi 3 elementi (es. VW Golf, Fiat punto e Audi A3) troviamo le caratteristiche comuni per definire la classe a cui appartengono (es. automobile)
Relazione: is member of
Aggregazione
Vedo le parti (già classi, non caratteristiche!) che compongono gli oggetti che voglio descrivere e aggregando ottengo la classe che le contiene tutte.
Es.: Prendo carrozzeria, motore sono 3 classi con le proprie proprietà e le aggrego nell'unica classe automobile.
Relazione: Part of
Generalizzazione
Ricerca delle proprietà comuni per definire una forma di ereditarietà tra un sottoinsieme di informazioni (base) e un sovrainsieme (derivate)
Es. Prese le classi uomo e donna generalizzo le proprietà comuni nella superclasse individuo e lascio nelle sottoclassi uomo e donna solo quelle specifiche.
Es2. Presa la classe dipendente specifico (che è il contrario di generalizzo!) nelle sottoclassi programmatore e sistemista
Relazione: is a
Nessun commento:
Posta un commento