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
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:
- Le tabelle relazionali
- Gli attributi di queste tabelle
- Le loro chiavi primarie
- Le loro chiavi straniere
- 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:
- DOCENTE
- STUDENTE
- MATERIA
- MODULO
- 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:
- 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)
Critica allo schema concettuale del 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.



