• Non ci sono risultati.

ESERCIZIO BONUS 3 (+0.5) – Progettazione di basi di dati relazionali

N/A
N/A
Protected

Academic year: 2021

Condividi "ESERCIZIO BONUS 3 (+0.5) – Progettazione di basi di dati relazionali"

Copied!
3
0
0

Testo completo

(1)

ESERCIZIO BONUS 3 (+0.5) –

Progettazione di basi di dati relazionali

25/11/2020, Consegna: 6/12/2020, ore 23.55

Modalità di consegna à Attraverso la piattaforma di e-learning VIRTUALE (https://virtuale.unibo.it) di UNIBO. Passi da svolgere:

1) Collegarsi a: https://virtuale.unibo.it, utilizzando le proprie credenziali istituzionali UNIBO (email/password) per l’accesso.

2) Scegliere il corso di Basi di dati della Laurea in Informatica per il Management, anno accademico 2020/2021 (codice: 70155).

3) Cliccare su Esercizio Bonus 3 à Consegna File, e procedere con l’upload del file contenente la soluzione dell’esercizio. E’ possibile ripetere l’operazione di upload.

4) Quando si vuole consegnare l’elaborato DEFINITIVO, cliccare su “Consegna Compito”.

Da questo momento, nessun ulteriore upload è possibile. Se non si clicca su “Consegna Compito”, il docente NON vede l’elaborato.

5) La sottomissione è possibile dal 25/11/2020 al 6/12/2020, ore 23.55

COSA CONSEGNARE?

• Allegare un singolo file consegna3.pdf, contenente la soluzione degli esercizi proposti.

---

SPECIFICHE DEL SISTEMA

Si vuole progettare una base di dati per una piattaforma web per la compra-vendita e la gestione di collezioni filateliche (=francobolli). In particolare, si vogliono gestire i dati dei francobolli: ogni francobollo dispone di numero di stampa, paese di emissione, anno e dimensioni. La coppia numero di stampa e paese è univoca per tutti i francobolli presenti nel sistema. Ciascun francobollo può disporre di una lista di foto (nome foto, dimensione) associate. I francobolli possono appartenere esclusivamente a due topologie: usati o nuovi.

Per gli usati, si vuole tenere traccia dello stato di conservazione. Per i nuovi, si vuole tenere

traccia della/e serie tematica (es. francobolli di paesaggi italiani). Ogni serie ha un id

(univoco), un titolo, una descrizione. L’id della serie è una stringa che inizia per S_ e contiene

esattamente 10 caratteri. Ogni francobollo nuovo può appartenere a più serie; quest’ultima

può essere composta da un numero arbitrario (>1) di francobolli nuovi. Inoltre, la piattaforma

gestisce i dati dei collezionisti registrati. Ogni collezionista dispone di email (univoca),

password, data di registrazione, eventuale recapito telefonico. I collezionisti appartengono

esclusivamente a due tipologie: privati o negozi di filatelia. Per i privati, si vuole conoscere

anche il nome e cognome. Per i negozi, si vuole tenere traccia del nome, sito web, ed indirizzo

(via/città/cap). I negozi di filatelia vendono i francobolli nuovi, proponendo un prezzo di

vendita per ciascun pezzo. Il prezzo deve essere sempre maggiore di 1 euro. Si vuole gestire il

listino prezzi di ogni negozio: un francobollo nuovo appartiene esattamente ad un solo listino

(2)

prezzi. Infine, la piattaforma gestisce la compravendita di francobolli usati tra i collezionisti privati. Ogni francobollo usato appartiene esattamente ad un solo collezionista privato.

Inoltre, ogni collezionista privato può inserire una proposta di acquisto per un francobollo usato: la proposta dispone di data, testo e un prezzo stimato, ed ha come destinatario un altro utente collezionista privato (il proprietario del francobollo). Il prezzo stimato deve essere sempre maggiore del prezzo di vendita. Un collezionista privato può inserire più proposte di acquisto per lo stesso francobollo. Un collezionista privato può inserire al massimo una sola risposta per ciascuna proposta d’acquisto: la risposta contiene data, testo, ed esito (accettata/rifiutata). Il testo contiene al massimo 300 caratteri.

---

1) Costruire il modello Entità-Relazione (E-R) della base di dati. Disegnare il diagramma E-R utilizzando il tool JDER (https://gianvitopio.wordpress.com/jder/).

2) Costruire un dizionario delle entità e delle relazioni, a partire dal modello E-R realizzato nel punto 1.

3) Definire la tabella delle business rules, ossia dei vincoli presenti nel documento di specifica NON modellati dal diagramma E-R.

4) Definire l’operazione sui dati che ha il costo più alto:

1. Inserire un francobollo nuovo, ed aggiungerlo ad una serie tematica esistente (Batch, 1 volta/mese).

2. Contare il numero di francobolli nuovi che formano una serie tematica data in input (Interattiva, 2 volte/mese).

3. Rimuovere un francobollo nuovo ed eliminarlo da tutte le serie tematiche di cui fa parte (Batch, 1 volte/mese)

4. Dato un collezionista privato, visualizzare tutte le proposte di acquisto a lui destinate (Interattiva, 2 volte/mese)

Assumendo la seguente tabella dei volumi:

• Ogni serie tematica è composta da 50 francobolli nuovi

• Ogni francobollo nuovo appartiene a 5 serie tematiche

• 3 proposte di acquisto destinate a ciascun collezionista privato

• 20 serie tematiche

Costanti: a (peso operazioni scrittura)=2, w

I

(peso operazioni interattive)=1, w

B

(peso operazioni batch)=0.5

5) Si assume l’esistenza di un attributo “numeroFRANCOBOLLI” associato all’entità SERIE (tematica), che tiene traccia del numero di francobolli nuovi che compongono una serie.

Decidere sulla base dell’analisi dei costi/memoria (considerando le operazioni 1-4 del punto precedente) se la ridondanza debba essere mantenuta o eliminata.

6) Tradurre il diagramma E-R nello schema logico relazionale, indicando i vincoli di integrità referenziale. Nella traduzione di eventuali generalizzazioni (e solo di esse), scegliere l’opzione che minimizzi il numero di potenziali valori NULL nelle tabelle.

(3)

7) Tradurre il diagramma E-R nello schema logico relazionale, indicando i vincoli di integrità referenziale. Nella traduzione di eventuali generalizzazioni (e solo di esse), scegliere l’opzione che minimizzi il numero di tabelle generate.

8) (Opzionale, non oggetto di valutazione) Implementare lo schema del database del punto (6) in MySQL, consentendo le operazioni 1-4 come stored procedures. Allegare alla relazione il codice prodotto.

---

VINCOLI DI CONSEGNA

• La progettazione della base di dati deve essere completa rispetto alle specifiche, e corretta dal punto di vista dell’utilizzo dei costrutti del diagramma E-R.

• Nell’analisi dei costi, giustificare (brevemente) i passaggi seguiti nel calcolo.

• NON sono consentite consegne di gruppo. Consegne multiple (ossia stesse consegne da parte di più studenti) NON sono valutate.

• La consegna deve avvenire attraverso la piattaforma indicata nella prima pagina, ed entro la deadline stabilita. Consegne via email NON saranno valutate.

• L’assegnamento del bonus è una funzione booleana (assegnato/non assegnato).

Riferimenti

Documenti correlati

 dei metodi per costruire la base di dati (come scegliere le tabelle e valutare la qualità).  metodologia

Indicare i dovuti vincoli di integrità su ennuple (durata di un film sempre > 0), vincoli di chiave (uno per ogni tabella), e vincoli di riferimento (film ->

Per studiarne la monotonia e l’esistenza di eventuali punti di massimo, studiamo il segno della derivata prima.. Ne concludiamo che sia a che c

NOTA: Implementare le operazioni sui dati all’interno di una transazione. b) NuovoAbbonamento (IN IdAb INT, IN NomeUtente VARCHAR(50), IN CognomeUtente VARCHAR(50), IN

Importare i documenti presenti nel file farmacie.json (file presente sulla pagina Web del corso) all’interno del database farmacieBO e -nello specifico- all’interno della collezione

Per fortuna l’informatore decide di aiutare ancora l’ispettore fornendogli indizi proprio attraverso il computer. Il numero

Finalmente arrivano informazioni sul complice della Signora Violet, l’abilissima ladra arrestata da Numerik.. Gli indizi sono contenuti in una busta chiusa: l’ispettore Numerik la

(c) gli atleti che hanno partecipato ad un soprainsieme proprio delle edizioni della maratona di New York alle quali ha partecipato l’atleta MLNSBS86H14L666H (si assuma