Presentazione 14.1
Progettazione di una base di dati
Informatica Generale (Prof. Luca A. Ludovico)
Ciclo di vita dei sistemi informativi
1. Studio di fattibilità
2. Raccolta e analisi dei requisiti
3. Progettazione
–
–
dei dati
delle applicazioni
4. Implementazione
5. Validazione e collaudo
6. Funzionamento
• Tale processo non è quasi mai lineare, e richiede
ritorni sui passi precedenti  ciclo
Informatica Generale (Prof. Luca A. Ludovico)
Presentazione 14.1
Progettazione di una base di dati
• Progettazione concettuale: da specifiche informali
della realtà a descrizione formale e completa, ma
indipendente dai criteri di rappresentazione usati in
un DBMS.
• Progettazione logica: traduzione dello schema
concettuale nel modello di rappresentazione dei dati
proprio del DBMS a disposizione, ancora indipendente
però dai dettagli fisici.
• Progettazione fisica: completamento del modello
logico con la specifica dei parametri fisici di
memorizzazione dei dati (organizzazione dei file e
degli indici).
Informatica Generale (Prof. Luca A. Ludovico)
Presentazione 14.1
Progettazione di una base di dati
Requisiti
Progettazione della base di dati
Prodotto
Progettazione
concettuale
Schema
concettuale
Progettazione
logica
Schema
logico
Progettazione
fisica
Schema
fisico
Informatica Generale (Prof. Luca A. Ludovico)
Presentazione 14.1
Progettazione di una base di dati
Requisiti
ABC
Progettazione della base di dati
Prodotto
Progettazione
concettuale
Progettazione
logica
Progettazione
fisica
Informatica Generale (Prof. Luca A. Ludovico)
Presentazione 14.1
Parte 1
Progettazione concettuale
Informatica Generale (Prof. Luca A. Ludovico)
Il modello Entità-Relazione
• Il modello Entità-Relazione (Entity-Relationship, E-R) è
un modello concettuale.
• Fornisce una serie di strutture, i costrutti, per
descrivere la realtà di interesse all’interno di uno
schema concettuale.
• I costrutti hanno una rappresentazione grafica con cui
si costruisce un digramma che semplifica
l’interpretazione dello schema concettuale.
Informatica Generale (Prof. Luca A. Ludovico)
Presentazione 14.1
Costrutti principali del modello: entità
• Entità: classi di oggetti che hanno proprietà comuni ed
esistenza autonoma ai fini dell’applicazione.
– Esempi: Studente, Dipartimento, Corso
• Istanza o occorrenza di entità: è un oggetto della
classe.
– Esempio: Milano e Roma sono 2 occorrenze dell’entità Città
• Attenzione: una occorrenza di entità non è un valore
che identifica un oggetto (ad es., matricola per
Studente) ma è l’oggetto stesso (lo studente Mario
Rossi matr. 610135)
Informatica Generale (Prof. Luca A. Ludovico)
Presentazione 14.1
Costrutti principali del modello: relazioni
• Relazioni o associazioni: legami logici significativi per
l’applicazione di interesse tra due o più entità.
– Esempio: Esame è relazione tra Studente e Corso
– Esempio: Afferenza è relazione tra Docente e Dipartimento
• Istanza o occorrenza di relazione: è una ennupla
costituita da occorrenze di entità, una per ciascuna
delle entità coinvolte (nel caso frequente di relazione
binaria, sono 2 occorrenze tra le 2 entità)
– Esempio: istanza della relazione Esame può essere
Giuseppe Bruni matr. 614152 <–> Informatica (cod. 112)
Informatica Generale (Prof. Luca A. Ludovico)
Presentazione 14.1
Costrutti principali del modello: attributi
• Attributi: descrizioni delle proprietà elementari di
entità e relazioni che sono di interesse ai fini
dell’applicazione.
– Esempio: matricola, nome, cognome sono possibili attributi
dell’entità Studente.
– Esempio: data_esame è possibile attributo di Esame.
• Un attributo associa a ciascuna occorrenza di entità o
relazione un valore appartenente a un insieme, detto
dominio.
• Alle volte si raggruppano in attributi composti.
Informatica Generale (Prof. Luca A. Ludovico)
Presentazione 14.1
Rappresentazione grafica dei costrutti
1/2
• Entità
• Relazione
• Attributo semplice
• Attributo composto
• Cardinalità di relazione
• Cardinalità di attributo
Informatica Generale (Prof. Luca A. Ludovico)
Presentazione 14.1
(m1, M1)
(m2, M2)
(m, M)
Alcune convenzioni
• I nomi di entità e relazioni vengono scritti all’interno
dei rispettivi simboli.
• I nomi delle entità sono solitamente al singolare. Per
le relazioni è meglio evitare verbi, perché la lettura
diventa monodirezionale.
• I nomi identificativi di entità e relazioni devono essere
univoci, ossia non si possono ripetere nello schema.
Per gli attributi di entità distinte invece il problema
non sussiste.
Informatica Generale (Prof. Luca A. Ludovico)
Presentazione 14.1
Rappresentazione grafica dei costrutti
• Identificatore interno
• Identificatore esterno
• Generalizzazione
• Sottoinsieme
Informatica Generale (Prof. Luca A. Ludovico)
Presentazione 14.1
2/2
Altri costrutti: cardinalità delle relazioni
• Descrive il numero min e max di occorrenze di
relazione cui una occorrenza dell’entità può
partecipare. In altri termini: quante volte in una
relazione tra entità un’occorrenza di un’entità può
essere legata a occorrenze dell’altra entità.
• Valori solitamente usati: 0, 1, N
– Cardinalità min: 0 (partecipaz. opzionale) o 1 (obbligatoria)
– Cardinalità max: 1 o N (molti)
• Esempio:
(1, 5)
Impiegato
Informatica Generale (Prof. Luca A. Ludovico)
Presentazione 14.1
(0, 50)
Assegnamento
Incarico
Altri costrutti: cardinalità degli attributi
• Descrive il numero min e max di valori del singolo
attributo associati a ogni occorrenza di entità o
relazione.
• Nella maggior parte dei casi, la cardinalità è (1,1) e
viene omessa. Valori solitamente usati: 0, 1, N
– Cardinalità min: 0 (compilazione opzionale) o 1 (obbligatoria)
– Cardinalità max: 1 o N (attributo multivalore)
• Esempio:
Persona
(1, 1)
cognome
(0, 1)
patente
(0, N)
Informatica Generale (Prof. Luca A. Ludovico)
Presentazione 14.1
targa auto
Altri costrutti: generalizzazione
• Legame logico tra una entità E detta entità padre e una o più
entità E1, … , En dette entità figlie, di cui E è più generale.
• E è generalizzazione di E1, … , En mentre E1, … , En sono
specializzazioni di E.
• Esempi:
–
–
Uomo e Donna sono specializzazioni di Persona.
Professionista è generalizzazione di Medico, Avvocato e Ingegnere.
• Ogni occorrenza di entità figlia è pure occorrenza del padre.
• Ogni proprietà dell’entità padre è pure proprietà di tutte le
entità figlie: ereditarietà.
Informatica Generale (Prof. Luca A. Ludovico)
Presentazione 14.1
Classificazione delle generalizzazioni
1. Totale vs. parziale
–
–
Totale se ogni occorrenza della classe padre è occorrenza di almeno una
delle classi figlie
Parziale altrimenti
2. Esclusiva vs sovrapposta
–
–
Esclusiva se ogni occorrenza della classe padre è al più occorrenza di una
delle classi figlie
Sovrapposta altrimenti.
• Esempi:
–
–
–
E = Persona, E1 = Uomo, E2 = Donna: gen. totale esclusiva
E = Veicolo, E1 = Auto, E2 = Bici: gen. parziale esclusiva
E = Persona, E1 = Studente, E2 = Lavoratore: gen. parziale
sovrapposta
Informatica Generale (Prof. Luca A. Ludovico)
Presentazione 14.1
Esempi di schemi concettuali
Cognome
Anno
Matricola
(0, N)
(0, N)
Studente
Corso
Esame
Nome
Anno
Docente
voto
data
(1, N)
(0, N)
Sede lavoro
Cognome
Stipendio
Codice fisc
(1, 1)
Impiegato
(0, N)
Nascita
data
Comune
Nome
Nazione
Abitanti
Esercizio: testo
•
•
•
•
•
•
Si progetti lo schema concettuale di un database contenente
informazioni di carattere organizzativo relative a un’azienda con
diverse sedi.
Ogni sede è dislocata in una città, presenta un indirizzo ed è
organizzata in dipartimenti.
Ogni dipartimento ha un nome e un numero di telefono. Ai
dipartimenti afferiscono, a partire da una certa data, i
dipendenti dell’azienda.
Alcuni impiegati svolgono il ruolo di direttore di dipartimento.
Tutti gli impiegati vengono descritti per cognome, nome,
stipendio, età e codice identificativo univoco.
I dipendenti lavorano su progetti a partire da una certa data.
Ogni progetto ha un nome, un budget e una data di consegna.
Informatica Generale (Prof. Luca A. Ludovico)
Presentazione 14.1
Esercizio: soluzione
(0,N)
(1,N)
Direzione
Cognome
Nome
Stipendio
Età
Codice
(1,N)
Impiegato
Nome
Telefono
(1,N)
Afferenza
(1,N)
Dipartimento
(1,1)
data
Partecipazione
Composizione
data
(0,N)
Nome
Budget
Data cons.
Progetto
(1,N)
Sede
Indirizzo
Città
Via
Civico
CAP
Parte 2
Progettazione logica
Informatica Generale (Prof. Luca A. Ludovico)
Le due fasi della progettazione logica
1. Ristrutturazione dello schema Entità-Relazione
Finalità: ottimizzazione dello schema concettuale (E-R) e
semplificazione della fase successiva
Fasi:
•
•
•
•
Analisi delle ridondanze (attributi e associazioni derivabili)
Eliminazione delle generalizzazioni (accorpamento delle figlie nel
padre, del padre nelle figlie, sostituzione con associazioni)
Partizionamento/accorpamento di entità e associazioni
Scelta degli identificatori primari
2. Traduzione verso il modello logico
Informatica Generale (Prof. Luca A. Ludovico)
Presentazione 14.1
I tipi di associazione
1. Uno a uno: quando la cardinalità massima a entrambi i lati
dell’associazione è 1.
•
Esempio: l’associazione Identificazione tra le entità Impiegato e
Carta_identità.
2. Uno a molti: quando la cardinalità massima è posta a 1 su un
lato e a N sull’altro lato.
•
Esempio: l’associazione Composizione tra le entità Autore e Opera
(1 autore può comporre tante opere, 1 opera è composta da uno e
un solo autore).
3. Molti a molti: quando la cardinalità massima è posta a N (o
comunque è maggiore di 1) su entrambi i lati.
•
Esempio: l’associazione Esame tra le entità Studente e Corso
Informatica Generale (Prof. Luca A. Ludovico)
Presentazione 14.1
Traduzione da schema concettuale a logico
•
Entità: in generale si traducono in tabelle. Ogni entità origina
una tabella, le cui colonne corrispondono agli attributi.
•
Relazioni:
1.
2.
3.
Uno a uno: le due entità coinvolte danno origine nello schema
ristrutturato a un’unica tabella, che coinvolge tutti gli attributi
delle entità originarie.
Uno a molti: le due entità si traducono in due tabelle distinte, con
un vincolo di chiave esterna tra l’entità che presenta molteplicità e
la chiave primaria dell’altra entità.
Molti a molti: le due entità si traducono in due tabelle, e si
aggiunge una terza tabella che presenta chiavi esterne verso le due
entità originarie. L’insieme delle chiavi esterne è chiave primaria
per la tabella.
Informatica Generale (Prof. Luca A. Ludovico)
Presentazione 14.1
Esercizio con Access
Cognome
Anno
Matricola
(0, N)
(0, N)
Studente
Corso
Esame
Nome
Anno
Codice
(1,1)
data
voto
Affidamento
(0,N)
Docente
Nome
Cognome
Matricola
Scarica

Progettazione di una base di dati