PROGETTAZIONE ER e PROGETTAZIONE LOGICA: ESERCIZI

Transcript

PROGETTAZIONE ER e PROGETTAZIONE LOGICA: ESERCIZI
2
PROGETTAZIONE ER e PROGETTAZIONE LOGICA: ESERCIZI
Gli esercizi presentati sono stati tratti dai testi degli esami scritti dei seguenti insegnamenti:
PROGETTAZIONE ER e PROGETTAZIONE LOGICA: ESERCIZI
1
Esercizio ERSI20001114 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
1.1
SOLUZIONE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
Esercizio ERSI20010201 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
2.1
SOLUZIONE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
Esercizio ER20010613 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8
3.1
SOLUZIONE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8
Esercizio ER20010508 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10
4.1
SOLUZIONE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10
5
Esercizio 20000504 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13
SOLUZIONE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13
6
Esercizio ER20000613 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16
6.1
SOLUZIONE (parziale) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16
Esercizio ERSI20010109 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
18
7.1
SOLUZIONE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
18
Esercizio ER19990609 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20
8.1
SOLUZIONE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20
Esercizio ER19990702 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
22
9.1
SOLUZIONE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
23
10
Esercizio ER20000111 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
24
SOLUZIONE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
24
11
Esercizio ER20000222 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
26
11.1
SOLUZIONE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
27
12
Esercizio ER20000704 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
28
13
Esercizio ER20000724 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
28
14
Esercizio ER20000907 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
29
15
Esercizio ER20000928 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
29
16
Esercizio ER20001201 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
30
17
Esercizio ER20010117 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
30
18
Esercizio ER20010226 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
31
19
Esercizio ER19990421 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
31
20
Esercizio ER19990719 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
32
21
Esercizio ER19990902 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
32
22
Esercizio ER19991105 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
33
23
Esercizio ER19991126 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
33
24
Esercizio ER20000201 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
34
2
¯ SISTEMI INFORMATIVI - Corso di Laurea in Ingegneria Gestionale
¯ BASI DI DATI - Corso di Laurea in Ingegneria Informatica
entrambi tenuti dalla Prof.ssa Sonia Bergamaschi, in collaborazione con il Prof. Domenico Beneventano, negli
Anni Accademici 1999/2000 e 2000/2001.
3
4
5.1
7
8
9
10.1
SISTEMI INFORMATIVI
1
3
Esercizio ERSI20001114
Si devono rappresentare informazioni relative ad un innovativo ordinamento didattico. Gli insegnamenti previsti
dall’ordinamento didattico sono contraddistinti da un codice (univoco) un anno di corso ed una descrizione.
Ogni insegnamento prevede per ogni anno accademico come esame una serie di quiz che vengono selezionati da
una opportuna lista che ne elenca un minimo di 100 ad un massimo di 500. Un quiz è identificato da un numero
univoco ed è a risposta multipla, cioè è descritto dal testo della domanda e dal testo delle quattro potenziali
risposte, ciascuna numerata con un numero intero progressivo, tra le quali il candidato deve sceglierne quelle
che ritiene esatte (anche nessuna). Un quiz può essere inserito nell’esame di più insegnamenti. Lo studente,
descritto da nome, cognome, indirizzo, telefono è identificato dal codice fiscale. L’indirizzo si compone di via,
numero civico e comune e provincia di residenza. Inoltre gli studenti sono distinguibili tra di loro tramite la
matricola.
Gli esami relativi agli insegnamenti sono personalizzati per studenti, ovvero l’esame di un certo studente per
un certo insegnamento viene descritto elencando esattamente i 10 quiz al quale lo studente deve rispondere; la
risposta di uno lo studente ad un singolo quiz è rappresentata riportando i numeri delle risposte scelte.
Per ogni studente è previsto lo svolgimento di una tesi nellambito di un certo insegnamento di specialità; un
insegnamento di specialità è un insegnamento per il quale viene riportato anche un settore scientifico.
4
PROGETTAZIONE ER e PROGETTAZIONE LOGICA: ESERCIZI
Si introduce una associazione ESAME tra STUDENTE e INSEGNAMENTI, reificata in quanto all’ESAME
occorre associare i 10 QUIZ al quale lo studente deve rispondere, infatti “Gli esami relativi agli insegnamenti sono personalizzati per studenti, ovvero l’esame di un certo studente per un certo insegnamento
viene descritto elencando esattamente i 10 quiz al quale lo studente deve rispondere; la risposta di uno
lo studente ad un singolo quiz è rappresentata riportando i numeri delle risposte scelte.”
Per associare ad un ESAME i 10 QUIZ ci sono due possibilità:
1. una associazione binaria tra ESAME e RISPOSTE
(0,N)
(0,40)
ESAME
2. una associazione binaria tra ESAME e QUIZ con un attributo multiplo SCELTE.
Nello schema ER completo useremo questa seconda soluzione.
CODICE A_CORSO
DESCRIZIONE
INSEGNAMENTI
1. Progettare lo schema E/R.
(0,N)
A
LISTA
(1,1)
QUIZ PREVISTI
(0,N)
(100,500)
SCELTE (0,4)
2. Tradurre lo schema E/R in schema relazionale in terza forma normale.
DOMANDA
NUMERO
ANNO_ACCADEMICO
Viene richiesto di:
(0,N)
QUIZ
(0,N) (4,4)
C
B
RISPONDE
(1,1)
1.1
RISPOSTE
SCEGLIE
(1,1)
(10,10)
SOLUZIONE
NP
Esaminiamo i punti caratteristici:
(1,1)
SETTORE
(0,N)
¯ Ogni insegnamento prevede per ogni anno accademico come esame una serie di quiz che vengono selezionati da una opportuna lista che ne elenca un minimo di 100 ad un massimo di 500.
(0,N)
TESI
COMUNE
NOME
QUIZ
CONTIENE
indirizzo
TELEFONO
CODLISTA
LISTA
NUMERO
STUDENTE
(1,1)
VIA
MATRICOLA
CF
La lista può essere quindi rappresentata tramite una entità come segue:
(100,500)
RISPOSTA
D
Si introduce una entità QUIZ-PREVISTI identificata da INSEGNAMENTI e da ANNOACCADEMICO.
(0,N)
RISPOSTE
ESAME
DI SPECIALITA
COGNOME
(1,1)
(0,N)
USA
QUIZ-PREVISTI
Schema Relazionale:
Si noti che una stessa lista può essere usata più volte, quindi posso avere lo stesso elenco di quiz semplicemente riferendomi alla stessa istanza dell’entità lista.
Un’altra soluzione è quella di non introdurre una entità e considerare la lista come una associazione tra
QUIZ-PREVISTI e QUIZ. In questo modo lo schema risulta essere semplificato, però non essendo più
la lista una entità non posso far riferimento ad una sua istanza, cioè per usare una stessa lista
(stesso elenco di quiz) più volte devo ripetere tutto l’elenco dei quiz.
Nello schema ER completo useremo questa seconda soluzione.
¯ Un quiz è identificato da un numero univoco ed è a risposta multipla, cioè è descritto dal testo della domanda e dal testo delle quattro potenziali risposte, ciascuna numerata con un numero intero progressivo,
tra le quali il candidato deve sceglierne quelle che ritiene esatte (anche nessuna).
Si introduce l’entità RISPOSTE identificata da QUIZ (un quiz ha quattro potenziali risposte) e NP (numero progressivo) e con l’attributo RISPOSTA.
INSEGNAMENTI(CODICE,A CORSO,DESCRIZIONE)
INSEG SPECIALITA(CODICE, SETTORE)
FK: CODICE REFERENCES INSEGNAMENTI
QUIZ PREVISTI(CODICE, ANNO ACCADEMICO)
FK: CODICE REFERENCES INSEGNAMENTI
QUIZ(NUMERO, DOMANDA)
LISTA(NUMERO,CODICE, ANNO ACCADEMICO)
FK: CODICE, ANNO ACCADEMICO REFERENCES QUIZ PREVISTI
FK: NUMERO REFERENCES
QUIZ
PROVINCIA
SISTEMI INFORMATIVI
5
RISPOSTE(NUMERO, NP, RISPOSTA) FK: NUMERO REFERENCES QUIZ
STUDENTE(CF, MATRICOLA, NOME, COGNOME, TELEFONO,
CODICE INSEG TESI, VIA, NUMERO, COMUNE, PROVINCIA)
AK: MATRICOLA
FK: CODICE INSEG TESI REFERENCES INSEG SPECIALITA
ESAME(CF,CODICE)
FK: CF REFERENCES STUDENTE
FK: CODICE REFERENCES INSEGNAMENTI
RISPONDE(CF, CODICE, NUMERO)
FK: CF, CODICE REFERENCES ESAME
FK: NUMERO REFERENCES QUIZ
SCELTE(CF, CODICE, NUMERO, N SCELTA)
6
PROGETTAZIONE ER e PROGETTAZIONE LOGICA: ESERCIZI
2
Esercizio ERSI20010201
La segreteria della facoltà vuole memorizzare informazioni sui Consigli di Facoltà secondo le seguenti specifiche.
Un Consiglio di Facoltà (CdF) è descritto dalla data (univoca) dall’ora e dalla sede. Ad un CdF vengono
convocati come componenti i docenti della Facoltà, i rappresentanti dei ricercatori e degli studenti. Ognuno
di questi componenti, descritto dagli usuali dati anagrafici, può quindi partecipare al CdF, o giustificare la
sua assenza tramite una giustificazione in cui riporta il motivo dell’assenza e la data di giustificazione, oppure
risultare assente ingiustificato. Per ogni CdF viene nominato un segretario, scelto tra i professori ordinari.
Per un CdF viene riportato l’Ordine del Giorno (OdG) costituito da una serie di punti, per ciascuno dei quali
viene riportata una descrizione. Un certo punto dell’OdG può far riferimento ad uno o più allegati; un allegato
è descritto da un numero univoco e da un testo e può essere riferito da uno o più punti dell’OdG.
Per ogni punto dell’OdG si possono indicare uno o più relatori tra i componenti presenti al CdF: durante un
certo CdF un componente non può relazionare più di cinque punti dell’OdG.
Viene richiesto di:
FK: CF, CODICE, NUMERO REFERENCES RISPONDE
1. Progettare lo schema E/R.
NOTA: Nella relazione SCELTE possiamo aggiungere, rispetto allo schema ER, la seguente FK per controllare
l’esistenza del numero progressivo della risposta fornita.
2. Tradurre lo schema E/R in schema relazionale in terza forma normale.
FK: NUMERO, N SCELTA REFERENCES RISPOSTE
ottenendo complessivamente
2.1
SOLUZIONE
SCELTE(CF, CODICE, NUMERO, N SCELTA)
FK: CF, CODICE, NUMERO REFERENCES RISPONDE
Esaminiamo i punti caratteristici:
FK: NUMERO, N SCELTA REFERENCES RISPOSTE
¯ . . . Ad un CdF vengono convocati come componenti i docenti della Facoltà, i rappresentanti dei ricercatori e degli studenti. Ognuno di questi componenti, descritto dagli usuali dati anagrafici, può quindi
partecipare al CdF, o giustificare la sua assenza tramite una giustificazione in cui riporta il motivo
dell’assenza e la data di giustificazione, oppure risultare assente ingiustificato.
Si introduce PERSONA per rappresentare i componenti di un CdF. Il modo più semplice per rappresentare
la convocazione è quello di introdurre l’associazione CONVOCAZIONE molti-a-molti tra PERSONA e
CdF: tale associazione avrà l’attributo PRESENZA, per indicare la presenza o l’assenza, e gli attributi
opzionali DATAGIUSTIFICAZIONE e MOTIVOASSENZA.
¯ Per ogni punto dell’OdG si possono indicare uno o più relatori tra i componenti presenti al CdF: durante
un certo CdF un componente non può relazionare più di cinque punti dell’OdG.
Il modo più semplice per rappresentare la relazione è quello di introdurre una associazione binaria
RELAZIONA molti-a-molti tra PERSONA e l’entità PUNTI (che rappresenta i punti dell’OdG).
In questo modo non si esprime però che “durante un certo CdF un componente non può relazionare più
di cinque punti dell’OdG”
(si noti che è sbagliato mettere in tale associazione card-max(PERSONA,RELAZIONA)=5).
Per esprimere tale aspetto occorre introdurre una entità, diciamo E1, identificata da PERSONA e CDF ed
esprimere l’associazione RELAZIONA molti-a-molti tra E1 e PUNTI con card-max(E1,RELAZIONA)=5).
Ma tale entità E1 è simile all’associazione CONVOCAZIONE: si giunge quindi alla soluzione presentata
nello schema ER completo.
SISTEMI INFORMATIVI
CODICE
TESTO
7
3
ALLEGATO
(0,N)
(0,N)
DATAGIUSTIFICAZIONE
PRESENTI
GIUSTIFICATI
MOTIVOASSENZA
(1,1)
OdG
DESC
(1,N)
DATA
ORA
SEDE
CDF
(p,e)
(1,N)
(1,1)
(1,1)
CONVOCAZIONE
A
(0,N)
PERSONA
DI
CF
NOME
(t,e)
DOCENTE
(1,1)
RAPP_RIC
RAPP_STUD
SEGRETARIO
(0,N)
ORDINARIO
Schema Relazionale:
PERSONA(CF,NOME)
RAPP RIC(CF)
Esercizio ER20010613
Si vuole rappresentare l’attività di una Amministrazione Comunale in merito alla memorizzazione dei documenti cartacei che pervengono alla stessa e in merito alla attività di redazione di delibere.
(0,5)
PUNTI
DOCENTE(CF)
PROGETTAZIONE ER e PROGETTAZIONE LOGICA: ESERCIZI
RELAZIONA
(1,N)
RIFERITO
NUM
8
FK: CF REFERENCES PERSONA
FK: CF REFERENCES PERSONA
RAPP STUD(CF)
FK: CF REFERENCES PERSONA
ORDINARIO(CF)
FK: CF REFERENCES DOCENTE
CDF(DATA,ORA,SEDE,CFSEGRET)
FK: CFSEGRET REFERENCES ORDINARIO
L’Amministrazione Comunale divide le proprie attività in settori. Ogni dipendente, per il quale occorre memorizzare gli usuali dati anagrafici, nonché il livello retributivo (caratterizzato da una sigla), presta la propria opera
in un determinato settore. I documenti cartacei hanno un numero di protocollo che li identifica in maniera univoca all’interno dell’anno e all’interno del settore al quale il documento viene indirizzato. I documenti sono
anche caratterizzati da un tipo e da una descrizione. Ogni documento pervenuto alla Amministrazione viene
assegnato a un dipendente, che dovrà redigere la eventuale risposta tramite un altro documento cartaceo. Per
ogni documento pervenuto occorre potere individuare il numero di protocollo dell’eventuale risposta data dalla
Amministrazione.
L’Amministrazione comunale assume le proprie decisioni attraverso le delibere. Le delibere hanno un numero
che é univoco solamente all’interno dell’anno corrente e del settore interessato dalla delibera. Le delibere
sono caratterizzate da un oggetto, una premessa e un deliberato. La delibera é proposta da un Assessore di
competenza ed é stata scritta da un dipendente. L’Assessore é caratterizzato attraverso gli usuali dati anagrafici.
Per ogni assessore occorre memorizzare la sua particolare delega (cultura, turismo, politiche giovanili, politiche
sociali, ...). Ogni delega é affidata a un solo assessore.
La delibera viene approvata in una seduta di giunta comunale. La giunta comunale ha una data e un’ora di
convocazione. Perché la giunta sia valida e quindi regolarmente memorizzata nel sistema informativo, occorre
che almeno 5 assessori siano presenti. In ogni seduta viene assegnato un numero progressivo univoco a ciascuno
degli assessori presenti.
Viene richiesto di:
1. Progettare lo schema E/R.
2. Tradurre lo schema E/R in schema relazionale in terza forma normale.
3. (facoltativo) Aggiungere in relazionale il seguente vincolo:
CONVOCAZIONE(DATA,CF)
(a) Il settore e l’anno del documento in risposta sono gli stessi del corrispondente documento pervenuto
alla Amministrazione.
FK: DATA REFERENCES CDF
FK: CF REFERENCES PERSONA
PRESENTI(DATA,CF)
FK: DATA,CF REFERENCES CONVOCAZIONE
3.1
SOLUZIONE
Esaminiamo i punti caratteristici:
GIUSTIFICATI(DATA,CF,DATAGIUSTIFICAZIONE,MOTIVOASSENZA)
FK: DATA,CF REFERENCES CONVOCAZIONE
PUNTI(DATA,NUM,DESC)
FK: DATA REFERENCES CDF
ALLEGATO(CODICE,TESTO)
RIFERITO(DATACDF,NUM,CODICE)
FK: DATACDF,NUM REFERENCES PUNTI
FK: CODICE REFERENCES ALLEGATO
RELAZIONA(DATACDF,NUM,DATACONV,CF)
FK: DATACDF,NUM REFERENCES PUNTI
FK: DATACONV,CF REFERENCES CONVOCAZIONE
¯ Ogni documento pervenuto alla Amministrazione viene assegnato a un dipendente, che dovrà redigere la
eventuale risposta tramite un altro documento cartaceo. Per ogni documento pervenuto occorre potere
individuare il numero di protocollo dell’eventuale risposta data dalla Amministrazione.
Si introduce una generalizzazione (totale ed esclusiva) di DOCUMENTO in ENTRATA (documenti pervenuti) ed USCITA (risposte): solo quelli in ENTRATA vengono assegnati in maniera univoca ad un
DIPENDENTE; inoltre una associazione uno-a-uno collega un documento in ENTRATA con la sua eventuale risposta in USCITA. Si noti che non è necessario rappresentare esplicitamente una associazione
REDIGE tra USCITA e DIPENDENTE: il dipendente che redige la risposta è quello al quale è stato
assegnato il documento in ENTRATA.
¯ Ogni delega é affidata a un solo assessore.
L’attributo DELEGA deve essere identificatore per ASSESSORE.
¯ In ogni seduta viene assegnato un numero progressivo univoco a ciascuno degli assessori presenti.
L’associazione PRESENZE tra ASSESSORE e GIUNTA è reificata, in modo da esprimere due identificatori:
SISTEMI INFORMATIVI
9
10
PROGETTAZIONE ER e PROGETTAZIONE LOGICA: ESERCIZI
1. GIUNTA,N: In ogni seduta viene assegnato un numero N progressivo univoco a ciascuno degli
assessori presenti
4
Esercizio ER20010508
2. GIUNTA,ASSESSORE: l’assessore partecipa solo una volta ad una certa giunta.
Si devono rappresentare informazioni relative alla gestione commerciale di una PAY-TV.
I programmi che costituiscono l’offerta della PAY-TV sono identificati da un codice univoco e descritti da un
prezzo e da un commento. Si noti che essendo interessati solo alla gestione commerciale della PAY-TV, del
programma non interessa rappresentare la sua programmazione rispetto al tempo.
L’accesso all’offerta della PAY-TV avviene tramite la sottoscrizione di un abbonamento; un abbonamento è
descritto da un codice univoco, dalla data di sottoscrizione e dai dati anagrafici dell’abbonato. Con un abbonamento si può acquistare un generico numero di programmi con la sola limitazione di non poter acquistare due
o più volte lo stesso programma nella stessa data. Ciascuno di questi acquisti viene conteggiato in una bolletta periodicamente; una bolletta è identificata da un numero progressivo univoco per abbonamento e riporta
l’elenco degli acquisti conteggiati, il totale da pagare e la data di scadenza.
Gli abbonamenti promozionali consentono di selezionare fino a 30 programmi gratis, con le seguenti modalità.
Un abbonamento in una certa data può selezionare gratis un solo programma e un certo programma può essere
selezionato come gratis da un abbonamento al più una volta.
Tra gli abbonamenti si distinguono quelli che prevedono anche il noleggio di un decoder: un decoder, descritto
da un codice e da un tipo, è dato in noleggio ad un solo abbonamento e viceversa un abbonamento può noleggiare un solo decoder. In caso di malfunzionamento di un decoder, vengono segnalati i vari guasti ed esso viene
sostituito con un altro decoder, indicando la data di sostituzione.
Traduzione in relazionale : Vengono riportati solo i punti particolari.
PRESENZE(N,DATA,ORA,CFASSESSORE)
Viene richiesto di:
1. Progettare lo schema E/R.
2. Tradurre lo schema E/R in schema relazionale in terza forma normale.
AK : DATA,ORA,CFASSESSORE
FK : DATA,ORA REFERENCES GIUNTA
FK : CFASSESSORE REFERENCES ASSESSORE
3. (facoltativo) Si consideri il seguente vincolo sulla bolletta: in una bolletta di un certo abbonamento
devono essere riportati solo acquisti effettuati con quell’abbonamento; si discuta della presenza di tale
vincolo nello schema relazionale ottenuto al punto precedente ed eventualmente lo si aggiunga.
DOCUMENTO(COD,NUM,ANNO)
4.1
SOLUZIONE
FK : COD REFERENCES SETTORE
ENTRATA(COD,NUM,ANNO,CFDIPENDENTE)
FK : COD,NUM,ANNO REFERENCES DOCUMENTO
FK : CFDIPENDENTE REFERENCES DIPENDENTE
USCITA(COD,NUM,ANNO,COD E,NUM E,ANNO E)
AK : COD E,NUM E,ANNO E
FK : COD,NUM,ANNO REFERENCES DOCUMENTO
FK : COD E,NUM E,ANNO E REFERENCES ENTRATA
Per aggiungere in relazionale il vincolo “Il settore e l’anno del documento in risposta sono gli stessi del corrispondente documento pervenuto alla Amministrazione“ si deve fare in modo che in USCITA COD=COD E e
ANNO=ANNO E, quindi si riportano una sola volta:
USCITA(COD,NUM,ANNO,NUM E)
AK : COD,NUM E,ANNO
FK : COD,NUM,ANNO REFERENCES DOCUMENTO
FK : COD,NUM E,ANNO REFERENCES ENTRATA
Esaminiamo i punti caratteristici:
¯ Con un abbonamento si può acquistare un generico numero di programmi con la sola limitazione di non
poter acquistare due o più volte lo stesso programma nella stessa data.
Tra ABBONAMENTO e PROGRAMMA si introduce una associazione molti-a-molti ACQUISTO che viene
quindi reificata per poter esprimere come identificatore la terna ABBONAMENTO,PROGRAMMA,DATA.
¯ Ciascuno di questi acquisti viene conteggiato in una bolletta periodicamente.
Semplice associazione uno-a-molti CONTEGGIA tra ACQUISTO e BOLLETTA.
¯ Gli abbonamenti promozionali consentono di selezionare fino a 30 programmi gratis, con le seguenti
modalità. Un abbonamento in una certa data può selezionare gratis un solo programma e un certo
programma può essere selezionato come gratis da un abbonamento al più una volta.
L’associazione SELEZIONA tra PROMOZIONALE e PROGRAMMA è reificata, in modo da esprimere due
identificatori:
1. DATA,PROMOZIONALE: Un abbonamento in una certa data può selezionare gratis un solo programma
2. PROGRAMMA,PROMOZIONALE: un certo programma può essere selezionato come gratis da un
abbonamento al più una volta.
SISTEMI INFORMATIVI
11
PROGETTAZIONE ER e PROGETTAZIONE LOGICA: ESERCIZI
SELEZIONAGRATIS(CA,DATA,CP, NPBOLLETTA,CABOLLETTA)
DATA
CA
12
AK : CA,CP
CP PREZZO COMM
DATA DATIABB
ABBONAMENTO
(1,1)
(1,1)
A
FK : CA REFERENCES ABBONAMENTOPROMOZ
PROGRAMMA
ACQUISTO
(0,N)
(0,N)
B
(1,1)
FK : CP REFERENCES PROGRAMMA
(0,N)
CONTEGGIA
NP
(0,N)
Nota:
DATASC
¯ Per il subset su DECODER si poteva anche fare una traduzione con collasso verso l’alto: un decoder
guasto sara’ un decoder il cui campo CDSOSTITUTO e’ non nullo:
BOLLETTA
(0,N)
(1,1)
E
GUASTI (1,N)
PROMOZ.
(1,1)
(0,30)
DECODER(CD,TIPO,CDSOSTITUTO,DATA)
SELEZIONA
(1,1)
D
(1,1)
C
DGUASTO
DATA
AK : CDSOSTITUTO
DATA
FK : CDSOSTITUTO REFERENCES DECODER
SOSTIT
GUASTI(CD,GUASTO)
CON_DECODER.
DECODER.
(1,1)
(0,1)
F
FK : CD REFERENCES DECODER
(0,1)
CODICE
TIPO
Punto 3:
NB: Il cerchietto nero dell’attributo DATA in SOSTIT è un errore grafico. La cardinalità di GUASTI è (1,N).
Schema Relazionale:
DECODER(CD,TIPO)
DECODERGUASTO(CD,CDSOSTITUTO,DATA)
AK : CDSOSTITUTO
FK : CD REFERENCES DECODER
FK : CDSOSTITUTO REFERENCES DECODER
GUASTI(CD,GUASTO)
FK : CD REFERENCES DECODERGUASTO
ABBONAMENTO(CA, DATA,DATIANAGABBONATO)
ABBONAMENTOPROMOZ(CA)
FK : CA REFERENCES ABBONAMENTO
ABBONAMENTOCONDECODER(CA,CD)
AK : CD
FK : CA REFERENCES ABBONAMENTO
FK : CD REFERENCES DECODER
BOLLETTA(CA,NP,DATASCADENZA)
FK : CA REFERENCES ABBONAMENTO
PROGRAMMA(CP, PREZZO,COMM)
ACQUISTO(CA,DATA,CP, NPBOLLETTA,CABOLLETTA)
FK : CA REFERENCES ABBONAMENTO
FK : CP REFERENCES PROGRAMMA
FK : NPBOLLETTA,CABOLLETTA REFERENCES BOLLETTA
¯ Consideriamo il vincolo “in una bolletta di un certo abbonamento devono essere riportati solo acquisti
effettuati con quell’abbonamento”; tale vincolo non e’ presente nello schema relazionale che traduce
fedelmente quanto espresso nello schema E/R e quindi riporta l’associazione uno-a-molti CONTEGGIA
nella relazione ACQUISTO tramite la foreign key NPBOLLETTA,CABOLLETTA.
Per esprimere il vincolo occorre che nella relazione
ACQUISTO(CA,DATA,CP, NPBOLLETTA,CABOLLETTA)
i due attributi CABOLLETTA e CA siano uguali, quindi ne viene riportato solo uno:
ACQUISTO(CA,DATA,CP, NPBOLLETTA)
FK : CA REFERENCES ABBONAMENTO
FK : CP REFERENCES PROGRAMMA
FK : NPBOLLETTA,CA REFERENCES BOLLETTA
SISTEMI INFORMATIVI
5
13
14
PROGETTAZIONE ER e PROGETTAZIONE LOGICA: ESERCIZI
Esercizio 20000504
NOME
INDIRIZZO
PARTITA IVA
AZIENDA
Si devono rappresentare informazioni relative ad una società ristoratrice che fornisce pasti a molte aziende
locali.
L’offerta proposta dalla società è organizzata settimanalmente nel seguente modo. Per ogni settimana ci sono
esattamente 5 menu fissi giornalieri (uno per ogni giorno della settimana, dal lunedı̀ al venerdı̀), ciascuno
composto da un minimo di 5 ad un massimo di 8 prodotti. Un menu fisso giornaliero ha un costo che dipende
dalla settimana ma non dal giorno. Il costo del menu viene scontato del 10 per cento se include almeno un
prodotto surgelato. Allo scopo di diversificare l’offerta, in una certa settimana un certo prodotto non può
comparire più di una volta nella composizione dei menu fissi giornalieri.
Per ogni settimana viene riportato anche un menu libero, indicando i prodotti disponibili (minimo 20 per settimana) ed il relativo prezzo.
(1,N)
PREZZO PASTO FISSO SCONTATO (0,1)
INTESTATO
SETTIMANA
GIORNO
PREZZO PASTO FISSO
GIORNO
(1,1)
RICHIESTA
GIORNALIERA
NUM PASTI FISSI
SETTIMANA
CON
(1,1)
(1,N)
(0,N)
(1,1)
MENU FISSO
(20,N)
(5,8)
MENU
LIBERO
(0,N)
HA
(1,1)
NUMERO
A
(5,5)
PASTO LIBERO
(5,20)
COMPONE
Sulla base di questa offerta, ogni azienda formula settimanalmente le sue richieste alla società, specificando,
per ogni giorno della settimana, il numero di pasti relativi al menu fisso giornaliero ed un certo numero di pasti
liberi, composti ciascuno da un minimo di 5 ad un massimo di 20 prodotti.
PREZZO
SETTIMANA
(1,1)
PRODOTTO
(0,N)
HA
B
(0,N)
(1,1)
FISSO
CODICE
NOME
GENERE
SURGELATO
I prodotti sono rappresentati da un codice identificativo, da un nome e da un genere; per quelli surgelati si
riporta anche la modalità di conservazione. Per le aziende si riporta la loro PartitaIva, il nome e l’indirizzo.
MOD CONSERVAZIONE
Viene richiesto di:
1. Progettare lo schema E/R.
2. Tradurre lo schema E/R in schema relazionale in terza forma normale.
¯ Il MenuLibero può essere riportato anche tramite un’entità (vedi Schema a).
SETTIMANA
SETTIMANA
(1,1)
3. (facoltativo) Discutere l’aggiunta, nello schema E/R del punto 1) e/o nello schema relazionale del punto
2), del seguente vincolo “un pasto libero, richiesto in un certo giorno di una certa settimana, comprende
solo prodotti contenuti nel menu libero di quella settimana”.
(20,N)
A
A
(1,1)
(1,1)
MENU
LIBERO
5.1
SOLUZIONE
(20,N)
(0,N)
PRODOTTO
¯ Per ogni settimana ci sono esattamente 5 menu fissi giornalieri (uno per ogni giorno della settimana, dal
lunedı̀ al venerdı̀), ciascuno composto da un minimo di 5 ad un massimo di 8 prodotti. Un menu fisso
giornaliero ha un costo che dipende dalla settimana ma non dal giorno. Il costo del menu viene scontato
del 10 per cento se include almeno un prodotto surgelato. Allo scopo di diversificare l’offerta, in una
certa settimana un certo prodotto non può comparire più di una volta nella composizione dei menu fissi
giornalieri.
Si introduce l’entità SETTIMANA per rappresentare che “Un menu fisso giornaliero ha un costo che
dipende dalla settimana ma non dal giorno. Il costo del menu viene scontato del 10 per cento se include
almeno un prodotto surgelato.”. Il menu fisso (giornaliero) verrà quindi rappresentato da una associazione
molti-a-molti tra SETTIMANA e PRODOTTO.
Come prima soluzione, consideriamo una semplice associazione MENUFISSO molti-a-molti tra SETTIMANA
e PRODOTTO, con l’attributo GIORNO e card(SETTIMANA,MENUFISSO)=(25,40) (si noti che
25=5*5 e 40=5*8) e card(PRODOTTO,MENUFISSO)=(0,N). In questo modo, essendo una associazione binaria, si esprime che “in una certa settimana un certo prodotto non può comparire più di una
volta nella composizione dei menu fissi giornalieri” non si esprime che “per ogni settimana ci sono esattamente 5 menu fissi giornalieri, ciascuno composto da un minimo di 5 ad un massimo di 8 prodotti“; per
esprimere questo aspetto occorre reificare MENUFISSO come riportato nello schema ER completo.
PREZZO
COMPONE
(0,N)
(1,1)
PASTO LIBERO
(5,20)
PREZZO
IN
Esaminiamo i punti caratteristici:
MENU
SETTIMANA
LIBERO
Schema a
IN
(0,N)
PRODOTTO
Schema b
Nel seguito consideriamo MenuLibero come un’associazione: tale associazione fornisce la composizione del MenuLibero di una certa Settimana, in quanto riporta tutti i prodotti, con i relativi
prezzi, disponibili. L’associazione MenuLibero può essere reificata in modo da legarla alla composizione di un PastoLibero (vedi Schema b). Si noti comunque che questo schema non esprime il
vincolo (punto 3) che “un pasto libero, richiesto in un certo giorno di una certa settimana, comprende
solo prodotti contenuti nel menu libero di quella settimana”. Infatti la Settimana della richiesta del
PastoLibero non necessariamente coincide con la Settimana del MenuLibero. Tale vincolo
verrà espresso nello schema relazionale
SISTEMI INFORMATIVI
15
Schema Relazionale:
16
6
PROGETTAZIONE ER e PROGETTAZIONE LOGICA: ESERCIZI
Esercizio ER20000613
AZIENDA(PARTITAIVA, NOME,INDIRIZZO)
Si devono rappresentare informazioni relative ai Gran Premi di un singolo campionato di Formula 1.
PRODOTTO(CODICE, NOME,GENERE,MODCONSERVAZIONE)
SETTIMANA(SETTIMANA, PREZZOPASTOFISSO,PREZZOPASTOFISSOSCONTATO)
MENULIBERO(SETTIMANA,CODICE,PREZZO)
FK : SETTIMANA REFERENCES SETTIMANA
FK : CODICE REFERENCES PRODOTTO
MENUFISSO(SETTIMANA,GIORNO)
FK : SETTIMANA REFERENCES SETTIMANA
PRODOTTO-FISSO(SETTIMANA,CODICE,GIORNO)
FK : SETTIMANA,GIORNO REFERENCES MENUFISSO
RICHIESTAGIORNALIERA(SETTIMANA,GIORNO,PARTITAIVA,NUMPASTIFISSI)
FK : SETTIMANA REFERENCES SETTIMANA
FK : PARTITAIVA REFERENCES AZIENDA
PASTOLIBERO(SETTIMANA,GIORNO,PARTITAIVA,NUMERO)
FK : SETTIMANA,GIORNO,PARTITAIVA REFERENCES RICHIESTAGIORNALIERA
CONTIENE(SETTIMANA,GIORNO,PARTITAIVA,NUMERO,CODICE)
FK : SETTIMANA,GIORNO,PARTITAIVA,NUMERO REFERENCES PASTOLIBERO
La partecipazione di un pilota ad un Gran Premio viene rappresentata riportando la griglia di partenza: durante
un Gran Premio un pilota occupa una precisa posizione nella griglia di partenza e, viceversa, ogni posizione è
occupata da un singolo pilota. Per ogni partecipazione di un pilota ad un Gran Premio si riporta la sua posizione
nella classifica finale di arrivo; in caso di ritiro del pilota dal Gran Premio si deve riportare il giro in cui avviene
il ritiro e la causa. Per ogni partecipazione di un pilota ad un Gran Premio si riporta infine la (unica) vettura
utilizzata dal pilota; naturalmente, durante un Gran Premio, una vettura è utilizzata da un solo pilota.
Un Gran Premio è rappresentato da un nome univoco, una lunghezza un luogo, una data ed una durata. Una
vettura è rappresentata da un codice univoco e da una scuderia. Un pilota è rappresentato dagli usuali dati
anagrafici.
Per ogni Gran Premio si deve indicare il tempo minimo di percorrenza del giro (giro più veloce), riportando i
piloti che realizzano tale tempo minimo ed i relativi giri in cui è stato realizzato. Si noti che, anche se accade
raramente, il giro più veloce durante un Gran Premio può essere realizzato da più di un pilota ed inoltre, lo
stesso pilota, lo può realizzare in uno o più giri. Ad esempio, durante il Gran Premio di “Luogo”, il giro più
veloce è stato realizzato sia da “Pilota1” (durante il quinto ed il sesto giro) che da “Pilota2” (durante il sesto
giro).
Durante la partecipazione di un pilota ad un Gran Premio si devono riportare le eventuali fermate ai box (Pit
Stop), indicando per ciascuna di esse il giro in cui è avvenuta ed il tempo di fermata; naturalmente durante un
Gran Premio, un pilota non può effettuare due Pit Stop nello stesso giro.
Viene richiesto di:
1. Progettare lo schema E/R.
2. Tradurre lo schema E/R in schema relazionale in terza forma normale.
FK : CODICE REFERENCES PRODOTTO
Si noti che nello schema di PRODOTTO-FISSO(SETTIMANA,CODICE,GIORNO) è stata tradotta l’associazione
HA con MENUFISSO, ma l’attributo SETTIMANA non è stato ripetuto.
Il vincolo del punto 3) può essere imposto nello schema della relazione CONTIENE modificando la sua
seconda FK :
FK : SETTIMANA,CODICE REFERENCES MENULIBERO
6.1
SOLUZIONE (parziale)
Esaminiamo i punti caratteristici:
¯ Si introducono le entità GRANPREMIO, PILOTA e VETTURA. La griglia di partenza è quindi rappresentata tramite una associazione ternaria GRIGLIADIPARTENZA, che viene poi reificata per esprimere i
vincoli desiderati: l’entità GRIGLIADIPARTENZA, che ha l’attributo POSIZIONE e i seguenti identificatori
1. GRANPREMIO,PILOTA: il pilota partecipa al massimo una volta in un gran premio e ha quindi
un’unica POSIZIONE, pertanto “durante un Gran Premio un pilota occupa una precisa posizione
nella griglia di partenza”;
2. GRANPREMIO,VETTURA: durante un Gran Premio, una vettura è utilizzata una sola volta e ha
quindi un unico PILOTA associato, pertanto “durante un Gran Premio, una vettura è utilizzata da
un solo pilota”;
3. GRANPREMIO,POSIZIONE: ogni elemento della GRIGLIADIPARTENZA è identificato da
GRANPREMIO,POSIZIONE e ad esso è associato un singolo PILOTA, pertanto “durante un Gran
Premio ogni posizione è occupata da un singolo pilota”.
L’entità GRIGLIADIPARTENZA, ha anche l’attributo POSIZIONEFINALE: la coppia
GRANPREMIO,POSIZIONEFINALE non è considerata un identificatore per ammettere le situazioni di
arrivo ex-equo.
¯ Per ogni Gran Premio si deve indicare il tempo minimo di percorrenza del giro (giro più veloce), riportando i piloti che realizzano tale tempo minimo ed i relativi giri in cui è stato realizzato. . . .
SISTEMI INFORMATIVI
17
Il TEMPOMINIMO è una proprietà di GRANPREMIO, mentre i piloti che lo realizzano sono indicati
tramite una associazione molti-a-molti tra GRANPREMIO e PILOTA: tale associazione ha un attributo
multiplo per indicare il giro o i giri in cui il pilota realizza il tempo minimo:
GRANPREMIO
(1,N)
TEMPOMINIMO
(0,N)
GIR0VELOCE
PILOTA
GIRI (1,N)
¯ Durante la partecipazione di un pilota ad un Gran Premio si devono riportare le eventuali fermate ai box
(Pit Stop), indicando per ciascuna di esse il giro in cui è avvenuta ed il tempo di fermata; naturalmente
durante un Gran Premio, un pilota non può effettuare due Pit Stop nello stesso giro.
Un primo tentativo è quello di usare una associazione molti-a-molti PITSTOP tra GRANPREMIO e
PILOTA, con un attributo multiplo (infatti si può fermare più volte) composto che riporta il giro ed
il tempo di fermata. In questo modo non si esprime però che “durante un Gran Premio, un pilota non
può effettuare due Pit Stop nello stesso giro”. Allora si reifica tale associazione PITSTOP e si considera
come suo identifictore la terna GRANPREMIO,PILOTA,GIRODIFERMATA; tale entità ha l’attributo
TEMPODIFERMATA.
18
PROGETTAZIONE ER e PROGETTAZIONE LOGICA: ESERCIZI
7
Esercizio ERSI20010109
Si vogliono rappresentare informazioni relative alla produzione e alle vendite di una ditta produttrice di vini.
Ogni tipo di vino è identificato dal nome del vino, dal nome del produttore e dall’annata e ne viene indicata la
gradazione alcolica. L’azienda mantiene un catalogo che riporta le varie confezioni di vini: le confezioni sono
vendute a lotti interi oppure in scatole di legno ed hanno un codice di identificazione. Ogni lotto è caratterizzato
dal numero di lotto e dal numero di bottiglie, nonchè dalla tipologia di vino contenuta. Le scatole di legno sono
di vario tipo, ciascun tipo ha un peso e richiede un dato numero di fogli di carta da pacchi per completare
l’imballo. Le scatole di legno contengono esattamente 4 bottiglie di tipo di vino diverso tra loro e possono
contenere ulteriori prodotti alimentari (ad esempio, confezioni di miele o di funghi sott’olio) che sono già
presenti nella scatola al momento della confezione. Gli ordini vengono effettuati dai clienti, che operano le
loro scelte in base al catalogo. Ciascun ordine ha un numero progressivo e riporta i dati anagrafici dei clienti
e l’ammontare totale dell’ordine, ottenuto sommando l’ammontare del costo delle varie confezioni ordinate (la
ditta non pratica sconti o trattamenti di favore). Uno stesso cliente non può effettuare più di tre ordini nella stessa
data. Per la gestione del magazzino si memorizzano i dati di ciascun imballo presente: ogni imballo contiene
una confezione del catalogo ed è identificato da un progressivo per ciascun tipo di confezione. Per evadere
l’ordine i magazzinieri associano ad ogni ordine gli specifici imballi necessari indicando che l’ordinativo è
pronto per la spedizione.
Viene richiesto di:
1. Progettare lo schema E/R.
2. Tradurre lo schema E/R in schema relazionale in terza forma normale.
7.1
SOLUZIONE
NOME
DESCRIZIONE
PRODOTTI
ALIMENTARI
(0,N)
(1,1)
(0,N)
LOTTO
N_BOTT
(1,N)
(1,N)
PRONTO
DI_TIPO
TIPO
SCATOLA
(0,1)
FORMATO
NUM
SCATOLA
LEGNO
IMBALLO
DETTAGLIO
(0,N)
(t,e)
HA
DI
(0,N)
CONFEZIONE
ORDINE
EVASO
(0,N)
(1,1)
(4,4)
(1,1)
(p,e)
NUM
NOME
PESO
N_FOGLI
ORDINE
CONTIENE1
CONTIENE2
(0,N)
(1,1)
(0,N)
ESEGUITO
NOME
PRODUTTORE
ANNATA
TIPO
VINO
CF
NOME
COGNOME
GRADAZIONE
COSTO_
TOT
(1,3)
DATA
ORD. CLIENTI
GIORNALIERO
(1,1)
CLIENTE
(0,N)
DETTAGLIO
QTY
Correzioni allo schema ER:
L’entità CONFEZIONE ha come identificatore un CODICE e come attributo COSTO, mentre l’identificatore di
IMBALLO è costituito da CONFEZIONE + NUMEROPROGRESSIVO.
Nell’associazione DETTAGLIO che riguarda CLIENTE, non ci vuole l’attributo QTY.
SISTEMI INFORMATIVI
19
20
8
Schema Relazionale:
PROGETTAZIONE ER e PROGETTAZIONE LOGICA: ESERCIZI
Esercizio ER19990609
TIPO VINO(NOME, PRODUTTORE, ANNATA, GRADAZIONE)
Si vogliono gestire le informazioni relative ad un campionato organizzato dalla Lega Biliardo Boccette a cui
partecipano diverse squadre della zona.
TIPO SCATOLA(NOME, PESO, N FOGLI)
PRODOTTI ALIMENTARI(NOME, DESCRIZIONE)
Ogni squadra, descritta da un nome univoco, dalla società di appartenenza e dall’indirizzo, deve avere almeno
un capitano ed almeno 10 giocatori. Un giocatore, rappresentato dagli usuali dati anagrafici, deve appartenere
ad una ed una sola squadra.
CONFEZIONE(CODICE, COSTO)
SCATOLA LEGNO(CODICE, NOME TIPO)
FK: CODICE REFERENCES
CONFEZIONE
FK: NOME TIPO REFERENCES
TIPO SCATOLA
LOTTO(CODICE, NUM, NOME, PRODUTTORE, ANNATA)
FK: CODICE REFERENCES
CONFEZIONE
FK: NOME, PRODUTTORE, ANNATA REFERENCES
TIPO VINO
AK: NUM
HA(CODICE, NOME)
Viene richiesto di:
1. Progettare lo schema E/R.
2. Tradurre lo schema E/R in schema relazionale in terza forma normale.
SCATOLA LEGNO
FK: CODICE REFERENCES
PRODOTTI ALIMENTARI
FK: NOME REFERENCES
CONTIENE1(CODICE, NOME, PRODUTTORE, ANNATA)
FK: CODICE REFERENCES
8.1
SOLUZIONE
SCATOLA LEGNO
FK: NOME, PRODUTTORE, ANNATA REFERENCES
TIPO VINO
CLIENTE(CF, NOME, COGNOME)
PUNTISQ2
PUNTISQ1
ARBITRO
PUNTISQ2
PUNTISQ1
ARBITRO
(4,4)
ORDINE GIORNALIERO(CF, DATA)
FK: CF REFERENCES
Il campionato viene rappresentato riportando tutti gli incontri avvenuti tra due squadre: due squadre non si
possono incontrare più di una volta. Un incontro avviene in una certa giornata del campionato, rappresentata
da un numero progressivo, e in una certa sala, rappresentata da un codice univoco e da un indirizzo; in una
certa giornata, non si possono disputare due incontri nella stessa sala. L’incontro tra due squadre si svolge su
6 partite, di cui 4 tra coppie di giocatori e 2 tra giocatori singoli. In un incontro non c’è nessuna limitazione
alla partecipazione dei giocatori alle partite, cioè un giocatore può disputare anche tutte e sei le partite. Per
ogni partita occorre riportare un arbitro ed i punti totalizzati da ciascuna delle due squadre, in base ai quali
sarà possibile stilare la classifica del campionato, che riporta per ogni giornata e per ogni squadra, il relativo
punteggio. Inoltre vengono stilate mensilmente delle classifiche per i migliori giocatori: per ogni mese e per
ogni squadra, vengono riportati i 3 migliori giocatori.
PARTITE TRA
COPPIE
NUM
PARTITE TRA
SINGOLI
NUM
CLIENTE
(0,N)
(1,1)
(1,1)
(0,N)
(1,1)
SQ1
(4,4)
(1,1)
ORDINE
(1,1)
(0,N)
APPART.
(1,N)
SQ2
(1,1)
(0,N)
SQUADRA
IMBALLO (NUM, CODICE, NUM ORDINE)
FK: CODICE REFERENCES
(1,N)
CONFEZIONE
FK: NUM ORDINE REFERENCES
ORDINE
OSPITA
SALA
C1
CLASSIFICA
(1,1)
(1,N)
INDIRIZZO
FK: CODICE,NUM ORDINE REFERENCES
PUNTI
DETTAGLIO
Che correla gli imballi di un certo ordine al dettaglio di quell’ordine. Quindi
SQUADRA(NOME,SOCIETA,INDIRIZZO)
IMBALLO (NUM, CODICE, NUM ORDINE)
SALA(CODICE,INDIRIZZO)
FK: CODICE,NUM ORDINE REFERENCES DETTAGLIO
NOME
SOCIETÀ
INDIRIZZO
(1,N)
MESE
NUMGIORNATA
CODICE
Nella relazione IMBALLO si può aggiungere la seguente FK:
CAPITANO
(10,N)
INCONTRO
NUMGIORNATA
IN
DATIANAG
(2,2)
S2
DETTAGLIO(CODICE, NUM-ORDINE)
FK: NUM-ORDINE REFERENCES
(0,N)
GIOCATORE
ORDINE GIORNALIERO
CONFEZIONE
(0,N)
CF
S1
FK: CODICE REFERENCES
GIOCAS
(2,2)
ORDINE(NUM, COSTO TOT, CF, DATA, PRONTO)
FK: CF, DATA REFERENCES
GIOCAD
GIOCATORE(CF,DATIANAG,NOMESQUADRA)
FK: NOMESQUADRA REFERENCES SQUADRA
CAPITANO(CF,NOMESUADRA)
C2
(1,1)
(3,3)
CLASSIFICA
GIOCATORI
SISTEMI INFORMATIVI
FK: CF REFERENCES GIOCATORE
21
22
9
PROGETTAZIONE ER e PROGETTAZIONE LOGICA: ESERCIZI
Esercizio ER19990702
FK: NOMESQUADRA REFERENCES SQUADRA
Si vogliono gestire le conferenze nazionali ed internazionali nel settore delle Basi di Dati.
INCONTRO(SQ1,SQ2,NUMGIORNATA,CODICESALA)
AK: NUMGIORNATA,CODICESALA
FK: SQ1 REFERENCES SQUADRA
FK: SQ2 REFERENCES SQUADRA
FK: CODICESALA REFERENCES SALA
Ciascuna conferenza è organizzata da un gruppo di lavoro, ovvero un insieme di ricercatori che lavorano su
un’area di ricerca comune; quest’area diventa il tema della conferenza. Alla conferenza presiede un comitato di
programma di cui fanno parte non meno di dieci componenti, con ruoli diversi (presidente, segretario, revisori).
Una conferenza ha un nome ed una sigla univoci, una data di inizio e di fine ed una sede. Un’area di ricerca,
rappresentata da un codice e da una descrizione, comprende uno o più argomenti; un argomento, descritto da un
codice e da un nome, fa parte di un’unica area di ricerca. Un ricercatore, descritto dagli usuali dati anagrafici,
si occupa di uno o più argomenti e può far parte di un unico gruppo di lavoro.
PARTITECOPPIE(SQ1,SQ2,NUM,PUNTISQ1,PUNTISQ2,ARBITRO)
FK: SQ1,SQ2 REFERENCES INCONTRO
PARTITESINGOLE(SQ1,SQ2,NUM,PUNTISQ1,PUNTISQ2,ARBITRO)
FK: SQ1,SQ2 REFERENCES INCONTRO
GIOCAD(SQ1,SQ2,NUM,CF)
FK: SQ1,SQ2,NUM REFERENCES PARTITECOPPIE
FK: CF REFERENCES GIOCATORE
GIOCAS(SQ1,SQ2,NUM,CF)
FK: SQ1,SQ2,NUM REFERENCES PARTITECOPPIE
FK: CF REFERENCES GIOCATORE
CLASSIFICA(NOMESQUADRA,NUMGIORNATA,PUNTI)
FK: NOMESQUADRA REFERENCES SQUADRA
CLASSIFICAGIOCATORI(NOMESQUADRA,MESE)
FK: NOMESQUADRA REFERENCES SQUADRA
IN(NOMESQUADRA,MESE,CF)
FK: NOMESQUADRA,MESE REFERENCES CLASSIFICAGIOCATORI
FK: CF REFERENCES GIOCATORE
Il programma stilato per una conferenza include articoli invitati e articoli sottomessi. Un articolo, descritto da
un codice univoco e da un titolo, riguarda uno specifico argomento. Un articolo invitato è scritto da un gruppo
di lavoro con il vincolo che, in una data conferenza, un gruppo di lavoro può scrivere al massimo un articolo
invitato. Un articolo sottomesso è invece scritto da uno o più ricercatori, dei quali uno principale. Gli articoli
sottomessi sono soggetti a un processo di revisione a opera di membri del comitato di programma: ciascun
articolo viene spedito a tre revisori e quando i revisori restituiscono l’articolo allegano un giudizio; il presidente, sulla base dei tre giudizi, decide di accettare o meno l’articolo e invia di conseguenza la comunicazione
dell’esito all’autore principale
Viene richiesto di:
1. Progettare lo schema E/R.
2. Tradurre lo schema E/R in schema relazionale in terza forma normale.
SISTEMI INFORMATIVI
9.1
23
24
PROGETTAZIONE ER e PROGETTAZIONE LOGICA: ESERCIZI
10
SOLUZIONE
(Nello schema sono riportati solo gli attributi più significativi)
ARGOMENTO
SI-OCCUPA
Si devono rappresentare informazioni relative alle tariffe e alle carte ricaricabili di una società di gestione di
telefonia mobile GSM, secondo le seguenti specifiche.
IN
(1,N)
(1,N)
(1,1)
Per una tariffa viene specificato: il nome univoco e la descrizione, e, per ogni fascia oraria (mattina, sera, . . . ),
per ogni giorno (feriale, festivo, sabato, . . . ) e per ogni società che gestisce telefonia (sia mobile che fissa), il
costo al minuto della chiamata e il costo alla risposta.
AREA-RICERCA
(1,N)
FORMA
SU
NOME
(0,N)
PERSONA
(1,N)
(1,N)
SIGLA
(1,1)
(10,N)
COMITATO
(1,1)
CONFERENZA
(1,N)
(1,1)
Esercizio ER20000111
ORGANIZZA
(0,N) GRUPPO-LAVORO
(1,N)
(0,N)
Le carte ricaricabili (CR), descritte tramite un codice univoco e un nome, sono di tipo semplice oppure Plus.
Una CR semplice ha una certa tariffa e può scegliere il numero di un’altra CR (sempre del gestore in questione),
detta CR destinazione, rispetto alla quale si applica uno sconto sulle chiamate; lo sconto è fisso e dipende dalla
tariffa scelta.
RUOLO
IN
RICERCATORE
(1,1)
(0,N) PRINCIPALE
NUM
(0,N)
GIUDIZIO
SCRIVE
A
B
(1,1)
(1,1)
ARTICOLO
SCRIVE
ACCETTATO
REVISIONA
(T,E)
(1,N)
(3,3)
SOTTOMESSO
C
INVITATO
(1,1)
¯ Al posto dell’associazione COMITATO si possono riportare tre associazioni che indicano i rispettivi
ruoli. La stessa cosa vale per l’associazione SCRIVE: si possono riportare due associazioni, per indicare
l’autore principale e gli eventuali coautori.
¯ Consideriamo la traduzione in schema relazionale di SCRIVE e ARTICOLO (supponiamo che CODGRUPPO
sia l’identificatore di GRUPPO).
CONFERENZA(SIGLACONF,NOME,CODGRUPPO)
AK: NOME
ARTICOLO(NUMERO,SIGLACONF)
FK: SIGLACONF REFERENCES CONFERENZA
ARTICOLOINVITATO(NUMERO,SIGLACONF)
FK: NUMERO,SIGLACONF REFERENCES ARTICOLO
SCRIVE(CODGRUPPO,SIGLACONF,NUMERO)
AK: SIGLACONF,NUMERO
FK: NUMERO,SIGLACONF REFERENCES ARTICOLOINVITATO
Si noti che in SCRIVE l’attributo SIGLACONF e’ stato riportato un’unica volta in modo da garantire che
l’articolo riportato in SCRIVE sia effettivamente un articolo della conferenza in questione.
Per una CR Plus (di nuova concezione) si possono scegliere da una a quattro tariffe, e per ciascuna delle tariffe
scelte, si possono indicare da uno a tre numeri di altre CR destinazione (sempre del gestore in questione)
rispetto alle quali si applica uno sconto sulle chiamate; in questo caso lo sconto non dipende solo dalla tariffa
ma anche dalla CR destinazione e dalla CR Plus in questione.
Viene richiesto di:
1. Progettare lo schema E/R.
2. Tradurre lo schema E/R in schema relazionale in terza forma normale.
3. (facoltativo) Modificare lo schema E/R aggiungendo il vincolo che una CR Plus non può scegliere più
di una volta una stessa CR come destinazione.
10.1
SOLUZIONE
Esaminiamo i punti caratteristici:
¯ Per una tariffa viene specificato: il nome univoco e la descrizione, e, per ogni fascia oraria (mattina,
sera, . . . ), per ogni giorno (feriale, festivo, sabato, . . . ) e per ogni società che gestisce telefonia (sia
mobile che fissa), il costo al minuto della chiamata e il costo alla risposta.
Si introduce una entità COSTO identificata da TARIFFA (che è una entità) e da FASCIA, GIORNO e
GESTORE, che ha come attributi costo al minuto e costo alla risposta.
¯ Per una CR Plus si possono scegliere da una a quattro tariffe, e per ciascuna delle tariffe scelte, si
possono indicare da uno a tre numeri di altre CR destinazione (sempre del gestore in questione) rispetto
alle quali si applica uno sconto sulle chiamate; in questo caso lo sconto non dipende solo dalla tariffa
ma anche dalla CR destinazione e dalla CR Plus in questione.
Il modo più semplice è quello di utilizzare una associazione ternaria, che chiameremo Ha-Plus, tra
PLUS, TARIFFA, e CR (la CR destinazione, che in questo modo sarà “sempre del gestore in questione”
); tale associazione Ha-Plus ha l’attributo sconto. Le cardinalità sono:
1. card(TARIFFA,Ha-Plus) = (0,N): una tariffa può essere scelta un numero arbitrario di
volte;
2. card(CR,Ha-Plus) = (0,N): una CR può essere scelta un numero arbitrario di volte come
CR destinazione;
3. card(CR-PLUS,Ha-Plus) = (0,12): per una CR Plus si possono scegliere (quindi cardinalità minima uguale a zero) da una a quattro tariffe, e per ciascuna delle tariffe scelte, si possono
indicare da uno a tre numeri di altre CR destinazione (quindi cardinalità massima uguale a 4*3);
In questo modo non si esprime che “Per una CR Plus si possono scegliere da una a quattro tariffe, e
per ciascuna delle tariffe scelte, si possono indicare da uno a tre numeri di altre CR destinazione“; per
esprimere questo aspetto occorre reificare Ha-Plus come riportato nello schema ER completo.
SISTEMI INFORMATIVI
25
26
11
PROGETTAZIONE ER e PROGETTAZIONE LOGICA: ESERCIZI
Esercizio ER20000222
Si devono rappresentare informazioni relative agli articoli ed ai clienti di una fumetteria.
Per ogni articolo si devono specificare: un codice che identifica l’articolo stesso, un nome (titolo nel caso di
fumetto o videocassetta), un prezzo, la scorta minima da tenere in magazzino, un unico produttore una o più
categorie a cui appartiene (fumetti, videocassette, miniature, materiale per giochi di ruolo, ecc. . . ). Un articolo
può appartenere ad una serie; in questo caso è identificato, all’interno della serie, da un numero.
Un cliente, descritto dagli usuali dati anagrafici, può effettuare ordini o sottoscrivere abbonamenti; un cliente
può acquistare una (ed una sola) tessera annuale, personale. In questo caso il cliente è considerato tesserato
e può essere identificato univocamente tramite il suo numero di tessera. Si registrano inoltre la data di primo
tesseramento e la data di scadenza della tessera.
Un cliente si può abbonare ad una o più serie ed è possibile specificare i numeri di inizio e fine di ciascuno di
questi abbonamenti; un cliente può sottoscrivere fino a tre abbonamenti per la stessa serie, eventualmente con
numeri di inizio e fine diversi. Per ciascun abbonamento vengono memorizzati i numeri ritirati dal cliente e la
data del ritiro.
Qualora un articolo richiesto da un cliente non sia disponibile è possibile richiederlo; a tale scopo si gestiscono
le richieste settimanali di articoli: per un certo articolo richiesto si effettua, settimanalmente, una richiesta, nella
quale si specificano i clienti che lo hanno richiesto, con le relative quantità e l’eventualle acconto versato.
NB: la cardinalità minima di PLUS in Ha-Plus è 0;
Per Modificare lo schema E/R e aggiungere il vincolo che una CR Plus non può scegliere più di una volta una
stessa CR come destinazione, si deve aggiungere alla associazione Ha-Plus reificata un altro identificatore,
costituito da CR (destinazione) e PLUS. Però in questo modo non esprimo più che “per ciascuna delle tariffe
scelte, si possono indicare da uno a tre numeri di altre CR destinazione” . . .
Viene richiesto di:
1. Progettare lo schema E/R.
2. Tradurre lo schema E/R in schema relazionale in terza forma normale.
SISTEMI INFORMATIVI
11.1
27
12
SOLUZIONE
Nello Schema ER vengono riportati solo gli attributi principali:
ACCONTO(0,1)
ARTICOLO
RICHIESTA
(0,N)
QTY
DI
(P,E)
(0,N)
(1,N)
IN_SERIE
SERIE/
CLIENTE
SERIE
(1,1)
(0,N)
(1,1)
CF
CLIENTE
(1,1)
NTES
(0,N)
TESSERATO
(1,1)
RITIRA
(0,N)
ABBONAMENTO
NUMERO
DATARITIRO
NUM_INIZIO
Le domande eliminatorie, identificate da un numero progressivo univoco all’interno della puntata, sono descritte
da un punteggio e dal testo della domanda. A ciascuna di queste domande eliminatorie può rispondere un solo
concorrente e per ciascuna risposta si indica il tempo impiegato e se la risposta è esatta. In base alle domande
eliminatorie, tenendo conto del punteggio delle risposte esatte e del tempo impiegato, viene stilata una classifica
della puntata: si suppone che una posizione della classifica sia occupata da un unico concorrente e che viceversa
un concorrente occupi una sola posizione.
(0,N)
(1,3)
NUMERO
Esercizio ER20000704
Il programma a quiz è trasmesso in puntate giornaliere; ogni puntata è rappresentata quindi dalla data (univoca)
e dall’ora in cui va in onda. Ad ogni puntata partecipano esattamente sei concorrenti, descritti tramite gli usuali
dati anagrafici. Durante ogni puntata ci sono venti domande eliminatorie e dieci domande finali.
(1,N)
(1,1)
PROGETTAZIONE ER e PROGETTAZIONE LOGICA: ESERCIZI
Si devono rappresentare informazioni relative ad un programma televisivo a Quiz.
SETTIMANA
CODART
28
NUM_FINE
All’unico concorrente classificatosi primo nella puntata, vengono sottoposte le dieci domande finali. Anche le
domande finali sono identificate da un numero progressivo univoco all’interno della puntata e sono descritte
da un punteggio e dal testo della domanda. Le domande finali sono a risposta multipla: per ognuna di esse
vengono illustrate quattro risposte, tra le quali il concorrente deve scegliere quella che ritiene essere corretta,
oppure non sceglierne alcuna.
Viene richiesto di:
1. Progettare lo schema E/R.
2. Tradurre lo schema E/R in schema relazionale in terza forma normale.
Schema Relazionale
Vengono riportati solo gli aspetti particolari della traduzione.
In particolare, nel tradurre l’associazione RITIRA viene utilizzato come identificatore dell’entità IN SERIE
la chiave alternativa NUMEROARTICOLO,COD SERIE: in questo modo si può aggiungere allo schema relazionale, rispetto allo schema E/R, il vincolo (controllo di consistenza) “l’articolo ritirato appartiene alla serie
per la quale è stato sottoscritto l’abbonamento”.
ARTICOLO(COD, ...)
SERIE(COD, ...)
FK : COD REFERENCES ARTICOLO
13
Esercizio ER20000724
Una società che produce corsi di formazione aziendale intende creare un sistema informativo per la gestione
dei propri moduli didattici.
Un modulo didattico è descritto da una sigla univoca e da un settore disciplinare. Ogni modulo didattico è
organizzato in corsi nel seguente modo. In un certo mese, un modulo può prevedere al massimo un solo corso
e viceversa, in un certo mese un corso può essere svolto all’interno di un solo modulo: per tale insegnamento
mensile si devono specificare due esercitatori. Un corso è rappresentato tramite un codice univoco ed una
descrizione; ogni corso ha associato un unico docente e viceversa, un docente è associato ad un unico corso.
AK: NUMEROARTICOLO,COD SERIE
Ogni modulo didattico prevede semestralmente una seduta per l’esame finale, la cui commissione è formata
da dieci docenti ed è presieduta da un unico docente in veste di presidente; l’unica restrizione è quella che un
docente non può essere presidente per più commissioni nello stesso semestre.
FK : COD REFERENCES ARTICOLO
Docenti ed esercitatori sono descritti dagli usuali dati anagrafici; per i docenti si riporta anche il titolo di studio.
FK : COD SERIE REFERENCES SERIE
Viene richiesto di:
1. Progettare lo schema E/R.
2. Tradurre lo schema E/R in schema relazionale in terza forma normale.
IN SERIE(COD, NUMEROARTICOLO,COD SERIE...)
SERIE CLIENTE(COD SERIE,CF ...)
ABBONAMENTO(COD SERIE,NUMERO,CF ...)
RITIRA(NUMEROARTICOLO,COD SERIE,NUMERO,CF DATARITIRO)
FK : NUMEROARTICOLO,COD SERIE REFERENCES IN SERIE
ARTICOLO(COD, ...)
CLIENTE(CF, ...)
TESSERATO(CF, NUMERO TESSERA)
AK: NUMERO TESSERA
FK : CF REFERENCES CLIENTE
SISTEMI INFORMATIVI
14
29
Esercizio ER20000907
30
16
PROGETTAZIONE ER e PROGETTAZIONE LOGICA: ESERCIZI
Esercizio ER20001201
Una società di spedizioni nazionali ed internazionali intende creare un sistema informativo secondo le seguenti
specifiche.
Un sistema informativo per la gestione di una videoteca memorizza informazioni relative ai noleggi, secondo
le seguenti specifiche.
Le categorie di merce trattate dall’agenzia sono descritte da un codice univoco, da un tipo e da un peso.
I film di cui la videoteca tiene copia, rappresentati tramite un titolo univoco ed un genere, sono suddivisi in
prime visioni e visioni successive.
Per le spedizioni internazionali vengono specificate delle tipologie di spedizione, che fissano la categoria di
merce da spedire e la località di destinazione: per una certa categoria di merce e una certa località vi possono
essere una o più tipologie di spedizione, ciascuna delle quali specifica il tempo massimo di consegna, il costo
ed i mezzi utilizzati per la spedizione delle merci. Un cliente effettua una spedizione internazionale facendo
riferimento ad una di tali tipologie di spedizione, specificando la data di spedizione, l’indirizzo del destinatario
ed una breve descrizione del contenuto della merce.
Per le spedizioni nazionali la società organizza invece trasporti giornalieri con vetture ed autisti propri: ogni
trasporto giornaliero è descritto dalla data di trasporto, dalla località di destinazione, dalla vettura con la quale
viene effettuato e dall’autista; naturalmente, in una certa data di trasporto, un’autista guida una sola vettura e,
viceversa, una vettura è guidata da un solo autista. Per una spedizione nazionale viene riportato il cliente che
la richiede, il trasporto giornaliero con il quale viene effettuata, l’indirizzo del destinatario e la composizione
della spedizione, costituita da un elenco delle categorie di merce spedite con la relativa quantità.
Per le prime visioni, la videoteca tiene di ogni film una sola copia e constente un noleggio giornaliero molto
vincolato: un cliente può noleggiare al massimo una prima visione al giorno, un cliente non può noleggiare due
o più volte la stessa prima visione e, essendoci solo una copia, in un certo giorno una prima visione può essere
noleggiata solo da un cliente.
Per le visioni successive, la videoteca tiene di ogni film esattamente 5 copie; anche in questo caso il noleggio
è giornaliero, con l’unico vincolo che in un certo giorno un cliente può noleggiare fino ad un massimo di dieci
visioni successive.
I clienti sono rappresentati dagli usuali dati anagrafici. I clienti possono richiedere una tessera che consente
un certo risparmio in determinati giorni della settimana. Più precisamente, una tessera (descritta da un codice
univoco ed una data di scandenza) riporta, per ogni giorno della settimana, lo sconto applicato al noleggio di
film. Una tessera è rilasciata per un preciso cliente; un cliente può richiedere al massimo una tessera.
I clienti e gli autisti sono descritti dagli usuali dati anagrafici; per i clienti si riporta anche la eventuale percentuale di sconto; per gli autisti invece si riportano informazioni sulla patente di guida. Le località di destinazione, nazionali ed internazionali, sono descritte da una sigla univoca, da un nome, dallo Stato/Provincia e
dalla nazione.
Viene richiesto di:
1. Progettare lo schema E/R.
2. Tradurre lo schema E/R in schema relazionale in terza forma normale.
Viene richiesto di:
1. Progettare lo schema E/R.
2. Tradurre lo schema E/R in schema relazionale in terza forma normale.
17
15
Esercizio ER20000928
Si vogliono memorizzare informazioni sugli articoli e la pubblicità pubblicata su un periodico settimanale
secondo le seguenti specifiche.
Ogni pubblicazione del periodico settimanale, chiamato numero del settimanale, è identificata dalla settimana
e dall’anno di pubblicazione ed è caratterizzata dal numero delle pagine e dal prezzo.
Ogni articolo pubblicato, identificato da un codice, è scritto da un solo giornalista e viene pubblicato solo su
un numero del settimanale; per ogni articolo vengono indicate le pagine in cui l’articolo è riportato. In un certo
numero del settinamale, non si possono pubblicare più di tre articoli dello stesso giornalista. I giornalisti sono
descritti dagli usuali dati anagrafici.
Per quanto riguarda la pubblicità, vengono memorizzati gli inserti pubblicitari riportati sul settimanale. Un
inserto pubblicitario, identificato da un codice, è caratterizzato da una descrizione, un testo ed una eventuale
foto. Le regole da rispettare per gli inserti pubblicitari sono le seguenti: in un certo numero del settinamale, un
inserto pubblicitario può comparire più volte ma in pagine differenti e comunque non più di cinque volte sullo
stesso numero del settinamale. Per ogni pagina del numero del settimanale in cui l’inserto è riportato, viene
indicata la posizione nella pagina e la dimensione occupata.
Viene richiesto di:
1. Progettare lo schema E/R.
2. Tradurre lo schema E/R in schema relazionale in terza forma normale.
Esercizio ER20010117
L’ufficio della motorizzazione vuole memorizzare informazioni sui trasferimenti di proprietà delle automobili
secondo le seguenti specifiche.
Un’automobile è caratterizzata da un modello, dall’anno di produzione, da un numero di serie assegnatogli dal
produttore, unico fra le automobili da lui prodotte. All’atto della registrazione, all’automobile viene assegnato un numero, unico per ciascuna automobile, e la data di registrazione. Per le automobili registrate viene
memorizzata anche l’eventuale rottamazione con la relativa data in cui ciò avviene.
Per i trasferimenti di proprietà vengono memorizzate le seguenti informazioni: un codice che identifica il
trasferimento, la data di trasferimento, l’automobile trasferita, il vecchio e il nuovo proprietario. Il proprietario
di un automobile può essere: il produttore, un rivenditore oppure un privato.
Le norme che vincolano il trasferimento di un’automobile sono le seguenti:
¯ possono essere trasferite solo le auto registrate;
¯ un’automobile può essere trasferita al massimo una sola volta in una certa data;
¯ un’automobile può essere venduta dal suo produttore solo ad un rivenditore, e un produttore non può
acquistare automobili;
¯ un’automobile può essere venduta da un rivenditore solo a privati.
Per i proprietari e i rivenditori vengono riportati gli usuali dati anagrafici; un produttore è rappresentato tramite
un codice univoco, un indirizzo ed uno o più numeri telefonici.
Viene richiesto di:
1. Progettare lo schema E/R.
2. Tradurre lo schema E/R in schema relazionale in terza forma normale.
SISTEMI INFORMATIVI
18
31
Esercizio ER20010226
32
20
PROGETTAZIONE ER e PROGETTAZIONE LOGICA: ESERCIZI
Esercizio ER19990719
Si devono gestire le informazioni di una società specializzata in interventi elettrici ed idraulici all’interno di
cantieri, secondo le seguenti specifiche.
Si vuole automatizzare la gestione della fureria di una caserma. La fureria è l’ufficio che si occupa della maggior
parte dell’organizzazione militare in caserma; il termine deriva dal francese antico fourrier, “foraggiatore”.
Nella società sono presenti vari gruppi di lavoro, costituiti da un minimo di due (il capogruppo e l’autista) ad
un massimo di dieci tecnici (rappresentati dagli usuali dati anagrafici). Ogni gruppo di lavoro dispone di un
autoveicolo che utilizza giornalmente. I gruppi di lavoro sono fissati mensilmente, cioè in un dato mese un
tecnico appartiene ad un solo gruppo di lavoro.
Un militare è descritto tramite gli usuali dati anagrafici e da un grado militare’ tra i militari si distinguono
ufficiali. Ogni militare svolge giornalmente un unico incarico; gli incarichi si suddividono in ordinari e speciali,
quest’ultimi assegnati da un ufficiale. Tra gli incarichi speciali ci sono le guardie ai luoghi della caserma.
I lavori commissionati alla società sono classificabili come ordinari e straordinari. Quelli ordinari sono organizzati in varie fasi, secondo uno schema ben preciso: una fase compare una sola volta in un lavoro ordinario,
secondo un ordine prestabilito (per ogni fase, ad eccezione dell’ultima, si deve riportare la fase successiva in
quel lavoro). Ogni fase, rappresentata da un codice e da una descrizione, è a sua volta costituita da più operazioni. I lavori straordinari invece non seguono nessun schema e sono semplicemente costituiti da una o più
operazioni.
Un’operazione viene generalmente eseguita da un gruppo di lavoro e la schedulazione dei lavori, eseguita settimanalmente, prevede l’assegnamento ad ogni gruppo di lavoro, giorno per giorno, dell’operazione da eseguire.
Il materiale utilizzato durante una operazione, con la relativa quantità, viene memorizzato giornalmente in un
opportuno registro.
Viene richiesto di:
1. Progettare lo schema E/R.
2. Tradurre lo schema E/R in schema relazionale in terza forma normale.
19
Esercizio ER19990421
Una esercitazione militare è descritta da un codice, una data e dalla località in cui svolge. Ad un’esercitazione
partecipano almeno 100 militari e a ciascuno di essi è assegnato, all’interno dell’esercitazione in questione, un
numero univoco; un militare può partecipare a una o più esercitazioni.
Si deve tener traccia della quantità e del tipo di armi presenti in caserma e degli assegnamenti delle armi ai
militari per effettuare le esercitazioni: durante un’esercitazione, un’arma è assegnata ad un certo militare, ed ad
un militare possono essere assegnate più armi; si deve tener conto del numero di colpi sparati e descrivere gli
eventuali malfunzionamenti dell’arma durante l’esercitazione. Un’arma è descritta da un codice e dal tipo.
Viene richiesto di:
1. Progettare lo schema E/R.
2. Tradurre lo schema E/R in schema relazionale in terza forma normale.
3. Aggiungere allo schema relazionale ottenuto al punto 2. il seguente vincolo: durante un’esercitazione,
un’arma può essere assegnata solo ad un militare che partecipa a quella esercitazione.
21
Esercizio ER19990902
Si vogliono gestire gli spettacoli di una stagione di un teatro.
Un sistema informativo memorizza alcune informazioni su uno zoo, secondo le seguenti specifiche.
Il teatro dispone di 200 posti e di cui 100 riservati per abbonamenti stipulati all’inizio della stagione.
Ogni animale appartiene ad una specie ed è identificato da un codice univoco all’interno della specie di appartenenza. Una specie è rappresentata da un nome univoco, da un habitat e da una famiglia. Di un animale
viene inoltre riportato il peso e il sesso; alcuni animali sono nati in cattività nello zoo: per essi si riporta la data
di nascita e i due animali genitori. Ogni specie è collocata in una certa zona dello zoo; una zona è rappresentata
da un codice univoco, da un’estensione e da un tipo di vegetazione. In una zona può essere collocata un’unica
specie.
Il programma stagionale del teatro è organizzato nel seguente modo: in una settimana è previsto un’unica opera
che viene rappresentata in sei giorni diversi della settimana. Per ogni opera viene riportato il numero della
settimana in cui è programmata, il titolo univoco, il genere ed il prezzo del biglietto intero e ridotto.
Le visite veterinarie sono organizzate per zone nel seguente modo: per una zona in una certa data c’è un unico
veterinario assegnato per le visite; viceversa, in una certa data un veterinario è assegnato ad un’unica zona. Un
veterinario è descritto dagli usuali dati anagrafici.
Per ogni specie di animale si deve indicare una dieta standard, costituita da uno o più cibi con le relative quantità
giornaliere. Un cibo è descritto da un codice identificativo, da un tipo e da una unità di misura. Devono essere
rappresentate le eventuali limitazioni nella dieta di un singolo animale: in una certa settimana un animale può
essere privato di uno o più cibi e per ciascuna di queste privazioni si devono riportare uno o più motivi e il
veterinario che l’ha prescritta.
Viene richiesto di:
1. Progettare lo schema E/R.
2. Tradurre lo schema E/R in schema relazionale in terza forma normale.
3. (facoltativo) Aggiungere allo schema relazionale ottenuto al punto 2. il seguente vincolo: un animale
può essere privato di un certo cibo solo se tale cibo è nella dieta della sua specie.
In un abbonamento vengono scelti da un minimo di 5 ad un massimo di 30 spettacoli e per ciascuno di questi
spettacoli viene assegnato un unico posto all’interno del teatro. Naturalmente, durante ogni spettacolo, uno
dei 100 posti riservati è assegnato ad un unico abbonamento (il numero del posto può variare da spettacolo a
spettacolo).
Viene richiesto di:
1. Progettare lo schema E/R.
2. Tradurre lo schema E/R in schema relazionale in terza forma normale.
SISTEMI INFORMATIVI
22
33
Esercizio ER19991105
34
24
PROGETTAZIONE ER e PROGETTAZIONE LOGICA: ESERCIZI
Esercizio ER20000201
Un’agenzia immobiliare vuole gestire atti di vendita di immobili secondo le seguenti specifiche.
Si devono rappresentare informazioni relative alle regate della America’s Cup, secondo le seguenti specifiche.
Un atto di vendita riguarda un immobile ed è stipulato da una o più persone giuridiche, ciascuna con un proprio
ruolo (chi vende, chi acquista, intermediari, banche, etc.). I vincoli da rappresentare sono i seguenti:
¯ in una data, su un immobile può essere fatto un unico atto di vendita;
Ogni regata è caratterizzata dal luogo, dalla data e dai dati sul percorso, descritto da quattro tappe intermedie,
per ciascuna delle quali si riportano le coordinate geografiche. Non si possono avere due regate nella stessa
data e nello stesso luogo. Le barche concorrenti hanno un nome univoco, una nazionalità, un modello ed una
stazza. Ad ogni regata partecipano due barche, quindi il risultato sarà riportato indicando la barca vincitrice e
il distacco tra le due barche sul traguardo.
¯ in un atto di vendita una persona giuridica può partecipare al massimo una volta, ricoprendo un solo
ruolo;
Durante la partecipazione ad una regata, una barca può incorrere in una o più penalità: per ciascuna di queste
penalità occorre riportarne il motivo, il minuto di gara in cui è stata assegnata e quello in cui viene scontata.
¯ in un atto di vendita non ci sono due persone giuridiche che ricoprono lo stesso ruolo, cioè c’è una sola
persona che vende, una sola persona che acquista, e cosı̀ via.
Le persone giuridiche sono rappresentate dal codice fiscale, dallo stato giuridico e da una descrizione.
Per un immobile viene riportato un codice, un indirizzo ed una descrizione. Per rappresentare lo stato dell’immobile,
vengono riportati inoltre tutti gli interventi di riparazione e di ristrutturazione effettuati. Per ogni intervento occorre memorizzare la data in cui è stato effettuato, la ditta che lo ha effettuato, le parti dell’immobile interessate
dall’intervento, con i relativi lavori effettuati. Ad esempio, un intervento di ristrutturazione interessa sia il tetto
(impermeabilizzazione e sostituzione del parafulmine) che la scala antincendio (verniciatura ed adeguamento
alla legge 626).
Viene richiesto di:
1. Progettare lo schema E/R.
2. Tradurre lo schema E/R in schema relazionale in terza forma normale.
23
Esercizio ER19991126
Si devono gestire le informazioni di una società specializzata in interventi elettrici ed idraulici all’interno di
cantieri, secondo le seguenti specifiche.
Nella società sono presenti vari gruppi di lavoro, costituiti da un minimo di due (il capogruppo e l’autista) ad
un massimo di dieci tecnici (rappresentati dagli usuali dati anagrafici). Ogni gruppo di lavoro dispone di un
autoveicolo che utilizza giornalmente. I gruppi di lavoro sono fissati mensilmente, cioè in un dato mese un
tecnico appartiene ad un solo gruppo di lavoro.
I lavori commissionati alla società sono classificabili come ordinari e straordinari. Quelli ordinari sono organizzati in varie fasi, secondo uno schema ben preciso: una fase compare una sola volta in un lavoro ordinario,
secondo un ordine prestabilito (per ogni fase, ad eccezione dell’ultima, si deve riportare la fase successiva in
quel lavoro). Ogni fase, rappresentata da un codice e da una descrizione, è a sua volta costituita da più operazioni. I lavori straordinari invece non seguono nessun schema e sono semplicemente costituiti da una o più
operazioni.
Un’operazione viene generalmente eseguita da un gruppo di lavoro e la schedulazione dei lavori, eseguita settimanalmente, prevede l’assegnamento ad ogni gruppo di lavoro, giorno per giorno, dell’operazione da eseguire
Il materiale utilizzato durante una operazione, con la relativa quantità, viene memorizzato giornalmente in un
opportuno registro.
Viene richiesto di:
1. Progettare lo schema E/R.
2. Tradurre lo schema E/R in schema relazionale in terza forma normale.
Per ogni regata è assegnato, a ciascuna barca, un gruppo arbitrale; durante una regata un gruppo arbitrale segue
una sola barca. Un gruppo arbitrale è descritto tramite un codice ed il nome dei suoi tre membri.
Ogni barca ha un equipaggio composto da 15 a 20 persone, ciascuna con un proprio ruolo che puo’ variare di
regata in regata; per una certa regata, un dato ruolo su una barca è ricoperto da un’unica persona. Per le persone
si riportano gli usuali dati anagrafici
Viene richiesto di:
1. Progettare lo schema E/R.
2. Tradurre lo schema E/R in schema relazionale in terza forma normale.