Algebra Relacional
A álgebra relacional é uma linguagem de consulta procedural, ou seja, o usuário especifica quais operações devem ser realizadas sobre os dados e como elas devem ser feitas. A álgebra relacional é composta por um conjunto de operadores que atuam sobre relações e produzem outras relações como resultado.
Expressões da álgebra relacional relacionadas às nossas consultas
Informações do PC
σ(IdPlayer = 1)(PC)
Missões realizadas pelo PC
NomeMissao ← π(nome)(σ(Status = 1 ∧ IdPlayer = 1 (missao ⨝(IdMissao = Missao) (realizamissao ⨝(PC = IdPlayer) pc)))
Itens do PC
ItemNome ← π(nome)(σ(IdInventario = 1 (Item ⨝(IdItem = Item) (GuardaItem ⨝(Inventario = IdInventario) Inventario)))
Armas do PC
ArmaNome ← π(nome)(σ(IdInventario = 1 (Arma ⨝(IdArma = Arma) (GuardaArma ⨝(Inventario = IdInventario) Inventario)))
Armaduras do PC
ArmaduraNome ← π(nome)(σ(IdInventario = 1 (Armadura ⨝(IdArmadura = Armadura) (GuardaArmadura ⨝(Inventario = IdInventario) Inventario)))
Listar todas as armaduras de raridade 5 ou superior
Armadura_Raridade_5 = σ(Raridade >= 5)(Armadura)
Mostrar todas as lojas que vendem ferramentas de cura
Lojas_Vendem_Cura = π(L.Nome, F.Nome) (σ(F.Funcao = 'Cura')(Loja ⨝ VendeFerramenta ⨝ Ferramenta))
Listar todos os amuletos guardados por um jogador específico
Amuletos_Guardados_Jogador = π(A.Nome)(Amuleto ⨝ GuardaAmuleto ⨝ σ(Inventario = 1)(Inventario))
Calcular o custo total de todas as ferramentas vendidas por uma loja
Custo_Total_Loja = π(L.Nome, CustoTotal) (Loja ⨝ (π(L.IdLoja, SUM(F.CustoCompra) AS CustoTotal)(VendeFerramenta ⨝ Ferramenta))
Listar as habilidades associadas a uma armadura específica
Habilidades_Armadura_1 = π(H.Nome)(Habilidade ⨝ HabilidadeArmadura ⨝ σ(Armadura = 1)(Armadura))
Listar todas as missões e suas etapas
πNome,Descricao(σMissao=1(EtapaMissao))
Mostrar os itens que dropam de cada monstro
πMonstro.Nome,Item.Nome,Item.Descricao(σMonstro.IdMonstro=DropaItem.Monstro∧DropaItem.Item=Item.IdItem(Monstro⋈DropaItem⋈Item))
Listar as falas associadas a cada etapa de missão
πMissao.Nome,EtapaMissao.Nome,EtapaFala.Fala(σMissao.IdMissao=EtapaMissao.Missao∧EtapaMissao.IdEtapaMissao=EtapaFala.EtapaMissao(Missao⋈EtapaMissao⋈EtapaFala))
Listar as armas disponíveis em cada loja
πLoja.IdLoja,Arma.Nome,Arma.Descricao(σLoja.IdLoja=VendeArma.Loja∧VendeArma.Arma=Arma.IdArma(Loja⋈VendeArma⋈Arma))
Listar todas as missões e o número total de etapas em cada uma delas
γMissao.IdMissao,Missao.Nome,COUNT(EtapaMissao.IdEtapaMissao(Missao⋈Missao.IdMissao=EtapaMissao.MissaoEtapaMissao)