Pular para conteúdo

Álgebra Relacional

Introdução

Segundo Elmasri e Navathe1, a álgebra relacional é fundamental no desenvolvimento de uma aplicação de banco de dados bem-sucedida. Ela fornece uma base formal para a definição e manipulação de dados em bancos de dados relacionais, permitindo a descrição das operações que podem ser realizadas nas tabelas do banco. A álgebra relacional não apenas facilita a compreensão e o planejamento das consultas e atualizações no banco de dados, mas também assegura que as operações sejam executadas de maneira eficiente e consistente.

Objetivo

Este documento tem como objetivo detalhar a Álgebra Relacional utilizada nas principais consultas realizadas no projeto. Através deste documento, será possível entender a estrutura e a lógica das operações realizadas.

Consultas

Abaixo está a álgebra relacional de 14 consultas:

1. Consultar os detalhes de todas as missões associadas a um determinado NPC

π n.id_npc, m.* (σ inns.id_sala = 2 (instancia_npc_na_sala ⨝ npc (instancia_npc_na_sala.id_npc = npc.id_npc) ⨝ missao (npc.id_missao_associada = missao.id_missao)))

2. Selecionar missões concluídas pelo personagem

π p.id_personagem, rdm.id_missao, rdm.status (σ rdm.status = 'completa' ∧ rdm.id_personagem = 2 (personagem ⨝ registro_da_missao (personagem.id_personagem = registro_da_missao.id_personagem)))

3. Verificar os pré-requisitos para uma missão específica

π m.id_missao, m.nome_missao, pr.id_pre_requisito (σ m.id_missao = 5 (missao ⨝ pre_requisito (missao.id_missao = pre_requisito.id_missao)))

4. Verificar a capacidade do inventário

γ COUNT(i.id_personagem) (σ i.id_personagem = 3 (personagem ⨝ inventario (personagem.id_personagem = inventario.id_personagem)))

5. Verificar todos os itens do inventário

π i.nome_item (σ i.id_personagem = 3 (personagem ⨝ inventario (personagem.id_personagem = inventario.id_personagem)))

6. Verificar todos os aliens de um personagem

π sda.nome_alien (σ sda.id_personagem = 3 (personagem ⨝ status_do_alien (personagem.id_personagem = status_do_alien.id_personagem)))

7. Quantidade de moedas do personagem

π quantidade_moedas (σ p.id_personagem = 3 (personagem))

8. Verificar recompensa relacionada a um personagem específico

π r.* (σ p.id_personagem = 3 (personagem ⨝ recompensa (personagem.id_personagem = recompensa.id_personagem)))

9. Listar um NPC em uma sala

π inns.id_npc, inns.id_sala (σ s.id_sala = 3 (instancia_npc_na_sala ⨝ sala (instancia_npc_na_sala.id_sala = sala.id_sala)))

10. Listar todas as salas de uma determinada região, com seus pré-requisitos

π r.nome_regiao, s.id_sala, s.id_pre_req_missao (σ r.nome_regiao = 'Nave do Vilgax' (sala ⨝ regiao (sala.nome_regiao = regiao.nome_regiao)))

11. Buscar detalhes da recompensa na zona de armadilha

π r.* (σ r.id_sala = 3 (zona_de_armadilha ⨝ recompensa (zona_de_armadilha.id_sala = recompensa.id_sala)))

12. Buscar informações sobre os itens que dropam de um monstro específico

π m.nome, i.* (σ m.nome = 'Demônio' (monstro ⨝ item (monstro.id_recompensa = item.nome_item)))

13. Verificar o status de vida de um alien de um personagem específico

π p.id_personagem, sda.nome_alien, sda.saude (σ p.id_personagem = 3 ∧ sda.nome_alien = 'XLR8' (status_do_alien ⨝ personagem (status_do_alien.id_personagem = personagem.id_personagem)))

14. Consultar as recompensas de uma sala específica

π s.id_sala, r.nome_item, r.recompensa_recebida (σ s.id_sala = 3 (recompensa ⨝ sala (recompensa.id_sala = sala.id_sala)))

Referência Bibliográfica

1. ELMASRI, Ramez; NAVATHE, Shamkant B. Sistemas de banco de dados. Tradução: Daniel Vieira. Revisão técnica: Enzo Seraphim; Thatyana de Faria Piola Seraphim. 6. ed. São Paulo: Pearson Addison Wesley, 2011. Capítulo 6 Álgebra e Cálculo Relacional páginas 96 a 98.

Bibliografia

Álgebra Relacional Stardew Valley. Disponível em: https://github.com/SBD1/2023.2-Grupo01-StardewValley/blob/main/docs/Entrega-02/algebra_relacional.md. Acesso em 28 de agosto de 2024.

Álgebra Relacional One Shot. Disponível em: https://sbd1.github.io/2023.2-OneShot/documentos/projeto-fisico/algebra/. Acesso em 28 de agosto de 2024.

Histórico de Versão

Versão Data Descrição Autor(es) Revisor(es)
1.0 28/08 Criando documento e adicionando introdução e referencias bibliográficas João Artur Arthur Alves
1.1 28/08 Adicionando Álgebra Relacional das consultas João Artur Arthur Alves