Visualizzazione post con etichetta modulo_SQL. Mostra tutti i post
Visualizzazione post con etichetta modulo_SQL. Mostra tutti i post

domenica 7 giugno 2009

martedì 13 gennaio 2009

domenica 11 gennaio 2009

martedì 16 dicembre 2008

Inserimento di dati di prova nelle tabelle del database Registro Voti

INSERT INTO Docente VALUES(1,'Informatico','A042','didatticaComputer.blogspot.com','computer@mondo.it');

INSERT INTO Docente VALUES(2,'Letterato','A050','didatticaLettere.blogspot.com','lettere@mondo.it');

INSERT INTO Docente VALUES(3,'Matematico','A047','didatticaNumeri.blogspot.com','matematica@mondo.it');

INSERT INTO Docente VALUES(4,'Elettronico','A034','didatticaCircuiti.blogspot.com','elettronica@mondo.it');

INSERT INTO Docente VALUES(5,'Inglese','A346','didatticaLingua.blogspot.com','lingua@mondo.it');


 

INSERT INTO Studente VALUES(    1,'Tizio','VAL','tizio@libero.it');

INSERT INTO Studente VALUES(    2,'Caio','VAL','caio@libero.it');

INSERT INTO Studente VALUES(    3,'Sempronio','VAL','sempronio@libero.it');

INSERT INTO Studente VALUES(    4,'Qui','VAL','qui@mondo.it');

INSERT INTO Studente VALUES(    5,'Qua','VAL','qua@google.it');

INSERT INTO Studente VALUES(    6,'Quo','VAL','quo@libero.it');

INSERT INTO Studente VALUES(    7,'Paperino','IVAL','pape@tin.it');

INSERT INTO Studente VALUES(    8,'Paperone','IVAL','dollaro@tutto.it');

INSERT INTO Studente VALUES(    9,'Bassotti','IVAL','rubo@galera.it');

INSERT INTO Studente VALUES(    10,'MacchiaNera','IIIBE','macchia@libero.it');

INSERT INTO Studente VALUES(    11,'Paperina','IIIBE','papera@libero.it');

INSERT INTO Studente VALUES(    12,'Topolino','IIIBE','topolino@libero.it');


 

INSERT INTO Materia VALUES(1,'Informatica','elaborazione dei dati');

INSERT INTO Materia VALUES(2,'Matematica','elaborazione dei numeri');

INSERT INTO Materia VALUES(3,'Lettere','elaborazione dei testi');

INSERT INTO Materia VALUES(4,'Elettronica','elaborazione dei segnali');

INSERT INTO Materia VALUES(5,'Inglese','elaborazione della lingua straniera');


 

INSERT INTO Modulo VALUES(1,1,'Consolidamento Linguaggio Java','Ripetizione del modulo sui fondamenti del linguaggio java e sui concetti della programmazione ad oggetti','Concetti programmazione oggetti');

INSERT INTO Modulo VALUES(1,2,'Progettazione database,'Introduzione dello schema concettuale e dello schema logico,'Saper disegnare lo schema di un database');

INSERT INTO Modulo VALUES(1,3,'Sql','Studio delle istruzioni del linguaggio Structured Query Language di manipolazione ed interrogazione dei database','Saper costruire un database fisico e saperlo interrogare');


 

INSERT INTO Programmazione VALUES(1,1,1,1,'0908','1008');

INSERT INTO Programmazione VALUES(2,1,1,2,'1008','1108');

INSERT INTO Programmazione VALUES(3,1,1,3,'1108','1208');


 


 

INSERT INTO Voto VALUES(1,'orale',6,'221108','lo schema concettuale',3,1,2,1);

INSERT INTO Voto VALUES(2,'scritto',7,'241108','lo schema concettuale',1,1,2,1);


 


 


 


 


 


 


 


 


 


 


 

martedì 9 dicembre 2008

Creazione del database registro dei voti studenti e delle relative tabelle relazionali

Schema fisico del database registro dei voti degli studenti

Schema fisico del database registro dei voti degli studenti.

Trasformiamo lo schema logico nello schema fisico di un database concreto. Scegliamo il database SQLITE      per la sua semplicità, per la sua portabilità, perchè non va configurato, perchè un database con tutte le sue tabelle sta in un unico file fisico. Chiamiamolo registroVoti.db

creazione del database fisico

sqlite3 registroVoti.db

definiamo le create table per ogni tabella relazionale del nostro database

CREATE TABLE DOCENTE (idDocente integer primary key, nome text, classeConcorso text, blog text, email text, foto blob);

CREATE TABLE STUDENTE(idStudente integer primary key, nome text, classe text, email text, foto blob);

CREATE TABLE MATERIA(idMateria integer primary key, nome text, descrizione text);

CREATE TABLE MODULO(idMateria integer references MATERIA, idModulo integer, nome text, descrizione text, obiettivo text, primary key(idMateria, idModulo));

CREATE TABLE VOTO(idVoto integer primary key autoincrement, tipo text, voto integer, data text, argomento text, idStudente integer references STUDENTE, idMateria integer references MATERIA, idModulo integer references MODULO, idDocente integer references DOCENTE);

CREATE TABLE PROGRAMMAZIONE(idProgramma integer primary key, idDocente integer references DOCENTE, idMateria integer references MATERIA, idModulo integer references MODULO, mmaaInizio text, mmaaFine text);


 


 


 

Lo schema logico dello schema concettuale registro dei voti degli studenti

Schema logico dello schema concettuale

Per costruire lo schema logico a partire dallo schema concettuale dobbiamo identificare e definire i seguenti elementi:

  1. Le tabelle relazionali
  2. Gli attributi di queste tabelle
  3. Le loro chiavi primarie
  4. Le loro chiavi straniere
  5. Eventuali tabelle associative

La prima regola della mappatura ci informa che ogni entità dello schema concettuale diventa una tabella relazionale.

pertanto prima fase del lavoro risulta nell'identificazione delle seguenti tabelle:

  1. DOCENTE
  2. STUDENTE
  3. MATERIA
  4. MODULO
  5. VOTO

Un'ulteriore regola della mappatura ci informa che una relazione dotata di attributi diventa a sua volta una tabella. In questo schema concettuale la relazione "programma" soddisfa quella condizione. pertanto la relazione "programma" diventa tabella, chiamiamola "Programmazione" per nostra comodità. La tabella "programmazione si aggiunge alle precedenti:

  1. PROGRAMMAZIONE

La seconda regola della mappatura ci informa che i campi delle tabelle sono esattamente gli attributi delle rispettive entità del disegno concettuale.

La terza regola della mappatura ci informa che le chiavi primarie delle tabelle sono le chiavi primarie delle entità.

La quarta regola della mappatura ci informa che la chiave primaria della tabella corrispondente ad un'entità debole si forma combinando insieme la chiave primaria della tabella dell'entità dalla quale dipende con quella parziale dell'entità debole.

La quinta regola ci informa che per mantenere le relazioni uno a molti nelle tabelle dello schema logico è necessario copiare la chiave primaria della tabella dell'entità dalla parte dell'uno in un campo della tabella corrispondente all'entità dalla parte dei molti e che questo campo duplicato si chiama chiave straniera.

La sesta regola ci informa che una relazione molti a molti o dotata di attributi, come in questo caso la relazione "programma", diventa una tabella associativa avente come chiavi straniere le chiavi primarie delle tabelle delle entità che mette in relazione e come campi gli attributi della relazione.

Da tutte queste regole applicate al nostro schema concettuale deriva la definizione del seguente schema logico:

DOCENTE(idDocente, nome, blog, classeConcorso, email, foto)

STUDENTE(idStudente, nome, classe, email, foto)

MATERIA(idMateria, nome, descrizione)

MODULO(*idMateria, idModulo, nome, descrizione, obiettivo)

VOTO(idVoto, tipo, voto, data, argomento, *idStudente, *idMateria, *idModulo, *idDocente)

PROGRAMMAZIONE(idProgramma, *idDocente, *idMateria, *idModulo, mmaaInizio, mmaaFine)


 


 


 

Nuovo schema concettuale del database del registro dei voti degli studenti

Critica allo schema concettuale del database registro voti studenti

Lo schema concettuale pubblicato è quello che abbiamo insieme fatto a scuola questo pomeriggio 9 dicembre 2008. Riesaminando questo disegno, mi sono accorto che è possibile, anzi auspicabile apportare un miglioramento nella gestione della programmazione dei moduli dell'insegnante. Abbiamo scelto di fare l'entità "Modulo" come un'entità debole. Questa scelta è giusta. Abbiamo attribuito il mese e l'anno del modulo all'entità modulo medesimo. Questo è invece un handicap. Infatti il docente ad ogni nuovo anno scolastico quando deve rifare la sua programmazione gradisce aggiornare e riutilizzare i moduli già esistenti, ma deve fare una nuova programmazione disciplinare. La programmazione è un'opportuna composizione dei moduli già esistenti o di altri moduli nuovi. Per non duplicare l'informazione, relativa ai moduli nella programmazione dei successivi anni scolastici, conviene creare una relazione "programma" che abbia una sua esistenza da affiancare a quella dei moduli. Ed allora è giusto, come qualche studente suggeriva, attribuire la data inizio e la data di fine di ogni moduli alla relazione medesima "programma". In questo modo la relazione "programma" diventerà una tabella distinta. Questa tabella acquisirà lo status di "entità programmazione". Per ogni anno scolastico, per ogni docente, questa tabella "programmazione" si arricchirà di un insieme di righe, caratterizzate per ogni codice docente dai quei codici dei moduli che saranno scelti nella personale programmazione del docente proprio per quel particolare anno scolastico. Questa modifica dello schema concettuale ne implica un'altra. L'entità forte da cui si fa dipendere l'entità debole "modulo" conviene trasferirla dall'entità "docente" all'entità materia. Ne risulta il nuovo schema concettuale di seguito postato.

Schema concettuale database registro voti studenti

Testo del problema per realizzare un database del registro dei voti degli studenti

Database per realizzare un registro informatizzato dei voti degli studenti.

Si vogliono memorizzare i voti degli studenti di un istituto scolastico.

Per ogni voto si vuole conoscere la data, il voto, il tipo di voto, la materia, il modulo, l'argomento della verifica, l'insegnante, lo studente, l'anno scolastico, la classe dello studente.

Per la materia occorre conoscere oltre il nome, i moduli programmati dall'insegnante. Un modulo ha un nome, una descrizione sintetica,un obiettivo, una data di inizio e di fine. Per l'insegnante si vuole conoscere l'email, l'indirizzo del blog, la classe di concorso.


 

lunedì 1 dicembre 2008

VA Liceo Tecnico sull'esercizio assegnato oggi 1 dicembre 2008

Per la classe VA Liceo Tecnico. Ancora non avete pubblicato la soluzione dell'esercizio che vi ho assegnato ! Ci sono problemi ? Vi ricordo che con il database Sqlite prima di creare le tabelle con la "Create Table" dovete creare un database con il comando sqlite3 nomeDatabase.db. Quando rientrate in sqlite, e volete lavorare di nuovo con quel database ,dovete ripetere il comando sqlite3 nomeDatabase.db per aprirlo.

domenica 30 novembre 2008