PROGETT - users.dimi.uniud.itangelo.montanari/conceptModelit.pdf · Basi di dati | Mo dello E-R 5{0...

30

Transcript of PROGETT - users.dimi.uniud.itangelo.montanari/conceptModelit.pdf · Basi di dati | Mo dello E-R 5{0...

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