Código |
14452
|
Ano |
1
|
Semestre |
S1
|
Créditos ECTS |
6
|
Carga Horária |
PL(30H)/T(30H)
|
Área Científica |
Informática
|
Learning outcomes |
This course has two main goals: 1) consolidate the knowledge acquired in an introductory course of “Databases”, from a first cycle course, particularly, advanced aspects of the SQL programing and the Relational Database Management Systems technologies; and 2) introducing the non-relational databases and preparing students to understand, design and develop computer solutions using NoSQL databases.
Upon completion of the teaching-learning process, the students should know and understand: - The differences between a relational database and a non-relational database. - The concepts of replication, distribution, sharding, and resilience. - How to choose a suitable database for an application and infer its performance when subject to different data overloads.
In resume, after the course, students will have a critical understanding of the strategies and problems associated with the database systems and be able to propose new solutions.
|
Syllabus |
Part I – Advanced aspects of structured databases
1. Relational Model 1.1 ANSI/SPARC architecture and database management systems 1.2 Data storage 1.3 Indexing 1.4 Query processing and optimization 1.5 Transaction management 1.6 Data warehousing 1.7 Temporal databases
Part II – Unstructured Databases (NoSQL)
2. Unstructured Databases (NoSQL) 2.1 Context and Definitions 2.2 Motivation 2.3 Taxonomy
3. Data distribution and consistency 3.1 Fundamental principles 3.1.1 Flexible data models 3.1.2 Horizontal scalability 3.1.3 Relaxation of consistency
3.2 Distribution of data 3.2.1 Partitioning 3.2.2 Replication 3.2.3 Aggregation
3.3 Consistence 3.3.1 Consistence on reading and writing 3.3.2 ACID, BASE and CRUD 3.3.3 The CAP Theorem 3.3.4 Relaxation of consistency
4. Computing Models– a brief introduction 4.1 MapReduce 4.2 Google File System 4.3 Apache Hadoop
5 Database Models 5.1 Key-Value 5.2 Document oriented 5.3 Column oriented 5.4 Graph oriented
|
Teaching Methodologies and Assessment Criteria |
Classes are organized into theoretical classes (T) and laboratory classes (PL). Assessment: Written Test (WT), Practical Works (PW), Theme (T); Argue Quality (AQ).
Weights: Teaching-learning: - WT: 0.375 (7.5 val.) - PW: 0.325 (6.5 = 3.0 value + 3.5 value) - T: 0.25 (5 points) - AQ: 0.05 (1 value)
Exam: - WT: 0.325 (7.5 values) - PW, T and AQ: 0.625 (12.5 values); or - WT: 0.675 (13.5 values) - PW: 0.325 (6.5 values)
Theme Quotation: - Presentation + defense: 4 values - Report: 1 value
Evaluation of the presentation of the Theme: Teacher - 40%; Argue - 40%; and Class - 20%. Evaluation of the Theme report: Teacher - 50% and Group - 50%.
The frequency classification will only be assigned to the student who: - Attendance: 100%. - Rating of at least 6.0 values. - Participate in the elaboration and discussion of topics and practical work (all). - Participate in the argument. - Comply with UC rules.
|
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.
|
Language |
Portuguese. Tutorial support is available in English.
|