• Non ci sono risultati.

PARTE TEORICA Risposta alla domanda di teoria.Cercare di non uscire fuori traccia.

N/A
N/A
Protected

Academic year: 2021

Condividi "PARTE TEORICA Risposta alla domanda di teoria.Cercare di non uscire fuori traccia."

Copied!
3
0
0

Testo completo

(1)

Suddividere la soluzione della prova nelle voci mostrate nella soluzione del 2009 aggiungendo eventualmente qualche esempio di create ed il disegno delle tabelle(con qualche esempio di valori inseriti)

Le parti che compongono la soluzione saranno le seguenti:

PARTE TEORICA

Risposta alla domanda di teoria.Cercare di non uscire fuori traccia.

PROGETTO BASE DATI

ANALISI DEL PROBLEMA

Dall'analisi del problema emerge la necessità di registrare informazioni riguardanti....

Ipotesi effettuate per le entità e i loro attributi

SCHEMA CONCETTUALE(DIAGRAMMA ENTITÀ/RELAZIONI):

Entità:

Le entità individuate dall'analisi del problema sono:

descrizione delle entità e degli attributi per ogni entità e ipotesi effettuate nella scelta

Associazioni:

Le associazioni tra le suddette entità sono:

descrizione di tutti i tipi di associazione riscontrati e ipotesi effettuate nella scelta

Modello E/R:

Il modello E/R ricavato è pertanto il seguente:

disegno del diagramma E/R(con attributi)

SCHEMA LOGICO (MODELLO RELAZIONALE):

Lo schema concettuale elaborato può essere tradotto nel seguente schema logico(di tipo relazionale) utilizzando le regole di derivazione studiate:

Tabelle:

Elenco delle tabelle con la specifica degli attributi tra parentesi( sottolineare la chiave primaria 2 volte e le chiavi esterne 1 volta).

Si utilizzano identificativi numerici autoincrementanti come chiavi primarie, nelle associazioni 1-N si introduce una chiave esterna lato N, mentre in quelle N-N vi è una tabella aggiuntiva con la coppia di chiavi esterne.

Per ridurre il tempo necessario alle interrogazioni verranno definiti degli indici su alcuni campi.

(2)

Verranno inoltre specificati vincoli referenziali per tenere conto delle associazioni presenti.

Per quanto riguarda i vincoli di dominio questi se necessari verranno specificati lato server (attraverso opportuni script PHP) in quanto per l'ambiente utilizzato (RDBMS MySQL 5.1) i vincoli specificati con il comando CHECK non sono controllati.

Tabella dei metadati:

(vedi sol.esame 2009) con l'accortezza di specificare che la dimensione è riportata in

cifre/caratteri/bytes e di aggiungere una colonna INDICI riportante Si per i campi su cui sono definiti indici(come per i campi opzionali)...nel caso di indici composti esempio (nome,cognome) è possibile unire i SI dei campi relativi con un arco. Nel caso di chiavi primarie come tipo potete mettere contatore per indicare un intero autoincrementato.

Per quanto riguarda la dimensione delle date.

E' possibile mettere una didascalia in fondo alla tabella che specifica come i formati generici specificati(contatore, stringa/carattere, data,ora,ecc...) si traducono nei corrispondenti tipi di MySQL.

Ad esempio qualcosa del genere:

Formati:

Data,ora e data_ora,anno → DATE,TIME, DATETIME, YEAR: la dimensione, ove specificata, si riferisce al numero di caratteri inseriti o visualizzati ma non alla rappresentazione interna dei medesimi dati.

Il numero di caratteri da inserire per: DATA=8/10 includendo anche i trattini(dimensione DATE = 3 byte),ORA= 8 includendo i :(dimensione TIME = 3 byte) ,DATA_ORA = 8+6 =14(solo cifre attaccate) - 10+1(spazio)+8 = 19 (considerando trattini,:) dimensione DATETIME =8 byte , ANNO =2/4 dimensione YEAR = 1 byte...vedi http://database.html.it/articoli/stampa/932/memorizzare-date-e-tempo-con-mysql/

Stringa(Carattere) → VARCHAR per stringhe di dimensione variabile, CHAR per stringhe di lunghezza fissa.

Contatore → INTEGER AUTO_INCREMENT dimensione 4 byte o Intero_normale

Notare che l'Intero normale di MySQL corrisponde all'Intero lungo di ACCESS!

Altrimenti se si specificano direttamente i tipi di dati in MYSQL e ricordare che DATE,TIME e DATETIME non hanno dimensione!!

Codice SQL per la creazione delle tabelle:

Di seguito sono riportati alcuni esempi di codice per la creazione delle tabelle:

Riportare qualche esempio di CREATE(Non è necessario riportarle tutte, serve a dimostrare che si conosce il modo di definire i vari attributi, chiavi primarie, indici, chiavi esterne e vincoli

referenziali). E' in aggiunta alla tabella dei metadati che è preferibile perchè evita errori ed è più leggibile anche se sarebbe possibile specificare le medesime informazioni in entrambi i modi.

Esempi(Rappresentazione grafica tabelle):

Disegno delle tabelle con qualche dato. Questo permette di rendersi conto se si è omesso qualcosa e di fornire un esempio dei valori da assegnare ai vari attributi(in particolare a quelli il cui contenuto non sia del tutto ovvio e/o che non siano stati descritti in dettaglio in precedenza).

Osservazioni finali relative al progetto

Quella presentata è solo una delle soluzioni possibili. Nell'elaborare la soluzione presentata si è

(3)

immaginata la seguente catena di eventi:

Descrivere il processo di inserimento, di aggiornamento e di visualizzazione dei dati in maniera sommaria.

Si sono tenuti inoltre in considerazione le seguenti ipotesi/vincoli oltre a quelli già descritti:

Descrivere ipotesi/vincoli aggiuntivi non descritti precedentemente QUERIES

Testo della query e soluzione. I valori che devono essere inseriti dall'utente(detti parametri della query) possono essere specificati in maniera generica tra parentesi quadrate a meno che non vengano richiesti dal testo valori specifici. Va bene anche fare degli esempi assegnando dei valori ai parametri della query.

Esempio: Dati di uno studente(ricerca effettuata per nome e cognome):

select * from studenti where (nome = [nome studente]) and (cognome = [cognome studente]);

PAGINE WEB STATICHE/DINAMICHE Rappresentare graficamente la pagina web

In genere ci sono 3 casi base:

1. la pagina contiene un form per l'inserimento dati(con relativo pulsante)

2. la pagina contiene una serie di link(che possono avere delle query string al loro interno) 3. la pagina contiene una tabella(per visualizzare i dati ottenuti da un'interrogazione) Riportare codice HTML e PHP

Nel caso di pagine generate dinamicamente o contenenti form specificare sinteticamente in che modo i dati vengono inviati al server(GET o POST) descrivendo brevemente la comunicazione client-server, in maniera simile a quanto riportato di seguito:

1. il BROWSER invia al WEB SERVER una richiesta contenente i dati inseriti dall'utente nel form

2. il WEB SERVER individua lo script PHP da eseguire dal valore dell'attributo action del form e passa il controllo al modulo PHP

3. l'Interprete PHP legge ed elabora i dati della richiesta producendo in output una pagina web(file HTML) che viene inviata al client.

Fare riferimento al tutorial “HTML E PHP IN SINTESI”.

Per il caso:

1. utilizzare un form con caselle di testo editabili o radio buttons o checkboxs e solito pulsante di invio(fare attenzione al valore degli attributi method e action e al campo password) 2. utilizzare una lista non ordinata(come esempio vedi sol. 2009 ma aggiungere anche il tag di

chiusura del tag <li> per ogni item della lista)

3. utilizzare una semplice tabella(in genere questa dovrebbe essere il risultato di uno script PHP)

Nel caso in cui si utilizzino anche script PHP se si vuole si può riportare l'intero codice(che sarà molto simile a quello visto a lezione) oppure fare riferimento alle istruzioni principali(lettura parametri ingresso, msql_connect,mysql_select_db,mysql_query,mysql_fetch_array, mysql_close).

Riferimenti

Documenti correlati

Con la situazione fin qui illustrata, costruire il piano fattoriale che minimizzi il numero di fattori rispettando le informazioni del Responsabile della qualità;?. Rappresentare

Ci sono esattamente 26 carte rosse tra le 52 carte, se ognuna delle due parti del mazzo deve contenere carte rosse e nere in egual numero, ognuna dovr` a contenere 13 carte

Per a = 1/3 la serie non converge assolutamente ma semplicemente per il criterio di Leibnitz (o delle serie a segni alterni)... Per concludere

da cui possiamo concludere

[r]

Nello studio di problemi integro-differenziali, molto spesso non basta stabilire l'esistenza e unicità della soluzione, ma occorre sapere se ce~.. te propri età che si suppongono sui

(4 punti) Supponete di avere le serie storiche del prezzo del petrolio e del costo della produzione industriale di un certo prodotto, costo plausibilmente in‡uenzato dal prezzo

→estCompleta: restituisce true se tutte le tappe della gara sono inizializzate, false altrimenti (suggerimento: una tappa non è inizializzata se