Teachers
Person in charge
- Carme Quer Bosor ( carme.quer@upc.edu )
- Sergi Nadal Francesch ( sergi.nadal@upc.edu )
Others
- Achraf Hmimou Ham Man ( achraf.hmimou@upc.edu )
- Alex Barceló Cuerda ( alex.barcelo@upc.edu )
- Carme Martin Escofet ( carme.martin@upc.edu )
- Francisco Miguel Rodero Blánquez ( francisco.rodero@upc.edu )
- Jordi Casanovas Muñoz ( jordi.casanovas@fib.upc.edu )
- Marc Molinuevo Garcia ( marc.molinuevo@upc.edu )
- María José Casañ Guerrero ( ma.jose.casan@upc.edu )
- Oriol Catasús i Llena
- Pau Carbonell Vives ( pau.carbonell.vives@upc.edu )
- Santiago Rivas Contreras ( santiago.rivas@upc.edu )
Weekly hours
Theory
2
Problems
0
Laboratory
2
Guided learning
0
Autonomous learning
6
Competences
Common technical competencies
- CT2.2 - To demonstrate knowledge and capacity to apply the characteristics, functionalities and structure of data bases, allowing an adequate use, design, analysis and implementation of applications based on them.
- CT2.3 - To design, develop, select and evaluate computer applications, systems and services and, at the same time, ensure its reliability, security and quality in function of ethical principles and the current legislation and normative.
- CT2.4 - To demonstrate knowledge and capacity to apply the needed tools for storage, processing and access to the information system, even if they are web-based systems.
- CT8.6 - To demonstrate the comprehension of the importance of the negotiation, effective working habits, leadership and communication skills in all the software development environments.
- CT8.7 - To control project versions and configurations.
Appropiate attitude towards work
- G8.2 - To be rigorous in the professional development. To be motivated and have a proactive attitude for the quality in the work. Capacity to adapt oneself to organizational or technological changes. Capacity to work in situations with information shortage and/or time and/or resources restrictions.
Objectives
-
To have a general vision of what a database is, what is a database model, the types of users of databases and which are the categories of databases languages.
Related competences: CT2.2, CT2.4, -
To know the objectives of a database management system and their architecture.
Related competences: CT2.2, CT2.4, -
To understand the database relational model, their languages (SQL and relational algebra) and the usual components of a relational database.
Related competences: CT2.2, CT2.4, -
To be able to define, create and manipulate usual relational database components.
Related competences: CT2.2, CT2.4, CT2.3, -
To be able to build programs to manage relational databases.
Related competences: CT2.2, CT2.4, CT2.3, -
To be able to apply some defined quality criteria to choose between several SQL statements, database components, or programs, that manage a database and implement the same functionality.
Related competences: CT2.4, CT2.3, -
To be able to apply some defined quality criteria to choose which types of database components or management programs are more suitable for the implementation of a certain behavior of a software.
Related competences: CT2.4, CT2.3, -
To have a general vision of how the design of a database should be included in a software development process.
Related competences: CT2.2, CT2.3, -
To be able to obtain a database relational model starting from a conceptual models in UML.
Related competences: CT2.2, CT2.3, -
To know the concept of database transaction and its implications.
Related competences: CT2.2, CT2.4, CT2.3, -
To know how to identify the different types of interference that can occur between database transactions and their relationship with the isolation levels that defines the SQL Standard.
Related competences: CT2.2, CT2.4, CT2.3, -
To know the locking concurrency control technique.
Related competences: CT2.2, CT2.4, CT2.3, -
To know the possible physical structures for storing data and its implications for in terms of efficiency.
Related competences: CT2.4, CT2.3, -
To know the access methods to data and its implications in terms of efficiency.
Related competences: CT2.4, CT2.3, -
To be able to participate with a proactive atitude in making exercices in teams of 2 or more students, according to the roles assigned to each student that can change during the execution of the exercises.
Related competences: G8.2, CT8.6, -
To be able to reach to a solution of the exercises that meets the quality criteria defined with limited time and resources.
Related competences: G8.2, CT8.6, CT8.7, -
To be able to configure the environment for the implementation and execution of database components and programs that access to databases, taking as input the resources offered to students.
Related competences: CT8.7, -
Understand the main features of NOSQL databases systems, understand how they differ with respect to relational systems, and have seen a classification of types of NOSQL systems that exist today.
Related competences: CT2.2,
Contents
-
Introduction
Database Concept. Design models and databases. Types of users. Categories of database languages. Database Management Systems (DBMS). Desirable objectives for databases that DBMS should provide. Architecture of DBMS. -
Relational model
Objectives and origin. Data structure with which to construct relational databases. Operations that provides the relational model to manipulate and query data. Integrity rules to be met by the data in a relational database. -
Languages: Relational Algebra and SQL
Introduction. Relational Algebra: relational algebra operations; queries. SQL: create tables, insert, delete and update of rows in a table, queries on a database. Considerations and quality criteria about how to write queries. -
Logical database components
Concept of a logical database component: data and control components. Introduction to the data components: schemes, tables and domains, assertions and views. Introduction to the control components: stored procedures, triggers and privileges. -
Stored Procedures and Triggers
Implementation of stored procedures in PL/pgSQL language. Implementation of triggers in PostgreSQL. Considerations and quality criteria in the design and implementation of procedures and triggers. -
SQL Programming
Programming in Java and JDBC. Considerations and quality criteria in the design and implementation of programs that access databases. -
Introduction to the design of relational databases
Stages in the design of a database. Introduction to the understanding of simple UML conceptual models. Translation of simple UML conceptual models to relational model databases. -
Transactions and concurrency
Concept of transaction. ACID properties of transactions. Interference between transactions. Serialitzability. Recoverability. Concurrency control techniques. Isolation Levels. Locking and isolation levels. -
Physical storage structures and access methods
Introduction. Access methods to perform queries and updates in a database. Costs of the different access methods. -
NOSQL
Introducción. Diferencias con los SGBD relacionales tradicionales. Objetivos de los SGBD NOSQL. Ejemplos de sistemas que requieren este tipo de SGBD.
Activities
Activity Evaluation act
T/P. Study of the databases relational model
The contents related with the subject are presented. The exercises proposed by the teachers are done.Objectives: 3
Contents:
Theory
2h
Problems
0h
Laboratory
0h
Guided learning
0h
Autonomous learning
2h
L: Environment preparation and preliminary study
Prepare the environment for deployment, creation and execution of database components from resources provided by the teacher. Preliminary study of the database that will be used in the first laboratory classes and of some basic SQL sentences.
Theory
0h
Problems
0h
Laboratory
2h
Guided learning
0h
Autonomous learning
2h
L. Study of SQL 1
Laboratory teams are created. The way of working in laboratory classes is presented. The teams solve a laboratory questionnaire on the topic in class. An individual paper question is answered on the topic in class.Objectives: 3 4 6
Contents:
Theory
0h
Problems
0h
Laboratory
2h
Guided learning
0h
Autonomous learning
0h
L. Study of relational algebra
The teams solve a laboratory questionnaire on the topic in class. An individual paper question is answered on the topic in class.Objectives: 3
Contents:
Theory
0h
Problems
0h
Laboratory
2h
Guided learning
0h
Autonomous learning
2h
L. Study: Algebra and SQL
Students review laboratory exercises and SQL and relational algebra exams.
Theory
0h
Problems
0h
Laboratory
2h
Guided learning
0h
Autonomous learning
2h
L: Lab study on Stored Procedures and Triggers.
Students review laboratory exercises and exams on Stored Procedures and Triggers.
Theory
0h
Problems
0h
Laboratory
2h
Guided learning
0h
Autonomous learning
2h
L. Lab study on Programming with SQL - JDBC
Students review laboratory exercises and exams on Programming with SQL - JDBC
Theory
0h
Problems
0h
Laboratory
2h
Guided learning
0h
Autonomous learning
2h
Teaching methodology
Theory/Problem classes (2.3 hours per week).Independent learning: To prepare the classes, the students may have to read and understand some materials stated by the teacher. After classes, the student have to review and do exercices about the subject studied in class.
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.
Laboratory classes (1.7 hours per week).
Independent learning activities: The contents that are the aim of the laboratory classes are studied independently and individually by students at home. Each week before the lab class students have home work to do that ends with the resolution of a questionnaire of moodle / LearnSQL.
Laboratory classes: The work at classes is in teams of 2 students. 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 evaluation: In each class, the students answer a question individually to evaluate the work done at home previously and during the class. The evaluation is also based on the exercices solved during the class.
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.
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.
Evaluation methodology
The grade of the course is based on technical competencies:- NLB: Laboratory grade. It is based on:
. Satisfactory resolution of the questionnaire corresponding to each class.
. Grades of the question answered during each class.
- NEP - Partial exam grade. The partial exam includes the topics: 1, 2, 3, 4 (without stored procedures and triggers), and 7.
- NEF: Final exam grade. The final exam includes the following topics: 3, 4 (only stored procedures and triggers), 5, 6, 8, 9 and 10.
Course grade = 0.40*NEP + 0.50*NEF + 0.10*NL
Students will be evaluated just in case they assist to the GROUP WHERE ARE ENROLLED.
Students who have not taken any of the exams will have a final grade of Not Presented (NP).
Any attempt of fraud during the course will imply the application of the general academic regulations of the UPC
Grades of the generic competence: The possible grades are A, B, C or D (where A corresponds to an excellent level of accomplishment, B corresponds to a desired level of accomplishment, C corresponds to a sufficient level of accomplishment and D corresponds to a level not sufficient). A good evaluation of this competence will be for the students that:
- Act with rigor in the classes (their attitude in class is appropriate according to the guidelines given for different types of class, either theory, problems or laboratory).
- Act with respect towards peers, and in case of teams work with positive interdependence respect to the other team members.
- Collaborate actively in the activities of cooperative learning in teams or pairs that are made. Accept and perform the roles assigned to the team members during these activities.
- Do exercises arriving to solutions (in the laboratory study questionnaires) that pass all the test games (no matter how many attempts they need).
- Do exercises arriving to solutions (in the exams) that meet the quality criteria established in the course for each type of exercise.
- In general, complete the exercises in the time and resources provided.
Bibliography
Basic
-
Bases de dades
- Sistac, J. (coord.),
UOC,
2005.
ISBN: 8497883349
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991003181479706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
Tècniques avançades de bases de dades
- Sistac i Planas, Jaume; Camps Paré, Rafael,
EDIUOC,
2000.
ISBN: 8484291065
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991002052069706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
Database systems: the complete book
- Garcia-Molina, Hector.; Ullman, Jeffrey.D.; Widom, Jennifer,
Pearson Education Limited,
[2014].
ISBN: 9781292024479
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991004168919706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
SQL 1999: understanding relational, language components
- Melton, J.; Simon, A.R,
Morgan Kaufmann,
2002.
ISBN: 1558604561
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991002281729706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
Database management systems
- Ramakrishnan, R.; Gehrke, J,
McGraw-Hill,
2003.
ISBN: 0071151109
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991002855579706711&context=L&vid=34CSUC_UPC:VU1&lang=ca
Complementary
-
SQL-99 complete, really
- Gulutzan, P.; Pelzer, T,
R & D books,
1999.
ISBN: 0879305681
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991002180409706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
Encyclopedia of database systems
- Liu, L.; Özsu, M.T. (eds.),
Springer,
2009.
ISBN: 9780387399409
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991000621799706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
Fundamentals of database systems
- Elmasri, Ramez; Navathe, Shamkant,
Pearson Education Limited,
2016.
ISBN: 9781292097626
-
Material de l'assignatura de bases de dades
- Professorat de les assignatures de bases de dades de la FIB,
https://learnsql2.fib.upc.edu/moodle/course/view.php?id=26
Web links
- Pàgina web del sistema de gestió de bases de dades relacional que s'utilitza actualment a l'assignatura. http://www.postgresql.org/
- Pàgina web de presentació de l'eina de correcció i auto-aprenentatge que s'utilitza a l'assignatura. https://www.upc.edu/learn-sql