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.
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.
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.
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.
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.
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.
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.
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.
- Observação: Essa entidade possui chave estrangeira para as entidades Ferramenta Durável e Fonte.
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 |