Person in charge:  () 
Others:  () 
Credits  Dept.  Type  Requirements 

9.0 (7.2 ECTS)  ESSI 

PRED
 Prerequisite for DIE , DCSYS PS  Prerequisite for DCSFW 
Person in charge:  () 
Others:  () 
This subject aims to teach students to structure and use the data saved in external memory devices by using databases, and to give them a grounding in the physical fundamentals to designing databases.
Estimated time (hours):
T  P  L  Alt  Ext. L  Stu  A. time 
Theory  Problems  Laboratory  Other activities  External Laboratory  Study  Additional time 

T  P  L  Alt  Ext. L  Stu  A. time  Total  

2,0  0  0  2,0  0  4,0  2,0  10,0  
Objectives and Origin. Data Structure. Operations. Integrity rules.


T  P  L  Alt  Ext. L  Stu  A. time  Total  

0  0  10,0  10,0  4,0  0  4,0  28,0  
Introduction. Relational algebra. SQL.


T  P  L  Alt  Ext. L  Stu  A. time  Total  

4,0  2,0  0  0  0  6,0  6,0  18,0  
Database logic component concept. Data logic components: Schemes, domains, tables, views and assertions. Control logic components: Stored procedures, triggers, privileges and roles.


T  P  L  Alt  Ext. L  Stu  A. time  Total  

2,0  2,0  0  0  0  6,0  6,0  16,0  
Stages in the database design. Introduction to the understanding of simple UML conceptual models. Translation of simple UML conceptual models to relational database models.
Design logic: transformation in the relational model. 

T  P  L  Alt  Ext. L  Stu  A. time  Total  

4,0  4,0  0  0  0  8,0  8,0  24,0  
Definition and properties of transactions. ACID. Transaction interferences. Serialisability. Recoverability. Concurrence control techniques. Isolation levels. Locking and isolation levels.
SQL isolation levels. Recovery. 

T  P  L  Alt  Ext. L  Stu  A. time  Total  

4,0  4,0  0  0  0  6,0  6,0  20,0  
Introduction. Access methods. Costs.


T  P  L  Alt  Ext. L  Stu  A. time  Total  

0  0  6,0  6,0  4,0  0  1,0  17,0  
Programming in Java and JDBC. Considerations about the design and implementation of programs with access to a dababase.


T  P  L  Alt  Ext. L  Stu  A. time  Total  

0  0  8,0  8,0  4,0  0  4,0  24,0  
Stored procedures implementation using PL/PgSQL. Trigger implementations in PostgreSQL. Considerations about the design and implementation of procedures and triggers.

Total per kind  T  P  L  Alt  Ext. L  Stu  A. time  Total 
20,0  12,0  24,0  28,0  12,0  36,0  40,0  172,0  
Avaluation additional hours  4,0  
Total work hours for student  176,0 
Theory/Problem classes (2.3 hous a week).
Theory classes. In the theory classes the teacher present a part of the contents of the course. Usually the teachers use slides, which the students should bring to the classes.
Problem classes. In the problem classes the students solve exercises on the content presented during the theory classes. These exercises are done in teams of three students following a cooperative learning technique.
Problem exams. There are four problem classes that consists on one exam and that constitute an evaluative instrument of the course.
Lab classes (1.7 hours a week)
The work at classes is in teams of 2 students. In the first five minutes the students answer a qüestion individually. After that the students have the opportunity to share concerns with his/her teammate on the home work of the previous weed, and if it is necessary they ask the teacher questions unresolved. Then the students do the activities stated by the teacher and finally they solve a moodle/LearnSQL questionnaire.
Laboratory exams: There are four laboratory classes that consists on one exam and that constitute an evaluative instrument of the course.
Guided work (Other activities, 2 hours a week). Every week the students have a work guided by the teacher that will have to do during the week and that will end with the resolution of a moodle/LearnSQL questionaire.
Resources related to laboratory classes:
All documents, materials and questionnaires related with the course are available to students through the platform moodle/LearnSQL.
Apart from the feedback that teachers give to students during classes, the platform moodle/LearnSQL includes a corrector of database exercises that provides feedback to students about exercises solutions. In the laboratory exams the students use this corrector to deliver the solution of the exercises and to obtain feedback and if they wish to perform several retries. Teachers review and evaluate the solutions taking into account the grade of the corrector and the quality criteria established.
Classes and laboratory exams are held in a computer classroom. The servers used during the classes, are also available for access from home, so they can be used in independent learning activities.
Students will be evaluated just in case they assist to the GROUP WHERE ARE ENROLLED, both in classes of theory/problems and in classes of laboratory.
Evaluative Instruments:
 First problem evaluative class: Views and / or assertions
 Second problem evaluative class: relational translation
 Third problem evaluative class: transactions and concurrency
 Fourth problem evaluative class: Storage
 First lab evaluative class: Algebra and SQL
 Second lab evaluative class: procedures / Triggers
 Third lab evaluative class: Programming with SQL
 Final exam
The grade for the course is calculated taking into account:
 NPR: problem grade. Average of the three problems submitted in problem evaluative classes.
 NLB: Laboratory grade. It is calculated as the 40% of the grade of the part algebra / SQL, 30% of the grade of the part of procedures / triggers and 30% of the grade of the part of programming with SQL  JDBC. The grade of each part depends on: the grade of the exam of the part (NLL), the average of the grades of the questions that the students answer at the beginning of the laboratory classes (NPCL). The grade is 85% NLL + 15% NLL (if NPCL> = 5).
 NEF: Grade of the final exam.
Grade of the course = Max(NPR*0:15 + NLB*0.25 + NEF*0.60, NLB*0,25+NEX*0,75)
Students will be evaluated just in case they assist to the GROUP WHERE ARE ENROLLED, both in classes of theory/problems and in classes of laboratory.
Any attempt of fraud during the course will imply the application of the general academic regulations of the UPC
Learn the data structure employed in internal memory.
Ability to assess these data structures.
Ability to produce programmes of medium complexity.