Farmacia
Scrivere un DB per gestire le informazioni relative ad una farmacia con le seguenti specificazioni:
- i prodotti della farmacia sono caratterizzati da un nome e dalla casa farmaceutica di produzione
- ciascun farmaco è indicato per la cura di una o più malattie e controindicato per altre
- ogni farmaco è venduto in una o più confezioni di vendita ad un certo prezzo
- ciascun farmaco contiene un solo principio attivo in una certa quantità. un principio attivo può essere presente in farmaci diversi
- di ciascun farmaco occorre registrare la giacenza nel magazzino della farmacia
È richiesto
- Elencare tutti i farmaci che curano la bronchite
- Elencare i farmaci per una persona affetta da bronchite e diabete
- Elencare i nomi dei farmaci e le rispettive case farmaceutiche con giacenza in farmacia inferiore ad una soglia minima S
- Elencare tutti i farmaci contenenti il principio attivo benzetonio-cloruro venduti ad un prezzo inferiore a € 20
- Calcolare e visualizzare il valore di tutti i farmaci contenuti in farmacia
Modello E-R
Ipotesi
Confezione
potrebbe essere rappresentata con una relazione IS-A ma le modalità di confezionamento sono tante e senza ulteriori caratteristiche. Per questo motivo si sceglie direttamente la riduzione alla super-classe.
- L’entità
PrincipioAttivo
contiene solo la chiave ed è in relazione 1:n conFarmaco
. Si elimina l’entitàPrincipioAttivo
e l’informazione viene inglobata nelFarmaco
Modello Logico
Farmaco(nomeF, quantitàPA, casaF, principioAttivo, unitàMisura)
Malattia(nomeM, descrizione)
indicazione(nomeM, nomeF, quantitàPA)
con v.i.r. di nomeM con nomeM di Malattia
con v.i.r. di nomeF con nomeF di Farmaco
con v.i.r. di quantitàPA con quantitàPA di Farmaco
controindicazione(nomeM, nomeF, quantitàPA)
con v.i.r. di nomeM con nomeM di Malattia
con v.i.r. di nomeF con nomeF di Farmaco
con v.i.r. di quantitàPA con quantitàPA di Farmaco
Confezione(tipo, indicazione)
Prodotto(nomeF, quantitàPA, tipo, quantità, prezzo)
con v.i.r. di nomeF con nomeF di Farmaco
con v.i.r. di quantitàPA con quantitàPA di Farmaco
con v.i.r. di tipo con tipo di Confezione
Modello Fisico
Richieste
- Elencare tutti i farmaci che curano la bronchite
SELECT nomeF FROM indicazione WHERE nomeM='bronchite';
- Elencare i farmaci per una persona affetta da bronchite e diabete
SELECT nomeF FROM indicazione WHERE nomeM='bronchite' OR nomeM='diabete';
- Elencare i nomi dei farmaci e le rispettive case farmaceutiche con giacenza in farmacia inferiore ad una soglia minima S
SELECT nomeF, casaF FROM indicazione f, Prodotto p WHERE f.nomeF=p.nomeF AND f.quantitàPA=p.quantitàPA AND p.quantità<'input'
- Calcolare e visualizzare il valore di tutti i farmaci contenuti in farmacia
SELECT SUM(quantità*prezzo) AS totale FROM Prodotto;
- Elencare tutti i farmaci contenenti il principio attivo benzetonio-cloruro venduti ad un prezzo inferiore a € 20
SELECT f.* FROM Farmaco f, Prodotto p WHERE f.nomeF=p.nomeF AND f.quantitàPA=p.quantitàPA AND f.principioAttivo='benzetonio-cloruro' AND p.prezzo<20;