DD - Dicionário de Dados
"Um dicionário de dados é uma coleção de nomes, atributos e definições sobre elementos de dados que estão sendo usados em seu estudo" (ABCD-USP)
[...] "o dicionário de dados armazena outras informações, como as decisões de projeto, os padrões de utilização, as descrições dos programas das aplicações e as informações dos usuários" (Navathe, 2005)
Seu principal objetivo é esclarecer o significado dos nomes e valores das variáveis presentes em uma planilha ou base de dados. Em um dicionário de dados, é possível encontrar informações como: - Nomes das variáveis exatamente como aparecem na planilha; - Intervalo de valores ou categorias aceitas para cada variável; - Descrição detalhada da finalidade e conteúdo da variável; - Outras informações relevantes, como unidades de medida, formatos ou regras de coleta.
Tabelas Provindas de Entidades
Entidade: NPC
Tabela: npcs
Descrição: A entidade NPC (Non-Player-Character) guarda as informações sobre seu identificador único, informações pessoais como nome, ocupação, idade, sexo, residência, local de nascimento e script de diálogo além do local em que está.
Observação: essa tabela possui chave estrangeira para as entidades Sala
, Corredor
e tipos_personagem
Nome Variável | Tipo | Descrição | Valores permitidos | Permite valores nulos? | É chave? | Observações |
---|---|---|---|---|---|---|
id | id | Identificador único do NPC | 1 - 999999999 | Não | PK | |
nome | nome | Nome completo do NPC | a-z, A,z | Não | Aceita até 128 caracteres | |
ocupacao | ocupacao | Ocupação do NPC na história | a-z, A,z | Não | Aceita até 64 caracteres | |
idade | idade | Idade do NPC | 1 - 120 | Não | O valor default é 18 | |
sexo | sexo | Sexo do NPC | 'masculino', 'feminino' |
Não | ||
residencia | residencia | Descrição de onde o NPC reside | a-z, A-z | Não | Aceita até 96 caracteres | |
local_nascimento | local_nascimento | Local onde o NCP nasceu | a-z, A-z | Não | O valor default é 'arkham'. Aceita até 96 caracteres | |
id_tipo_personagem | id | Indica o id do NPC na tabela de tipos de personagem | 1 - 999999999 | Não | FK | |
id_sala | id | Indica o id da sala que o personagem está | 1 - 999999999 | Sim | FK | Quando id_sala for nulo, id_corredor deve ser diferente de nulo, e vice-versa. |
id_corredor | id | Indica o id do corredor que o personagem está | 1 - 999999999 | Sim | FK | Quando id_corredor for nulo, id_sala deve ser diferente de nulo, e vice-versa. |
Entidade: Diálogos
Tabela: dialogos
Descrição: A tabela diálogos contém os textos dos diálogos dos NPCs do RPG.
Observação: essa tabela possui chave estrangeira para as entidades NPC
Nome Variável | Tipo | Descrição | Valores permitidos | Permite valores nulos? | É chave? | Observações |
---|---|---|---|---|---|---|
id | id | Identificador único do Dialogo | 1 - 999999999 | Não | PK | |
npc_id | id | Indica o id do NPC que possui aquele diálogo | 1 - 999999999 | Não | FK | |
script_dialogo | script_dialogo | Texto do diálogo do NPC que será lido pelo jogador | a-z, A,z | Não | Aceita até 512 caracteres |
Entidade: Personagem Jogável
Tabela: personagens_jogaveis
Descrição: A entidade Personagem Jogável armazena informações sobre o identificador único, dados pessoais (nome, ocupação, idade, sexo, residência, local de nascimento), atributos de status (força, destreza, magia, inteligência, sorte, entre outros), equipamentos (arma, armadura), inventário e localização atual do personagem controlado pelo jogador. Inclui também características físicas e habilidades específicas, como tamanho, aparência, educação e conhecimento, essenciais para interações e mecânicas de jogo.
Observação: essa tabela possui chave estrangeira para as entidades Pericia
, Instancia_de_item
, Inventario
, Sala
, Corredor
e tipos_personagem
Nome Variável | Tipo | Descrição | Valores permitidos | Permite valores nulos? | É chave? | Observações |
---|---|---|---|---|---|---|
id | id | Identificador único do personagem | 1 - 999999999 | Não | PK | |
nome | nome | Nome completo do personagem | a-z, A,z | Não | Aceita até 128 caracteres | |
ocupacao | ocupacao | Ocupação do personagem na história do jogo | a-z, A,z | Não | Aceita até 64 caracteres | |
residencia | residencia | Descrição de onde o personagem reside | a-z, A-z | Não | Aceita até 96 caracteres | |
local_nascimento | local_nascimento | Local onde o personagem nasceu | a-z, A-z | Não | Aceita até 96 caracteres | |
idade | idade | Idade do personagem | 1 - 120 | Não | O valor default é 18 | |
sexo | sexo | Sexo do personagem | 'masculino', 'feminino' |
Não | ||
movimento | smallint | Pontos de movimento que o personagem possui | 1 - 100 | Não | ||
sanidade_atual | smallint | Sanidade atual do personagem | 0 - 100 | Não | Valor padrão = 10 | |
insanidade_temporaria | boolean | Insaidade temporária produzida por algum evento externo | 1-0 | Não | ||
insanidade_indefinida | boolean | Insanidade sem tempo determinado e que só terminará após uma ação específica | 1-0 | Não | É verdadeira quando a sanidade_atual do personagem é 0 | |
PM_base | smallint | Valor base dos pontos de magia do personagem | 10 - 100 | Não | Valor padrão = 10 | |
PM_max | smallint | Valor máximo de pontos de magia do personagem | 10 - 100 | Não | ||
forca | atributo | Pontos de força que o personagem possui | 3 - 18 | Não | Equivale aos valores que podem ser obtidos ao jogar três dados de seis faces e somar seus resultados | |
constituicao | atributo | Pontos de constituição que o personagem possui | 3 - 18 | Não | Equivale aos valores que podem ser obtidos ao jogar três dados de seis faces e somar seus resultados | |
poder | atributo | Pontos de destreza poder o personagem possui | 3 - 18 | Não | Equivale aos valores que podem ser obtidos ao jogar três dados de seis faces e somar seus resultados | |
destreza | atributo | Pontos de destreza que o personagem possui | 3 - 18 | Não | Equivale aos valores que podem ser obtidos ao jogar três dados de seis faces e somar seus resultados | |
aparencia | atributo | Pontos de aparência que o personagem possui | 3 - 18 | Não | Equivale aos valores que podem ser obtidos ao jogar três dados de seis faces e somar seus resultados | |
tamanho | atributo | Pontos de tamanho que o personagem possui | 3 - 18 | Não | Equivale aos valores que podem ser obtidos ao jogar três dados de seis faces e somar seus resultados | |
inteligencia | atributo | Pontos de inteligencia que o personagem possui | 3 - 18 | Não | Equivale aos valores que podem ser obtidos ao jogar três dados de seis faces e somar seus resultados | |
educacao | atributo | Pontos de destreza que educação personagem possui | 3 - 18 | Não | Equivale aos valores que podem ser obtidos ao jogar três dados de seis faces e somar seus resultados | |
pontos_de_vida_atual | smallint | Equivale aos pontos de vida atuais do personagem | 0 - 100 | Não | ||
ideia | smallint | Pontos de ideia que o personagem possui | 1 - 100 | Não | inteligência x 5. Para corrigir a terceira forma normal, esse atributo está representado com uma VIEW no DLL | |
conhecimento | smallint | Pontos de conhecimento que o personagem possui | 1 - 100 | Não | educação x 5. Para corrigir a terceira forma normal, esse atributo está representado com uma VIEW no DLL | |
sorte | smallint | Pontos de sorte que o personagem possui | 1 - 100 | Não | poder x 5. Para corrigir a terceira forma normal, esse atributo está representado com uma VIEW no DLL | |
sanidade_maxima | smallint | Equivale aos pontos máximos de sanidade do personagem | 1 - 100 | Não | poder x 5. Para corrigir a terceira forma normal, esse atributo está representado com uma VIEW no DLL | |
pts_de_vida_maximo | Integer | Equivale ao valor máximo para os pontos de vida do personagem | 1 - 100 | Não | (constituição + tamanho ) / 2. Para corrigir a terceira forma normal, esse atributo está representado com uma VIEW no DLL | |
id_sala | id | Indica o id da sala que o personagem está | 1 - 999999999 | Sim | FK | Quando id_sala for nulo, id_corredor deve ser diferente de nulo, e vice-versa. |
id_corredor | id | Indica o id do corredor que o personagem está | 1 - 999999999 | Sim | FK | Quando id_corredor for nulo, id_sala deve ser diferente de nulo, e vice-versa. |
id_inventario | id | Identificador de inventário do personagem | 1 - 999999999 | Não | FK | |
id_armadura | id | Identificador de qual armadura o personagem equipa | 1 - 999999999 | Sim | FK | |
id_arma | id | Identificador de qual arma o personagem equipa | 1 - 999999999 | Sim | FK | |
id_tipo_personagem | id | Identificador do personagem na tabela tipos_personagem | 1 - 999999999 | Não | FK |
Entidade: Perícia
Tabela: pericias
Descrição: a entidade pontos de pericia possui identificar único, nome e valor da perícia e se é de ocupação do personagem.
Observação:
Nome Variável | Tipo | Descrição | Valores permitidos | Permite valores nulos? | É chave? | Observações |
---|---|---|---|---|---|---|
id | id | Identificador único dos pontos de perícia do personagem | 1 - 999999999 | Não | PK | |
nome | nome | Nome da perícia do personagem | a-z, A-Z | Não | Aceita até 128 caracteres | |
valor | int | Valor da perícia do personagem | 10 - 100 | Não | Valor padrão = 10 | |
eh_de_ocupacao | boolean | A perícia é de ocupação do personagem ou não? | 1-0 | Não | 0 para sim e 1 para não |
Entidade: Inventario
Tabela: inventarios
Descrição: A entidade Inventário armazena informações sobre o identificador único e tamanho do inventário, que representa a capacidade disponível para armazenamento.
Observação:
Nome Variável | Tipo | Descrição | Valores permitidos | Permite valores nulos? | É chave? | Observações |
---|---|---|---|---|---|---|
id | id | Identificador único do inventário | 1 - 999999999 | Não | PK | |
tamanho | smallint | Tamanho do invetário do personagem | 10 - 100 | Não | Valor padrão = 10 |
Entidade: Templo
Tabela: templos
Descrição: A entidade Templo armazena informações sobre seu identificador único, nome e descrição detalhada do local.
Observação:
Nome Variável | Tipo | Descrição | Valores permitidos | Permite valores nulos? | É chave? | Observações |
---|---|---|---|---|---|---|
id | id | Identificador único do templo | 1 - 999999999 | Não | PK | |
nome | nome | Nome do templo | a-z, A-z | Não | Aceita até 128 caracteres | |
descricao | descricao | Descrição do templo | a-z, A-z | Não | Aceita até 256 caracteres |
Entidade: Andar
Tabela: andares
Descrição: A entidade Andar armazena informações sobre seu identificador único, descrição, sala inicial e a referência ao templo ao qual pertence.
Observação: essa entidade possui chave estrangeira para as Entidades Templo
e Sala
Nome Variável | Tipo | Descrição | Valores permitidos | Permite valores nulos? | É chave? | Observações |
---|---|---|---|---|---|---|
id | id | Número do andar | 1 - 999999999 | Não | PK | |
descricao | descricao | Descrição do andar | a-z, A-z | Não | Aceita até 256 caracteres | |
sala_inicial | int | Sala inicial daquele andar | 1 - 999999999 | Não | FK | |
id_templo | id | Templo no qual aquele andar está contido | 1 - 999999999 | Não | FK |
Entidade: Sala
Tabela: salas
Descrição: A entidade Sala possui informações sobre seu identificador único e descrição
Observação:
Nome Variável | Tipo | Descrição | Valores permitidos | Permite valores nulos? | É chave? | Observações |
---|---|---|---|---|---|---|
id | id | Identificador único da sala | 1 - 999999999 | Não | PK | |
descricao | descricao | Descrição da sala | a-z, A-z | Não | Aceita até 256 caracteres |
Entidade: Corredor
Tabela: corredores
Descrição: a entidade Corredor armazena os dados essenciais para identificar e caracterizar um corredor, como seu identificador único, o status atual e uma descrição.
Observação:
Nome Variável | Tipo | Descrição | Valores permitidos | Permite valores nulos? | É chave? | Observações |
---|---|---|---|---|---|---|
id | id | Identificador único da sala | 1 - 999999999 | Não | PK | |
status | boolean | Verifica se o corredor pode ser acessado ou não: 0 para inativo e 1 para ativo | Não | |||
descricao | descricao | Descrição do corredor | a-z, A-z | Não | Aceita até 256 caracteres |
Entidade: Instancia de Monstro
intancias_monstros
Descrição: a entidade InstanciaMonstro registra as instâncias específicas de monstros presentes no sistema. Armazena o identificador único da instância, a referência ao monstro base, e informações sobre sua localização.
Observação: essa tabela possui chave estrangeira para as entidades Pacífico
, Agressivo
, Corredor
e Sala
Nome Variável | Tipo | Descrição | Valores permitidos | Permite valores nulos? | É chave? | Observações |
---|---|---|---|---|---|---|
id | id | Identificador único da instância do monstro | 1 - 999999999 | Não | PK | |
id_monstro | id | Identificador do tipo daquele monstro | 1 - 999999999 | Não | FK | |
id_corredor | id | Identificador do corredor que aquele monstro está | 1 - 999999999 | Não | FK | |
id_sala | id | Identificador da sala que aquele monstro está | 1 - 999999999 | Não | FK | Quando id_sala for nulo, id_corredor deve ser diferente de nulo, e vice-versa. |
id_instancia_de_item | id | Identificador do item daquele monstro | 1 - 999999999 | Não | FK | Quando id_corredor for nulo, id_sala deve ser diferente de nulo, e vice-versa. |
Entidade: Pacifico
Tabela: pacificos
Descrição: a entidade Pacifico armazena informações sobre monstros de comportamento passivo, detalhando suas características físicas. como defesa, vitalidade, o motivo da sua não agressividade e seu nome.
Observação: .
Nome Variável | Tipo | Descrição | Valores permitidos | Permite valores nulos? | É chave? | Observações |
---|---|---|---|---|---|---|
id | id | Identificador único do monstro pacífico | 1 - 999999999 | Não | PK e FK | |
nome | nome | Nome do monstro pacífico | a-z, A,z | Não | É unico na tabela. Aceita até 128 caracteres | |
descricao | descricao | Descrição do monstro pacífico | a-z, A,z | Não | Aceita até 256 caracteres | |
defesa | smallint | Defesa do monstro pacífico | 1 - 50 | Não | ||
vida | smallint | Vida do monstro pacífico | 1 - 100 | Não | Valor Base = 100 | |
motivo_passividade | comportamento_pacifico | Descrição da motivo para o monstro ser passivo | 'indiferente', 'medroso', 'amigavel', 'sob_controle_mental', 'adormecido', 'curioso' |
Não | ||
tipo_pacifico | tipo_monstro_pacifico | Tipo de monstro pacífico | 'humanoide', 'sobrenatural' |
Não |
Entidade: Agressivo
Tabela: agressivos
Descrição:
Observação: .
Nome Variável | Tipo | Descrição | Valores permitidos | Permite valores nulos? | É chave? | Observações |
---|---|---|---|---|---|---|
id | id | Identificador único do monstro agressivo | 1 - 999999999 | Não | PK e FK | |
nome | nome | Nome do monstro agressivo | a-z, A,z | Não | É unico na tabela. Aceita até 128 caracteres | |
descricao | descricao | Descrição do monstro agressivo | a-z, A,z | Não | Aceita até 256 caracteres | |
defesa | smallint | Defesa do monstro agressivo | 1 - 50 | Não | ||
vida | smallint | Vida do monstro agressivo | 1 - 100 | Não | Valor Base = 100 | |
poder | smallint | Poder do monstro agressivo | 1 - 100 | Não | Valor Base = 100 | |
tipo_agressivo | Indica qual o tipo de monstro agressivo aquele monstro é | 'psiquico', 'magico', 'fisico' |
Não | |||
velocidade_ataque | smallint | Indica a velocidade de ataque do monstro agressivo | 1 - 100 | |||
loucura_induzida | smallint | Indica a quantidade de sanidade que o personagem perde ao ver aquele monstro | 1 - 100 | |||
ponto_magia | smallint | Quantidade de pontos de magia o monstro agressivo tem | 1 - 100 | |||
dano | dano | Quandidade de dano que o ataque do monstro agressivo causa | Não | |||
catalisador_agressividade | gatilho_agressividade | Motivo ou catalisador para o monstro ser agressivo e hostil | 'proximidade', 'ataque_direto', 'barulho_alto', 'alvo_especifico', 'horario_noturno', 'ver_item_sagrado' |
Não |
Entidade: Arma
Tabela: armas
Descrição: a entidade Arma armazena as informações sobre itens do tipo arma, incluindo seu identificador único, atributos necessários para uso (atributo e perícia), características de combate (durabilidade, função, alcance, tipo de munição, tipo de dano e valor de dano).
Observação:
Nome Variável | Tipo | Descrição | Valores permitidos | Permite valores nulos? | É chave? | Observações |
---|---|---|---|---|---|---|
id | id | Identificador único do item | 1 - 999999999 | Não | PK | |
atributo_necessario | tipo_atributo_personagem | Atributo necessário para que a arma seja utilizada | 'forca', 'constituicao', 'poder', 'destreza', 'aparencia', 'tamanho', 'inteligencia', 'educacao' |
Não | ||
qtd_atributo_necessario | int | Quantidade de atributos necessário para que a arma seja utilizada pelo personagem | 1 - 50 | Não | ||
durabilidade | smallint | Durabilidade da arma | 1 - 100 | Não | ||
id_pericia_necessaria | id | Perícia necessária para que o personagem possa utilizar essa arma | 1 - 999999999 | Não | FK | |
alcance | smallint | Alcance da arma | 1 - 100 | Não | ||
tipo_municao | tipo_municao | Tipo da munição dessa arma | 'baixo-calibre', 'medio-calibre', 'alto-calibre' |
Não | ||
tipo_dano | vtipo_dano | Tipo de dano dessa arma | 'area', 'unico' |
Não | ||
dano | dano | Dano da arma | 1 - 100 | Não |
Entidade: Armadura
Tabela: armaduras
Descrição: a entidade Armadura armazena as informações sobre itens de proteção, incluindo seu identificador único, atributos necessários para uso, características como durabilidade, função, quantidade de atributo recebido, tipo de atributo beneficiado e quantidade de dano mitigado.
Observação:
Nome Variável | Tipo | Descrição | Valores permitidos | Permite valores nulos? | É chave? | Observações |
---|---|---|---|---|---|---|
id | id | Identificador único da amardura | 1 - 999999999 | Não | PK | |
atributo_necessario | tipo_atributo_personagem | Atributo necessário para que a armadura seja utilizada | 'forca', 'constituicao', 'poder', 'destreza', 'aparencia', 'tamanho', 'inteligencia', 'educacao' |
Não | ||
qtd_atributo_necessario | int | Quantidade de atributos necessário para que a armadura seja utilizada pelo personagem | 1 - 50 | Não | ||
durabilidade | smallint | Durabilidade da armadura | 1 - 100 | Não | ||
id_pericia_necessaria | id_pericia_necessaria | Perícia necessária para que o personagem possa utilizar essa armadura | 1 - 999999999 | Não | FK | |
funcao | funcao_armadura | Função da armadura | 'cabeca', 'peitoral', 'bracos', 'pernas', 'pes', 'mao' |
Não | ||
qtd_atributo_recebe | smallint | Quantidade de atributo que a armadura concede ao personagem | 1 - 100 | Não | ||
tipo_atributo_recebe | tipo_atributo_personagem | Tipo da atributo recebido por essa armadura | 'forca', 'constituicao', 'poder', 'destreza', 'aparencia', 'tamanho', 'inteligencia', 'educacao' |
Não | ||
qtd_dano_mitigado | smallint | Quantidade de dano mitigado pela armadura quando utilizada pelo personagem | 1 - 100 | Não |
Entidade: Item
Tabela: itens
Descrição: a entidade Item armazena informações gerais sobre itens, incluindo seu identificador único, tipo, nome, descrição e valor.
Observação: essa entidade possui chave estrangeira para as entidades Arma
, Armadura
e Cura
Nome Variável | Tipo | Descrição | Valores permitidos | Permite valores nulos? | É chave? | Observações |
---|---|---|---|---|---|---|
id | id | Identificador único do item | 1 - 999999999 | Não | PK e FK | |
tipo | tipo_item | Tipo do item | 'armadura', 'arma', 'cura' |
Não | ||
nome | nome | Nome do item | a-z, A,z | Não | Aceita até 128 caracteres | |
descricao | descricao | Descrição do item | a-z, A,z | Não | Aceita até 256 caracteres | |
valor | smallint | Valor de venda do item | 1 - 20000 | Não |
Entidade: Cura
Tabela: curas
Descrição: a entidade Cura armazena informações sobre itens ou efeitos de recuperação, incluindo seu identificador único, função principal, quantidade de usos disponíveis e os valores de pontos de sanidade e/ou vida recuperados.
Observação:
Nome Variável | Tipo | Descrição | Valores permitidos | Permite valores nulos? | É chave? | Observações |
---|---|---|---|---|---|---|
id | id | Identificador único do item de cura | 1 - 999999999 | Não | PK e FK | |
funcao | funcao_cura | Função do item de cura | 'restaurar_vida', 'restaurar_sanidade', 'remover_veneno', 'remover_maldicao', 'antidoto_insanidade' |
Não | ||
qtd_usos | smallint | Quantidade de usos desse item de cura | 1 - 10 | Não | ||
qtd_pontos_sanidade_recupera | smallint | Quantidade de pontos de sanidade que esse item recupera | 1 - 100 | Não | ||
qtd_pontos_vida_recupera | smallint | Quantidade de pontos de vida que esse item recupera | 1 - 100 | Não |
Entidade: Instância de Item
Tabela: instancias_de_itens
Descrição: a entidade Instância de item registra as ocorrências específicas de itens no jogo, contendo identificador único, referência ao item original, durabilidade, sala em que está, missões a qual está associado e batalhas .
Observação: essa entidade possui chave estrangeira para as entidades Item
, Sala
, Batalha
e as tabelas inventario_possui_instancia_item
.
Nome Variável | Tipo | Descrição | Valores permitidos | Permite valores nulos? | É chave? | Observações |
---|---|---|---|---|---|---|
id | id | Identificador único da instância de item | 1 - 999999999 | Não | PK | |
id_item | id | Identificador único do item | 1 - 999999999 | Não | FK | |
durabilidade | smallint | Durabilidade da de item | 1 - 100 | Não | ||
id_sala | id | Sala no qual esse item está | 1 - 999999999 | Não | ||
id_missao_requer | id | Item necessário para poder realizar uma missão | 1 - 999999999 | Não | FK | |
id_missao_recompensa | id | Recompensa que uma missão da para o personagem ao ser concluída | 1 - 999999999 | Não | FK |
Entidade: Mágico
Tabela: magicos
Descrição: a entidade mágico armazena informações sobre itens mágicos que podem ser utilizados por personagens, incluindo seu identificador único, função principal, quantidade de usos disponíveis e o custo em pontos de sanidade para cada utilização.
Observação: essa entidade possui chave estrangeira para a tabela tipo_feitico
Nome Variável | Tipo | Descrição | Valores permitidos | Permite valores nulos? | É chave? | Observações |
---|---|---|---|---|---|---|
id | id | Identificador único do item de mágico | 1 - 999999999 | Não | PK | |
id_feitico | id | Identificador único do feitiço mágico | 1 - 999999999 | Não | PK e FK | |
funcao | funcao_magica | Função do item mágico | 'revelar_invisivel', 'abrir_fechadura', 'encantar_arma', 'invocar_criatura', 'teleporte', 'protecao_elemental' |
Não | ||
qtd_usos | smallint | Quantidade de usos desse item mágico | 1 - 10 | Não | ||
custo_sanidade | smallint | Quantidade de pontos de sanidade que esse item mágico custa ao personagem por utilizá-lo | 1 - 100 | Não |
Entidade: Feitiço Status
Tabela: feiticos_status
Descrição: a entidade Feitico_status armazena informações sobre feitiços que afetam o status de personagens, incluindo seu identificador único, nome, descrição, quantidade de pontos de magia consumidos, tipo e intensidade do efeito (buff ou debuff) e o status afetado. Além disso, está vinculada à entidade Tipo_feitiço por meio de chave estrangeira.
Observação: essa entidade é chave estrangeira para Tipo_feitiço
Nome Variável | Tipo | Descrição | Valores permitidos | Permite valores nulos? | É chave? | Observações |
---|---|---|---|---|---|---|
id | id | Identificador único do feitiço que afeta status | 1 - 999999999 | Não | PK | |
nome | nome | Nome do feitiço status | a-z, A,z | Não | É unico na tabela. Aceita até 128 caracteres | |
descricao | descricao | Descrição do feitiço status | a-z, A,z | Não | Aceita até 256 caracteres | |
qtd_pontos_de_magia | smallint | Quantidade de pontos de magia | 1 - 5000 | Não | ||
qtd_buff_debuff | smallint | Quantidade de Buff ou Debuff | 1 - 5000 | Não | ||
buff_debuff | Boolean | Buff ou Debuff | 0 - 1 | Não | ||
status_afetado | tipo_status | Status que sera afetado | 'vida', 'sanidade' |
Não |
Entidade: Feitiço Dano
Tabela: feiticos_dano
Descrição: a entidade Feitico_dano armazena informações sobre feitiços que causam dano direto, incluindo seu identificador único, nome, descrição, quantidade de pontos de magia consumidos, tipo de dano causado e a quantidade de dano gerado. Além disso, está vinculada à entidade Tipo_feitiço por meio de chave estrangeira.
Observação:
Nome Variável | Tipo | Descrição | Valores permitidos | Permite valores nulos? | É chave? | Observações |
---|---|---|---|---|---|---|
id | id | Identificador único do feitiço que afeta status | 1 - 999999999 | Não | PK | |
nome | nome | Nome do feitiço dano | a-z, A,z | Não | É unico na tabela. Aceita até 128 caracteres | |
descricao | descricao | Descrição do feitiço dano | a-z, A,z | Não | Aceita até 256 caracteres | |
qtd_pontos_de_magia | smallint | Quantidade de pontos de magia do feitiço | 1 - 100 | Não | ||
tipo_dano | tipo_dano | Tipo de dano do feitiço | 'area', 'unico' |
Não | ||
qtd_dano | dano | Quantidade de Dano do feitiço | 1 - 25 | Não |
Entidade: Missao
Tabela: missoes
Descrição: a entidade missoes armazena as missoe disponíveis no jogo, com seu id, nome, descrição, tipo, ordem e npc que a disponibiliza.
Observação:
Nome Variável | Tipo | Descrição | Valores permitidos | Permite valores nulos? | É chave? | Observações |
---|---|---|---|---|---|---|
id | id | Identificador único da missao | 1 - 999999999 | Não | PK | |
nome | nome | Nome da missao | a-z, A,z | Não | Aceita até 128 caracteres | |
descricao | character(512) | Descrição da missao | a-z, A,z | Não | ||
tipo | tipo_missao | Tipo da missao | principal', 'secundaria', 'coleta', 'eliminacao', 'escolta' |
Não | ||
ordem | character[128] | Ordem da missao | a-z, A,z | Não | ||
id_npc | id | Quantidade de Dano do feitiço | 1 - 999999999 | Não | FK |
Tabelas Provindas de Relacionamentos, Especializações e Generalizações
Tabela: tipos_monstro
Descrição: a tabela tipos_monstro possui o identificador único e o tipo do monstro
Observação: essa tabela possui chave estrangeira para as tabelas agressivos
e pacificos
Nome Variável | Tipo | Descrição | Valores permitidos | Permite valores nulos? | É chave? | Observações |
---|---|---|---|---|---|---|
id | id | Identificador único do feitiço que afeta status | 1 - 999999999 | Não | PK e FK | |
tipo | tipo_monstro | Tipo do monstro | 'agressivo', 'pacifico' |
Não |
Tabela: batalhas
Descrição: a tabela batalhas possui identificadores do jogador e do monstro envolvidos na batalha.
Observação: essa tabela possui chave estrangeira para as tabelas instancias_monstro
e personagens_jogaveis
Nome Variável | Tipo | Descrição | Valores permitidos | Permite valores nulos? | É chave? | Observações |
---|---|---|---|---|---|---|
id_jogador | id | Identificador único do jogador envolvido na batalha | 1 - 999999999 | Não | PK e FK | |
id_monstro | id | Identificador único do monstro envolvido na batalha | 1 - 999999999 | Não | PK e FK |
Tabela: corredores_salas_destino
Descrição: a tabela corredores_salas_destino possui identificadores únicos de sala e corredor na transição entre salas.
Observação: essa tabela possui chave estrangeira para as tabelas salas
e corredores
Nome Variável | Tipo | Descrição | Valores permitidos | Permite valores nulos? | É chave? | Observações |
---|---|---|---|---|---|---|
id_sala | id | Identificador único da sala destino ou origem | 1 - 999999999 | Não | PK e FK | |
id_corredor | id | Identificador único do corredor destino ou origem | 1 - 999999999 | Não | PK e FK |
Tabela: tipos_personagem
Descrição: a tabela tipos_personagem armazena informações para identificação única do personagem, assim como seu tipo.
Observação: essa tabela possui chave estrangeira para as tabelas personagens_jogaveis
e npcs
.
Nome Variável | Tipo | Descrição | Valores permitidos | Permite valores nulos? | É chave? | Observações |
---|---|---|---|---|---|---|
id | id | Identificador único do personagem | 1 - 999999999 | Não | PK e FK | |
tipo | tipo_personagem | Tipo do personagem | 'personagem jogavel', 'NPC, |
Não |
Tabela: inventarios_possuem_instancias_item
Descrição: a tabela inventarios_possuem_instancias_item armazena os identificadores únicos de instância de item e de inventário.
Observação: essa tabela possui chave estrangeira para as tabelas inventarios
e instancias_de_item
.
Nome Variável | Tipo | Descrição | Valores permitidos | Permite valores nulos? | É chave? | Observações |
---|---|---|---|---|---|---|
id_instancias_de_item | id | Identificador único da instancia de item | 1 - 999999999 | Não | PK e FK | |
id_inventario | id | Identificador único do inventário | 1 - 999999999 | Não | PK e FK |
Tabela: entregas_missoes
Descrição: a tabela entregas_missoes armazena os identificadores únicos de jogador e de npc, na interação de entre de missões.
Observação: essa tabela possui chave estrangeira para as tabelas personagens_jogaveis
e npcs
.
Nome Variável | Tipo | Descrição | Valores permitidos | Permite valores nulos? | É chave? | Observações |
---|---|---|---|---|---|---|
id_jogador | id | Identificador único do jogador | 1 - 999999999 | Não | PK e FK | |
id_npc | id | Identificador único do NPC | 1 - 999999999 | Não | PK e FK |
Tabela: tipos_feitico
Descrição: a tabela tipos_feitico armazena o identificador único e o tipo do feitiço.
Observação: essa tabela possui chave estrangeira para as tabelas feiticos_dano
e feiticos_status
.
Nome Variável | Tipo | Descrição | Valores permitidos | Permite valores nulos? | É chave? | Observações |
---|---|---|---|---|---|---|
id | id | Identificador único do feitiço | 1 - 999999999 | Não | PK e FK | |
tipo | funcao_feitico | Tipo do feitiço | 'status', 'dano' |
Não |
Tabela: personagens_possuem_pericias
Descrição: a a tabela personagens_possuem_pericias armazena os identificadores únicos de jogador e as percícias que ele possui
Nome Variável | Tipo | Descrição | Valores permitidos | Permite valores nulos? | É chave? | Observações |
---|---|---|---|---|---|---|
id_personagem | id | Identificador único do personagem | 1 - 999999999 | Não | PK e FK | |
id_pericia | id | Identificador único da perícia | 1 - 999999999 | Não | PK e FK | |
valor_atual | smallint | Valor atual daquela perícia | 1 - 100 | Não |
Domínios criados
Os domínios são uma funcionalidade do SQL que permitem a criação de tipos personalizados de dados. Assim, eles garantem uma melhor manutenabilidade do código, pois a edição de um domínio pode alterar atributos em diferentes tabelas, evitando que essa alteração seja feita tabela por tabela. Além disso, eles auxiliam a manter a integridade dos dados do banco, uma vez que restringem o tipo de dado que pode ser inserido em uma célula.
Essa seção contém uma tabela de todos os domínios que foram criados no arquivo DDL do projeto, explicando aquele domínio, o tipo primário e os seus valores permitidos. Cabe ressaltar também que os domínios podem estar sujeitos a mudaças para comportar novos tipos de dado no banco.
Nome do domínio | Tipo Primário | Descrição | Valores permitidos | Observações |
---|---|---|---|---|
id | Integer | É o domínio utilizado quando é preciso declarar o tipo de um id no banco de dados | 1 - 999999999 | |
dano | Smallint | É domnínio utilizado quando é preciso declarar o tipo de dano de um monstro ou arma | 1 - 500 | |
sexo | Character(9) | É domínio utilizado quando é preciso declarar o sexo de um personagem ou NPC | 'masculino', 'feminino' |
|
atributo | Smallint | É domínio utilizado quando é preciso declarar o valor de um atributo do personagem jogável | 3 - 18 | Os valores do atributo se referem aos valores que podem ser obtidos ao jogar três dados de seis faces e somar seus resultados |
idade | Smallint | É domínio utilizado quando é preciso declarar o valor da idade de um personagem jogável ou NPC | 1 - 120 | |
tipo_monstro_agressivo | Character(8) | É domínio utilizado quando é preciso declarar o tipo de um monstro agressivo | 'psiquico', 'magico', 'fisico' |
|
tipo_monstro_pacifico | Character(12) | É o domínio utilizado quando é preciso declarar o tipo de um monstro pacífico | 'humanoide', 'sobrenatural' |
|
tipo_monstro | Character(9) | É o domínio utilizado quando é preciso declarar o tipo de um monstro | 'agressivo', 'pacifico' |
|
tipo_personagem | Character(18) | É o domínio utilizado quando é preciso declarar o tipo de um personagem | 'personagem jogavel', 'NPC, |
|
tipo_item | Character(8) | É o domínio utilizado quando é preciso declarar o tipo de um item | 'armadura', 'arma', 'cura' |
|
tipo_municao | Character(13) | É domínio utilizado quando é preciso declarar o tipo da munição de uma arma | 'baixo-calibre', 'medio-calibre', 'alto-calibre' |
|
funcao_armadura | Character(8) | É domínio utilizado quando é preciso declarar qual parte do corpo aquela armadura protege | 'cabeca', 'peitoral', 'bracos', 'pernas', 'pes', 'mao' |
|
tipo_dano | Character(5) | É o domínio utilizado quando é preciso declarar o tipo de dado de uma arma | 'area', 'unico' |
|
funcao_feitico | Character(6) | É o domínio utilizado quando é preciso declarar qual á função de um feitiço | 'status', 'dano' |
|
tipo_de_status | Character(8) | É o domínio utilizado quando é preciso declarar qual o tipo de status que um feitiço de status atua | 'vida', 'sanidade' |
|
tipo_atributo_personagem | Character(12) | É o domínio utilizado quando é preciso declrar o tipo do atributo de um personagem | 'forca', 'constituicao', 'poder', 'destreza', 'aparencia', 'tamanho', 'inteligencia', 'educacao' |
|
tipo_missao | Character(12) | É o domínio utilizado quando é preciso declarar o tipo de uma missão | 'principal', 'secundaria', 'coleta', 'eliminacao', 'escolta' |
|
funcao_arma | Character(32) | É o domínio utilizado quando é preciso declarar a função de uma arma | 'corpo_a_corpo_leve', 'corpo_a_corpo_pesada', 'arremesso', 'disparo_unico', 'disparo_rajada' |
|
funcao_cura | Character(32) | É o domínio utilizado quando é preciso declarar a função de um feitiço de cura | 'restaurar_vida', 'restaurar_sanidade', 'remover_veneno', 'remover_maldicao', 'antidoto_insanidade' |
|
funcao_magica | Character(32) | É o domínio utilizado quando é preciso declarar a função de um item mágico | 'revelar_invisivel', 'abrir_fechadura', 'encantar_arma', 'invocar_criatura', 'teleporte', 'protecao_elemental' |
|
gatilho_agressividade | Character(32) | É o domínio utilizado quando é preciso declarar o gatilho de agressividade de um monstro agressivo | 'proximidade', 'ataque_direto', 'barulho_alto', 'alvo_especifico', 'horario_noturno', 'ver_item_sagrado' |
|
comportamento_pacifico | Character(32) | É o domínio utilizado quando é preciso declarar o tipo de comportamento de um monstro pacífico | 'indiferente', 'medroso', 'amigavel', 'sob_controle_mental', 'adormecido', 'curioso' |
|
nome | Character(128) | É o domínio utilizado quando é preciso declarar o tipo do atributo nome em uma tabela | a-z, A,Z | Aceita até 128 caracteres |
descricao | Character(256) | É o domínio utilizado quando é preciso declarar o tipo do atributo descrição em uma tabela | a-z, A,Z | Aceita até 256 caracteres |
ocupacao | Character(64) | É o domínio utilizado quando é preciso declarar o tipo do atributo ocupação em uma tabela | a-z, A,Z | Aceita até 64 caracteres |
residencia | Character(96) | É o domínio utilizado quando é preciso declarar o tipo do atributo residência em uma tabela | a-z, A,Z | Aceita até 96 caracteres |
local_nascimento | Character(96) | É o domínio utilizado quando é preciso declarar o tipo do atributo local de nascimento em uma tabela | a-z, A,Z | Aceita até 96 caracteres |
script_dialogo | Character(512) | É o domínio utiizado quando é preciso declarar o tipo do atributo script diálogo em uma tabela | a-z, A,Z | Aceita até 512 caracteres |
É importante ressaltar a escolha dos tipo Character ao invés de Varchar, ao utilizar uma quantidade fixa de caracteres para os dados de uma tabela, as suas linhas passam a ter um tamanho fixo. Essa característica para uma tabela de um banco de dados pode ser útil, uma vez que facilita as pesquisas feitas pelo banco, dado que para avançar uma linha basta multiplicar o valor pelo tamanho da tupla daquela tabela pelo número da linha que se quer.
📑 Histórico de versões
Versão | Data | Descrição | Autor |
---|---|---|---|
1.0 |
01/05/25 | Criação do documento DD | Christopher Paraizo |
1.1 |
02/05/25 | Populando o DD | Christopher Paraizo |
1.2 |
02/05/25 | Populando o DD com as tabelas de entidades | Christopher Paraizo e João Marcos |
1.3 |
02/05/25 | Populando o DD com as tabelas provindas de relacionamentos, generalizações e especializações | Christopher Paraizo |
1.4 |
15/05/25 | Adicionando a tabela Diálogos | Luiz |
2.0 |
08/06/25 | Adicionando a seção que explica os domínios criados no DDL | Luiz |
2.1 |
09/06/25 | Atualizando os tipos dos atributos para condizer com os domínios criados no DDL | Luiz |
2.2 |
10/06/25 | Ajustando os dados do dicionário para as mudanças feitas no DDL. | Luiz |