NOVO PLANO DE ESTUDOS Candidatura Desenvolvimento
para Dispositivos
Móveis
NOVO PLANO DE ESTUDOS Candidatura Desenvolvimento para Dispositivos Móveis NOVO PLANO DE ESTUDOS Candidatura Desenvolvimento para Dispositivos Móveis NOVO PLANO DE ESTUDOS Candidatura Desenvolvimento para Dispositivos Móveis

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: