Progettazione concettuale per le basi di dati - Introduzione e il modello ER

36
PROGETTAZIONE CONCETTUALE DI BASI DI DATI: INTRODUZIONE E MODELLO ER Marco Brambilla http://home.dei.polimi.it /mbrambil http://twitter.com/MarcoBram http:// www.slideshare.net/ mbrambil

description

Ulteriori esempi e spiegazioni su: Braga Brambilla Campi - Eserciziario di basi di dati - Edizioni Esculapio, Progetto Leonardo.Euro 12,00. http://www.editrice-esculapio.it/shop/product/129/Braga-Brambilla-Campi-Eserciziario-di-basi-di-dati.asp

Transcript of Progettazione concettuale per le basi di dati - Introduzione e il modello ER

Page 1: Progettazione concettuale per le basi di dati - Introduzione e il modello ER

PROGETTAZIONE CONCETTUALE DI BASI DI DATI:

INTRODUZIONE E MODELLO ER

Marco Brambilla

http://home.dei.polimi.it/mbrambil http://twitter.com/MarcoBrambi

http://www.slideshare.net/mbrambil

Page 2: Progettazione concettuale per le basi di dati - Introduzione e il modello ER

Sommario della lezione

Introduzione Astrazione e modelli Il modello Entità-Relazione

Entità Associazioni( Relazioni!) Attributi Gerarchie

Strategie di progetto Top down Bottom up

Limiti e trasformazione verso il progetto logico

Page 3: Progettazione concettuale per le basi di dati - Introduzione e il modello ER

Il contesto: progettazione sw

Raccolta requisiti

Modellazione

concettualeAnalisi

funzionale

Specifica requisiti

non funzionali

Progettazione

SW applicativo

Progettazione

logica

Progettazione

fisica

Page 4: Progettazione concettuale per le basi di dati - Introduzione e il modello ER

Fasi della progettazione

la progettazione concettuale (CIM) tradurre il risultato dell’analisi dei requisiti in un modello

espresso tramite uno SCHEMA CONCETTUALE indipendente dalla struttura dei dati

la progettazione logica (PIM) tradurre lo SCHEMA CONCETTUALE in uno SCHEMA LOGICO dipende dal tipo di struttura dei dati scelto tra: Gerarchico, Reticolare, Relazionale, ad oggetti, XML, ...

la progettazione fisica (PSM) progetto che ottenga prestazioni ottimali tramite scelta e

dimensionamento di strutture fisiche di accesso. Dipende dal sistema (DBMS) in uso

* CIM = computation independent model PIM = platform independent model PSM = platform specific model

Page 5: Progettazione concettuale per le basi di dati - Introduzione e il modello ER

Ingredienti dei modelli concettuali

MODELLO: rappresentazione semplificata o parziale della realtà atta a uno specifico scopo Esempio? Mai realtà completa

CONCETTO/ ISTANZA: dicotomia tra la classe e l’oggetto concreto

ASTRAZIONE: capacità di evidenziare caratteristiche comuni ad insiemi di oggetti

Tre astrazioni base per la rappresentazione della conoscenza: Classificazione: classi e test di appartenenza delle istanze Aggregazione: composizione di oggetti complessi Generalizzazione/specializzazione: raffinamento

di classi in sottoclassi Esempio... dall’asilo

Page 6: Progettazione concettuale per le basi di dati - Introduzione e il modello ER

Il modello ER

modello Entity-Relationship (ER) [P.P.Chen 1976] standard industriale de facto di buona parte delle metodologie

e degli strumenti per il progetto concettuale di basi di dati

Attenzione! Relationship = Associazione Da non confondere con relazioni del modello RELAZIONALE Pero’ poi la si chiama anche informalmente “relazione”

Page 7: Progettazione concettuale per le basi di dati - Introduzione e il modello ER

Caso di studio Gestione delle prenotazioni dei posti di un laboratorio didattico di una

università. Ogni studente è caratterizzato dalla propria matricola, nome, cognome, data

e luogo di nascita, residenza, recapito telefonico. Gli studenti frequentano alcuni laboratori didattici. I laboratori didattici

contengono un insieme di posti di lavoro ed un insieme di risorse. Ad ogni posto di lavoro sono assegnate alcune risorse (unità di calcolo, stampanti, applicazioni).

Alcune delle risorse sono rese disponibili a tutti gli studenti senza controlli, altre vengono assegnate agli studenti che frequentano determinati laboratori, previa autorizzazione.

Lo studente può utilizzare un posto di lavoro solo se effettua una prenotazione. Si deve tenere traccia di tutte le prenotazioni e di tutte le volte che lo studente utilizza un posto di lavoro.

Ogni laboratorio ha un solo responsabile, il quale si può occupare di un solo laboratorio.

Page 8: Progettazione concettuale per le basi di dati - Introduzione e il modello ER

Entità

Rappresenta una classe di oggetti (es., automobili, impiegati, studenti) o di fatti (es., conti correnti, corsi universitari) Non un insieme ma una categoria /prototipo

Usa nomi singolari per le entità

Devono essere oggetti rilevanti per la applicazione Ogni entità è caratterizzata da un nome e da attributi Notazione:

nome dell’entità

studente

esempio:

Page 9: Progettazione concettuale per le basi di dati - Introduzione e il modello ER

Associazione (o Relazione)

Rappresenta un collegamento semantico tra entità di interesse per l’applicazione

Ogni istanza di una associazione è una ennupla tra istanze di entità (es., legame tra un automobile e il suo proprietario)

Ogni associazione è caratterizzata da un nome Usa nomi indipendenti dalla direzione di lettura dell’associazione

(es. verbi all’infinito o nomi)

Notazione:Nom

e

studente

esempio:

esameSostenere

Page 10: Progettazione concettuale per le basi di dati - Introduzione e il modello ER

Studente Esame

Rappresentazione grafica delle istanze: relazione matematica! Dominio Codominio Immagine

Page 11: Progettazione concettuale per le basi di dati - Introduzione e il modello ER

Attributi

Rappresentano caratteristiche delle entità e delle associazioni di interesse per l’applicazione

Ogni attributo è caratterizzata da un nome (e da un tipo/dominio)

Notazione:

codice

cognome

voto

Page 12: Progettazione concettuale per le basi di dati - Introduzione e il modello ER

Come progettare?

Se il concetto è significativo per il contesto applicativo entità

Se il concetto è una proprietà/caratteristica di un concetto descrivibile tramite un dato elementare:

attributo

Se il concetto definisce un legame tra entità: associazione

Page 13: Progettazione concettuale per le basi di dati - Introduzione e il modello ER

Corrispondenza tra concetti ed elementi ER

La corrispondenza tra oggetti e fatti del mondo reale e entità, associazioni e attributi non è assoluta ma dipende dal contesto:

Esempio: Colore = attributo o entità?

il trattore BOF34675 è di colore rosso il colore rosso ha lunghezza d’onda = ~700 nm

Page 14: Progettazione concettuale per le basi di dati - Introduzione e il modello ER

guidatore autobus

percorso

guidare

servizio

Esempio: gestione viaggi autobus

Page 15: Progettazione concettuale per le basi di dati - Introduzione e il modello ER

dipartimento docente

corsostudente

afferenza

insegnamento

frequenza

Esempio: università

Page 16: Progettazione concettuale per le basi di dati - Introduzione e il modello ER

Ruoli e Cardinalità

Ruolo: verso di percorrenza di una associazione Autobus presta servizio su Percorso Percorso servito da Autobus

Cardinalità: vincolo sul numero di istanze di associazione cui ciascuna istanza di entità deve partecipare.

È una coppia (MIN-CARD, MAX-CARD). Valori significativi: MIN-CARD = 0 (opzionale)

= 1 (obbligatoria)

MAX-CARD = 1 (uno)

= N (molti)

In base alla sola cardinalità massima si hanno associazioni

uno-uno, uno-molti, molti-molti

Page 17: Progettazione concettuale per le basi di dati - Introduzione e il modello ER

Associazione 1:1 con opzionalità

direttorereparto direzione(0,1) (1,1)

• un reparto puo’ essere diretto da uno solo direttore (0,1) un direttore deve dirigere uno ed un solo reparto (1,1)

Page 18: Progettazione concettuale per le basi di dati - Introduzione e il modello ER

Reparto Direttore

Associazione 1:1 con opzionalità

Page 19: Progettazione concettuale per le basi di dati - Introduzione e il modello ER

impiegato

controllato

controllore

controllo

(0,n)

(0,1)

Auto-associazioni

associazioni aventi come partecipantiistanze provenienti dalla stessa entità (chiamate anche “ad anello”):

Page 20: Progettazione concettuale per le basi di dati - Introduzione e il modello ER

guidatore(1,n)

(0,n)

autobus(0,n)

percorso

guida

Associazioni ternarie

Pensaci N volte prima di introdurre una associazione di grado N

Attenzione alle cardinalità

Page 21: Progettazione concettuale per le basi di dati - Introduzione e il modello ER

Autobus Percorso

Guidatore

Associazioni ternarie

Page 22: Progettazione concettuale per le basi di dati - Introduzione e il modello ER

Cardinalità degli attributi

una prima classificazione:

attributo scalare (semplice, ad un solo valore) es.: matricola, cognome, voto

attributo multiplo (sono ammessi n valori)

es.: qualifica, titolo, specialità(1,n)

il simbolo (n,m) esprime la cardinalità dell’attributo.

attributo opzionale (è ammessa la “non esistenza del valore”)

(0,n)es.: tel., qualifica, targa

(0,1)

Page 23: Progettazione concettuale per le basi di dati - Introduzione e il modello ER

attributo composto

attributo multiplo composto

es.: data (gg,mm,aaaa),indirizzo (via, numero civico,città, provincia, cap)

(1,n) es.: telefono (stato,città, numero)

(1,1)

Attributi composti

Page 24: Progettazione concettuale per le basi di dati - Introduzione e il modello ER

Un identificatore caratterizza in modo univoco ciascuna istanza di entità

simbolo

non è modificabile (in generale…)

c.f.

dipendente macchina

mat.

libro

c.inv.

Identificatore

Page 25: Progettazione concettuale per le basi di dati - Introduzione e il modello ER

L’identificatore di un’entità può essere composto

localitàalbergonome

stabilimento

nome

localitàsocietà

Identificatori composti

AUTO

targa

modello

n. telaio

n. produzione

Page 26: Progettazione concettuale per le basi di dati - Introduzione e il modello ER

DIPENDENTE

c.f.

nome

cognome

data_nascita

data_assunzionelivello

stipendio indirizzo

n_tel.

qualifica

(0,1)(1,2)(1,n)

recapito

Attributi – esempio completo

Page 27: Progettazione concettuale per le basi di dati - Introduzione e il modello ER

Entità deboli

Le entità deboli possono esistere se e solo se sono presenti entità “forti” da cui queste dipendono Non hanno identificatore proprio In caso di eliminazione dell’istanza “forte” di

riferimento le istanze deboli collegate devono essere eliminate

le entità con identificatore esterno sono deboli poiché a tutti i livelli la cancellazione di una entità provoca la cancellazione delle entità deboli collegate

Es. eliminazione di vettura

Page 28: Progettazione concettuale per le basi di dati - Introduzione e il modello ER

(0,n)

parenteCF

dipendente

(1,1)

(0,n)

parenteCF

dipendente

(1,1)Ass. Ass.

matr matr

Simboli usati

Page 29: Progettazione concettuale per le basi di dati - Introduzione e il modello ER

Gerarchie di generalizzazioneEreditarietà

Una gerarchia di generalizzazione è un legame logico tra un’entità padre E ed alcune entità figlie E1 E2 .. En dove: E è la generalizzazione di E1 E2 .. En

E1 E2 .. En sono specializzazioni di E

tale per cui: ogni istanza di Ek è anche istanza di E

una istanza di E può essere una istanza di Ek

Le entità figlio ereditano le proprietà (attributi, relazioni, identificatori) dell’entità padre

Page 30: Progettazione concettuale per le basi di dati - Introduzione e il modello ER

Proprietà delle gerarchie: t vs. p , e vs. o

t sta per totale: ogni istanza dell’entità padre deve far parte di una delle entità figlie

p sta per parziale: le istanze dell’entità padre possono far parte di una delle entità figlie

e sta per esclusiva: ogni istanza dell’entità padre non può far parte di più di una delle entità figlie

o sta per overlpping: ogni istanza dell’entità padre può far parte di più entità figlie

Page 31: Progettazione concettuale per le basi di dati - Introduzione e il modello ER

Esempio: personale d’azienda

personale

c_f

cognomeindirizzo

impiegato dirigente

consulentedipendentestipendiosindacato

p_iva

compenso

mansione classe

Contr.Dip.(1,1)

(0,n)

(0,n)

(1,1)

Page 32: Progettazione concettuale per le basi di dati - Introduzione e il modello ER

Qualità di schemi concettuali

Completezza Correttezza Leggibilità (concettuale e grafica) Minimalità Auto-Esplicatività

Page 33: Progettazione concettuale per le basi di dati - Introduzione e il modello ER

Leggibilità concettuale

Doc

Ric

Lez

Eser

Doc Ric

Ins

Lez Eser

ModI

I

I

I

I

Page 34: Progettazione concettuale per le basi di dati - Introduzione e il modello ER

Leggibilità grafica

A

C

D

B

A BABBC

CD

AB

DA

D CCD

BCDA

Page 35: Progettazione concettuale per le basi di dati - Introduzione e il modello ER

Caso di studio - soluzione

Page 36: Progettazione concettuale per le basi di dati - Introduzione e il modello ER

Grazie per l’attenzione!

Ulteriori esempi e spiegazioni su:

Braga Brambilla Campi - Eserciziario di basi di dati – Edizioni Esculapio, Progetto Leonardo.Euro 12,00.

http://www.editrice-esculapio.it/shop/product/129/Braga-Brambilla-Campi-Eserciziario-di-basi-di-dati.asp

Mi trovi su LinkedIn, Twitter, Facebook, e sulla mia home page:

http://home.dei.polimi.it/mbrambil

http://home.dei.polimi.it/mbrambil http://twitter.com/MarcoBrambi

http://www.slideshare.net/mbrambil