Unità Due - Altervistaascanu.altervista.org/.../uploads/2016/11/U2-Modello-ER.pdf ·...

Post on 11-Aug-2020

2 views 0 download

Transcript of Unità Due - Altervistaascanu.altervista.org/.../uploads/2016/11/U2-Modello-ER.pdf ·...

Unità Due

Modello E/R

Progettazione Concettuale

Consiste:– Riorganizzare tutti gli elementi presenti nella

documentazione– Per rappresentare la realtà di interesse – In termini di una descrizione formale,completa e

indipendente dai criteri usati dal DBMS

Modello concettuale● Rappresenta il modello ufficiale di riferimento● Di comunicazione per I progettisti● La base per il lavoro futuro

Modello E/R• Entity/Relationship (entità/associazioni)• Uno dei tanti modelli concettuali• Modello introdotto nel 1976 da P.P. Chen

• Permette di rappresentare graficamente i dati e le relazioni della realtà di interesse indipendentemente dalle applicazioni

Permette● di rappresentare graficamente i dati e le

relazioni della realtà di interesse● Indipendentemente dagli eventi e Applicazioni

(DBMS e Applicativi)● Il risultato è lo schema ER o Diagramma ER

Entità

● Parte della realtà da rappresentare● Caratterizzate da proprietà dette attributi

Permette ● Di rappresentare una classe di oggetti

– Fatti,persone,cose …..

● Appartengono alla realtà di interesse● Hanno proprietà comuni● Esistenza autonoma● Sono di interesse per l’applicazione

Istanza● Singolo oggetto che appartiene ad una entità● Detto anche occorrenza

● L’istanza è il valore che assume l’entità in un determinato istante

● Stessa differenza tra progetto e casa fisica

Attenzione● Entità sono:

– studente con attributi nome,corso,docente– Cantante con attributi nome,tipologia

● Le stanze sono:– Antonio,matematica,Verdi– Gianni,filosofia,Rossi– 883, pop– Eminem, Rep

Rappresentazione

Studente

Cantante

Attributi• Sono i fatti (Proprietà) • che si intendono rappresentare • determinato la struttura dell’entità

• Si dovranno scegliere solo gli attributi che ci interessano in quel contesto

Sono caratterizzati● Nome● Formato● Dimensione● Valore (dominio di appartenenza)● Per ogni entità si dovrebbe fare una tabella degli

attributi

Quando attributo / quando entità• Dal contesto• Dal uso che se ne vuole fare

• Esempio– Comune è un attributo se lo si considera come attributo

di una persona– Comune è una Entità se si deve descrivere il territorio di

una provincia

Tipo di attributo● Semplici● Composti● Multipli● Opzionali● Derivati

Semplice● Non è ulteriormente scomponibile ● Unità informativa di base● Caratterizza entità e si associa un solo valore

Studente Nome

Composto● Quando è formato dall'aggregazione di altri

attributi che posso essere a loro volta semplici o composti

Studente

Via

Indirizzo città

numcivico

Cardinalità● È descritta da una coppia di valori (x,y)● X numero minimo di valori associati ad ogni

valore dell’istanza● Y numero massimo di valori associati ad ogni

istanza

Esempio

Impiegato Telefono(x,y)

Multiplo

Impiegato Telefono(x,N)

Possono (non devono per forza ) essere associati contemporaneamente più valori

opzionale

Impiegato Telefono(0,N)

Può (non deve) non essere associato un valore

Impiegato Telefono(0,1)

obligatorio

Impiegato Telefono(1,N)

Deve (non può) essere associato un valore

Impiegato Telefono(1,1)

Riassumendo

Il valore NULL● Deve intendersi una informazione

– Mancante– Inapplicabile– Sconosciuta

● Stessa differenza tra il voto 0 e non classificato

Derivato● Può essere ricavato da altri attributi

● Non viene (di solito) indicato

Chiave● Attributo o insieme di attributi ● Permette di distinguere una istanza di un entità

dall’altra ● In modo univoco

Rappresentazione

Impiegato Codice fiscale

Impiegato CognomeCognomeCognome

Nome

Data di nascita

Riassumendo

Altre rappresentazioni

Cantante

Codice fiscaleNome (O)CognomeEtà (F)

Le associazioni● Legame logico tra due o più entità rilevanti nella

realtà di interesse● Rappresentazione di base

FormalmenteUn’associazione A tra le entità E e F è costituita da un insieme di coppie (k,h), tali che k è un’istanza di E, e h è un’istanza di F. Ogni coppia è detta istanza dell’associazione A.

Descrivi lo schema concettuale● Descrivi un modello concettuale che permetta

la gestione dei corsi di laurea di un’università

Grado di un’associazione● Binaria

● Due Binarie

Grado di un’associazione● Ternaria

Attenzione

Attenzione

Gli attributi dell’associazioneUn attributo di associazione è una proprietà locale di un’associazione, di interesse ai fini dell’applicazione.

Modellare con attributi o entitàEsempio

Le associazioni ricorsive Quando un’associazione crea un legame tra una stessa entità, si ha il caso particolare di un’associazione ricorsiva (o unaria).

Esempio

Le proprietà delle associazioni Data un’associazione A tra le entità X e Y, si attribuisce un verso da X a Y che definisce l’associazione diretta da X a Y.

Definiamo inversa l’associazione da Y a X, che indichiamo con A–1. Possiamo allora dire che la coppia (y, x) con y ∈Y e x ∈X appartiene ad A–1 se, e solo se, la coppia (x, y) appartiene ad A.

CardinalitàUn vincolo di cardinalità si associa a un ruolo U in una relazione R e impone un limite minimo x e un limite massimo y di istanze della relazione a cui può partecipare ogni istanza dell’entità E nel ruolo U.

• x è la cardinalità minima, cioè un intero ≥ 0;

• y è la cardinalità massima, che è n, oppure un intero positivo ≥ x.

Nella maggiore parte dei casi, per esprimere la cardinalità è sufficiente utilizzare solo tre valori: 0, 1 e N.

Se la cardinalità minima (la X) è:

• 0, la partecipazione dell’entità E in R è opzionale (o parziale);

• 1, la partecipazione dell’entità E in R è obbligatoria (o totale).

Se la cardinalità massima (la Y) è:

1 le istanze dell’entità partecipano al più 1 volta alle istanze dell’associazione

N Le istanze dell’entità partecipano un numero N di volte alle istanze dell’associazione

Associazioni 1 a 1Uno a Uno (1, 1) o biunivoca, se le cardinalità massime di entrambe le entità

rispetto ad A sono 1;

Associazione 1 a NUno a Molti (1, N) o semplice, se la cardinalità massima di E1 rispetto ad A è 1

e la cardinalità massima di E2 rispetto ad A è N;

Associazione N:NMolti a Molti (N, N) o complessa, se le cardinalità massime di entrambe le

entità rispetto ad A sono N.

I vincoli d’integrità

una proprietà che deve essere soddisfatta dalle istanze che rappresentano informazioni corrette per l’applicazione che utilizza la base di dati.

Impliciti

Espliciti

ImplicitiI vincoli impliciti sono quelli imposti dalla semantica e struttura dei dati e si dividono in:

• vincoli di chiave primaria: impongono che le istanze di una categoria debbano essere tutte diverse tra loro;

• vincoli referenziali: date due entità A e B e un’associazione tra loro, questi vincoli impongono che non si possa inserire un elemento in A (o non esista un elemento in A) non associato a un elemento in B.

EsplicitiI vincoli espliciti sono quelli che impongono delle restrizioni sul modo in cui i dati

possono cambiare

Su attributi singoli

Su più attributi della stessa entità

Sintassi● V<NumProgressivo>: (<Espressione>)

● V1: (0 < srudente.Età < 120)

● <NomeEntità>.<NomeAttributo>

● oppure:

● <nomeAssociazione>.<NomeAttributo>

● V2: (Anno(Dipendente.DataAssunzione) – Anno(Dipendente.DataNascita) > 16)

Collezione di entità e gerarchieUna gerarchia ha una struttura ad albero: la radice rappresenta l’entità che contiene la caratteristiche comuni (entità padre), mentre i vari nodi (entità figlie) rappresentano le entità che contengono caratteristiche più specifiche.

Per creare una gerarchia si attua un processo di specializzazione, ossia si “specializza” l’entità padre creando entità figlie sempre più specifiche.

Percorrendo la gerarchia dal basso verso l’alto si attua automaticamente un processo di generalizzazione.

EsempioEsempio

L’entità PersonaleScuola può essere pensata come una generalizzazione delle entità Docente e NonDocente.

Le generalizzazioni possono essere classificate in base a due proprietà, copertura e disgiunzione, che sono ortogonali tra loro.

Primo esercizioRappresenta ì dati e le relazioni tra dati relativi a un sistema di noleggio di videocassette e DVD, con le seguenti specifiche:

per ogni film sono rilevanti un codice identificativo, il titolo, il regista (supposto come unico), l'anno di produzione,gli interpreti (zero o più) e il costo del noleggio;possono esistere film senza attori e film il cui regista sia anche attore;

vengono anche memorizzate informazioni riguardo ad attori e registi: data e luogo di nascita, cittadinanza attuale ed eventuali cittadinanze passate, con data di variazione;

per ogni film possono esistere più copie;

per ogni cassetta sono rilevanti la data di fabbricazione

e lo stato di conservazione;

per ogni DVD sono registrati i GB memorizzati;

per ogni noleggio sono rilevanti il cliente, la data di noleggio e la data di restituzione; non viene tenuta traccia dei noleggi conclusi;

per ogni cliente vengono memorizzati il nome, l'indirizzo e il telefono.

Modifica il diagramma dell'esercizio precedente affinché si tenga traccia anche dei noleggi conclusi e si consideri che ogni film può essere registrato su una o più videocassette.

Secondo EsercizioSi vuole automatizzare il sistema di gestione degli animali in uno zoo. Ogni esemplare di animale ospitato è identificato dal suo genere (es. zebra) e da un codice unico all'interno del genere di appartenenza. Per ogni esemplare si memorizzano la data di arrivo nello zoo, il nome proprio, il sesso, il paese di provenienza e la data di nascita. Lo zoo è diviso in aree; in ogni area c'è un insieme di case, ognuna destinata ad un determinato genere di animali. Ogni casa contiene un insieme di gabbie, ognuna contenente un solo esemplare.

Ogni casa ha un addetto che pulisce ciascuna gabbia in un determinato giorno della settimana. Gli animali sono sottoposti periodicamente a controllo veterinario; in un controllo, un veterinario rileva il peso degli esemplari, diagnostica un'eventuale malattia e prescrive il tipo di dieta da seguire.

Terzo EsercizioGas metano

Si vuole realizzare una base di dati per una società di erogazione del gas metano, tenendo conto delle seguenti informazioni:

• i contatori sono caratterizzati da un numero di matricola (univoco) e dal codice del modello

• ogni contatore appartiene a un lotto di fornitura, e ogni lotto è caratterizzato da un numero identificativo (univoco), dalla data e dal fornitore;

• i contatori sono installati presso le utenze, e per ogni utenza si conoscono il codice (univoco), la ragione sociale, l’indirizzo e la città

• le utenze sono suddivise in tipologie (abitazioni private, uffici, stabilimenti e negozi) e per ciascuna tipologia si applica una tariffa diversa

• in una certa utenza può essere installato al più un contatore, ma non è escluso che altri

contatori siano stati installati in momenti passati; in particolare, per ogni utenza si vuole

conoscere sia il contatore installato al presente, caratterizzato dalla data di installazione, sia l’elenco di eventuali contatori installati in passato, caratterizzati da una data di

installazione e una di dismissione

• ai fini della fatturazione si effettua una lettura periodica del contatore per ogni utente,

caratterizzata dal valore precedente, dal valore attuale e dalla data

• per ogni lettura si emette una bolletta caratterizzata da un numero univoco, la data di emissione, l’importo e la data di scadenza

Quarto esercizioSi vuole realizzare una base di dati per la gestione del programma di concerti di News Musica, tenendo conto delle seguenti informazioni:

• i concerti proposti nel programma sono identificati da un codice numerico e sono caratterizzati da titolo e descrizione

• ogni concerto è composto da un certo numero di pezzi musicali, ogni pezzo è caratterizzato da un titolo e uno o più autori; inoltre, per ogni concerto, si conosce l’ordine in cui sono rappresentati i pezzi che fanno parte del programma

• l’esecutore di ogni concerto è identificato da una matricola ed è caratterizzato da nome e stato di provenienza

• l’esecutore può essere un’orchestra oppure un solista

• nel caso delle orchestre si memorizzano il nome del direttore e il numero degli elementi che ne fanno parte, mentre nel caso del solista si considera lo strumento suonato; per le orchestre, inoltre, si memorizzano i componenti (un orchestrale può suonare

in una sola orchestra), identificati da una matricola univoca dell’orchestra di appartenenza e caratterizzati da nome, data di nascita e strumenti suonati

• i concerti sono tenuti in sale da concerto, identificate da un codice univoco e caratterizzate da nome, indirizzo, capienza massima, numero di posti a sedere ed eventualmente da uno o più numeri di telefono