Curso Técnico Superior Profissional

Desenvolvimento para Dispositivos Móveis

Área Científica

481 – Ciências Informáticas

Duração

Semestral

Unidade Curricular

Bases de Dados II

ECTS

3

Horas de Contacto Teórico Práticas

50h

Objetivos da Aprendizagem

1. Compreender os conceitos fundamentais de bases de dados NoSQL;
2. Selecionar e aplicar o modelo de dados NoSQL adequados;
3. Programar com linguagens de consulta para bases de dados NoSQL;
4. Otimizar o desempenho e a escalabilidade de bases de dados NoSQL;
5. Garantir a segurança de dados em bases de dados NoSQL.

Conteúdos Programáticos

1. Introdução a Bases de Dados Não Relacionais (NoSQL).

1.1. Conceitos básicos;
1.2. Definição de bases de dados NoSQL e as diferenças com bases de dados relacionais;
1.3. Modelos de dados NoSQL comuns (chave-valor, documentos, grafos);
1.4. Vantagens e desvantagens das bases de dados NoSQL;
1.5. Casos de utilização de bases de dados NoSQL;
1.6. História e evolução das bases de dados NoSQL:

1.6.1. Origens e motivações para o surgimento do NoSQL;
1.6.2. Tendências e futuro das bases de dados NoSQL.

2. Modelos de dados NoSQL.

2.1. Baseado em chave-valor:

2.1.1. Características do modelo chave-valor;
2.1.2. Exemplos de bases de dados chave-valor (Cassandra, Redis, DynamoDB).

2.2. Orientado a documentos:

2.2.1. Características do modelo orientado a documentos;
2.2.2. Exemplos de bases de dados orientadas a documentos (MongoDB, CouchDB, RavenDB).

2.3. Baseado em grafos:

2.3.1. Características do modelo baseado em grafos;
2.3.2. Exemplos de bases de dados baseadas em grafos (Neo4j, OrientDB, Amazon Neptune).

2.4. Outros modelos:

2.4.1. Bases de dados wide-column (HBase, Cassandra);
2.4.2. Bases de dados especializadas (TimescaleDB, InfluxDB).

3. Linguagens de consulta para bases de dados NoSQL.

3.1. Linguagens específicas de cada base de dados:

3.1.1. CQL (Cassandra);
3.1.2. MQL (MongoDB);
3.1.3. Cypher (Neo4j).

3.2. Linguagens de consulta genéricas:

3.2.1. LINQ (C#);
3.2.2. Apache Spark SQL;
3.2.3. Gremlin.

4. Desempenho e escalabilidade em bases de dados NoSQL.

4.1. Técnicas de particionamento e replicação:

4.1.1. Particionamento por chave;
4.1.2. Particionamento por hash;
4.1.3. Replicação master-slave;
4.1.4. Replicação multimaster.

4.2. Fatores que afetam o desempenho:

4.2.1. Consistência vs. Disponibilidade;
4.2.2. Latência;
4.2.3. Carga de trabalho.

4.3. Otimização de consultas e indexação:

4.3.1. Criação de índices adequados;
4.3.2. Seleção da linguagem de consulta correta;
4.3.3. Monitorização e análise de desempenho.

5. Segurança em bases de dados NoSQL.

5.1. Autenticação e autorização.

5.1.1. Controlo de acesso baseado em utilizador;
5.1.2. Controlo de acesso baseado em função;
5.1.3. Criptografia de dados.

5.2. Auditoria e registo de atividades:

5.2.1. Rastreamento de acesso aos dados;
5.2.2. Geração de logs de eventos.
5.3. Conformidade com regulamentações:
5.3.1. GDPR;
5.3.2. HIPAA.

Bibliografia e recursos didáticos recomendados

Ajit Singh, Data Modeling with NoSQL Database: 3rd Edition.
Aristides Villarreal Bravo, Building Modern Web Applications, BPB Publications; 1st edition (29 Sept. 2020).
Pramod Sadalage, NoSQL Distilled: A Brief Guide to the Emerging World of Polyglot Persistence, Addison-Wesley Professional; 1st edition (12 Oct. 2009).
Rick Copeland, Rick Copeland, MongoDB Applied Design Patterns: Practical Use Cases with the Leading NoSQL Database, O’Reilly Media; 1st edition (4 Mar. 2013).
Bipin Joshi, Beginning Database Programming Using ASP.NET Core 3: With MVC, Razor Pages, Web API, jQuery, Angular, SQL Server, and NoSQL, Apress; 1st ed. (13 Dec. 2019).

INTERNET:
Acesso a publicações da especialidade, gratuitamente, através da rede SPRINGER: