1. 5 fasi della progettazione di un abase di dati
1.1. specifica dei requisiti degli utenti
1.2. specifica dei requisiti funzionali
1.2.1. risultato:
1.3. design concettuale
1.3.1. tradurre i requirement in uno schema concettuale del DB
1.3.2. risultato: schema concettuale
1.4. design logico
1.4.1. scelta del modello dati
1.4.1.1. relazionale
1.4.1.2. (gerarchico)
1.4.1.3. (reticolare)
1.4.2. conversione dello schema concettuale nello schema logico
1.4.3. risultato schema logico
1.5. design fisico
1.5.1. conversione dello schema logico nel database fisico
1.5.2. risultato: database fisico poi creato sul sistema dove esso verrà utilizzato
2. requisiti (requirements)
2.1. requisiti utente
2.1.1. le esigenze degli utenti
2.2. requisiti funzionali
2.2.1. le operazioni che verranno effettuate sui dati
2.2.2. frequenza operazioni
2.2.3. modalità (interattiva o batch)
2.3. possibili fonti
2.3.1. utenti del sistema
2.3.2. applicazioni esistenti
2.3.3. documentazione esistente (formulari, regole interne, leggi, regolamenti…)
2.4. raccolta
2.4.1. completa e dettagliata identificazione e descrizione del problema che l’applicazione deve risolvere
2.4.2. usato linguaggio naturale (a volte ambiguo)
2.5. analisi
2.5.1. chiarificazione e organizzazione dei requisiti
2.5.2. scegliere un livello di astrazione adeguato
2.5.3. standardizzare la struttura delle frasi
2.5.4. evitare frasi complesse
2.5.5. identificare sinonimi e omonimi e standardizzare i termini --> glossario dei termini
2.5.6. ristrutturare i requisiti raggruppandoli a seconda di ciò a cui si riferiscono
3. modello ER (entity relationship)
3.1. [ Entity ]
3.1.1. oggetto (persona, concetto ...) esistente e distinguibile dagli altri
3.2. Entity set
3.2.1. insieme di oggetti con caratteristiche simili
3.3. Attribute
3.3.1. proprietà descrittiva comune ai membri di un entity set
3.3.2. ha un insieme di valori ammessi (value set o domain)
3.3.3. tipo di attributo
3.3.3.1. semplice
3.3.3.2. composto
3.3.3.3. multi-valore
3.3.3.4. derivato
3.4. [ Relationship ]
3.4.1. associazione fra alcune entità
3.5. Relationship set
3.5.1. insieme di associazioni simili fra entity sets
3.5.2. grado: numero di entity sets coinvolte
3.5.3. cardinalità 1 <freccia> N <linea>
3.5.3.1. 1:1
3.5.3.2. 1:N
3.5.3.3. N:1
3.5.3.4. N:N
3.5.4. dipendenza di esistenza
3.5.4.1. entità dominante strong entity set
3.5.4.2. entità subordinata weak entity set
3.5.4.2.1. non ha senso da sola
3.5.5. partecipazione
3.5.5.1. parziale
3.5.5.2. totale <doppia linea>
3.5.5.2.1. tutte le entity di un entity set partecipano alla relazione
3.6. Keys
3.6.1. super key
3.6.1.1. uno o più attributi i cui valori identificano in modo univoco ogni entità
3.6.2. candidate key
3.6.2.1. insieme minimo di uno o più attributi i cui valori identificano in modo univoco ogni entità
3.6.2.2. ogni candidate key è anche super key
3.6.3. primary key
3.6.3.1. una delle candidate key scelta per identificare in modo univoco ogni entità
3.6.4. discriminator
3.6.4.1. attributo o un insieme di attributi che permette di distinguere le entità
3.6.4.2. un weak entity set non ha primary key
3.6.4.3. le entity di un weak entity set sono identificate da primary key del relativo entity set dominante e discriminator
4. Modelle ER esteso
4.1. specializzazione <triangolo ISA>
4.1.1. processo di design di tipo top-down
4.1.2. di un entity set si identificano i sottogruppi
4.1.2.1. attributi comuni si associano all'entity superiore
4.1.2.2. attributi specifici associati a entity di basso livello
4.2. generalizzazione
4.2.1. è l'inversa della specializzazione
4.2.2. nel modello è rappresentata allo stesso modo
4.2.3. processo di design di tipo bottom-up
4.2.4. combinazione di un certo numero di entity set che condividono le stesse caratteristiche
4.3. vincoli della generalizzazione
4.3.1. appartenenza
4.3.1.1. condition defined
4.3.1.1.1. in base alla soddisfazione di una data condizione (dipende dal valore di uno o più attributi)
4.3.1.2. user defined
4.3.1.2.1. è stabilito dall'utente del sistema
4.3.1.3. sovrapposizione
4.3.1.3.1. stessa entità può appartenere a più di un entity set di più basso livello
4.3.1.4. disgiunzione
4.3.1.4.1. un’entità appartiene a non più di un entity set di più basso livello
4.3.2. completezza
4.3.2.1. totale
4.3.2.1.1. ogni entity deve appartenere ad un entity set di più basso livello
4.3.2.2. parziale
4.3.2.2.1. non necessariamente un'entity deve appartenere ad un entity set di più basso livello