Upload
leo-norman-bailey
View
225
Download
4
Embed Size (px)
Citation preview
Teaching Database Courses Teaching Database Courses Using Educational System ADVICEUsing Educational System ADVICE
Miloš Cvetanović , Zaharije RadivojevićSchool of Electrical Engineering, Belgrade University
12th Workshop “Software Engineering Education and Reverse Engineering”
Opatija, Croatia03-08 September 2012
12th Workshop SEE and RE 2/17
AgendaAgenda
• Course description• Structure of ADVICE• Implementation details• Laboratory exercises and usage of ADVICE• Assessment• Conclusions
12th Workshop SEE and RE 3/17
Database courseDatabase course
• Type: Mandatory course• Starts: 3 semester SE, 5 semester CE
(of 8 semesters for bachelor studies)• Prerequisites: -• Class hours: 2+2+1• Format:
– Midterm 20– Laboratory 20– Final 60
• SE 60 students, CE 110 students
12th Workshop SEE and RE 4/17
Course SyllabusCourse Syllabus
• Database systems• Data modeling• Relational databases• Database query languages• Relational database design• Transaction processing
12th Workshop SEE and RE 5/17
Creating a tool for laboratory Creating a tool for laboratory exercisesexercises• Conceptual Design• SQL DDL• SQL DML• Formal Query Languages• Normalization
12th Workshop SEE and RE 6/17
Creating a tool for laboratory Creating a tool for laboratory exercisesexercises
12th Workshop SEE and RE 7/17
ADVICEADVICE
• ADVICE (Automated Database Verification with Interactive Counter Example)
• Tool for laboratory exercises• Modular structure• Teaching support• Interactive tutoring
12th Workshop SEE and RE 8/17
ADVICE modulesADVICE modules
• Core modules• login• users• defining problems • additional test
• Additional modules• SQL DDL• SQL DML• relational algebra• relational calculus• conceptual modeling• normalization
12th Workshop SEE and RE 9/17
Typical appearance of ADVICETypical appearance of ADVICE
12th Workshop SEE and RE 10/17
Model verification algorithmModel verification algorithm
match(answer, solution){
schema1 = toSchema(answer);
schema2 = toSchema(solution);
reduce(schema1);
reduce(schema2);
for each (newSchema1, newSchema2)
in eliminate(schema1, schema2){
for each renamedSchema1
in rename(newSchema1, newSchema2){
if(compare(renamedSchema1, newSchema2)){
return success;
}
}
} return failure;
}
12th Workshop SEE and RE 11/17
Model verification exampleModel verification example
“An entity is missing: Journey”
DbInstance1=create(initScript)DbInstance2=create(initScript)
Is Query?
Is SQL?
transform(answer)transform(solution)
result1=execute(answer)result2=execute(solution)
result1=execute(selectAll)result2=execute(selectAll)
Is DDL?
match=pairColumns(result1,result2)
compareRows(result1,result2,match)
modify(testScript,DbInstance1)modify(testScript,DbInstance2)
modify(answer,DbInstance1)modify(solution,DbInstance2)
yes
yes
yes
no
no
no
IN
TR
ES
PC
CR
MD
MT
EA
12th Workshop SEE and RE 12/17
Query verification algorithmQuery verification algorithm
12th Workshop SEE and RE 13/17
Query verification exampleQuery verification example
SELECT J.Distance, T.ModelFROM Journey J, Truck T WHERE T.IDTru=J.IDTru AND (SELECT COUNT(*) FROM Drives D WHERE D.IDJou=J.IDJou)=2;
SELECT J.Distance, T.Model FROM Journey J, Truck T WHERE T.IDTru=J.IDTru AND (SELECT COUNT(*) FROM Drives D WHERE D.IDJou=J.IDJou)>=2;
“You have 1 row(s) less. Missing row: (157,MAN)”
12th Workshop SEE and RE 14/17
Query visualizationQuery visualization
• main effect – year factor is significant (F(2, 721)=5.1286, p=0.00614) ,
difference between the years. – group factor is significant (F(1, 721)=90.489, p=0.0000),
difference between groups. – Interaction is not significant (F(2, 721)=0.90318, p=0.40574),
difference between groups is not dependent on the year.
12th Workshop SEE and RE 15/17
AssessmentAssessment
0.00%
10.00%
20.00%
30.00%
40.00%
2005 22.97% 35.14% 20.27% 12.16% 6.76% 2.70%
2006
2007
2008
5 6 7 8 9 100.00%
10.00%
20.00%
30.00%
40.00%
2006 23.46% 31.56% 23.74% 13.41% 5.03% 2.79%
2007
2008
5 6 7 8 9 10
• Tool for support in laboratory exercises in databases related courses
• Modular and extendable structure• Interactive iterative verification with query visualization• Possibility for vertical integration into database course
12th Workshop SEE and RE 16/17
ConclusionConclusion
Thank you!Thank you!
Radivojevic Zaharije