Code |
18017
|
Year |
1
|
Semester |
S1
|
ECTS Credits |
6
|
Workload |
PL(30H)/T(30H)
|
Scientific area |
Informatics
|
Entry requirements |
Skils on algorithms and programming.
Skils on database programming.
|
Learning outcomes |
This course has two main goals: 1) deepen and expand the knowledge acquired in the introductory course of “Databases”, from the first cycle course, particularly, advanced aspects of the SQL programming, Relational Database Management Systems technologies, temporal databases and data warehousing; and 2) introduce the topic of distributed data, preparing students to understand, design and develop computer solutions based on distributed databases or unstructured databases.
Upon completion their studies, the students should know and understand: - The differences between a structured and unstructured databases; - The concepts of replication, distribution, sharding, and resilience; - How to choose a suitable database for a given application and predict its performance when subjected to different loads. In short, at the end, students will have a critical understanding of the strategies and problems associated with the databases and will be able to propose new solutions.
|
Syllabus |
Part I – Advanced aspects of structured databases
1. Management and performance 1.1 Advanced SQL 1.2 Denormalization and partitioning of tables 1.3 Structure of a RDBMS 1.4 Data storage 1.5 Indexing 1.6 Query processing and optimization 1.7 Transaction management
2. Data warehousing 3. Temporal databases
Part II – Distributed data
4. Data distribution and consistency 4.1 Fundamental principles 4.1.1 Flexible data models 4.1.2 Horizontal scalability 4.1.3 Consistency relaxation
4.2 Data distribution 4.2.1 Partition 4.2.2 Replication 4.2.3 Aggregation
4.3 Consistency 4.3.1 Consistency in reading and writing 4.3.2 ACID, BASE and CRUD 4.3.3 The CAP Theorem 4.3.4 Consistency relaxation
5. Distributed databases
6. Big Data and NoSQL 6.1 Big Data 6.2 Hadoop 6.3 MapReduce
7. Unstructured databases 7.1 Key-Value 7.2 Document Oriented 7.3 Column Oriented 7.4 Graph Oriented
|
Main Bibliography |
Main: Feliz Gouveia, “Bases de Dados – Fundamentos e Aplicações”, 2ª Edição, FCA, 2021, ISBN: 978-972-722-901-7.
1) Thomas Connolly, Carolyn Begg. “Database Systems, A Practical Approach to Design, Implementation and Management”, 6th Edition, 2015. Pearson, ISBN: 978-1-292-06118-4.
2) Sadalage, P. J., & Fowler, M. (2013). “NoSQL Distilled: A Brief Guide to the Emerging World of Polyglot Persistence”. Addison-Wesley Professional, ISBN: 978-0321826626.
3) Tiwari, S. (2011). “Professional NoSQL”. John Wiley & Sons, Inc., Indianapolis, ISBN: 978-0-470-94334-6.
4) Redmond, E. & Wilson, J.R. (2012). “Seven Databases in Seven Weeks. A Guide to Modern Databases and the NoSQL Movement”. Pragmatic Bookshelf, ISBN: 978-1-93435-692-0.
|
Teaching Methodologies and Assessment Criteria |
Classes are organized into theoretical classes (T) and laboratory classes (PL). Assessment: Written Test (WT), Practical Works (PW), Themes (T), end Argue Quality (AQ).
Weights: Teaching-learning: - WT: 0.30 (6.0 points) - PW: 0.35 (7.0 = 3.5 + 3.5) - T: 0.30 (6.0 = 3.0 + 3.0) - AQ: 0.05 (1.0 point)
Exam: - WT: 0.3 (6.0 points) - PW, T and AQ: 0.7 (14.0 points), from Teaching-Learning phase; or - WT: 0.65 (13.0 points) - PW: 0.35 (7.0 points), from Teaching-Learning.
Themes Quotation: - Presentation + defense: 5 points; - Report: 1 point.
Evaluation of the presentation of the Themes: Teacher - 40%; Argue - 40%; and Class - 20%. Evaluation of the Themes reports: Teacher - 50% and Group - 50%.
The frequency classification will only be assigned to the student who: - Attendance: 100%. - Obtain of at least 6.0 points. - Participate in the elaboration and discussion of topics and practical work (all). - Participate in the argument. - Comply with UC rules.
|
Language |
Portuguese. Tutorial support is available in English.
|