Databases
Objectives
To provide the basis for the modeling, implementation, analysis and manipulation of relational databases.
- To know the entity-relationship model and the relational data model, as well as the foundations of the object-relational model
- Relational algebra as the formal language of relational data base querying and manipulation
- Foundations of the SQL language (both as a definition and as a manipulation language)
- Normalization of data bases using functional and multi-valued dependencies
- Brief overview of data modeling in XML and manipulation mechanisms for semi-structured data
- To model a medium-sized real problem first using Entity-Relationship Diagrams and then a relational database (the resulting data base should have 10 to 20 tables)
- To create a database in SQL for the medium-sized problem, including implementation of all mechanisms for guaranteeing referential integrity
- To implement a simple interface for manipulation of the database
- To be proficient in writing complex SQL queries
- To use the basic object-relational mechanisms of SQL
- Capability of doing team work in collaboration
- Problem modeling capabilities
- Write an analysis report, design and implement a solution
- Manage time and deadlines
General characterization
Code
10640
Credits
9.0
Responsible teacher
João Alexandre Carvalho Pinheiro Leite, Jorg Matthias Knorr
Hours
Weekly - 5
Total - 70
Teaching language
Português
Prerequisites
Available soon
Bibliography
Recommended book:
Database System Concepts, 7th Edition.
Abraham Silberschatz, Henry F. Korth and S. Sudarshan
McGraw Hill, 2019
ISBN 9780078022159
Slides:
After each class, the slides will be made available online in CLIP.
Complementary reading material:
- A Guide to the SQL Standard (4th Ed)
C. J. Date and Hugh Darwen
Addison-Wesley
ISBN:0-201-94426-0
- Database Design and Relational Theory: Normal Forms and All That Jazz (2nd Ed)
C. J. Date
Apress, 2019
ISBN: 978-1484255391
Teaching method
The lectures are supported in slides with substantial examples. The lab sessions have guides and work assignments to be done in classes and as homework. The lectures'''' scheduling include always time to anlyse and discuss previous midterm problems. The students use the latest version of Oracle (18c) and APEX, and have access to a server for use in the laboratories as well as outside FCT facilities by VPN connection.
Assessment is composed of two tests (or exam) and a team project,worth 60% and 40% of the final grade, respectively. It is necessary to obtain 9.5 out of 20 in the theoretical component to be approved. The project has two phases. First, the topic and model of the database to be implemented are proposed, and second, the final delivery with a written report and the code are to be submited. The project is mostly developed outside classes, justifying the 9 ECTS of this unit. The project grade is individual and results from discussion with the team.
Evaluation method
Assessment
The evaluation consists of a theoretical component and a practical component. Both components are assessed on a scale from 0 to 20.
To pass the course, a student needs to achieve a score equal to or higher than 9.5 points in both the theoretical and final grade.
The final grade for the course is the weighted average of the two components, with the theoretical component accounting for 60% of the grade and the practical component accounting for 40%.
Theoretical Component
The theoretical component can be completed in two ways:
- Through the completion of 2 tests, closed book:
- 1st Test: on the material from the first 8 theoretical classes and 4 practical classes, unless otherwise notified.
- 2nd Test: on the remaining material.
- Through the completion of an exam, closed book.
The assessments will take place in person provided that conditions allow it. Otherwise, we will resort to authorized remote assessment mechanisms for conducting the exams. If the exams are conducted remotely, the structure of past year''s tests may not apply.
During an assessment, a student may not have any electronic devices capable of accessing the internet or with Bluetooth connectivity (e.g., smartphones, smartwatches, smartglasses, tablets, laptops) with them, even if they are turned off. Violation of this rule results in immediate failure of the curricular unit by exclusion and will be reported to the Scientific Committee of the respective program.
The grade for the theoretical component is obtained through:
- The arithmetic average of the grades from the 2 tests, rounded to one decimal place, or
- The grade from the exam, rounded to one decimal place.
Students may be selected by the course instructor for an oral exam, the grade of which may partially or fully replace the grade for the theoretical component.
Practical Component
The practical component is carried out through the development, as a group, of a practical assignment, delivered in two phases, followed by a discussion. The assignment should be primarily developed outside of class time, with only two classes at the end of the semester dedicated to addressing final doubts.
Despite the assignment being completed as a group, the grade for this component will always be individual (and not assigned to the group).
IMPORTANT: Grades from practical assignments in previous academic years for this course are valid for assessment this year. Students who wish to maintain the grade for the practical component cannot enroll in practical classes. Enrollment in a practical classes automatically results in the loss of the previously obtained practical component grade.
Detailed information about the practical assignment, including the respective submission deadlines, penalties for late submissions, and guidelines for reporting the use of AI tools, will be available at Documentação de Apoio -> Outros (ProjectBD.pdf)
In Avisos on this page on CLIP you can find some frequently asked questions regarding the tests and the exam.
Subject matter
- Introduction to Database Management Systems
- Data models
- Entity-Relationship model
- Relational model
- Relational databases normalization
- Functional and multi-valued dependencies
- Normal forms: 3rd, 4th and Boyce-Cood
- Database manipulation languages
- Relational Algebra
- SQL query and manipulation language
- Other languages
- Database integrity
- Referential integrity
- Assertions and triggers
- Interaction with databases
- Embedded SQL, ODBC, JDBC
- Security and authorisations
- Transactions
- Discussion about other database models
- Object/relational databases (and the SQL case).
- Deductive databases
- XML