Lezione 2
Problema
Si vuole tenere traccia di tutti i capi di abbigliamento in possesso di una certa persona e per ciascun capo si vuole accedere ai seguenti dati: descrizione, foto, tipologia, data di acquisto e prezzo. La tipologia del capo di abbigliamento deve essere una delle seguenti voci: maglia, pantaloni, pantaloncini, camicia, giacca, scarpe, felpa, maglione, gonna, ciabatte. Il database sarà utilizzato da un’applicazione che avrà lo scopo di tenere traccia della quantità di giorni durante i quali l’utente ha già indossato un certo capo d’abbigliamento al fine di stabilire quando lo stesso dovrà essere messo a lavare.
Schema Concettuale: ER
Nota.
Indichiamo che un attributo può assumere valori da un dominio specifico con i puntini sospensivi in parentesi. Nel nostro esempio l'insieme di riferimento potrebbe essere: (maglia, pantaloni, pantaloncini, camicia, giacca, scarpe, felpa, maglione, gonna, ciabatte).
Nota.
Nei database esiste anche il tipo data.
Schema logico: relazionale
capiDiAbbigliamento (id, descrizione, foto, tipologia, data, prezzo, totGiorni)
Esempio di istanza
id | descrizione | foto | tipologia | data | prezzo | totGiorni |
---|---|---|---|---|---|---|
1 | raduno vasco | \img\mr.png | maglia | '2014-8-15' | 0 | 2 |
2 | tasconi nero | \img\tn.png | pantaloncini | '2013-7-11' | 35 | 0 |
3 | converse all star | \img\cas.png | scarpe | '2014-6-5' | 70 | 50 |
4 | zip grigia cappuccio | \img\zgc.png | felpa | '2013-7-5' | 45 | 12 |
5 | breaking bad | \img\bb.png | maglia | '2014-6-8' | 30 | 0 |
6 | quadroni | \img\q.png | camicia | '2008-10-10' | 10 | 0 |
Interrogazione - 1
Mostrare la descrizione di tutti i capi puliti.
from capiDiAbbigliamento
where totGiorni=0
descrzione |
---|
tasconi nero |
breaking bad |
quadroni |
Interrogazione - 2
Mostrare descrizione e tipologia di tutti i capi con un prezzo compreso tra i 20 e i 50 euro
from capiDiAbbigliamento
where (prezzo>=20)and(prezzo<=50)
descrizione | tipologia |
---|---|
tasconi nero | pantalancini |
zip grigia cappuccio | felpa |
breaking bad | maglia |
Interrogazione - 3
Selezionare l’id di tutti i capi usati almeno una volta ma meno di venti.
from capiDiAbbigliamento
where (totGiorni>0) and (totGiorni<20)
id |
---|
1 |
4 |
Interrogazione - 4
Selezionare le descrizioni di tutte le tuple con id pari a 4, 5 o 6.
from capiDiAbbigliamento
where (id=4) or (id=5) or (id=6)
descrizione |
---|
zip grigia con cappuccio |
breaking bad |
quadroni |
Nota.
Il termine riga può essere sostituito con tupla o ennupla.
Interrogazione - 5
Mostrare la descrizione e la tipologia di tutte le maglie e le camicie indossate da almeno 2 giorni.
from capiDiAbbigliamento
where ( (totGiorni>=2) and ( (tipologia='maglia') or (tipologia='camicia') ) )
descrizione | tipologia |
---|---|
raduno vasco | maglia |
Interrogazione - 6
Mostrare tipologia e descrizione di tutte le ennuple relative ai capi che non ci sono stati regalati.
from capiDiAbbigliamento
where (prezzo != 0)
tipologia | descrizione |
---|---|
pantaloncini | tasconi nero |
scarpe | converse all star |
felpa | zip grigia cappuccio |
maglia | breaking bad |
camicia | quadroni |
Nota.
Il simbolo di diverso è != oppure <>
Interrogazione - 7
Mostrare la descrizione di tutti gli oggetti comprati nel 2014.
from capiDiAbbigliamento
where (data >= '2014-01-01') and
(data <= '2014-12-31') and
(prezzo > 0)
descrizione |
---|
converse all star |
breaking bad |
Nota.
Le costanti di tipo data si indicano tra apici descrivendo prima l'anno, poi il mese e poi il giorno separando gli elementi con un trattino.
Challenge
Challenge - 1
Aggiungere all’istanza di database mostrata altre sei tuple.
Challenge - 2
Qual è il risultato di questa interrogazione applicata all'istanza di database appena costruita?
from capiDiAbbigliamento
where id < 7
Challenge - 3
Qual è il risultato di questa interrogazione applicata all'istanza di database appena costruita?
from capiDiAbbigliamento
where (tipologia != 'scarpe') and (prezzo>30)
Challenge - 4
Scrivere l’interrogazione che presenti l’elenco delle immagini delle maglie che costano almeno 20 euro.
Challenge - 5
Scrivere l’interrogazione che presenti tutti i dati della tupla relativa alla maglia di breaking bad.
Challenge - 6
Scrivere l’interrogazione che presenti l’elenco dei capi di abbigliamento (descrizione, tipologia e data di acquisto) comprati prima del 2010.
Challenge - 7
Scrivere l’interrogazione che presenti foto e prezzo di tutte le maglie, di tutte le camicie e di tutte le giacche presenti nel database.