domenica 24 maggio 2009
INTERROGAZIONI IN LINGUAGGIO SQL
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
<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>
venerdì 22 maggio 2009
Ragionando sulla traccia
- Atleti
- Squadre
- Gare
- Fasi
- Istituti
- Calendari
- Sedi
- Punteggi
- Come avviene una gara? Attribuzione di tempo e di prove da sostenere
- In cosa consiste una gara? una serie di prove basate su : test, quiz, relazione, progetto, trattamento di un argomento
- In cosa consistono le fasi? una serie di gare; tali gare si possono ripetere in ogni fase?
- In cosa consiste il calendario? la programmazione delle gare nelle varie fasi in termini di: data, orario, tipo di gara, luogo dove avverrà la gara, squadre che parteciperanno alla gara
- Come gestire e distinguere le gare per squadre e le gare per singoli? un'ipotesi potrebbe essere quella di considerare anche i singoli come squadra, aggiungendo ad esempio un attributo: numero componenti della squadra
- come gestire i record? Un'ipotesi potrebbe essere quella di utilizzare un attributo che memorizzi il record prima di una gara.
Entità
Le entità individuate potrebbero essere le seguenti
- Atleti: contiene tutte le informazioni relative all'anagrafica degli atleti con aggiunto l'attributo età
- Squadre: come già anticipato, ipotizzeremo che le squadre possano essere composte anche da un unico atleta e si ipotizzerà la presenza di un attributo: Numero di Componenti. In questo modo anche gli atleti che parteciperanno alle gare saranno assimilati ad una squadra
- Fasi: sarà caratterizzata da: luogo data inizio descrizione della fase
- Gare: verranno descritte ed identificate, come già detto verrà aggiunto un attributo: Punteggio Record
- Istituti: contiene tutte le informazioni anagrafiche degli istituti che partecipano alle competizioni comprese le informazioni geografiche: città provincia regione stato, considerando che i paesi internazionali potrebbero non avere tutti la stessa organizzazione geografica verrà preso il dettaglio di quella italiana prevedendo l'attribuzione di valori NULL.
- Si potrebbe anche ipotizzare l'entità prove da associare ad ogni gara, ma di questo non viene fatto esplicito riferimento
Le possibili associazioni potrebbero essere:
- Calendario: di tipo ternaria che lega le entità: Gare, Squadre,Fasi, con gli attributi: data, orario che ne individuano l'evento
- Appartenere: di tipo binario che lega le entità Atleti Squadre
- Provenire: di tipo binario che lega le entità Atleti Scuole
Prima di procedere vi suggerisco di verificare se lo schema individuato soddisfa le specifiche richieste delle query
analisi su traccia di maturità 2007/08
Abrescia Dario
Cosenza Ivan
Lasorsa Ivan
Monguzzi Andrea
Ranieri Angelo
Anno 2007/2008 (traccia sulle olimpiadi di informatica)
ANALISI:
I concetti significativi rilevati dopo l'analisi sono:
-Atleti
-Gare
-Squadre
-Fasi
-Sedi
-Punteggio
-Calendario
-Punteggi record
Le entità emergenti dopo un'attenta analisi sono:
-Atleti
-Gare
-Squadre
Dopo un'approfondita lettura del testo si è optato per un legame N a N tra le entità "Atleti" e "Gare"
in modo da rappresentare il concetto di calendario. Quest'ultimo è più indicato a favorire una corretta
panoramica degli atleti, delle gare a cui hanno partecipato e dei punteggi ottenuti.
Si vuole inoltre ipotizzare l'entità "Squadre" che comunque non risulta obbligatoria per la partecipazione alle gare
dei singoli atleti.
Si ipotizzando le seguenti relazioni:
-partecipazione
-raggruppamento
Dalla lettura del testo si evince che gli atleti potranno partecipare alle gare sia singolarmente che in gruppo.
Si può ipotizzare che gli atleti ed eventualmente le rispettive squadre parteciperanno ad almeno una gara.
Ipotesi aggiuntive:
-le fasi del torneo sono attributi dell'entità gare e potranno assumere solo i valori "scolastica", "regionale", "nazionale",
"internazionale".
-per evitare situazioni di ridondanza "punteggio" sarà attributo della relazione partecipazione.
-per stabilire l'effetiva età dei partecipanti verrà probabilmente memorizzata la corrispondente data di nascita.
venerdì 15 maggio 2009
Traccia Maturità A.S. 2006/07
Il negozio richiede che:
• il Catalogo dei libri sia organizzato per:
− Reparti (in ordine alfabetico: architettura e urbanistica, arte, classici greci e latini, cucina e casa, diritto, economia e management, fantascienza e fantasy, filosofia, fumetti, ...)
• ciascun Reparto sia organizzato in libri:
− “Da non perdere” caratterizzati da uno sconto del 20% sul prezzo di copertina
− “I più venduti” caratterizzati dal maggior numero di copie vendute negli ultimi 30 giorni
− “Ultimi arrivi” caratterizzati dai titoli aggiunti negli ultimi 30 giorni
− “Offerte speciali” caratterizzate da uno sconto del 25% sul prezzo di copertina
− “Remainders” caratterizzati da uno sconto del 50% sul prezzo di copertina
• ciascun libro in negozio sia archiviato con le seguenti ulteriori informazioni:
− titolo, autore, prezzo di copertina, sconto (eventuale), dati (numero di pagine, rilegato, ...), anno di pubblicazione, editore, collana, immagine (foto della copertina), data di archiviazione
• gli utenti abilitati all’acquisto on line siano registrati con i seguenti dati:
− nome e cognome, indirizzo, codice di avviamento postale, città, nazione, telefono, fax, e-mail, password, numero di carta di credito, tipo di carta di credito (Visa, CartaSi, Mastercard, ...), data di scadenza della carta di credito
• gli utenti possano chiedere, in fase di acquisto, che il negozio emetta fattura
• il Carrello Acquisti sia organizzato come segue:
− numero di copie acquistate, titolo, autore, prezzo, disponibilità (giorni, settimane, ...), togli dal carrello (casella di spunta)
• il riepilogo degli ordini sia organizzato come segue:
− data dell’ordine, numero d’ordine
− dettagli dell’ordine (riferimento articolo, quantità, titolo, prezzo di copertina, prezzo scontato, stato dell’ordine, evasione prevista dalla data dell’ordine).
Il candidato, dopo aver fatto le eventuali ipotesi aggiuntive:
a. Fornisca:
1. lo schema concettuale e lo schema logico del database
2. la definizione delle relazioni in linguaggio SQL.
b. Implementi le seguenti query:
1. Ricerca per Reparto: scelto un Reparto, il numero di libri “Da non perdere” ed il numero di libri “I più venduti” con i relativi dettagli
2. Ordini: gli ordini in corso, con dettagli, di un dato utente.
c. Scriva in un linguaggio lato server, il codice di almeno una delle seguenti pagine del portale:
1. con accesso libero, la pagina utile a visualizzare i Reparti e, per ciascun reparto, la pagina che implementa la query n. 1;
2. con accesso riservato agli utenti registrati, la composizione degli ordini in corso.
Analisi e ipotesi aggiuntive
Viene richiesto di progettare e realizzare un database che contenga le informazioni necessarie per la vendita on line di libri a utenti registrati.
Libri e Utenti risultano quindi le entità principali del sistema informatico che si andrà a realizzare.
per i libri sono richiesti:
suddivisione in reparti (architettura e urbanistica, arte, classici greci e latini ...) .
Pur se non esplicitamente evidenziato risulta plausibile ipotizzare che un libro faccia parte di un solo repartoulteriore suddivisione dei Reparti in Categorie, nel testo viene utilizzato il termine "libri" che sostituiamo con "categoria", in alternativa, potremmo utilizzare anche il termine "segnalati" per evitare ambiguità, ("Da non perdere", "I più venduti" ...); ogni segnalazione o categoria ha una caratterizzazione che può riguardare la tipologia di sconto proposto, il numero di copie vendute o la data di pubblicazione e inserimento in catalogo.
Anche in questo caso non viene esplicitamente definito il fatto che un libro possa appartenere a una sola o a più categorie, equivalentemente, non viene esplicitato se ad uno stesso libro possano essere applicate segnalazioni differenti ; nella nostra proposta daremo la possibilità di inserire un libro in più di una categoria (possa ricevere più segnalazioni) pensando che, per esempio, un libro possa appartenere contemporaneamente alla categoria "Da non perdere" e "I più venduti"per ogni libro vengono inoltre definite in modo preciso le caratteristiche che dovranno essere inserite nella base di dati
In particolare analizziamo:lo sconto che ipotizziamo non strettamente legato alla categoria ( o segnalazione) di appartenenza
una serie di dati non particolarmente strutturati (numero di pagine, tipo di rilegatura ...) che rappresentiamo in un unico attributo generico testuale sul quale non sarà prevista nessuna operazione particolare. In caso contrario, i dati andrebbero distribuiti su campi separati
le fotografie delle copertine dei libri saranno memorizzate in file esterni al database all'interno del quale sarà inserito un riferimento a tali file.
Anche per gli utenti vengono definite in modo preciso le caratteristiche che dovranno essere inserite nella base di dati.
Nessuna caratteristica pone particolari problemi di gestione. Ci sentiamo solo in dovere di precisare che il numero di carta di credito di ogni utente è un dato estremamente sensibile che andrebbe trattato con opportune procedure che ne garantiscano la sicurezza (tale problema esula però dalle richieste formulate nel testo)
Ad ogni utente, ad ogni nuovo accesso al negozio on line, sarà assegnato un carrello acquisti virtuale nel quale inserire i libri selezionati che potranno poi essere confermati (tutti, o in parte) per dar luogo a un ordine di acquisto.
Ulteriori ipotesi
Nella definizione del carrello acquisti il testo parla di "disponibilità" (giorni, settimane ...), tale dato verrà fornito per ogni singolo libro nel database
Descrizione Entità Associazioni
Commento al diagramma:
Entità REPARTO
Descrizione: rappresenta la suddivisione in reparti del catalogo della libreria.
Codice reparto è attributo chiave, Nome reparto è la descrizione (architettura e urbanistica, arte …)
Entità CATEGORIA
Descrizione: rappresenta le categorie a cui appartengono i libri.
Codice categoria è attributo chiave, Descrizione è la descrizione della categoria (“Da non perdere”, “I più venduti” …) Note permette di inserire un commento (“Sconto del 20%” …)
Entità LIBRO
Descrizione: rappresenta i libri presenti nel catalogo.
Codice libro è attributo chiave, Dati è un attributo che raggruppa informazioni varie (numero di pagine, tipo di rilegatura ...), Disponibilità è un attributo testuale utilizzato in fase di ordine; gli altri attributi sono di chiara interpretazione.
Associazione Catalogato
Descrizione: associa un libro ad un reparto.
Associazione Appartiene
Descrizione: associa un libro a varie categorie.
Entità UTENTE
Descrizione: rappresenta gli utenti registrati che possono effettuare acquisti.
Codice utente è attributo chiave, l’attributo Indirizzo è composto da città, via, numero civico ecc., gli altri attributi sono di chiara interpretazione.
Entità ORDINE
Descrizione: rappresenta gli ordini di acquisto effettuati dagli utenti.
Numero Ordine è attributo chiave, l’attributo Stato indica se l’ordine è evaso o da evadere, l’attributo Richiesta Fattura indica se l’utente ha richiesto fattura in fase di emissione d’ordine.
Associazione Incluso nel carrello
Descrizione: associa i libri agli utenti e rappresenta il carrello acquisti che l’utente “riempie” ogni volta che accede al sito del negozio virtuale.
Numero Copie è un attributo dell’associazione e rappresenta il numero di copie di un certo libro che l’utente ha inserito nel carrello, l’attributo Eliminato è utilizzato per eliminare il libro dal carrello ed evitare così di inserirlo nell’ordine.
Associazione Effettua
Descrizione: associa un utente ai suoi ordini d’acquisto.
L’associazione E’ incluso
Descrizione: associa un libro ad un ordine.
L’attributo Numero Copie indica il numero di copie di un libro inserite in un ordine.