Sei sulla pagina 1di 8

Esercizio

Un'organizzazione internazionale raggruppa gli iscritti di diverse nazioni. Gli iscritti


possono aderire con ruoli diversi: socio ordinario, sostenitore, affiliato; l'importo della
quota di iscrizione è libero e viene versato con pagamenti che possono essere fatti in
date diverse (anche più versamenti nello stesso anno senza controlli di scadenze).

Costruire il modello E/R, definendo entità, attributi e associazioni e motivando le scelte


effettuate su entità e tipo di associazioni.

Derivare dal modello E/R il corrispondente modello relazionale dei dati e produrre la
pseudo codifica per le seguenti interrogazioni:

1) iscritti con cognome, nome, telefono;


2) elenco degli iscritti (cognome, nome, tipo socio) di una nazione;
3) tutti i dati degli iscritti di un determinato tipo;
4) elenco dei pagamenti con cognome, data, importo;
5) tutti i dati dei pagamenti effettuati nell'anno in corso con cognome e nome degli iscritti
che hanno effettuato i pagamenti;
6) elenco dei pagamenti effettuati da un iscritto.
Esercizio
SCHEMA E/R
1 Vive in N 1 PAGA N
NAZIONE ISCRITTO QUOTA
- ID_nazione - ID_iscritto - ID_quota
(0;N) (1;1) - Nome (0;N) (1;1)
- nome - Data
- Cognome - Importo
- Telefono
- Ruolo

MODELLO LOGICO RELAZIONALE

Nazione (ID_nazione, nome)


Iscritto (ID_iscritto, nome, cognome, telefono, nazione, ruolo, ID_nazione)
Quota(ID_quota, data, importo, ID_iscritto)
Esercizio

Nazioni (ID_nazione, nome)


Iscritti (ID_iscritto, nome, cognome, telefono, nazione, ruolo, ID_nazione) σπ⋈
Quote(ID_quota, data, importo, ID_iscritto)

1) Iscritti con cognome, nome, telefono.

πiscritti.cognome, iscritti.nome, iscritti.telefonoIscritti


Esercizio

Nazioni (ID_nazione, nome)


Iscritti (ID_iscritto, nome, cognome, telefono, nazione, ruolo, ID_nazione) σπ⋈ σπ⋈
Quote(ID_quota, data, importo, ID_iscritto)

2) Elenco degli iscritti (cognome, nome, tipo socio) di una nazione.

temp = σnazioni.nome= [...]nazioni


temptemp.id_nazione⋈iscritti.id_nazioneiscritti
Esercizio

Nazioni (ID_nazione, nome)


Iscritti (ID_iscritto, nome, cognome, telefono, nazione, ruolo, ID_nazione) σπ⋈
Quote(ID_quota, data, importo, ID_iscritto)

3) Tutti i dati degli iscritti di un determinato tipo.

σiscritti.ruolo=[...]iscritti
Esercizio

Nazioni (ID_nazione, nome)


Iscritti (ID_iscritto, nome, cognome, telefono, nazione, ruolo, ID_nazione) σπ⋈
Quote(ID_quota, data, importo, ID_iscritto)

4) Elenco dei pagamenti con cognome, data, importo.

temp = quotequote.id_iscritto ⋈ iscritti.id_iscrittoiscritti

πtemp.cognome, temp.data, temp.importotemp


Esercizio

Nazioni (ID_nazione, nome)


Iscritti (ID_iscritto, nome, cognome, telefono, nazione, ruolo, ID_nazione) σπ⋈
Quote(ID_quota, data, importo, ID_iscritto)

5) Tutti i dati dei pagamenti effettuati nell'anno in corso con cognome e nome
degli iscritti che hanno effettuato i pagamenti.

σquote.data=[...]quote
temp =

temp1 = temptemp.id_iscritto ⋈ iscritti.id_iscrittoiscritti


πtemp1.cognome, temp1.nome temp1
Esercizio

Nazioni (ID_nazione, nome)


π
Iscritti (ID_iscritto, nome, cognome, telefono, nazione, ruolo, ID_nazione) σπ⋈
Quote(ID_quota, data, importo, ID_iscritto)

6) Elenco dei pagamenti effettuati da un iscritto.


temp= σiscritti.ID_iscritto=[...]iscritti
temptemp.ID_iscritto⋈quote.id_iscrittoquote

Potrebbero piacerti anche