Sviluppo Database

di
Anonimizzato14552
il
8 risposte

Sviluppo Database

Salve a tutti,
premetto che sono un laureando in economia e di programmazione conosco praticamente pochissimo.
Mi trovo a dover risolvere un database per una professoressa e non riesco a farlo date le mie lacune in materia.
Vi spiego la struttura.
6 tabelle
Studenti (Matricola, nome, cognome, datanascita, Anno_Accademico, ScuolaProv)
Esoneri (Matricola, ID_OFA, descrizione)
OFA (ID_OFA, descrizione)
Dettagli (ArgOFA, descrizione, ID_OFA)
Prove (ID_prova, data, ID_OFA)
Risultati (ID_Ris, matricola, ID_Prova, ArgOFA, Voto)
Le tabelle nel db sono già sviluppate.
Ora devo sviluppare questi 3 punti:

I risultati complessivi di un test da pubblicare (si suppone ad esempio di voler stampare i risultati di informatica):
SELECT S.Matricola, S.Nome, S.Cognome, R.Voto
FROM Studenti S, OFA O, Risultati R, Prove P, Dettagli D
WHERE S.Matricola=R.Matricola AND P.ID_Prova=R.ID_Prova AND
R.ArgOFA=D.ArgOFA AND O.ID_OFA=D.ID_OFA AND
Descrizione.OFA = "Informatica” AND Prova.Data = [Quale data?]

Le informazioni di un test del singolo studente con i dettagli:
SELECT S.Matricola, S.Nome, S.Cognome, R.ArgOFA, R.Voto
FROM Studenti S, OFA O, Risultati R, Prove P, Dettagli D
WHERE S.Matricola=R.Matricola AND P.ID_Prova=R.ID_Prova AND
R.ArgOFA=D.ArgOFA AND O.ID_OFA=D.ID_OFA AND
P.Data = [Quale data?] AND S.Matricola = [Quale matricola?]
AND O.Descrizione = [Quale materia?]

Una tabella di riepilogo della situazione di una materia:
SELECT O.Descrizione, S.Matricola, S.Cognome, S.Nome, R.Voto
FROM Studenti S, OFA O, Risultati R, Prove P, Dettagli D
WHERE S.Matricola=R.Matricola AND P.ID_Prova=R.ID_Prova AND
R.ArgOFA=D.ArgOFA AND O.ID_OFA=D.ID_OFA

Queste dovrebbero essere le query, penso sia abbastanza facile ma purtroppo le mie conoscenze sono scarse.
Come dovrei sviluppare quelle query in access? Dovrei sviluppare delle query che mi chiedano ad esempio quale materia , quale studente ecc?
Grazie a tutti!

8 Risposte

  • Re: Sviluppo Database

    Perdona la mia ignoranza in materia. Potresti spiegare il significato delle tabelle OFA, Esoneri, Dettagli, il campo ArgOFA?
  • Re: Sviluppo Database

    Certamente.
    Studente rappresenta l’entità con i dati identificativi degli studenti. Gli attributi di questa entità sono Matricola, Nome, Cognome, DataNascita, A.A. DataNascita indica la data di nascita dello studente, A.A. indica l’anno accademico di iscrizione. Matricola è la chiave primaria, ScuolaProv la scuola di provenienza dello studente utile quando lo studente ha effettuato il test presso la scuola superiore.

    Prova è l’entità che identifica le caratteristiche delle prove. Se consideriamo una singola prova, essa è svolta in una determinata Data e possiede ovviamente una chiave primaria, ID-prova; la materia svolta durante quella specifica prova è inoltre specificata dall`ID-OFA, in questo caso chiave esterna perché proveniente dall’entità OFA.

    Esonero identifica l’entità in cui sono rappresentati i test di cui ogni studente ha l’esonero.
    In questa entità gli attributi sono:
    • Matricola e ID-OFA, chiave primaria;
    • Descrizione, rappresenta la tipologia di esonero (vedi punto 2.4).

    OFA identifica l’entità in cui sono rappresentate le diverse tipologie di esame. Precisamente si associa ad ogni test un numero identificativo (ad esempio 1) e un attributo Descrizione (ad esempio matematica).
    In questa entità gli attributi scelti sono:
    • ID-OFA, chiave primaria;
    • Descrizione, rappresenta la tipologia di test e quindi il suo contenuto può essere matematica o informatica o inglese.

    Dettagli è l’entità che viene introdotta per risolvere il problema relativo al dettaglio degli argomenti presenti in ogni singolo test. Lo studente, infatti, può essere sufficiente sulla media dei parziali dell'esame, ma allo stesso tempo insufficiente su un argomento. Sorge quindi la necessità di avere il dettaglio dei risultati utili al docente per la valutazione e allo studente per l’autovalutazione.
    In questa entità gli attributi scelti sono:
    • ArgOFA, codice dell’argomento che collega un valore numerico ad ogni argomento dell'esame prescelto. Il codice 0 in ArgOFA identifica il test completo;
    • ID-OFA, codice del test.
    In questa entità è necessario considerare come chiave primaria la coppia ArgOFA, ID-OFA, di cui ID-OFA nel modello relazionale sarà chiave esterna rispetto alla tabella OFA.

    L’entità Risultato contiene i seguenti attributi:
    • ID-Ris, chiave primaria;
    • Matricola, nel modello relazionale sarà chiave esterna riferita alla tabella Studenti;
    • ArgOFA, nel modello relazionale sarà chiave esterna riferita alla tabella Dettagli;
    • Voto rispecchia il voto complessivo conseguito dallo studente nella prova;
    • ID-Prova, nel modello relazionale sarà chiave esterna riferita alla tabella Prove.

    Spero vivamente in un aiuto ragazzi!
  • Re: Sviluppo Database

    Spero che le tabelle Esoneri e Dettagli siano tabelle di ultimo livello. Personalmente non amo la chiave primaria impostata su 2 campi...si può fare...ma qui entriamo in un campo più filosofico che tecnico-pratico. Io avrei creato un campo IDEsonero e IDDettaglio come chiavi primarie delle rispettive tabelle. Passiamo avanti.

    Continuo ad avere difficoltà nell'interpretare le tabelle Esoneri e Dettagli. Gradirei una descrizione con degli esempi.
    ArgOFA forse è numerico, ma qual'è la tabella madre da cui va a prendere questo valore?
    OFA avrebbe solo 3 record (così ho capito). Perchè avresti altre Materie da altre parti che non ho capito da dove spuntano?
  • Re: Sviluppo Database

    OsvaldoLaviosa ha scritto:


    Spero che le tabelle Esoneri e Dettagli siano tabelle di ultimo livello. Personalmente non amo la chiave primaria impostata su 2 campi...si può fare...ma qui entriamo in un campo più filosofico che tecnico-pratico. Io avrei creato un campo IDEsonero e IDDettaglio come chiavi primarie delle rispettive tabelle. Passiamo avanti.

    Continuo ad avere difficoltà nell'interpretare le tabelle Esoneri e Dettagli. Gradirei una descrizione con degli esempi.
    ArgOFA forse è numerico, ma qual'è la tabella madre da cui va a prendere questo valore?
    OFA avrebbe solo 3 record (così ho capito). Perchè avresti altre Materie da altre parti che non ho capito da dove spuntano?
    Ti spiego. Gli esami sono mate, info e inglese. Ognuno di questi poi é diviso in sottoargomenti. Qui le tabelle.

    OFA (ID-OFA, Descrizione)
    ID-OFA Descrizione
    1 Matematica
    2 Informatica
    3 Inglese

    DETTAGLI (ArgOFA, ID-OFA, Descrizione) (perdona l'incolonnamento)
    ArgOFA ID-OFA Descrizione
    0 1 Matematica
    1 1 Insiemi numerici
    2 1 Algebra elementare, equazioni e disequazioni
    3 1 Insiemi, elementi di logica, relazioni, funzioni e proprietà
    4 1 Geometria
    5 1 Funzioni elementari e grafici
    0 2 Informatica
    1 2 Concetti base
    2 2 Windows
    3 2 Word
    4 2 Internet
    0 3 Inglese
    1 3 Listening threshold
    2 3 Clause structures
    3 3 Noun phrase
    4 3 Verb phrase
    5 3 Vocaboulary
    6 3 Reading

    ESONERI (Matricola, ID-OFA, Descrizione)
    Matricola ID-OFA Descrizione <- rappresenta la certificazione corrispondente alla materia
    100100 1 PLS
    100101 2 ECDL
    100102 3 PET

    Ogni materia delle 3 ha un numero (1 o 2 o 3) che é l'IDofa. Ogni IDOFA ha poi collegati i vari sottoargomenti. Questo perché é prevista la possibilità che uno studente superi l'esame completamente oppure con un debito. Questo é il problema principale del db.

    In ogni caso, se hai visto le query, come faccio a crearle? Come faccio a creare una query che mi chieda quale studente e quale data?
  • Re: Sviluppo Database

    Facciamo qualche esempio.
    Lo studente Mario Rossi affronta una prova di Matematica il 10/4/2014.
    Egli è obbligato ad affrontare tutte e 5 i DettagliOFA? Se sì, tutti e 5 nella stessa data 10/4/2014?
    Tutti gli studenti possono o devono affrontare tutti e 3 gli OFA?
    Di ogni OFA uno studente deve affrontare tutti i suoi DettagliOFA?
    Credo di aver capito che se lo studente Giuseppe Verdi affronta tutti e 3 gli OFA ma ha un Esonero PET, egli non dovrà affrontare la prova di Inglese.
    Potresti chiarirmi tutti questi miei dubbi?
  • Re: Sviluppo Database

    OsvaldoLaviosa ha scritto:


    Facciamo qualche esempio.
    Lo studente Mario Rossi affronta una prova di Matematica il 10/4/2014.
    Egli è obbligato ad affrontare tutte e 5 i DettagliOFA? Se sì, tutti e 5 nella stessa data 10/4/2014?
    Tutti gli studenti possono o devono affrontare tutti e 3 gli OFA?
    Di ogni OFA uno studente deve affrontare tutti i suoi DettagliOFA?
    Credo di aver capito che se lo studente Giuseppe Verdi affronta tutti e 3 gli OFA ma ha un Esonero PET, egli non dovrà affrontare la prova di Inglese.
    Potresti chiarirmi tutti questi miei dubbi?
    Esempio: lo studente a novembre (prima sessione), il 10/10/2014 affronta Matematica e sì, affronta tutti gli argomenti di dettagliOFA, tutti nella stessa data. Il risultato di questa prova é positivo al 100%, parzialmente positivo e lo studente dovrà affrontare la parte mancante in un orale (al massimo uno e un solo argomento di dettagliOFA - se fossero due l'esito sarebbe negativo), altrimenti negativo.
    Di norma sì, tutti gli studenti devono affrontarli, a meno che possiedano le certificazioni come l'ecdl.
    La certificazione é conosciuta anteriormente alla prova, quindi lo studente non affronterà proprio quella prova. Esattamente come dici tu per inglese.
  • Re: Sviluppo Database

    Forse ci sono sull'intera struttura tabelle.
    Ora però, devi sapere che non so usare l'SQL delle query, quindi ti chiederei di descrivermi o mostrarmi le finestre delle visualizzazioni struttura delle query che hai creato e spiegare cosa non ti torna.
  • Re: Sviluppo Database

    Asan ha scritto:


    In ogni caso, se hai visto le query, come faccio a crearle? Come faccio a creare una query che mi chieda quale studente e quale data?
    Menu "Crea", poi "struttura Query", chiudi la finestra "mostra tabella", nel menu "progettazione" premi SQL e incolla le query e poi salva.

    Ripeti l'operazione per ognuna delle query.

    Se le tabelle sono state realizzate correttamente dovresti poter visualizzare la struttura (che ti ha chiesto Osvaldo) tramite la pressione dell'omonumo pulsante del menu"progettazione"...

    se riuscirai a fare quanto sopra avremo una base per cominciare...

    a presto.
Devi accedere o registrarti per scrivere nel forum
8 risposte