Pular para conteúdo

Dicionário de dados

Introdução

O Dicionário de Dados é uma descrição detalhada dos elementos que compõem o banco de dados, fornecendo informações sobre cada atributo e suas características. Ele serve como uma referência centralizada para desenvolvedores, administradores e usuários, garantindo uma compreensão clara dos dados armazenados e de como devem ser utilizados.

O dicionário de dados desse projeto inclui as seguintes colunas:

  • Nome: O nome do atributo no banco de dados.
  • Descrição: Uma descrição detalhada do que o atributo ou entidade representa e sua função no contexto do jogo.
  • Tipo de Dado: O tipo de dado que o atributo armazenará, como inteiro, texto, data, etc.
  • Tamanho: O comprimento máximo ou a capacidade do dado.
  • Restrições de Domínio: As regras e restrições que limitam os valores que o atributo pode assumir, como valores possíveis, valores obrigatórios, ou restrições de unicidade.

A seguir, apresentamos o dicionário de dados completo.

Dicionário de Dados

Dicionário de Dados

Tabelas Entidade

Mapa

A entidade Mapa descreve o mundo do MUD. Essa entidade é identificada pelo seu nome, além disso, ela possui um atributo hora, representando o ciclo de dia e noite dentro do jogo.

Nome Descrição Tipo de Dado Tamanho Restrições de domínio
nome Nome único que identifica o mapa. VARCHAR 30 PRIMARY KEY
hora Representa o ciclo de dia e noite no jogo. ciclo_dia --- NOT NULL

Chunk

A entidade Chunk representa os blocos que compõem o mapa. O mapa é estruturado como uma matriz, onde cada chunk corresponde a uma célula. Chunks são identificados por um número sequencial, que varia de 0 até o tamanho total do mapa, numerados da esquerda superior para a direita inferior. Além disso, cada chunk está associado a um bioma específico e possui um identificador que o vincula ao nome do mapa ao qual pertence. A entidade Chunk é uma das entidades centrais do jogo pois serve como ponto de interseção entre várias outras entidades, estabelecendo conexões importantes dentro da estrutura do jogo.

  • Observação: Essa tabela possui chave estrangeira para a entidade Mapa e Bioma.
Nome Descrição Tipo de Dado Tamanho Restrições de domínio
numero Número sequencial que identifica o chunk. INT --- PRIMARY KEY
nome_bioma Nome do bioma ao qual o chunk pertence. VARCHAR 30 FOREIGN KEY, NOT NULL
nome_mapa Nome do mapa ao qual o chunk pertence. VARCHAR 30 FOREIGN KEY, NOT NULL
PRIMARY KEY (numero, nome_mapa) --- --- ---

Construível

A entidade Construível descreve estruturas construíveis pelo jogador. Essas estruturas são identificadas por um nome específico, possuem uma receita de construção própria e desempenham uma funcionalidade particular dentro do jogo.

Nome Descrição Tipo de Dado Tamanho Restrições de domínio
nome Nome único que identifica o construível. VARCHAR 30 PRIMARY KEY
descricao Receita da construção. TEXT --- NOT NULL

Item

A entidade Item descreve todos os itens disponíveis no jogo. Todos os itens podem ser identificados pelo seu nome único, e cada item pode ser especializado em Material, Craftável e Alimento.

Nome Descrição Tipo de Dado Tamanho Restrições de domínio
nome Nome único que identifica o item. VARCHAR 30 PRIMARY KEY
tipo_item Tipo de especialização do item tipo_item --- NOT NULL

Alimento

A entidade Alimento refere-se aos itens consumíveis do jogo, que restauram pontos de fome do jogador ao serem ingeridos. Esses itens podem ser obtidos por meio de drops de mobs ou pela exploração de fontes.

  • Observação: Essa entidade é uma especialização da entidade Item.
Nome Descrição Tipo de Dado Tamanho Restrições de domínio
nome_item Nome do item que é um alimento. VARCHAR 30 PRIMARY KEY, FOREIGN KEY
pts_fome Indica quantos pontos de fome do jogador o alimento restaura. INT --- NOT NULL

Craftável

A entidade Craftável descreve os itens que podem ser fabricados pelo jogador dentro do jogo. Esses itens possuem receitas específicas de fabricação e podem ser especializados em Funcional, Ferramenta Durável e Armadura Durável.

  • Observação: Essa entidade é uma especialização da entidade Item.
Nome Descrição Tipo de Dado Tamanho Restrições de domínio
nome_item Nome do item que é craftável. VARCHAR 30 PRIMARY KEY, FOREIGN KEY
tipo_craftavel Tipo de especialização do item craftável. tipo_craftavel --- NOT NULL

Funcional

A entidade Funcional representa os itens que desempenham uma funcionalidade específica. Cada item funcional possui uma função distinta e única.

  • Observação: Essa entidade é uma especialização da entidade Craftável.
Nome Descrição Tipo de Dado Tamanho Restrições de domínio
nome_item Nome do item que é funcional. VARCHAR 30 PRIMARY KEY, FOREIGN KEY
funcao Descreve a função específica do item. TEXT --- NOT NULL

Ferramenta Durável

A entidade Ferramenta Durável representa os itens que os jogadores utilizam para executar diversas ações, como minerar recursos e atacar mobs. As ferramentas têm uma durabilidade limitada e causam uma quantidade específica de dano quando usadas contra mobs.

  • Observação: Essa entidade é uma especialização da entidade Craftável.
Nome Descrição Tipo de Dado Tamanho Restrições de domínio
nome_item Nome do item que é uma ferramenta. VARCHAR 30 PRIMARY KEY, FOREIGN KEY
durabilidade_total Durabilidade total da ferramenta. INT --- NOT NULL
pts_dano Pontos de dano que a ferramenta causa em mobs. INT --- NOT NULL

Armadura Durável

A entidade Armadura Durável representa os itens que os jogadores podem equipar para aumentar sua resistência a danos causados por ferramentas e mobs. Assim como as ferramentas, as armaduras possuem durabilidade limitada e oferecem uma quantidade definida de pontos de armadura.

  • Observação: Essa entidade é uma especialização da entidade Craftável.
Nome Descrição Tipo de Dado Tamanho Restrições de domínio
nome_item Nome do item que é uma armadura durável. VARCHAR 30 PRIMARY KEY, FOREIGN KEY
pts_armadura Pontos de armadura que o item fornece ao jogador. INT --- NOT NULL
durabilidade_total Durabilidade total da armadura. INT --- NOT NULL

Estrutura

A entidade Estrutura descreve as estruturas pré-geradas no mapa do jogo. Cada chunk pode abrigar uma dessas estruturas de acordo com a sua probabilidade, que podem ser exploradas pelo jogador em busca de recompensas.

Nome Descrição Tipo de Dado Tamanho Restrições de domínio
nome Nome único que identifica a estrutura. VARCHAR 30 PRIMARY KEY
probabilidade Probabilidade de a estrutura ser gerada em um chunk. DECIMAL(5,2) --- NOT NULL

Fonte

A entidade Fonte descreve as fontes naturais de recursos dentro do jogo. Cada fonte fornece uma quantidade máxima de itens específicos que podem ser minerados pelo jogador utilizando ferramentas.

  • Observação: Essa entidade possui chave estrangeira para a entidade Item.
Nome Descrição Tipo de Dado Tamanho Restrições de domínio
nome Nome único que identifica a fonte. VARCHAR 30 PRIMARY KEY
qtd_max Quantidade máxima de itens que a fonte pode fornecer. INT --- NOT NULL
nome_item_drop Nome do item que pode ser extraído desta fonte. VARCHAR 30 FOREIGN KEY, NOT NULL

Bioma

A entidade Bioma descreve os diferentes biomas presentes no jogo, identificados por um nome único. O bioma determina as características específicas de cada chunk no mapa.

Nome Descrição Tipo de Dado Tamanho Restrições de domínio
nome Nome único que identifica o bioma. VARCHAR 30 PRIMARY KEY

Inventário

A entidade Inventário representa o inventário do jogador. A tabela Inventário atua como uma tabela intermediária que resulta da relação entre jogador e item. Sendo uma entidade fraca, o inventário é identificado exclusivamente pelo ID do jogador que possui os itens nele contidos.

  • Observação: Essa entidade possui chave estrangeira para as entidades Jogador e Item.
Nome Descrição Tipo de Dado Tamanho Restrições de domínio
id_inventario Identificador referenciando o jogador que possui o item. INT --- FOREIGN KEY
id_inst_item Identificador da instância de item possuído pelo jogador. INT --- FOREIGN KEY, UNIQUE

Jogador

A entidade Jogador representa o personagem principal do jogo. Cada instância de Jogador possui um identificador único, além de diversos atributos que o caracterizam. O jogador conta com quatro atributos específicos para equipar itens de armadura. Além disso, o jogador possui chaves estrangeiras que indicam o chunk em que ele se encontra no momento e a missão que está realizando.

Nome Descrição Tipo de Dado Tamanho Restrições de domínio
id_jogador Identificador único do jogador. SERIAL --- PRIMARY KEY
nome Nome do jogador. VARCHAR 30 NOT NULL
fome Quantidade de pontos de fome que o jogador possui em determinado instante. INT --- NOT NULL
vida Quantidade de pontos de vida que o jogador possui em determinado instante. INT --- NOT NULL
nivel Nível que o jogador está em determinado instante. INT --- NOT NULL
exp Quantidade de experiência que um jogador tem em determinado instante. Essa experiência poderá ser utilizada para reparar as ferramentas. INT --- NOT NULL
cabeca Identificador da armadura equipada na cabeça. INT --- FOREIGN KEY
peito Identificador da armadura equipada no peito. INT --- FOREIGN KEY
pernas Identificador da armadura equipada nas pernas. INT --- FOREIGN KEY
pes Identificador da armadura equipada nos pés. INT --- FOREIGN KEY
numero_chunk Identificador do chunk onde o jogador está localizado. INT --- FOREIGN KEY, NOT NULL
missao Identificador da missão atual do jogador. INT --- FOREIGN KEY

Missão

A entidade Missão armazena a lista de missões disponíveis no jogo, que auxiliam o jogador na exploração do mundo. Cada missão é identificada por um ID único e segue uma sequência específica de missões. As missões incluem uma descrição, um objetivo, e oferecem experiência e recompensas para o jogador. As missões sequenciais são desbloqueadas e apresentadas ao jogador por meio de uma interface ao interagir com um NPC, embora o NPC atue apenas como uma interface, sem qualquer relação direta com a missão em si.

  • Observação: Essa entidade possui chave estrangeira para a entidade Item.
Nome Descrição Tipo de Dado Tamanho Restrições de domínio
id_missao Identificador único da missão. SERIAL --- PRIMARY KEY
nome Nome da missão. VARCHAR 30 NOT NULL
descricao Descrição detalhada da missão. TEXT --- NOT NULL
objetivo Objetivo que deve ser cumprido pelo jogador para completar a missão. TEXT --- NOT NULL
exp Quantidade de experiência oferecida pela conclusão da missão. INT --- NOT NULL
recompensa Recompensa fornecida ao completar a missão. TEXT --- NOT NULL
nome_item Identificador do item fornecido como recompensa. VARCHAR 30 FOREIGN KEY

Mob

A entidade Mob representa todas as entidades vivas no jogo, como inimigos e NPCs. Cada mob possui um nome único, uma vida máxima e uma probabilidade de spawn. Além disso, os mobs podem ser especializados como Agressivos ou Pacíficos, dependendo de seu comportamento no jogo.

Nome Descrição Tipo de Dado Tamanho Restrições de domínio
nome Nome único que identifica o mob. VARCHAR 30 PRIMARY KEY
tipo_mob Tipo de especialização do mob. tipo_mob --- NOT NULL

Agressivo

A entidade Agressivo modela os mobs com comportamento agressivo ou neutro. Mobs agressivos possuem pontos de dano que reduzem a vida do jogador quando o atacam. Esses mobs podem ser impulsivos, atacando o jogador sempre que o encontram, ou podem adotar um comportamento reativo, atacando apenas se forem provocados.

  • Observação: Essa entidade é uma especialização da entidade Mob.
Nome Descrição Tipo de Dado Tamanho Restrições de domínio
nome_mob Nome do mob que é agressivo. VARCHAR 30 PRIMARY KEY, FOREIGN KEY
impulsivo Determina o comportamento impulsivo do mob. BOOLEAN --- NOT NULL
pts_dano Declara a quantidade de dano que o mob causa ao jogador. INT --- NOT NULL

Pacífico

A entidade Pacífico modela os mobs com comportamento pacífico. Mobs pacíficos nunca atacam o jogador e podem ser especializados como NPC.

  • Observação: Essa entidade é uma especialização da entidade Mob.
Nome Descrição Tipo de Dado Tamanho Restrições de domínio
nome_mob Nome do mob que é pacífico. VARCHAR 30 PRIMARY KEY, FOREIGN KEY
vida_max Vida máxima do mob pacífico. INT --- NOT NULL
tipo_pacifico Tipo de especialização do mob pacífico tipo_pacifico --- NOT NULL

NPC

A entidade NPC modela os mobs pacíficos conhecidos como Aldeões. Os Aldeões são os únicos mobs no jogo que podem oferecer missões, auxiliando o jogador a progredir no fluxo do jogo.

  • Observação: Essa entidade é uma especialização da entidade Pacífico.
Nome Descrição Tipo de Dado Tamanho Restrições de domínio
nome_pacifico Nome do mob pacífico que é um NPC. VARCHAR 30 PRIMARY KEY, FOREIGN KEY
nome_proprio Nome próprio do NPC (específico para cada instância). VARCHAR 30 NOT NULL

Tabelas Instância

Instância Construível

A entidade Instância Construível representa as diferentes ocorrências da entidade Construível dentro do mapa. Cada instância é identificada por um ID único, permitindo distinguir entre as diversas construções presentes no jogo.

  • Observação: Essa entidade possui chave estrangeira para as entidades Construível e Chunk.
Nome Descrição Tipo de Dado Tamanho Restrições de domínio
id_inst_construivel Identificador único da instância de construível. SERIAL --- PRIMARY KEY
nome_construivel Nome do construível associado a esta instância. VARCHAR 30 FOREIGN KEY, NOT NULL
numero_chunk Número do chunk onde esta instância está localizada. INT --- FOREIGN KEY, NOT NULL
nome_mapa Nome do mapa onde a instância está localizada. VARCHAR 30 FOREIGN KEY, NOT NULL

Instância Item

A entidade Instância Item representa as ocorrências específicas de itens no jogo. Cada instância possui um identificador único e uma durabilidade atual. As instâncias de item podem estar armazenadas no inventário de um jogador ou situadas no chão de algum chunk.

  • Observação: Essa entidade possui chave estrangeira para as entidades Item e Inventário.
Nome Descrição Tipo de Dado Tamanho Restrições de domínio
id_inst_item Identificador único da instância de item. SERIAL --- PRIMARY KEY
nome_item Nome do item associado a esta instância. VARCHAR 30 FOREIGN KEY, NOT NULL
durabilidade_atual Durabilidade atual do item. INT --- NOT NULL

Instância Estrutura

A entidade Instância Estrutura representa as ocorrências de estruturas pré-geradas no jogo. Cada instância possui um identificador único e o nome da estrutura que representa, além de estar vinculada ao bioma e ao chunk em que está localizada.

  • Observação: Essa entidade possui chave estrangeira para as entidades Estrutura, Bioma e Chunk.
Nome Descrição Tipo de Dado Tamanho Restrições de domínio
id_inst_estrutura Identificador único da instância da estrutura. SERIAL --- PRIMARY KEY
nome_estrutura Nome da estrutura associada a esta instância. VARCHAR 30 FOREIGN KEY, NOT NULL
nome_bioma Identificador do bioma onde a estrutura está localizada. VARCHAR 30 FOREIGN KEY, NOT NULL
numero_chunk Número do chunk onde a estrutura está localizada. INT --- FOREIGN KEY, NOT NULL
nome_mapa Nome do mapa onde a estrutura está localizada. VARCHAR 30 FOREIGN KEY, NOT NULL

Instância Fonte

A entidade Instância Fonte representa as ocorrências de fontes naturais de recursos no jogo. Cada instância possui um identificador único, o nome da fonte que representa e a quantidade atual de recursos disponíveis. Além disso, cada instância está vinculada a um chunk específico onde a fonte está localizada e ao material que ela fornece.

  • Observação: Essa entidade possui chave estrangeira para as entidades Fonte, Item e Chunk.
Nome Descrição Tipo de Dado Tamanho Restrições de domínio
id_inst_fonte Identificador único da instância da fonte. SERIAL --- PRIMARY KEY
nome_fonte Nome da fonte associada a esta instância. VARCHAR 30 FOREIGN KEY, NOT NULL
qtd_atual Quantidade atual de recursos disponíveis na fonte. INT --- NOT NULL
numero_chunk Número do chunk onde a fonte está localizada. INT --- FOREIGN KEY, NOT NULL
nome_mapa Nome do mapa onde a fonte está localizada. VARCHAR 30 FOREIGN KEY, NOT NULL
nome_item_drop Nome do item que pode ser extraído desta fonte. VARCHAR 30 FOREIGN KEY, NOT NULL

Instância Mob

A entidade Instância Mob representa as ocorrências de mobs no jogo. Cada instância possui um identificador único, o nome do mob que representa e a vida atual do mob. As instâncias de mob também estão associadas a um chunk específico e, opcionalmente, a uma estrutura em que o mob pode estar presente.

  • Observação: Essa entidade possui chave estrangeira para as entidades Mob, Chunk e Estrutura.
Nome Descrição Tipo de Dado Tamanho Restrições de domínio
id_inst_mob Identificador único da instância do mob. SERIAL --- PRIMARY KEY
nome_mob Nome do mob associado a esta instância. VARCHAR 30 FOREIGN KEY, NOT NULL
vida_atual Vida atual do mob nesta instância. INT --- NOT NULL
numero_chunk Número do chunk onde o mob está localizado. INT --- FOREIGN KEY, NOT NULL
nome_mapa Nome do mapa onde o mob está localizado. VARCHAR 30 FOREIGN KEY, NOT NULL
id_estrutura Identificador da instância de estrutura onde o mob pode estar, se aplicável. INT --- FOREIGN KEY

Tabelas Intermediárias

Mob Dropa Item

A tabela Mob Dropa Item modela os itens que podem ser dropados por cada mob. Cada item possui uma probabilidade de ser dropado pelo mob quando ele é abatido.

  • Observação: Essa entidade possui chave estrangeira para as entidades Mob e Item.
Nome Descrição Tipo de Dado Tamanho Restrições de domínio
nome_mob Nome único do mob que pode dropar o item. VARCHAR 30 FOREIGN KEY, NOT NULL
nome_item Nome do item que pode ser dropado pelo mob. VARCHAR 30 FOREIGN KEY, NOT NULL
probabilidade Probabilidade de o item ser dropado pelo mob. DECIMAL(5,2) --- NOT NULL
quantidade Quantidade do item que pode ser dropado. INT --- DEFAULT 1

Estrutura Fornece Item

A tabela Estrutura Fornece Item modela os itens que podem ser obtidos explorando cada estrutura. Cada item possui uma probabilidade de ser encontrado dentro de uma estrutura explorada.

  • Observação: Essa entidade possui chave estrangeira para as entidades Estrutura e Item.
Nome Descrição Tipo de Dado Tamanho Restrições de domínio
nome_estrutura Nome único da estrutura que fornece o item. VARCHAR 30 FOREIGN KEY, NOT NULL
nome_item Nome do item obtido pela estrutura. VARCHAR 30 FOREIGN KEY, NOT NULL
probabilidade Probabilidade de o item ser encontrado dentro da estrutura. DECIMAL(5,2) --- NOT NULL

Ferramenta Minera Instância de Fonte

A tabela Ferramenta Minera Instância de Fonte define quais ferramentas são capazes de minerar cada fonte. Cada fonte pode ser minerada por uma ou mais ferramentas diferentes, dependendo da sua finalidade.

Nome Descrição Tipo de Dado Tamanho Restrições de domínio
nome_ferramenta Nome da ferramenta utilizada para minerar a fonte. VARCHAR 30 FOREIGN KEY, NOT NULL
nome_fonte Nome único da fonte que está sendo minerada. VARCHAR 30 FOREIGN KEY, NOT NULL

Histórico de versões

Versão Data Descrição Autor Revisão
1.0 22/07/2024 Criação do Dicionário de Dados Bruno Ricardo de Menezes Arthur Carneiro Trindade
Miguel Moreira da Silva de Oliveira
1.1 22/07/2024 Primeira versão do Dicionário de Dados finalizada Bruno Ricardo de Menezes
Arthur Carneiro Trindade
Miguel Moreira da Silva de Oliveira
2.0 16/08/2024 Segunda versão do Dicionário de Dados finalizada Arthur Carneiro Trindade Bruno Ricardo de Menezes
Miguel Moreira da Silva de Oliveira
3.0 09/09/2024 Versão final do Dicionário de Dados Bruno Ricardo de Menezes
Arthur Carneiro Trindade
Miguel Moreira da Silva de Oliveira