Upload
dinhkhanh
View
218
Download
0
Embed Size (px)
Citation preview
PROGETTAZIONE DI BASI DI DATI:
METODOLOGIE E MODELLI
Basi di dati | Modello E-R 5{0
Progettazione di basi di dati
� �e una delle attivit�a del processo di sviluppo dei sistemi
informatici
� va quindi inquadrata in un contesto pi�u generale:
il ciclo di vita dei sistemi informatici:
{ Insieme e sequenzializzazione delle attivit�a svolte da analisti,
progettisti, utenti, nello sviluppo e nell'utilizzazione dei
sistemi informatici.
{ Si tratta di una attivit�a iterativa (perci�o \ciclo")
Basi di dati | Modello E-R 5{1
Fasi del ciclo di vita
una possibile articolazione
� Attivit�a preliminari
� Analisi
� Progettazione
� Realizzazione
� Installazione, transizione, gestione, manutenzione
Al termine (e non solo) di ciascuna fase, deve essere svolta una
attivit�a di veri�ca (validazione) della qualit�a dei prodotti.
Anche in caso di a�damento all'esterno delle attivit�a di sviluppo,
buona parte delle fasi del ciclo di vita rimangono di interesse.
Basi di dati | Modello E-R 5{2
Analisi
Attivit�a volta alla individuazione dei requisiti dell'applicazione, in
tutti i dettagli signi�cativi. Le informazioni vengono acquisite
attraverso
� interazione con gli utenti (a diversi livelli)
� studio delle realizzazioni esistenti
� studio della normativa
Basi di dati | Modello E-R 5{3
Progettazione
Attivit�a volta alla individuazione delle modalit�a secondo cui
l'applicazione risponder�a ai requisiti. In questa fase vengono
de�niti
� i dati di ingresso e uscita e la loro organizzazione
� l'architettura hardware e software
� la organizzazione dei moduli software
Basi di dati | Modello E-R 5{4
Analisi e progettazione
Analisi de�nizione di un problema;
\che cosa"
esame delle procedure aziendali
scopo dell'analisi �e la modellazione, la costruzione di un
modello preciso, ma astratto rispetto alle realizzazioni
Progettazione risoluzione di un problema;
\come"
automatizzazione delle procedure
Basi di dati | Modello E-R 5{5
� prodotti fondamentali della fase di analisi sono le
rappresentazioni del sistema secondo opportuni formalismi
� poich�e in un sistema abbiamo processi (funzioni) e dati,
l'analisi deve riguardare entrambi gli aspetti
{ analisi dei dati
{ analisi delle funzioni
� l'analisi delle funzioni pu�o apparire pi�u \naturale" perch�e fa
riferimento alle attivit�a che vengono svolte
� l'analisi dei dati �e per�o essenziale per studiare i ussi
informativi (soprattutto interprocesso) ed �e per certi aspetti
pi�u semplice perch�e i dati sono pi�u stabili e pi�u facilmente
analizzabili in dettaglio
Basi di dati | Modello E-R 5{6
� lo studio di metodologie complete per lo sviluppo di sistemi
informativi (e informatici) �e oltre gli obiettivi di un corso di
basi di dati
� il ruolo centrale dei dati (e quindi delle basi di dati) giusti�ca
uno studio autonomo della progettazione di basi di dati
Basi di dati | Modello E-R 5{7
Metodologia
� articolazione delle attivit�a in fasi, con input e prodotti
� strategie per i vari passi e criteri di scelta
� modelli per la rappresentazione dei prodotti delle varie fasi
Propriet�a:
� generalit�a (rispetto alle applicazioni e ai sistemi)
� qualit�a del prodotto (correttezza, completezza, e�cienza, ...)
� facilit�a d'uso
Basi di dati | Modello E-R 5{8
Fasi del processo
di progettazione di basi di dati
Analisi dei requisiti e progettazione concettuale:
raccolta ed esame delle speci�che;
costruzione di uno schema concettuale (descrizione dei dati
in un modello astratto) e di un glossario
Progettazione logica: de�nizione dello schema logico della base
di dati (descrizione utilizzata dagli utenti e dai programmi)
Progettazione �sica: de�nizione dei parametri realizzativi di
livello pi�u basso
La progettazione di basi di dati segue l'articolazione in livelli dei
sistemi, aggiungendo anzi un livello pi�u astratto
Basi di dati | Modello E-R 5{9
� il prodotto fondamentale della prima fase (analisi e
progettazione concettuale) �e lo schema concettuale (con la
documentazione associata), cio�e uno schema dei dati secondo
un modello concettuale
� i modelli concettuali vengono spesso utilizzati �n dall'inizio
dell'ativit�a di analisi e sono molto utili anche per la
comunicazione fra specialisti e non specialisti (analisti e
committenti)
� vediamo in dettaglio un modello concettuale
Basi di dati | Modello E-R 5{10
Modello dei dati
� costrutti utilizzati per organizzare i dati di interesse
� componente fondamentale: meccanismi di strutturazione (o
costruttori di tipo)
� ad esempio, il modello relazionale prevede il costruttore
relazione, che permette di de�nire insiemi di record omogenei
Basi di dati | Modello E-R 5{11
Le relazioni possono essere rappresentate per mezzo di tabelle
docenza Corso Docente
Basi di dati RossiImpianti NeriLinguaggi Verdi
: : : : : :
manifesto CdL Materia Anno
II Basi di dati 5II Impianti 5II Linguaggi 4IE Linguaggi 5IE Impianti 5: : : : : : : : :
Basi di dati | Modello E-R 5{12
In ogni base di dati esistono:
� lo schema, sostanzialmente invariante nel tempo, che ne
descrive la struttura (aspetto intensionale);
nell'esempio, le intestazioni delle tabelle
� l'istanza, costituita dai valori attuali, che possono cambiare
molto e molto rapidamente (aspetto estensionale);
Basi di dati | Modello E-R 5{13
Due tipi (principali) di modelli:
� modelli logici: utilizzati nei DBMS esistenti per
l'organizzazione dei dati; ad essi fanno riferimento i
programmi; sono indipendenti dalle strutture �siche;
� modelli concettuali: peremettono di rappresentare i dati in
modo indipendente da ogni sistema, cercando di descrivere i
concetti del mondo reale; sono utilizzati nelle fasi preliminari di
progettazione;
il pi�u noto �e il modello Entity-Relationship
Basi di dati | Modello E-R 5{14
� i modelli concettuali vengono spesso utilizzati �n dall'inizio
dell'attivit�a di analisi e sono molto utili anche per la
comunicazione fra specialisti e non specialisti (analisti e
committenti)
� i modelli concettuali sono stati introdotti per ovviare al
limitato potere espressivo e alla \rigidit�a" dei modelli logici
Basi di dati | Modello E-R 5{15
� in un modello concettuale (come in ogni modello dei dati),
i dati possono essere descritti a due livelli:
estensionale, relativo ai dati veri e propri, fortemente variabile
nel tempo
intensionale, o dello schema relativo alla struttura dei dati,
molto pi�u stabile
� in sede di progettazione, interessa (solo) lo schema, in quanto
astrazione del livello estensionale
Basi di dati | Modello E-R 5{16
� lo schema concettuale �e una rappresentazione delle classi dei
dati di interesse e delle loro correlazioni, in modo indipendente
da ogni aspetto realizzativo (poi, la realizzazione sar�a basata
sullo schema concettuale, ma non viceversa)
� si utilizzano rappresentazioni gra�che degli schemi concettuali
(che hanno un signi�cato ben preciso, non solo \scatole e
frecce")
Basi di dati | Modello E-R 5{17
Il modello E-R (Entity-Relationship)
� il pi�u di�uso modello concettuale
� attenzione: ne esistono molte versioni, (pi�u o meno) diverse
l'una dall'altra
Basi di dati | Modello E-R 5{18
I costrutti del modello E-R
� entit�a
� relationship
� attributi
� identi�catori
� generalizzazioni e sottoinsiemi
Basi di dati | Modello E-R 5{19
entit�a: classe di oggetti (fatti, persone) del frammento di interesse
del mondo reale, con propriet�a omogenee e con esistenza
\autonoma"; es. persone, citt�a, aziende, fatture, ordini
relationship: legame logico fra due o pi�u entit�a, di interesse per
l'applicazione; classe di fatti di interesse
Basi di dati | Modello E-R 5{20
entit�a: la classe di oggetti omogenei (e il loro tipo)
occorrenza (o istanza) di entit�a: ciascun elemento della classe
� nello schema concettuale rappresentiamo le entit�a, non le
singole istanze (\astrazione")
Basi di dati | Modello E-R 5{21
� ogni entit�a ha un nome che la identi�ca univocamente nello
schema
{ nomi espressivi
{ opportune convenzioni (ad esempio, sempre singolare)
Basi di dati | Modello E-R 5{22
Entit�a: rappresentazione gra�ca
Impiegato
Citt�a
Regione
Azienda
Basi di dati | Modello E-R 5{23
relationship legame logico fra due o pi�u entit�a, di interesse per
l'applicazione; classe di fatti di interesse
� spesso non tradotto per evitare la confusione con relazione
(traduzione di relation)
� anche tradotto con correlazione o associazione
Basi di dati | Modello E-R 5{24
occorrenza (o istanza) di relationship:
n-upla (coppia, terna, ...) di istanze di entit�a,
una per ciascuna entit�a coinvolta
relationship: insieme di n-uple omogenee per
� tipo (entit�a di provenienza)
� signi�cato (rispetto all'applicazione)
Basi di dati | Modello E-R 5{25
Relationship:
rappresentazione gra�ca
Studente Esame������HHHHHH������HH
HHHH Corso
Persona Residenza������HHHHHH������HH
HHHH Citt�a
Basi di dati | Modello E-R 5{26
� due entit�a possono essere coinvolte in pi�u relationship
Persona Residenza������HHHHHH������HH
HHHH Citt�a
Nascita������HHHHHH������HH
HHHH
Basi di dati | Modello E-R 5{27
un dettaglio formale:
� le istanze di una relationship formano un insieme:
non ci possono essere elementi ripetuti
� si tratta di una relazione nel senso matematico del termine:
(sottoinsieme del prodotto cartesiano degli insiemi di istanze
coinvolte)
Paziente Visita������HHHHHH������HH
HHHH Medico
?
Basi di dati | Modello E-R 5{28
� le relationship possono coinvolgere pi�u di due entit�a
Dipartimento Fornitura�������HHHHHHH�������HH
HHHH
H Prodotto
Venditore
A fornisce stampanti al Dip Personale
B \ fotocopiatrici \ \ PersonaleA \ calcolatori \ \ RicercaC \ calcolatori \ \ Personale
Basi di dati | Modello E-R 5{29
� una relationship pu�o coinvolgere \due volte" la stessa entit�a
(relationship ricorsiva)
� pu�o essere necessario distinguere \ruoli"
Persona
Conoscenza������HHHHHH������HH
HHHH
Sovrano
Successione������HHHHHH������HH
HHHH
SuccessorePredecessore
Basi di dati | Modello E-R 5{30
� possono esistere relationship ternarie ricorsive
Tennista
Confronto������HHHHHH������HH
HHHH
MigliorePeggiore
Super�cie
Migliore Peggiore Super�cie
Sanchez Navratilova TerraNavratilova Sanchez Erba
Graf Sanchez Erba
Basi di dati | Modello E-R 5{31
attributo: propriet�a elementare di un'entit�a o una relationship, di
interesse ai �ni dell'applicazione
� un attributo associa un valore a ciascuna occorrenza dell'entit�a
(o relationship) su cui �e de�nito
Studente Esame�������HHHHHHH�������HH
HHHH
H Corso
eCodiceeDenominazioneeProfessore
eVoto
eMatricolaeNome
Basi di dati | Modello E-R 5{32
Uno schema E-R
IMPIEGATO AFFERENZA
DIREZIONE
DIPARTIMENTO
PROGETTO
PARTECIPAZIONE
SEDE
COMPOSIZIONE
Età
Cognome
Stipendio
Data consegna
Nome
Budget
Nome
Telefono
CittàData inizio
Data afferenza
Indirizzo Via
Numero civico
CAP
Codice
Basi di dati | Modello E-R 5{33
Altri costrutti e dettagli del modello:
� cardinalit�a delle relationship
� identi�catori
� gerarchie
Basi di dati | Modello E-R 5{34
Cardinalit�a delle relationship
� permettono di speci�care il numero minimo e massimo di
occorrenze della relationship cui ciascuna occorrenza di una
entit�a deve/pu�o partecipare
� per semplicit�a usiamo:
{ 0 e 1 per la cardinalit�a minima:
0 = \�e opzionale"; 1 = \�e obbligatoria"
{ 1 e \N" per la massima:
\N" non pone alcun limite
� con riferimento alle cardinalit�a massime, abbiamo relationship:
uno a uno, uno a molti, molti a molti
Basi di dati | Modello E-R 5{35
� le cardinalit�a vanno speci�cate per ciascuna entit�a che
partecipa alla relationship
E1 R�������HHHHHHH�������HH
HHHH
H E2(m, M) (p,P)
� ogni occorrenza di E1 partecipa ad almeno m e al pi�u M
occorrenze di R
� ogni occorrenza di E2 partecipa ad almeno p e al pi�u P
occorrenze di R
Basi di dati | Modello E-R 5{36
Relationship \molti a molti"
Persona Amicizia������HHHHHH������HH
HHHH Animale
(0,N) (0,N)
Montagna Scalata������HHHHHH������HH
HHHH Alpinista
(0,N) (1,N)
Macchinista Abilitazione������HHHHHH������HH
HHHH Locomotore
(1,N) (1,N)
Basi di dati | Modello E-R 5{37
Relationship \uno a molti"
Persona Impiego������HHHHHH������HH
HHHH Societ�a
(0,1) (0,N)
Cinema Ubicazione������HHHHHH������HH
HHHH Localit�a
(0,1) (1,N)
Comune Ubicazione������HHHHHH������HH
HHHH Provincia
(1,1) (1,N)
Basi di dati | Modello E-R 5{38
Relationship \uno a uno"
Professore Titolarit�a������HHHHHH������HH
HHHH Cattedra
(0,1) (0,1)
Professoredi ruolo
Titolarit�a������HHHHHH������HH
HHHH Cattedra
(1,1) (0,1)
Professoredi ruolo
Titolarit�a������HHHHHH������HH
HHHH
Cattedracoperta
(1,1) (1,1)
Basi di dati | Modello E-R 5{39
Due avvertenze:
� attenzione al \verso" nelle relationship uno a molti
� le relationship obbligatorie-obbligatorie spesso hanno poco
senso
Basi di dati | Modello E-R 5{40
Cardinalit�a di attributi
Possono essere usate per:
� indicare opzionalit�a (molto utili, corrispondono ai valori nulli)
� per indicare attributi multivalore (non sempre utilizzati)
PERSONA Nome
Numero patente
Targa automobile(0,N)
(0,1)
Basi di dati | Modello E-R 5{41
Identi�catore di una entit�a
� \strumento" per l'identi�cazione univoca delle occorrenze
� �e costituito da
{ attributi (uno o pi�u) dell'entit�a:
identi�catore interno
{ (da attributi e) entit�a esterne (attraverso relationship):
identi�catore esterno
� ogni entit�a deve avere (almeno) un identi�catore
Basi di dati | Modello E-R 5{42
Identi�catori interni
AUTOMOBILE
Colore
Modello
Targa
PERSONA
Data di nascita
Nome
Cognome
Indirizzo
Basi di dati | Modello E-R 5{43
Identi�catore esterno
STUDENTE UNIVERSITÀISCRIZIONE
Nome
Città
Indirizzo
Matricola
Cognome
Anno Iscrizione
(1,1) (1,N)
Basi di dati | Modello E-R 5{44
� perch�e non parliamo degli identi�catori delle relationship?
Basi di dati | Modello E-R 5{45
Uno schema con attributi e identi�catori
IMPIEGATO AFFERENZA
DIREZIONE
DIPARTIMENTO
PROGETTO
PARTECIPAZIONE
SEDE
COMPOSIZIONE
Età
Cognome
Stipendio
Data consegna
Nome
Budget
Nome
Telefono
CittàData inizio
Data afferenza
Indirizzo Via
Numero civico
CAP
Codice
(0,1) (1,N)
(0,1) (1,1)
(1,1)
(1,N)
(0,N)
(1,N)
(1,N)
(0,1)
Basi di dati | Modello E-R 5{46
Generalizzazione
� uomo e donna sono i due casi particolari di persona
� dipendente �e un concetto che generalizza i concetti di
funzionario, impiegato, dirigente
Basi di dati | Modello E-R 5{47
Generalizzazione
� mette in relazione una o pi�u entit�a E1, E2, : : :, En con un'altra
entit�a E, di esse pi�u generale, nel senso che le comprende
come caso particolare
� ogni propriet�a di E �e signi�cativa per E1, E2, : : :, En
� ogni occorrenza di Ei �e occorrenza anche di E
� ogni occorrenza di E �e occorrenza di al pi�u una Ei
Basi di dati | Modello E-R 5{48
� E1, E2, : : :, En sono specializzazioni (sottotipi,
sottoinsiemi) di E
� le propriet�a (attributi, relationship, altre generalizzazioni) di E
vengono ereditate da E1, E2, : : :, En (e non rappresentate
esplicitamente)
Basi di dati | Modello E-R 5{49
Dipendente
Impiegato Funzionario Dirigente
��@@
Basi di dati | Modello E-R 5{50
Citt�a Nascita������HHHHHH������HH
HHHH Persona
dCognome
dNome
ProfessoredDipartimento Studente
dCognome
dNome
��@@
� ogni professore �e una persona
� ogni studente �e una persona
� nessun professore �e studente e viceversa
� esistono persone che non sono n�e studenti n�e professori
� ogni studente ha nome, cognome e citt�a di nascita (ereditati)
Basi di dati | Modello E-R 5{51
� una generalizzazione �e completa se ogni occorrenza del
\genitore" �e occorrenza di uno dei �gli
Persona
eCodice FiscaleeCognomeeNome
Uomo
e
Pos Militare
Donna
��@@
Basi di dati | Modello E-R 5{52
� nel caso di generalizzazione con un solo �glio si parla di
sottoinsieme (o gerarchia is-a)
� ovviamente, non si pu�o avere completezza
Persona
Studente
��@@
Basi di dati | Modello E-R 5{53
� possono esistere gerarchie a pi�u livelli e multiple gerarchie allo
stesso livello
� un'entit�a pu�o essere inclusa in pi�u gerarchie, come genitore
e/o come �glio
� alcune con�gurazioni non hanno senso
� il genitore di una gerarchia completa pu�o non avere
identi�catore (purch�e ce l'abbiano tutte le entit�a �glie)
Basi di dati | Modello E-R 5{54
UOMO DONNA
PERSONA
SEGRETARIO PROGETTISTA
Età
Codice Fiscale
Situazione militare
Cognome
DIRETTORE
RESPONSABILE DI PROGETTO
IMPIEGATO STUDENTE
MatricolaStipendio
Orario
Basi di dati | Modello E-R 5{55
Documentazione associata
� dizionario dei dati (entit�a, relationship, attributi, gerarchie)
� vincoli non esprimibili
Basi di dati | Modello E-R 5{56
Entit�a Descrizione Attributi Identi�catore
Impiegato Impiegato che lavoranella azienda
Codice, Cognome,Stipendio, Et�a
Codice
Progetto Progetti ai quali lavo-rano gli impiegati dellaazienda
Nome, Budget,Data consegna
Nome
Dipartimento Dipartimenti delle sedidella azienda
Telefono, Nome Nome, Sede
Sede Sede della azienda inuna certa citt�a
Citt�a, Indirizzo Citt�a
Basi di dati | Modello E-R 5{57
Relationship Descrizione Entit�a Coinvolte Attributi
Direzione Associa un dipartimentoal suo direttore
Impiegato,Dipartimento
A�erenza Associa un impiegato al suodipartimento
Impiegato,Dipartimento
Dataa�erenza
Partecipazione Associa agli impiegatii progetti sui quali lavorano
Impiegato, Progetto Data inizio
Composizione Associa una sedeai dipartimentidi cui �e composta
Dipartimento, Sede
Basi di dati | Modello E-R 5{58
Vincoli di integrit�a sui dati
(1) Un impiegato pu�o essere direttore solo del dipartimento
a cui a�erisce.(2) Un impiegato non pu�o avere uno stipendio maggiore del
direttore del dipartimento al quale a�erisce.(3) Un impiegato non pu�o partecipare a un progetto se non
a�erisce a nessun dipartimento.(4) Il budget di un progetto deve essere superiore alla somma
degli stipendi degli impiegati che vi partecipano.
Basi di dati | Modello E-R 5{59