ESAME DI STATO ANNO 2003
Un vivaio vuole realizzare una base di dati per gestire le sue attività di vendita di piante e le sue attività esterne.
Si vogliono memorizzare. Oltre alle informazioni generali sulle diverse specie di piante, anche quelle relative alle specifiche piante presenti nel vivaio.
Di ogni specie deve essere registrato il nome, un'immagine, una breve descrizione, informazione relative al modo di coltivazione e alle caratteristiche dell'esposizione ed infine se si tratta di pianta da interno o da esterno.
Si vogliono inoltre registrare i dati relativi alle piante effettivamente presenti nel vivaio, raggruppate per specie, eventualmente suddivise in diversi tipi in base al prezzo di vendita. Per ogni specie (o per ogni tipo, se la specie è suddivisa in tipi), è necessario registrare il numero di esemplare presenti nel vivaio e il costo di ogni esemplare.
Si vogliono inoltre gestire le informazioni relative al personale che lavora nel vivaio (agronomi, operai, amministrativi) registrando i dati anagrafici, la qualifica e, per gli agronomi, l'anno di assunzione nel vivaio. Ogni singola specie del vivaio è sotto la responsabilità di un agronomo.
Le attività esterne del vivaio, quali ad esempio la potatura o la manutenzione dei giardini, sono svolte dal personale in base alla qualifica (in generale ogni lavoratore è in grado di svolgere più di un'attività) e sono caratterizzate da un codice, da un nome, da un costo orario.
Per le attività esterne si vogliono mantenere tutte le informazioni relative ai clienti che richiedono le attività, in particolare se si tratta di privati o di aziende, la data di prenotazione e quella di effettuazione dell'intervento richiesto e se per l'intervento sono necessarie piante del vivaio.
Il candidato consideri la situazione sopra descritta, precisi eventuali ipotesi aggiuntive e realizzi:
un'analisi della realtà di riferimento che illustri le premesse per i successivi passi della progettazione della base di dati;
uno schema concettuale sulla base di dati;
uno schema logico sulla base di dati;
la definizione delle relazioni della base di dati in linguaggio SQL;
le seguenti interrogazioni espresse in linguaggio SQL:
1.dato il nome di una pianta, riportare quanti esemplari di quella pianta sono presenti nel vivaio;
2.dato il nome di una stagione, visualizzare il nome delle piante che fioriscono in quella stagione;
3.dato il nome di un intervento esterno, tra quelli previsti nel vivaio, riportare il nome e il telefono dei soggetti che hanno richiesto quell'intervento nel corso di un determinato anno solare;
4.dato il nome di un agronomo, riportare quanti esemplari di piante sono sotto la sua responsabilità;
5.visualizzare nome, descrizione e quantità di esemplari presenti nel vivaio, della pianta più economica da interno;
6.riportare nome degli interventi richiesti non ancora evasi con il nome e il telefono del richiedente.
Il candidato sviluppi inoltre, a scelta uno dei seguenti moduli:
Si vuole realizzare un sito Internet che presenti al pubblico il vivaio illustrandone i prodotti e le diverse attività.
Si vuole consentire la gestione delle attività esterne del vivaio attraverso una prenotazione online da parte dei clienti. Illustrare le modalità di realizzazione di questa funzione e gli strumenti tecnici adottabili.
Visualizzazione post con etichetta Progetto per Maturità. Mostra tutti i post
Visualizzazione post con etichetta Progetto per Maturità. Mostra tutti i post
domenica 24 maggio 2009
ANALISI
Argomento:
Progetto per Maturità
Dopo aver letto la traccia e dopo aver fatto gli opportuni ragionamenti ho individuato le 5 entità fondamentali per la realizzazione del progetto:
Specie_esistenti che mi servirà per raggruppare tutte le specie di piante esistenti nel mondo alle quali attribuirò un nome, un'immagine (link), una breve descrizione, eventuali informazioni sulla coltivazione, ho ipotizzato inoltre che una specie può contenere piante o solo da interno o solo da esterno;
Piante_vivaio che utilizzo per memorizzare tutte le piante presenti nel vivaio suddivise per nome, tipo, prezzo, stagione_fioritura e numero di esemplari presenti;
Personale che conterrà tutti i dati relativi ai dipendenti del vivaio (compresi gli agronomi) suddivisi per nome, cognome, data di nascita, qualifica, anno di assunzione;
Attività_esterne che verrà utilizzata per tracciare tutte le attività esterne al vivaio che possono essere effettuate, divise per nome, codice, costo;
Clienti, ho ipotizzato che il cliente debba esistere nel momento in cui effettua una richiesta di intervento quindi in questa entità sarà presente: tipo di utente (se privato o azienda), nome, telefono, giorno_prenotazione, mese_prenotazione, anno_prenotazione (così suddivisi per comodità di query), data di effettuzione dell'intervento.
Specie_esistenti che mi servirà per raggruppare tutte le specie di piante esistenti nel mondo alle quali attribuirò un nome, un'immagine (link), una breve descrizione, eventuali informazioni sulla coltivazione, ho ipotizzato inoltre che una specie può contenere piante o solo da interno o solo da esterno;
Piante_vivaio che utilizzo per memorizzare tutte le piante presenti nel vivaio suddivise per nome, tipo, prezzo, stagione_fioritura e numero di esemplari presenti;
Personale che conterrà tutti i dati relativi ai dipendenti del vivaio (compresi gli agronomi) suddivisi per nome, cognome, data di nascita, qualifica, anno di assunzione;
Attività_esterne che verrà utilizzata per tracciare tutte le attività esterne al vivaio che possono essere effettuate, divise per nome, codice, costo;
Clienti, ho ipotizzato che il cliente debba esistere nel momento in cui effettua una richiesta di intervento quindi in questa entità sarà presente: tipo di utente (se privato o azienda), nome, telefono, giorno_prenotazione, mese_prenotazione, anno_prenotazione (così suddivisi per comodità di query), data di effettuzione dell'intervento.
DEFINIZIONE RELAZIONI IN SQL
Argomento:
Progetto per Maturità
CREATE TABLE SPECIE ( IDS integer auto increment,
NOME varchar (10) not null,
LINK_IMMAGINE varchar (50),
INFO varchar (50),
PRIMARY_KEY (IDS) );
CREATE TABLE PIANTE ( IDP integer auto increment,
NOME varchar (10) not null,
TIPO varchar (10) not null,
PREZZO integer not null,
STAGIONE_FIORITURA varchar (10) not null,
NUMERO_ESEMPLARI integer not null,
IDS integer not null,
IDPE integer not null,
PRIMARY_KEY (IDP),
FOREIGN KEY (IDS) references SPECIE (IDS),
FOREIGN KEY (IDPE) references SPECIE (IDPE) );
CREATE TABLE CLIENTI ( IDC integer auto increment,
TIPO varchar (10) not null,
NOME varchar (10) not null,
TELEFONO varchar (10) not null,
GIORNO_PRENOTAZIONE integer not null,
MESE_PRENOTAZIONE varchar (10) not null,
ANNO_PRENOTAZIONE integer not null,
DATA_INTERVENTO varchar (10),
EVASIONE varchar (10) not null,
PRIMARY_KEY (IDC) );
CREATE TABLE PERSONALE ( IDPE integer auto increment,
NOME varchar (10) not null,
COGNOME varchar (10) not null,
DATA_NASCITA varchar (10) not null,
QUALIFICA varchar (10) not null,
ANNO_ASSUNZIONE integer not null,
PRIMATY_KEY (IDPE) );
CREATE TABLE ATTIVITA ESTERNE ( IDA integer auto increment,
NOME varchar (10) not null,
CODICE varchar (10) not null,
COSTO integer not null,
PRIMARY_KEY (IDA) );
CREATE TABLE RICHIEDE ( IDC integer not null,
IDP integer not null,
FOREIGN KEY (IDC) references CLIENTI (IDC),
FOREIGN KEY (IDP) references PIANTE (IDP) );
CREATE TABLE SVOLGE ( IDA integer not null,
IDPE integer not null,
FOREIGN KEY (IDA) references ATTIVITA ESTERNE (IDA),
FOREIGN KEY (IDPE) references PERSONALI (IDPE) );
CREATE TABLE RICHIESTA ( IDC integer not null,
IDA integer not null,
FOREIGN KEY (IDC) references CLIENTI (IDC),
FOREIGN KEY (IDA) references ATTIVITA ESTERNE (IDA) );
NOME varchar (10) not null,
LINK_IMMAGINE varchar (50),
INFO varchar (50),
PRIMARY_KEY (IDS) );
CREATE TABLE PIANTE ( IDP integer auto increment,
NOME varchar (10) not null,
TIPO varchar (10) not null,
PREZZO integer not null,
STAGIONE_FIORITURA varchar (10) not null,
NUMERO_ESEMPLARI integer not null,
IDS integer not null,
IDPE integer not null,
PRIMARY_KEY (IDP),
FOREIGN KEY (IDS) references SPECIE (IDS),
FOREIGN KEY (IDPE) references SPECIE (IDPE) );
CREATE TABLE CLIENTI ( IDC integer auto increment,
TIPO varchar (10) not null,
NOME varchar (10) not null,
TELEFONO varchar (10) not null,
GIORNO_PRENOTAZIONE integer not null,
MESE_PRENOTAZIONE varchar (10) not null,
ANNO_PRENOTAZIONE integer not null,
DATA_INTERVENTO varchar (10),
EVASIONE varchar (10) not null,
PRIMARY_KEY (IDC) );
CREATE TABLE PERSONALE ( IDPE integer auto increment,
NOME varchar (10) not null,
COGNOME varchar (10) not null,
DATA_NASCITA varchar (10) not null,
QUALIFICA varchar (10) not null,
ANNO_ASSUNZIONE integer not null,
PRIMATY_KEY (IDPE) );
CREATE TABLE ATTIVITA ESTERNE ( IDA integer auto increment,
NOME varchar (10) not null,
CODICE varchar (10) not null,
COSTO integer not null,
PRIMARY_KEY (IDA) );
CREATE TABLE RICHIEDE ( IDC integer not null,
IDP integer not null,
FOREIGN KEY (IDC) references CLIENTI (IDC),
FOREIGN KEY (IDP) references PIANTE (IDP) );
CREATE TABLE SVOLGE ( IDA integer not null,
IDPE integer not null,
FOREIGN KEY (IDA) references ATTIVITA ESTERNE (IDA),
FOREIGN KEY (IDPE) references PERSONALI (IDPE) );
CREATE TABLE RICHIESTA ( IDC integer not null,
IDA integer not null,
FOREIGN KEY (IDC) references CLIENTI (IDC),
FOREIGN KEY (IDA) references ATTIVITA ESTERNE (IDA) );
INTERROGAZIONI IN LINGUAGGIO SQL
Argomento:
Progetto per Maturità
1)SELECT NUMERO_ESEMPLARI
FROM PIANTE
WHERE PIANTE.NOME = 'nome_pianta'
2)SELECT PIANTE.NOME
FROM PIANTE
WHERE STAGIONE_FIORITURA = 'nome_stagione'
3)SELECT CLIENTI.NOME, CLIENTI.TELEFONO
FROM CLIENTI, ATTIVITA_ESTERNE, RICHIESTA
WHERE CLIENTI.IDC = (
SELECT RICHIESTA.IDL
FROM RICHIESTA, ATTIVITA_ESTERNE
WHERE ATTIVITA_ESTERNE.NOME = 'nome_intervento'
AND ATTIVITA_ESTERNE.IDA = RICHIESTA.IDA
AND ANNO_PRENOTAZIONE = 'anno_richiesta_intervento')
4)SELECT PERSONALE.NOME, COUNT (NUMERO_ESEMPLARI)
FROM PERSONALE, PIANTE
GROUP BY NUMERO_ESEMPLARI
HAVING PERSONALE.NOME = 'nome_agronomo'
AND PIANTE.IDPE = PERSONALE.IDPE
5)SELECT PIANTE.NOME, SPECIE.INFO, PIANTE.NUMERO_ESEMPLARI, MIN(PREZZO)
FROM PERSONALE, PIANTE
GROUP BY PREZZO
HAVING SPECIE.TIPO = “interno” AND PIANTE:IDS = SPECIE.IDS
6)SELECT ATTIVITA_ESTERNE.NOME, CLIENTI.NOME, TELEFONO
FROM CLIENTI, RICHIESTA, ATTIVITA_ESTERNE
WHERE EVASIONE = “non evaso”
AND ATTIVITA_ESTERNE.IDA = RICHIESTA.IDA
AND RICHIESTA.IDC = CLIENTI.IDC
FROM PIANTE
WHERE PIANTE.NOME = 'nome_pianta'
2)SELECT PIANTE.NOME
FROM PIANTE
WHERE STAGIONE_FIORITURA = 'nome_stagione'
3)SELECT CLIENTI.NOME, CLIENTI.TELEFONO
FROM CLIENTI, ATTIVITA_ESTERNE, RICHIESTA
WHERE CLIENTI.IDC = (
SELECT RICHIESTA.IDL
FROM RICHIESTA, ATTIVITA_ESTERNE
WHERE ATTIVITA_ESTERNE.NOME = 'nome_intervento'
AND ATTIVITA_ESTERNE.IDA = RICHIESTA.IDA
AND ANNO_PRENOTAZIONE = 'anno_richiesta_intervento')
4)SELECT PERSONALE.NOME, COUNT (NUMERO_ESEMPLARI)
FROM PERSONALE, PIANTE
GROUP BY NUMERO_ESEMPLARI
HAVING PERSONALE.NOME = 'nome_agronomo'
AND PIANTE.IDPE = PERSONALE.IDPE
5)SELECT PIANTE.NOME, SPECIE.INFO, PIANTE.NUMERO_ESEMPLARI, MIN(PREZZO)
FROM PERSONALE, PIANTE
GROUP BY PREZZO
HAVING SPECIE.TIPO = “interno” AND PIANTE:IDS = SPECIE.IDS
6)SELECT ATTIVITA_ESTERNE.NOME, CLIENTI.NOME, TELEFONO
FROM CLIENTI, RICHIESTA, ATTIVITA_ESTERNE
WHERE EVASIONE = “non evaso”
AND ATTIVITA_ESTERNE.IDA = RICHIESTA.IDA
AND RICHIESTA.IDC = CLIENTI.IDC
SITO DI PRESENTAZIONE
Argomento:
Progetto per Maturità
<HTML>
<HEAD>
<TITLE>
Vivaio e dintorni
</TITLE>
</HEAD>
<BODY>
<P>
Il nostro vivaio offe diverse specie de diverse tipologie di piante, di seguito alcune foto rappresentative
</P> <BR> <BR>
<DIV>
<IMG SRC = “FOTO1”>
</DIV>
<DIV>
<IMG SRC = “FOTO2”>
</DIV>
<DIV>
<IMG SRC = “FOTO3”>
</DIV> <BR> <BR>
<P>
Inoltre offriamo molti servizi come potatura e trattamento del vostro giardino
</P> <BR>
<DIV>
Rose = 4 $ <BR>
Ciclamini = 7 $ <BR>
Potatura = 30 $ a ora <BR>
Manutenzione giardino = 50 $ a ora
</DIV>
</BODY>
</HTML>
Iscriviti a:
Post (Atom)
