Risolvere gli esercizi evidenziando il ruolo delle tabelle (MASTER o SLAVE) nelle singole relazioni. Indicate il tipo di relazione (1-->1 o 1-->N). Infine presentate la struttura di ogni singola tabella in dettaglio come visto per i DB monolitici.
Per le modalità di pubblicazione seguire l'esempio 0 qui riportato.
ESERCIZIO 0 |
TESTO PROBLEMA: Costruire un database che permetta di gestire i prestiti di una biblioteca.
Note:
Nel Forum la descrizione delle vostre tabelle deve essere più completa di
quella qui sotto presentata.
ATTENZIONE: quando pubblico la mia soluzione sul forum devo disabilitare il check box relativo all'uso del codice HTML (vedi figura qua sotto).
In questo modo i TAG html riportati nell'esempio
funzionano.
Il significato di questi TAG è:
<U>Parola</U> sottolineato
<B>Parola</B> grassetto
<HR> linea orizzontale
<H1>Titolo in grande</H1>
SOLUZIONE:
COGNOME NOME
(Classe) - COGNOME NOME (Classe) [secondo studente eventuale]
====================================================
ESERCIZIO 0
====================================================
TABELLE:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
----------------------------------------------------
TBL_LIBRI
----------------------------------------------------
idLibro:
Tipo: Contatore;
Indice:senza duplicati;
Titolo:
Tipo: TESTO(255);
Indice: Con duplicati;
Sunto:
Tipo: MEMO;
Indice: Nessuno;
etc. etc.
----------------------------------------------------
TBL_UTENTI
----------------------------------------------------
IdUtente:
Tipo: Contatore;
Indice:senza duplicati;
Nominativo:
Tipo: TESTO(60);
Indice: Con duplicati;
Indirizzo:
Tipo: TESTO(100);
Indice: Nessuno;
etc. etc.
----------------------------------------------------
TBL_PRESTITI
----------------------------------------------------
IdPrestito:
Tipo: Contatore;
Indice:senza duplicati;
IdUtente:
Tipo: Numerico (Intero Lungo);
Indice:con duplicati;
CodLibro:
Tipo:
Numerico (Intero Lungo);
Indice:con duplicati;
DataPrestito:
Tipo: Data/ora;
Indice:Nessuno;
DataRestituzione:
Tipo: Data/ora;
Indice:con
duplicati;
etc. etc.
====================================================
RELAZIONI:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TBL_UTENTI.IDUTENTE ---> TBL_PRESTITI.IDUTENTE (relazione 1->N)
TBL_LIBRI.IDLIBRO ---> TBL_PRESTITI.CODLIBRO (relazione 1->N)
ESERCIZIO 1 - IV-M1.2A.1 |
Progettare un database che consenta di memorizzare l’albero
genealogico della propria famiglia. Per ogni persona registrata, devo inserire:
- il suo nominativo
- la sua data di nascita
- l’eventuale data di morte
- i riferimenti ai suoi genitori.
- il riferimento all'eventuale coniuge e durata della loro relazione (la
struttura deve consentire la registrazione di più coniugi abbinati ad una
singola persona: infatti uno/una potrebbe risposarsi più volte nell'arco della
propria vita) .
La struttura va progettata evitando qualsiasi ridondanza nell’informazione. Deve
essere possibile determinare chi sono i fratelli e i fratellastri di ogni
persona contenuta nell'archivio.
ESERCIZIO 2 - IV-M1.2A.2 |
Costruire un
database che gestisca
i conti correnti di una banca. L'archivio deve consentire la presenza di più
conti correnti intestati ad uno stesso utente. Inoltre devono essere registrati tutti i movimenti
contabili specificando: importo, data e tipo operazione (versamenti o prelievi).
La banca registra, nello stesso archivio, tutta la corrispondenza inviata ai
propri clienti e pertanto necessita anche di una anagrafica completa dei suoi
correntisti.
ESERCIZIO 3 - IV-M1.2A.3 |
Costruire un
database che gestisca
gli abbonamenti di un autoparcheggio. Il gestore deve avere a disposizione l'anagrafica delle
automobili che usufruiscono della struttura. Ogni abbonamento è numerato
e quindi identificabile. Non è comunque richiesta la registrazione nel DB degli
abbonamenti emessi. L'abbonamento è una tessera a punti nominativa (ovvero
riporta il nome dell'utente). Ad ogni accesso al parcheggio l'abbonamento viene scalato di 1
punto e su di esso viene registrata la data del transito. I
punti di ogni abbonamento sono 10. Quando un utente consuma la propria tessera ne
acquista un'altra riconsegnando la vecchia. Quest'ultima viene riletta dal
sistema e i dati relativi vengono inseriti nella tabella AbbonamentiEsauriti.
Sull'abbonamento sono registrate le date di tutti i 10 transiti.
ESERCIZIO 4 - IV-M1.2A.4 |
Identico
all'esercizio 3 ma con queste differenze:
- il gestore registra immediatamente nel database tutti i transiti in entrata
- la tessera non ha un numero fisso di punti ma viene stabilito all'atto
dell'acquisto. Una volta acquistata, il numero di punti disponibili non può
variare. Quando è esaurita sarà necessario acquistarne un'altra. - - La
vecchia tessera non viene riletta poichè la tabella AbbonamentiEsauriti non
viene gestita.
- La tessera non riporta il nome dell'utente ma la targa della vettura.
- Il gestore deve sapere chi è il proprietario di ogni autovettura per
una corretta fatturazione.
ESERCIZIO 5 - IV-M1.2A.5 |
Costruire un database che consenta ad una casa automobilistica la registrazione delle consegne delle proprie autovetture alle sue concessionarie. Ogni consegna deve riportare: modello auto, numero di automezzi per modello e data di consegna. La casa automobilistica tiene, per ogni modello di auto, una scheda descrittiva dettagliata contenente anche i riferimenti ai disegni registrati in formato DWG. Lo stesso archivio contiene le informazioni per tenere i contatti con le concessionarie. Per ogni auto consegnata vengono inoltre registrati: gli allestimenti, gli optional (ovvero tutto ciò che non rientra nella dotazione di serie), il modello di motore, il colore etc.
ESERCIZIO 6 - IV-M1.2A.6 |
Costruire un
database che consenta la gestione della propria collezione di CD musicali. -
- Obbiettivo è memorizzare tutte le date di ascolto di ogni singolo brano (indipendentemente dal
CD di appartenenza). Per ogni brano vogliamo avere: il testo della canzone, la
durata e le notizie inerenti alla
biografia degli autori. Per ogni CD vogliamo registrare: il prezzo, la
copertina e il suo contenuto (in brani).
Attenzione! Uno stesso brano può essere
presente su CD diversi. Un brano può avere più autori.
- Se l'obbiettivo del nostro archivio fosse quello di registrare tutte le
date di ascolto di ogni brano contenuto in un particolare CD che modifiche devo
apportare ?
ESERCIZIO 7 - IV-M1.2A.7 |
Progettare un database che tenga l'anagrafica dei programmi installati sui PC di tutti gli istituti scolastici bresciani. Obbiettivo è tenere sotto controllo le licenze e pertanto va gestita anche la registrazione degli acquisti dei pacchetti software. Gli acquisti vengono fatti da ogni singolo istituto ma l'archivio è unico.
ESERCIZIO 8 - IV-M1.2A.8 |
Progettare un database che consenta di registrare tutte le gare individuali inerenti alle olimpiadi. Per ogni disciplina olimpica devo conoscere il calendario, i luoghi e le date dove vengono disputate le singole gare. L'archivio deve permettere la registrazione delle classifiche con i tempi o i punteggi realizzati da ogni singolo atleta. Si tenga presente che alcuni atleti partecipano a più discipline. Ogni disciplina deve essere corredata da una breve descrizione che consenta di conoscerne gli aspetti e le regole.
ESERCIZIO 10 - IV-M1.2A.10 |
Progettare un database che gestisca il curriculum scolastico completo degli studenti del Liceo Leonardo.