Pular para conteúdo

Dicionário de Dados

Introdução

Um dicionário de dados é uma ferramenta fundamental para documentar e organizar as informações sobre os dados armazenados em um sistema. Ele funciona como um repositório centralizado que descreve em detalhes os elementos de dados, suas características e suas relações entre si.

Desenvolvimento

Treinador

Tabela Treinador
Descrição Armazena informações sobre os treinadores Pokémon, incluindo nome e atributos gerais.
Observação Treinadores podem possuir times de Pokémon e participar de batalhas.
Nome Descrição Tipo de Dado Tamanho Restrição de Domínio
id Identificador único SERIAL N/A PRIMARY KEY
qtdPokeball Quantidade de Pokébolas INTEGER N/A NOT NULL
qtdGreatBall Quantidade de Great Balls INTEGER N/A NOT NULL
qtdUltraBall Quantidade de Ultra Balls INTEGER N/A NOT NULL
qtdMasterBall Quantidade de Master Balls INTEGER N/A NOT NULL
timePokemonId ID do time de Pokémon INTEGER N/A FOREIGN KEY (TimePokemon)

Rota

Tabela Rota
Descrição Representa as rotas do mundo Pokémon onde ocorrem encontros com Pokémon selvagens e NPCs.
Observação Cada rota está associada a uma cidade de origem e destino.
Nome Descrição Tipo de Dado Tamanho Restrição de Domínio
id Identificador único SERIAL N/A PRIMARY KEY

RotaRota

Tabela RotaRota
Descrição Define a relação entre rotas que se conectam.
Observação Permite a navegação entre diferentes rotas.
Nome Descrição Tipo de Dado Tamanho Restrição de Domínio
id Identificador único SERIAL N/A PRIMARY KEY
origemRotaId ID da rota de origem INTEGER N/A FOREIGN KEY (Rota)
destinoRotaId ID da rota de destino INTEGER N/A FOREIGN KEY (Rota)

RotaRotaCidade

Tabela RotaRotaCidade
Descrição Define a relação entre rotas e cidades que elas conectam.
Observação Permite a navegação entre diferentes cidades por rotas específicas.
Nome Descrição Tipo de Dado Tamanho Restrição de Domínio
id Identificador único SERIAL N/A PRIMARY KEY
origemRotaId ID da rota de origem INTEGER N/A FOREIGN KEY (Rota)
destinoCidadeId ID da cidade de destino INTEGER N/A FOREIGN KEY (Cidade)

RotaCidadeRota

Tabela RotaCidadeRota
Descrição Relaciona uma cidade com as rotas que a conectam a outras cidades.
Observação Permite determinar as rotas disponíveis para cada cidade.
Nome Descrição Tipo de Dado Tamanho Restrição de Domínio
id Identificador único SERIAL N/A PRIMARY KEY
origemCidadeId ID da cidade de origem INTEGER N/A FOREIGN KEY (Cidade)
destinoRotaId ID da rota de destino INTEGER N/A FOREIGN KEY (Rota)

Cidade

Tabela Cidade
Descrição Armazena as cidades presentes no mundo Pokémon, que podem ter ginásios, centros Pokémon, e NPCs.
Observação Cada cidade pode estar associada a um ginásio e rotas que a conectam a outras cidades.
Nome Descrição Tipo de Dado Tamanho Restrição de Domínio
id Identificador único SERIAL N/A PRIMARY KEY
nome Nome da cidade TEXT N/A NOT NULL
possui_pokemart Indica se possui PokéMart BOOLEAN N/A NOT NULL
possui_centro_pokemon Indica se possui Centro Pokémon BOOLEAN N/A NOT NULL
possui_ginasio Indica se possui Ginásio BOOLEAN N/A NOT NULL

Lider

Tabela Lider
Descrição Armazena informações sobre os líderes de ginásios Pokémon.
Observação Cada líder está associado a um ginásio específico e possui insígnias para serem entregues após uma vitória.
Nome Descrição Tipo de Dado Tamanho Restrição de Domínio
id Identificador único SERIAL N/A PRIMARY KEY
ginasioId ID do ginásio INTEGER N/A FOREIGN KEY (Ginasio)
biografia Biografia do líder TEXT N/A NOT NULL
timeLiderID ID do time do líder INTEGER N/A FOREIGN KEY (TimeNPC)

Insignia

Tabela Insignia
Descrição Representa as insígnias que podem ser obtidas pelos treinadores ao derrotarem líderes de ginásios.
Observação Cada insígnia está relacionada a um ginásio e líder específico.
Nome Descrição Tipo de Dado Tamanho Restrição de Domínio
id Identificador único SERIAL N/A PRIMARY KEY
nome Nome da insígnia TEXT N/A NOT NULL
liderId ID do líder associado INTEGER N/A FOREIGN KEY (Lider)
tipoPokemon Tipo de Pokémon da insígnia TipoPokemon N/A NOT NULL, Enum (tipos Pokémon)

Habilidade

Tabela Habilidade
Descrição Armazena as habilidades dos Pokémon, incluindo atributos como poder e tipo.
Observação Cada habilidade é única para o Pokémon e pode ser usada em batalhas.
Nome Descrição Tipo de Dado Tamanho Restrição de Domínio
id Identificador único SERIAL N/A PRIMARY KEY
nome Nome da habilidade TEXT N/A NOT NULL
tipo Tipo da habilidade TipoPokemon N/A NOT NULL, Enum (tipos Pokémon)
poder Poder da habilidade INTEGER N/A NOT NULL
precisao Precisão da habilidade INTEGER N/A NOT NULL

EntregaInsignia

Tabela EntregaInsignia
Descrição Armazena as informações sobre as insígnias entregues a treinadores.
Observação Relaciona o treinador com a insígnia recebida.
Nome Descrição Tipo de Dado Tamanho Restrição de Domínio
id Identificador único da entrega SERIAL PRIMARY KEY
insigniaId Identificador da insígnia INTEGER NOT NULL
treinadorId Identificador do treinador INTEGER NOT NULL

Ginasio

Tabela Ginasio
Descrição Representa os ginásios localizados em cidades específicas.
Observação Contém o líder do ginásio e a liga à qual ele pertence.
Nome Descrição Tipo de Dado Tamanho Restrição de Domínio
id Identificador único do ginásio SERIAL PRIMARY KEY
cidadeId Identificador da cidade onde o ginásio está localizado INTEGER NOT NULL
liderId Identificador do líder do ginásio INTEGER NOT NULL
ligaId Identificador da liga à qual o ginásio pertence INTEGER NULL

Habilidade

Tabela Habilidade
Descrição Armazena as habilidades dos Pokémon, como tipo, poder e precisão.
Observação Cada habilidade está associada a um tipo de Pokémon.
Nome Descrição Tipo de Dado Tamanho Restrição de Domínio
id Identificador único da habilidade SERIAL PRIMARY KEY
nome Nome da habilidade TEXT NOT NULL
tipo Tipo da habilidade com base no tipo do Pokémon TipoPokemon NOT NULL
poder Poder da habilidade INTEGER NOT NULL
precisao Precisão da habilidade INTEGER NOT NULL

PokemonInst

Tabela PokemonInst
Descrição Representa uma instância de um Pokémon pertencente a um treinador ou NPC.
Observação Inclui atributos específicos do Pokémon como HP, ataque, defesa e nível.
Nome Descrição Tipo de Dado Tamanho Restrição de Domínio
id Identificador único da instância de Pokémon SERIAL PRIMARY KEY
pokemonDex Identificador do Pokémon baseado no Dex INTEGER NOT NULL
treinadorId Identificador do treinador proprietário INTEGER NOT NULL
nivel Nível do Pokémon INTEGER NOT NULL
hp Pontos de vida (HP) INTEGER NOT NULL
ataque Valor de ataque do Pokémon INTEGER NOT NULL
defesa Valor de defesa do Pokémon INTEGER NOT NULL
velocidade Velocidade do Pokémon INTEGER NOT NULL
spAtaque Ataque especial do Pokémon INTEGER NOT NULL
spDefesa Defesa especial do Pokémon INTEGER NOT NULL
timePokemonId Identificador do time do treinador INTEGER NULL
timeNPCId Identificador do time do NPC INTEGER NULL

Pokemon

Tabela Pokemon
Descrição Define os Pokémon da Pokédex com suas estatísticas base e tipo.
Observação Está associada a possíveis evoluções e habilidades.
Nome Descrição Tipo de Dado Tamanho Restrição de Domínio
dex Identificador único na Pokédex SERIAL PRIMARY KEY
nome Nome do Pokémon TEXT NOT NULL
tipo Tipo principal do Pokémon TipoPokemon NOT NULL
hp Pontos de vida base (HP) INTEGER NOT NULL
ataque Valor base de ataque INTEGER NOT NULL
defesa Valor base de defesa INTEGER NOT NULL
velocidade Velocidade base INTEGER NOT NULL
spAtaque Ataque especial base INTEGER NOT NULL
spDefesa Defesa especial base INTEGER NOT NULL
evolucaoDex Identificador da evolução do Pokémon INTEGER NULL
habilidadeId Identificador da habilidade principal INTEGER NOT NULL
pokemonDex Identificador do Pokémon evoluído na Pokédex INTEGER NOT NULL
rotaId Identificador da rota onde o Pokémon pode ser encontrado INTEGER NULL

Liga

Tabela Liga
Descrição Armazena as ligas que treinadores podem desafiar.
Observação Contém a quantidade de insígnias necessárias para participar.
Nome Descrição Tipo de Dado Tamanho Restrição de Domínio
id Identificador único da liga SERIAL PRIMARY KEY
descricao Descrição da liga TEXT NOT NULL
nInsignias Número de insígnias necessárias para a liga INTEGER NOT NULL

NPC

Tabela NPC
Descrição Representa os NPCs do jogo, incluindo treinadores não jogáveis.
Observação NPCs podem ser associados a uma liga e possuem um time de Pokémon.
Nome Descrição Tipo de Dado Tamanho Restrição de Domínio
id Identificador único do NPC SERIAL PRIMARY KEY
nome Nome do NPC TEXT NOT NULL
TimeNPCId Identificador do time do NPC INTEGER NOT NULL
ligaId Identificador da liga à qual o NPC pertence INTEGER NULL

TimePokemon

Tabela TimePokemon
Descrição Armazena o time de Pokémon de um treinador ou NPC.
Observação Cada time pode pertencer a um treinador ou NPC.
Nome Descrição Tipo de Dado Tamanho Restrição de Domínio
id Identificador único do time de Pokémon SERIAL PRIMARY KEY

TimeNPC

Tabela TimeNPC
Descrição Registra os times de Pokémon associados aos NPCs do jogo.
Observação Usado principalmente para batalhas com NPCs.
Nome Descrição Tipo de Dado Tamanho Restrição de Domínio
id Identificador único do time do NPC SERIAL PRIMARY KEY

Pokeball

Tabela Pokeball
Descrição Define os tipos de Pokébolas disponíveis no jogo.
Observação Cada Pokébola tem um tipo que afeta suas chances de captura.
Nome Descrição Tipo de Dado Tamanho Restrição de Domínio
id Identificador único da Pokébola SERIAL PRIMARY KEY
tipo Tipo da Pokébola (comum, super, ultra etc.) PokeballTipo NOT NULL

Captura

Tabela Captura
Descrição Registra as capturas de Pokémon realizadas por treinadores.
Observação Inclui a Pokébola utilizada e o treinador que realizou a captura.
Nome Descrição Tipo de Dado Tamanho Restrição de Domínio
id Identificador único da captura SERIAL PRIMARY KEY
treinadorId Identificador do treinador que realizou a captura INTEGER NOT NULL
pokemonId Identificador do Pokémon capturado INTEGER NOT NULL
pokeballId Identificador da Pokébola usada na captura INTEGER NOT NULL

Surgimento

Tabela Surgimento
Descrição Define as rotas onde determinados Pokémon podem aparecer.
Observação Relaciona um Pokémon a uma rota específica.
Nome Descrição Tipo de Dado Tamanho Restrição de Domínio
id Identificador único do surgimento SERIAL PRIMARY KEY
pokemonId Identificador do Pokémon INTEGER NOT NULL
rotaId Identificador da rota onde o Pokémon pode surgir INTEGER NOT NULL

EncontroPokemon

Tabela EncontroPokemon
Descrição Armazena encontros entre treinadores e Pokémon selvagens.
Observação Inclui se o Pokémon foi capturado, vencido, ou se o treinador fugiu.
Nome Descrição Tipo de Dado Tamanho Restrição de Domínio
id Identificador único do encontro SERIAL PRIMARY KEY
pokemonId Identificador do Pokémon encontrado INTEGER NOT NULL
treinadorId Identificador do treinador envolvido no encontro INTEGER NOT NULL
rotaId Identificador da rota onde ocorreu o encontro INTEGER NOT NULL
capturado Se o Pokémon foi capturado ou não BOOLEAN NOT NULL
venceu Se o treinador venceu o encontro BOOLEAN NOT NULL
correu Se o treinador fugiu do encontro BOOLEAN NOT NULL
perdeu Se o treinador perdeu o encontro BOOLEAN NOT NULL

BatalhaLider

Tabela BatalhaLider
Descrição Registra batalhas contra líderes de ginásio.
Observação Indica se o treinador ganhou ou perdeu a batalha.
Nome Descrição Tipo de Dado Tamanho Restrição de Domínio
id Identificador único da batalha SERIAL PRIMARY KEY
ganhou Indica se o treinador ganhou a batalha BOOLEAN NOT NULL
perdeu Indica se o treinador perdeu a batalha BOOLEAN NOT NULL
treinadorId Identificador do treinador INTEGER NOT NULL
liderId Identificador do líder do ginásio INTEGER NOT NULL

BatalhaLiga

Tabela BatalhaLiga
Descrição Armazena batalhas realizadas em ligas contra NPCs.
Observação Relaciona o treinador, o NPC e o resultado da batalha.
Nome Descrição Tipo de Dado Tamanho Restrição de Domínio
id Identificador único da batalha SERIAL PRIMARY KEY
ganhou Indica se o treinador ganhou a batalha BOOLEAN NOT NULL
perdeu Indica se o treinador perdeu a batalha BOOLEAN NOT NULL
treinadorId Identificador do treinador INTEGER NOT NULL
npcId Identificador do NPC enfrentado INTEGER NOT NULL
ligaId Identificador da liga INTEGER NOT NULL

DesafioLiga

Tabela DesafioLiga
Descrição Registra os desafios feitos por treinadores em ligas.
Observação Relaciona o treinador e a liga desafiada.
Nome Descrição Tipo de Dado Tamanho Restrição de Domínio
id Identificador único do desafio SERIAL PRIMARY KEY
treinadorId Identificador do treinador INTEGER NOT NULL
ligaId Identificador da liga desafiada INTEGER NOT NULL

LancamentoBall

Tabela LancamentoBall
Descrição Armazena os lançamentos de Pokébolas durante batalhas.
Observação Registra o treinador, o encontro e a Pokébola lançada.
Nome Descrição Tipo de Dado Tamanho Restrição de Domínio
id Identificador único do lançamento SERIAL PRIMARY KEY
treinadorId Identificador do treinador que lançou a Pokébola INTEGER NOT NULL
encontroId Identificador do encontro em que a Pokébola foi lançada INTEGER NOT NULL
pokeballId Identificador da Pokébola usada INTEGER NOT NULL

Pokedex

Tabela Pokedex
Descrição Armazena o progresso do treinador na captura e registro de Pokémon.
Observação Contém informações sobre Pokémon vistos, capturados e registrados.
Nome Descrição Tipo de Dado Tamanho Restrição de Domínio
id Identificador único da Pokédex SERIAL PRIMARY KEY
treinadorId Identificador do treinador INTEGER NOT NULL
qtdPokemonVistos Quantidade de Pokémon vistos INTEGER NOT NULL
qtdPokemonCapturados Quantidade de Pokémon capturados INTEGER NOT NULL
qtdPokemonRegistrados Quantidade de Pokémon registrados INTEGER NOT NULL
pokemonVistosId Lista de Pokémon vistos INTEGER[] NULL
pokemonRegistradosId Lista de Pokémon registrados INTEGER[] NULL
statusCompletude Indica se a Pokédex está completa BOOLEAN NOT NULL
dexRegistradosId Lista de Dex registrados na Pokédex INTEGER[] NULL

Histórico de versão

Versão Autor Descrição da Alteração Data
1.0 Carlos Gabriel Criação da quinta versão do dicionário de dados. 08/09/2024