Base Knowledge
It is recommended that students possess foundational knowledge in programming, logic, and discrete mathematics.
Teaching Methodologies
The following teaching methodologies are used in this curricular unit:
1 – Expository method: an explanatory method were theoretical foundations and concepts are presented by the
teacher and discussed with the class, followed by demonstrative examples;
2 – Experimental method: an active method were the student develops the knowledge through the use of problem
solving and project development, individually and in group dynamics.
Learning Results
It is expected that by the end of the course each student is entitled to:
1. Understand the basic concepts on relational databases: relational model, integrity, normalization, and relational
operations;
2. Manipulate databases through Standard Query Language;
3. Conceive a transactional project;
4. Project, conceive and implement databases using the entity-relationship model;
5. Plan, develop and maintain a database application.
Program
1. Introduction to Databases and Basic Concepts
- Data Models
- Entities and Abstractions
- Cardinality
- Relational Data Model
- Attributes
- Primary, Candidate, and Foreign Keys
- Referential Integrity
- Functional Dependency
2. Relational Operations and Basic Aspects of SQL
- SQL Language
- Relational Operations
- Data Types
- Integrity Constraints
- Data Definition Language
- Data Manipulation Language
- Views
- Security and Privileges
- Schema Definition and Data Manipulation Using SQL
3. Transactions and Concurrency Control
- Transactions
- Savepoints, Rollback Segments, and Commits
- Concurrency and Consistency
- Locks
- Deadlocks
4. Functional Dependency and Normalization
- Database Design: 1st, 2nd, and 3rd Normal Form (1NF, 2NF, 3NF)
- Boyce Codd Normal Form (BCNF)
- Functional Dependency Inference Rules
5. Database Design
- Entity-Relationship Diagrams
- Degrees of Participation
- Binary Relationships
Curricular Unit Teachers
Cristina Margarida Chuva CostaGrading Methods
The course assessment is divided as follows:
1. Written Exam: 14 points
- Entity/Relationship Model: 5 points;
- SQL Language: 5 points;
- Normalization, retrieval, and concurrency: 4 points.
2. Practical Work: 6 Credits
During the semester, two tests will be held, one on Entity/Relationship Model and the other on SQL Language, exempting students from taking these components in the exam. If they choose to retake the components taken during the semester, the last grade obtained will prevail over the previous grades (even if it is lower). The first test will be held between the 4th and 8th weeks of classes, while the second will be held between the 8th and 12th weeks.
Regarding the practical work, the following should be considered:
- Students should organize themselves into groups of no more than three members;
- It is mandatory to obtain a grade equal to or higher than 35%. Failure to obtain this minimum grade will result in failure of the course;
- The practical work grade will be considered in all exam periods to be held during the academic year;
- The delivery date will be the penultimate week of classes;
- The defense of the work is mandatory and will take place in the last week of classes. Failure to attend the defense will result in the cancellation of the work and consequent failure of the course.
Internship(s)
NAO
Bibliography
Ramakrishnan, R., & Gehrke, J. (2003). Database management systems (3rd ed.). McGraw-Hill. ISBN 0072465638 (1A-5-78 (ISEC) – 10678)
Gouveia, F. (2014). Fundamentos de bases de dados. FCA.
Damas, L. M. D. (2017). SQL: Structured Query Language (14th ed.). FCA. ISBN 9789727228294 (1A-5-84CD (ISEC) – 10700)
Groff, J. R., & Weinberg, P. N. (2002). SQL: The complete reference (2nd ed.). McGraw-Hill. ISBN 0072225593 (1A-5-24 (ISEC) – 05724)