Licenciatura

Engenharia Informática

Área Científica

Ciências Informáticas

Duração

Semestral

Unidade Curricular

Bases de Dados

ECTS

4

Horas de Contacto Teórico Práticas

60h

OBJETIVOS DA APRENDIZAGEM

Para concluir com sucesso esta unidade curricular, os alunos deverão demonstrar possuir os seguintes conhecimentos e capacidades:

1. Compreender a finalidade dos sistemas de bases de dados relacionais;

2. Perceber os conceitos do modelo relacional de bases de dados;

3. Compreender e saber aplicar as técnicas de normalização de tabelas;

4. Saber usar o modelo entidade-associação para desenhar bases de dados;

5. Conhecer e saber utilizar as operações relacionais com tabelas;

6. Compreender e saber utilizar a linguagem SQL para a criação, consulta e modificação de bases de dados;

7. Compreender a necessidade e as caraterísticas fundamentais das bases de dados não relacionais (NoSQL);

8. Conhecer os principais modelos e sistemas de bases de dados não relacionais.

PROGRAMA

1. Bases de Dados relacionais

1.1. Bases de dados e sistemas de gestão de bases de dados relacionais (SGBDR)

1.2. Objetivos dos SGBDR

1.3. O modelo relacional

1.3.1. Conceito de relação

1.3.2. Conceito de tabela

1.3.3. Conceito de chave

1.3.4. Chaves candidatas e chave primária

1.3.5. Chaves externas

1.3.6. Restrições de integridade

1.3.7. Restrições de domínio

1.3.8. Integridade de entidade

1.3.9. Integridade referencial

1.4. Normalização de tabelas

1.4.1. As formas normais

1.4.2. Hierarquia das formas normais

1.4.3. Primeira forma normal

1.4.4. Segunda forma normal

1.4.5. Dependência funcional

1.4.6. Atributos mutuamente independentes

1.4.7. Terceira forma normal

1.4.8. Forma normal de Boyce/Codd

1.4.9. Quarta forma normal

1.4.10. Quinta forma normal

1.5. Desenho de bases de dados relacionais

1.5.1. Modelo entidade-associação

1.5.2. Transformação de associações em tabelas

1.5.3. Exemplos práticos de modelização

1.6. Operações relacionais

1.6.1. Operações restrição, projeção e produto

1.6.2. Operações de união, diferença e interseção

1.6.3. Operações de join e divisão

1.7. Linguagem SQL

1.7.1. Bases de dados relacionais e linguagem SQL

1.7.2. Queries

1.7.3. Operações JOIN

1.7.4. Funções de agregação e agrupamento

1.7.5. Subqueries e predicados

1.7.6. Transações em SQL. Propriedades ACID-Atomicity, Consistency, Isolation, Durability

1.7.7. Projetos de criação e acesso a bases de dados com SQL

2. Introdução às bases de dados não relacionais

2.1. Dados estruturados e dados não estruturados

2.2. Big Data e os limites do modelo relacional

2.3. O conceito de NoSQL

2.4. NoSQL vs bases de dados relacionais

2.5. Modelo de bases de dados key-value

2.5.1. Análise do modelo

2.5.2. Implementação de bases de dados key-value com Couchbase Server

2.6. Modelo de bases de dados column-Oriented

2.6.1. Análise do modelo

2.6.2. Implementação de bases de dados column-oriented com Cassandra

2.7. Modelo de bases de dados documental

2.7.1. Análise do modelo

2.7.2. Implementação de bases de dados documentais com MongoDB

2.8. Modelo de bases de dados baseadas em grafos

2.8.1. Análise do modelo

2.8.2. Implementação de bases de dados baseadas em grafos com Neo4js

DEMONSTRAÇÃO DE COERÊNCIA ENTRE CONTEÚDOS PROGRAMÁTICOS E RESULTADOS DA APRENDIZAGEM

Os objetivos 1 e 2 são alcançados através dos pontos 1.1 a 1.3 do programa. O objetivo 3 é alcançado através dos pontos 1.1 a 1.14. Os pontos 1.5.1 a 1.5.3 correspondem ao objetivo 4. O objetivo 5 corresponde aos pontos 1.6.1 a 1.6.3. Os pontos 1.7.1 a 1.7.7 permitem atingir o objetivo 6. Os objetivos 7 e 8 são atingidos através dos pontos 2.1 a 2.8.

METODOLOGIA DE ENSINO E AVALIAÇÃO

Esta unidade curricular tem uma natureza teórico-prática. Estão previstas 60 horas de contato. O tempo total de trabalho do aluno corresponde a 108 horas. A componente teórica desenvolve-se através de apresentações feitas pelo docente, sendo incentivada a participação dos alunos. Na componente prática, serão usados sistemas de gestão de bases de dados relacionais para implementar bases de dados e para projetos com utilização da linguagem SQL.
A nível introdutório, serão apresentados sistemas de gestão de bases de dados relacionais e implementadas bases de dados nesses sistemas.

De acordo com o Regulamento de Funcionamento do ISTEC a avaliação é efetuada através de um exame escrito individual e obrigatório. Na classificação final, poderão ser considerados elementos de avaliação contínua, tais como testes, trabalhos individuais ou em grupo, assim como a participação nas aulas presenciais e em recursos de aprendizagem proporcionados por sistemas de e-learning.

DEMONSTRAÇÃO DE COERÊNCIA ENTRE METODOLOGIAS DE ENSINO E RESULTADOS DE APRENDIZAGEM

As exposições teóricas e a componente prática da unidade curricular permitem aos alunos obter os conhecimentos e as capacidades definidas como objetivos da unidade curricular quer no que respeita aos sistemas relacionais quer no que respeita aos sistemas de bases de dados NoSQL.

BIBLIOGRAFIA

Fundamental:
Gouveia, Feliz. (2014). Fundamentos das Base de dados. Lisboa: FCA
Silberschatz, Abraham, Korth, Henry F. & Sudarshan, S. (2011). Databse System Concept – Sixth Edition. Editor: McGrawHill
Giamas, Alex, (2017), Mastering MongoDB, Packt Publishing
Gaspar, Drazena, Coric, Ivica,(2017) Bridging Relational and NoSQL Databases, IGI Global

Complementar:
Nenad , Jukic, Vrbsky ,Susan & Nestorov, Svetlozar.(2014). Database Systems: Introduction to Databases and Data Warehouses. Editor: Pearson
Connolly, Thomas & Begg, Carolyn. (2015). Database Systems: A Practical Approach to Design, Implementation, and Management, 6th Edition. Editor: Pearson
Damas, Luís. (2005). SQL – Structured Query Language – 6.ª Edição Atualizada e Aumentada. Lisboa: FCA
Garcia-Molina, Hector, Ullman, Jeffrey D. & Widom, Jennifer. (2009). Database Systems: The Complete Book, 2nd Edition. Editor: Pearson
Johansen, Andrew. (2015). SQL: The Ultimate Beginner’s Guide. Editor: CreateSpace Independent Publishing Platform
Rob, Peter & Coronel, Carlos (2009). Database Systems: Design, Implementation, and Management, International Edition, 8th Edition. Editor: Cengage Learning
Foster, Elvis C. & Godbole, Shripad. (2014). Database Systems, A Pragmatic Approach. Editor: Apress
Coronel, Carlos & Morris, Steven. (2015). Database Systems: Design, Implementation, & Management, 11th Edition. Editor: College Bookstore Wholesale

INTERNET:
Acesso a publicações da especialidade, gratuitamente, através da rede SPRINGER:
https://link.springer.com/