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 |