Skip to content

Dicionário de Dados

Tabelas

Tabela Constante

Tabela tipoPersonagem
Descrição Armazenará valores de constantes relevantes ao jogo, como defesaBase e tolerânciaNectar
Observações Esta tabela não possui nenhum relacionamento
Nome Descrição Tipo de dado Tamanho Restrições de domínio (PK, FK, Not Null, Check, Default, Identity)
nome Nome que irá identificar unicamente uma constante VARCHAR 20 PK, Not Null
valor Valor numérico da constante INTEGER - Not Null

Tabela Jogador

Tabela jogador
Descrição Armazenará as informações referente ao personagem jogável do usuário
Observações Essa tabela é uma especificação de Personagem, a tabela tipoPersonagem será a responsável por armazenar as chaves e o tipo da especificação
Nome Descrição Tipo de dado Tamanho Restrições de domínio (PK, FK, Not Null, Check, Default, Identity)
nome Nome que irá identificar unicamente o personagem do jogador VARCHAR 15 PK, FK, Not Null
vidaMax O limite de vida do personagem. É separado da vida atual do personagem pois ele pode encontrar itens que recuperam a saúde, mas não deve passar desse limite INTEGER - Not Null, Default = 50
forca O número de força define o quão forte o personagem é. Quanto maior o valor, maiores são as chances do personagem conseguir quebrar/levantar coisas. A força também define quantos itens o personagem pode carregar INTEGER - Not Null
intelecto O número de intelecto define o quão inteligente o personagem é. Quanto maior o valor, maiores são as chances do personagem conseguir desvendar enigmas, confundir/convencer inimigos INTEGER - Not Null
agilidade O número de agilidade define o quão rápido o personagem é. Quanto maior o valor, maiores são as chances do personagem conseguir fugir de armadilhas, escapar de inimigos INTEGER - Not Null
combate O número de intelecto define o quão bom em combate o personagem é. Quanto maior o valor, maiores são as chances do personagem conseguir acertar ataques INTEGER - Not Null
vidaAtual A vida atual do personagem, ao chegar a 0 o personagem morre e o jogo deve começar do zero INTEGER - Not Null, Default = 50, Check(vidaAtual <= vidaMax)
experienciaAtual Número de pontos que determina o nível do personagem INTEGER - Not Null, Default = 0
armadura Referência ao item de defesa que o personagem possui equipado. Oferece bônus no atributo de defesa. Quando o valor for "null", então o personagem não possui nenhum Item de defesa equipado INTEGER - FK
arma Referência ao item de ataque que o personagem possui equipado. Oferece bônus no atributo de força e combate. Quando o valor for "null", então o personagem não possui nenhum Item de ataque equipado INTEGER - FK
itemMagico Referência ao item mágico que o personagem possui equipado. Oferece bônus em vários atributos dependendo do item. Quando o valor for "null", então o personagem não possui nenhum Item mágico equipado INTEGER - FK
deus Referência ao deus que define os atributos inicias do personagem VARCHAR 15 FK, Not Null
areaAtual Referência à área que o personagem se encontra dentro do mapa do jogo VARCHAR 35 FK, Not Null
nivel Referência ao nível atual do personagem. Ao atingir os pontos base do próximo nível, o personagem muda para o nível acima do atual INTEGER - FK, Not Null, Default = 1

Tabela Inimigo

Tabela inimigo
Descrição Armazenará as informações referente a um inimigo do jogo. Um inimigo é uma criatura com o objetivo de matar o personagem do jogador
Observações Essa tabela é uma especificação de Personagem, a tabela tipoPersonagem será a responsável por armazenar as chaves e o tipo da especificação. Esta tabela defini uma "ficha" de inimigo que irá gerar "Inimigos Concretos"
Nome Descrição Tipo de dado Tamanho Restrições de domínio (PK, FK, Not Null, Check, Default, Identity)
nome Nome que irá identificar unicamente o personagem do inimigo VARCHAR 15 PK, FK, Not Null
vidaMax O limite de vida do personagem. É separado da vida atual do personagem pois ele pode encontrar itens que recuperam a saúde, mas não deve passar desse limite INTEGER Not Null
forca O número de força define o quão forte o personagem é. Quanto maior o valor, maiores são as chances do personagem conseguir quebrar/levantar coisas. A força também define quantos itens o personagem pode carregar INTEGER Not Null
intelecto O número de intelecto define o quão inteligente o personagem é. Quanto maior o valor, maiores são as chances do personagem conseguir desvendar enigmas, confundir/convencer inimigos INTEGER Not Null
agilidade O número de agilidade define o quão rápido o personagem é. Quanto maior o valor, maiores são as chances do personagem conseguir fugir de armadilhas, escapar de inimigos INTEGER Not Null
combate O número de intelecto define o quão bom em combate o personagem é. Quanto maior o valor, maiores são as chances do personagem conseguir acertar ataques INTEGER Not Null
pontosExperiencia O número de pontos de experiência que um jogador ganha ao derrotar uma instância deste inimigo INTEGER Not Null
nivel Referência ao nível atual do personagem. Diferente do jogador, o nível do inimigo não muda. Ele é usado como referência a fim de balancear os combates INTEGER FK, Not Null

Tabela TipoPersonagem

Tabela tipoPersonagem
Descrição Armazenará a relação de nome do Personagem com o tipo dele, Jogador ou Inimigo
Observações Esta tabela possui a finalidade de diferenciar quais personagens são Jogadores e Quais são Inimigos
Nome Descrição Tipo de dado Tamanho Restrições de domínio (PK, FK, Not Null, Check, Default, Identity)
nome Nome que irá identificar unicamente um personagem VARCHAR 15 PK, Not Null
tipo Este atributo especifica se o Personagem é um Jogador ou um Inimigo. Os valores permitidos para este atributo será o caracter 'J', para Jogador, ou 'I', para Inimigo CHAR 1 Check (tipo == 'J' or tipo == 'I')

Tabela Nível

Tabela nivel
Descrição Armazenará os pontos necessários para atingir cada um dos níveis
Observações
Nome Descrição Tipo de dado Tamanho Restrições de domínio (PK, FK, Not Null, Check, Default, Identity)
idNivel Um número sequencial que indica o nível de um personagem. Quanto maior o nível, mais poderoso o personagem é INTEGER PK, Not Null, Identity
pontosExperiencia O número de pontos necessário para atingir o nível. O número de pontos de um nível precisa ser maior do que o anterior. Essa checagem deverá ser feita por meio de um trigger INTEGER Not Null

Tabela InimigoConcreto

Tabela inimigoConcreto
Descrição Armazenará as informações da instância de um inimigo
Observações Esta tabela existe a fim de reutilizar informações da tabela Inimigo e evitar redundâncias e sobrecarga no banco.
Nome Descrição Tipo de dado Tamanho Restrições de domínio (PK, FK, Not Null, Check, Default, Identity)
nomeConcreto O nome que identifica unicamente uma instância de Inimigo VARCHAR 15 PK, Not Null
vidaAtual A vida atual da instância de Inimigo, ao chegar a 0 a instância é derrotada. O valor inicial deste atributo deve ser o mesmo valor do atributo vidaMax do Inimigo gerador da instância, isso poderá ser feito a partir de um trigger INTEGER Not Null
inimigo Referência ao Inimigo gerador desta instância VARCHAR 15 FK, Not Null
areaAtual Referência à área que o personagem se encontra dentro do mapa do jogo VARCHAR 35 FK, Not Null
loot Referência ao item que o jogador ganha ao derrotar esta instância de Inimigo INTEGER FK, Not Null

Tabela Abate

Tabela abate
Descrição Armazenará a quantidade de instâncias de um mesmo Inimigo que um Jogador derrotou
Observações Possui uma chave primária composta com os atributos nomeJogador, nomeInimigo e dataHorario, que é o registro do momento em que o combate ocorreu.
Nome Descrição Tipo de dado Tamanho Restrições de domínio (PK, FK, Not Null, Check, Default, Identity)
nomeJogador Nome do jogador que realizou o abate de um Inimigo VARCHAR 15 PK, FK Not Null
nomeInimigo nome do Inimigo derrotado por um Jogador VARCHAR 15 PK, FK Not Null
dataHorario data e hora de quando o abate ocorreu, será usado para identificar um único abate entre um jogador e um inimigo DATE - PK, Not Null
vitoriaJogador Booleano que é "true" quando o Jogador derrota o Inimigo e "false" quando o Inimigo derrota o Jogador BOOLEAN - Not Null

Tabela Deus

Tabela deus
Descrição Armazenará os atributos iniciais dados ao Personagem que escolhe um Deus/Deusa como seu pai/mãe
Observações Os atributos iniciais de forca, intelecto, agilidade e combate são definidos pelo Deus/Deusa que o Jogador escolher ao criar o personagem
Nome Descrição Tipo de dado Tamanho Restrições de domínio (PK, FK, Not Null, Check, Default, Identity)
nome Nome que identifica unicamente um Deus VARCHAR 15 PK, Not Null
forcaInicial O número de Força inicial do Jogador descendente desse Deus/Deusa INTEGER Not Null, Check (Valores entre 0 e 5)
intelectoInicial O número de Intelecto inicial do Jogador descendente desse Deus/Deusa INTEGER Not Null, Check (Valores entre 0 e 5)
agilidadeInicial O número de Agilidade inicial do Jogador descendente desse Deus/Deusa INTEGER Not Null, Check (Valores entre 0 e 5)
combateInicial O número de Combate inicial do Jogador descendente desse Deus/Deusa INTEGER Not Null, Check (Valores entre 0 e 5)

Tabela Inventario

Tabela inventario
Descrição Armazenará informações sobre o inventário do jogador, incluindo o jogador associado e a carga máxima que ele pode carregar
Nome Descrição Tipo de dado Tamanho Restrições de domínio
jogador Identificador do jogador VARCHAR 15 PK, FK, Not Null
cargaMaxima Peso limite da soma dos itens do inventário. Cada item tem um peso e caso o jogador atinja esse limite, não poderá pegar mais itens. A cargaMaxima será atualizada sempre que a força do jogador mudar. Para calcular: (2xForça) + 5 INTEGER - Not Null, Check (cargaMaxima ≥ 5)

Tabela TipoItem

Tabela tipoItem
Descrição Armazenará os diferentes tipos de itens que podem existir no jogo, juntamente com sua classificação. A classificação indicará qual especificação o item é, podendo ser: defesa, ataque, magico, consumivel
Observações Esta tabela possui a finalidade de diferenciar os itens
Nome Descrição Tipo de dado Tamanho Restrições de domínio
nome Nome do item VARCHAR 30 PK, Identity
classificacao Classificação do item VARCHAR 15 Not Null, Check (classificacao in ('Arma', 'Armadura', 'Consumivel', 'Magico'))

Tabela ItemInventario

Tabela itemInventario
Descrição Armazenará os itens que estão no inventário de cada jogador, associando o jogador a cada item específico. Possui uma chave primária composta formada pelos identificadores únicos de jogador e item
Nome Descrição Tipo de dado Tamanho Restrições de domínio
jogador Identificador do jogador que possui o item VARCHAR 15 PK, FK, Not Null
item Identificador do item que está no inventário do jogador VARCHAR 30 PK, FK, Not Null

Tabela Defesa

Tabela defesa
Descrição Armazenará informações específicas sobre itens de defesa, como escudos ou armaduras. Cada registro inclui o nome do item, a área atual em que o item pode estar, sua descrição, peso e o valor do modificador de defesa que ele proporciona.
Observações Essa tabela é uma especificação de Item, a tabela tipoItem será a responsável por armazenar o nome do item e sua classificação
Nome Descrição Tipo de dado Tamanho Restrições de domínio
nome Nome do item de defesa VARCHAR 15 PK, FK, Not Null
areaAtual Área em que o item pode ser encontrado VARCHAR 30 FK
descricao Descrição detalhada do item TEXT -
peso Peso do item em unidades INTEGER - Check (peso >= 0)
modDefesa Valor do modificador de defesa INTEGER - Check (modDefesa >= 0)

Tabela Ataque

Tabela ataque
Descrição Armazenará informações sobre itens de ataque, como armas. Cada registro inclui o nome do item, a área atual em que o item pode estar, sua descrição, peso e os valores dos modificadores de combate e de força que ele proporciona.
Observações Essa tabela é uma especificação de Item, a tabela tipoItem será a responsável por armazenar o nome do item e sua classificação
Nome Descrição Tipo de dado Tamanho Restrições de domínio
nome Nome do item de ataque VARCHAR 15 PK, FK, Not Null
areaAtual Área em que o item pode ser encontrado VARCHAR 30 FK
descricao Descrição detalhada do item TEXT -
peso Peso do item em unidades INTEGER - Check (peso >= 0)
modCombate Valor do modificador de combate INTEGER - Check (modCombate >= 0)
modForca Valor do modificador de força INTEGER - Check (modForca >= 0)

Tabela Magico

Tabela magico
Descrição Armazenará informações sobre itens mágicos. Cada registro contém o nome do item mágico, a área atual em que o item pode estar, sua descrição, peso e os valores dos modificadores de combate, força, defesa, agilidade, carga, além dos tempos de recarga e atual.
Observações Essa tabela é uma especificação de Item, a tabela tipoItem será a responsável por armazenar o nome do item e sua classificação
Nome Descrição Tipo de dado Tamanho Restrições de domínio
nome Nome do item mágico VARCHAR 15 PK, FK, Not Null
areaAtual Área em que o item pode ser encontrado VARCHAR 30 FK
descricao Descrição detalhada do item TEXT -
peso Peso do item em unidades INTEGER - Check (peso >= 0)
modCombate Valor do modificador de combate mágico INTEGER - Check (modCombate >= 0)
modForca Valor do modificador de força mágica INTEGER - Check (modForca >= 0)
modDefesa Valor do modificador de defesa mágica INTEGER - Check (modDefesa >= 0)
modAgilidade Valor do modificador de agilidade INTEGER - Check (modAgilidade >= 0)
modCarga Valor do modificador de carga mágica INTEGER - Check (modCarga >= 0)
tempoDeRecarga Tempo de recarga em segundos INTEGER - Check (tempoDeRecarga >= 0)
tempoAtual Tempo atual em segundos INTEGER - Check (tempoAtual >= 0)

Tabela Consumíveis

Tabela consumíveis
Descrição Armazenará informações sobre itens consumíveis, como poções. Cada registro inclui o nome do item, a área atual em que o item pode estar, sua descrição, peso e a quantidade de vida que ele recupera quando utilizado.
Observações Essa tabela é uma especificação de Item, a tabela tipoItem será a responsável por armazenar o nome do item e sua classificação
Nome Descrição Tipo de dado Tamanho Restrições de domínio
nome Nome do item consumível VARCHAR 15 PK, FK, Not Null
areaAtual Área em que o item pode ser encontrado VARCHAR 30 FK
descricao Descrição detalhada do item TEXT -
peso Peso do item em unidades INTEGER - Check (peso >= 0)
vidaRecuperada Quantidade de vida recuperada pelo consumível INTEGER - Check (vidaRecuperada >= 0)
areaTeletransporte Área para qual o jogador irá se teletransportar VARCHAR 30 FK

Tabela Aliado

Tabela aliado
Descrição Armazenará informações sobre aliados. Cada registro contém o nome deste aliado, a sua descrição e a área que ocupa.
Observações
Nome Descrição Tipo de dado Tamanho Restrições de domínio
nome Identificador único de aliado VARCHAR 15 PK, Not Null
descricao Descrição do aliado a ser apresentada TEXT - Not Null
nomeArea Referência à área que o aliado se encontra dentro do mapa do jogo VARCHAR 35 FK, Not Null
Tabela dialogo
Descrição Armazenará informações sobre os dialogos dos aliados. Cada registro contém o número do diálogo e o nome do aliado
Observações Esta tabela também possui referências à tabela resposta
Nome Descrição Tipo de dado Tamanho Restrições de domínio
numero Identificador único do dialogo INTEGER - PK, Not Null
nomeAliado Identificador do aliado VARCHAR 15 PK, FK, Not Null
frase Frase a ser apresentada ao jogador TEXT - Not Null
recompensa Referência à um item que o diálogo pode recompensar. Nem todos os diálogos recompensam itens, então pode ter valor nulo VARCHAR 15 FK

Tabela Resposta

Tabela resposta
Descrição Armazenará informações sobre as respostas. Cada registro contém identificador e a frase da resposta
Observações Possui referência à entidade dialogo
Nome Descrição Tipo de dado Tamanho Restrições de domínio
numero Identificador da resposta INTEGER - PK, Not Null
numeroDialogo Identificador do dialogo INTEGER - PK, FK, Not Null
nomeAliado Identificador do aliado VARCHAR 15 PK, FK, Not Null
frase Frase a ser apresentada ao jogador TEXT - Not Null
numeroDialogoDestino INTEGER - FK
nomeAliadoDestino VARCHAR 15 FK

Tabela Profecia

Tabela profecia
Descrição Armazenará informações sobre as profecias. Cada registro contém identificador, um inimigo a dizimar, quantidade necessária e turnos a serem adicionados ao jogo
Observações Possui referência à entidade inimigo
Nome Descrição Tipo de dado Tamanho Restrições de domínio
idProfecia Identificador da profecia INTEGER - PK, Identity
numaroDialogo Referência ao dialogo INTEGER - FK, Not Null
nomeAliado Referência ao aliado que fornece a profecia VARCHAR 15 FK, Not Null
nomeInimigo Referência ao inimigo a ser derrotado VARCHAR 15 FK, Not Null
quantAbate Quantidade de unidades a serem derortadas INTEGER - Not Null
turnosAMais Quantidade de turnos de recompensa da profecia INTEGER - Not Null

Tabela AdquireProfecia

Tabela adquireProfecia
Descrição Tabela de relacionamento entre um jogador e uma profecia que ele carrega. Cada registro as referências aos mesmos e o status de cumprimento da profecia
Observações
Nome Descrição Tipo de dado Tamanho Restrições de domínio
nomeJogador Referência ao jogador que carrega a profecia VARCHAR 15 PK, FK, Not Null
numeroProfecia Referência à profecia carregada pelo jogador INTEGER - PK, FK, Not Null
completado Status de cumprimento da profecia Boolean - Not Null

Tabela Região

Tabela regiao
Descrição Armazenará informações referente as diferentes regiões existentes no mapa
Observações Essa tabela é uma específicação das diferentes regiões, a tabela area é responsável por armazenar as informações das diferentes areas existentes dentro de cada região
Nome Descrição Tipo de dado Tamanho Restrições de domínio (PK, FK, Not Null, Check, Default, Identity)
nome Nome que identifica unicamente uma região VARCHAR 35 PK/ Not Null
descricao Descrição detalhada de uma região e suas singularidades TEXT - Not Null
nivel A referência ao nível da região é utilizada como parâmetro para balancear os combates e desafios INTEGER Not Null

Tabela Área

Tabela area
Descrição Armazenará informações referente as diferentes áreas existentes que compõe uma região
Observações Essa tabela é uma específicação de área
Nome Descrição Tipo de dado Tamanho Restrições de domínio (PK, FK, Not Null, Check, Default, Identity)
nome Nome que identifica unicamente uma área VARCHAR 15 PK, Not Null
descricao Descrição detalhada de uma área e suas singularidades TEXT -
regiaoAtual Referência à Região que a área se encontra dentro do mapa do jogo VARCHAR 35 FK, Not Null
norte Coordenada da posição norte da área no mapa INTEGER CK1
sul Coordenada da posição sul da área no mapa INTEGER CK1
leste Coordenada da posição leste da área no mapa INTEGER CK1
oeste Coordenada da posição oeste da área no mapa INTEGER CK1
temBandeira Variável responsável por identificar se a área possui ou não BOOLEAN
desafio Referência ao desafio que se encontra dentro da área INTEGER FK, Not Null

Tabela Desafio

Tabela desafio
Descrição Armazenará informações referente aos desafios do jogo. Os desafios são situações ou obstáculos que o jogador deve enfrentar pra receber uma recompensa, escapar de uma armadilha ou alcançar um objetivo específico
Observações Um desafio pode ser uma provação ou armadilha, as tabelas provacao e armadilha, serão responsáveis por armazenar as informações dos diferentes tipos de desafio
Nome Descrição Tipo de dado Tamanho Restrições de domínio (PK, FK, Not Null, Check, Default, Identity)
id Número que identifica unicamente um desafio SERIAL PK
tipo Variável para identificar o tipo de desafio (armação ou provação) CHAR 1 Check (tipo == 'a' or tipo == 'p')

Tabela Armadilha

Tabela armadilha
Descrição Armazenará informações referente às armadilhas do jogo. Uma armadilha é uma situação perigosa preparada para pegar o jogador desprevenido, exigindo dele forca, agilidade e inteligencia para escapar
Observações Uma armadilha pode envolver resolver enigmas, enfrentar inimigos, ou superar obstáculos físicos e mentais
Nome Descrição Tipo de dado Tamanho Restrições de domínio (PK, FK, Not Null, Check, Default, Identity)
id Número que identifica unicamente uma armadilha SERIAL PK, FK
descricao Descrição detalhada de uma armadilha e suas singularidades TEXT - Not Null
DTForca Número de força mínima que um jogador deve possuir para vencer a armadilha INTEGER Not Null
DTAgilidade Número de agilidade mínima que um jogador deve possuir para vencer a armadilha INTEGER Not Null
DTInteligencia Número de inteligência mínima que um jogador deve possuir para vencer a armadilha INTEGER Not Null
areaTeletransporte Referência à área para onde o jogador será teletransportado caso caia na armadilha VARCHAR 35 FK, Not Null

Tabela Provação

Tabela provacao
Descrição Armazenará informações referente às provações do jogo. Uma provação é uma situação que testa as habilidades e conhecimentos ou moral do jogador
Observações Assim como as armadilhas, uma provação pode envolver resolver enigmas, enfrentar inimigos, ou superar obstáculos físicos e mentais
Nome Descrição Tipo de dado Tamanho Restrições de domínio (PK, FK, Not Null, Check, Default, Identity)
id Número que identifica unicamente uma provação SERIAL PK, FK
descricao Descrição detalhada de uma provação e suas singularidades TEXT - Not Null
DTForca Número de força mínima que um jogador deve possuir para vencer a provação INTEGER Not Null
DTAgilidade Número de agilidade mínima que um jogador deve possuir para vencer a provação INTEGER Not Null
DTInteligencia Número de inteligência mínima que um jogador deve possuir para vencer a provação INTEGER Not Null
recompensa Referência ao item que o jogador receberá caso vença a provação VARCHAR 15 FK, Not Null

Histórico de Versões

Versão Data Descrição Responsável
1.0 18/07 Criação do documento @Neitan2001
2.0 18/07 Criação das tabelas Jogador, Inimigo, TipoPersonagem, Nível, InimigoConcreto, Abate, Deus @Neitan2001
3.0 19/07 Ajuste das restrições das chaves primárias de Jogador, Inimigo e tipoPersonagem @Neitan2001
4.0 22/07 Criação das tabelas Inventário, Item, Defesa, Ataque, Magico, Consumíveis Clara Marcelino
5.0 22/07 Criação das tabelas Aliado, Dialogo, Resposta, Profecia, Adquire Charles Serafim
6.0 22/07 Criação das tabelas Regiao, Area, Desafio, Armadilha, Provacao, Consumíveis Paulo Henrique
7.0 06/08 Correção de inconsistências e adições de checks em atributos de Jogador, tipoPersonagem @Neitan2001
8.0 06/08 Correção de inconsistências e renomeação de atributos em Desafio, Armadilha e Provação Paulo Henrique
9.0 09/09 Correção tamanho de colunas referentes a PK de área e região Paulo Henrique