Skip to content

Commit

Permalink
primeiro esquema das tabelas normalizadas
Browse files Browse the repository at this point in the history
  • Loading branch information
14luke08 authored Jan 13, 2025
1 parent c83a969 commit a72e61a
Showing 1 changed file with 122 additions and 1 deletion.
123 changes: 122 additions & 1 deletion docs/entrega-2/Normalização.md
Original file line number Diff line number Diff line change
Expand Up @@ -78,46 +78,167 @@ Resolver problemas em que várias relações independentes são representadas na

## Tabelas normalizadas:

#
Formato:<br>
Tabela normalizada<br>
Tabela original<br>
Explicação<br>
#

### Tabela PC:

PC ( id_personagem, nome,id_celula, id_faccao, id_classe, descricao, dano, hp, hp_atual, level, energia, xp, id_inventario)<br>
PC ( id_personagem, id_celula, id_faccao, id_classe, id_inventario, descricao, dano, hp, hp_atual, nome, level, energia, xp)<br>
A tabela PC tinha atributos dependentes de atributos não chave primária ( do nome). Para normalizar foi tornado parte da PK, o atributo ‘nome’. Agora a tabela está na 4FN.<br>

### Tabela NPC:

NPC (id_personagem, tipo)<br>
NPC (id_personagem, tipo)<br>
A tabela NPC já estava na 4FN.<br>

### Tabela Personagem:

Personagem ( id_personagem, tipo)<br>
Personagem ( id_personagem, tipo)<br>
A tabela Personagem já estava na 4FN.<br>

### Tabela Classes:

Classes (id_classe, nome, tipo, enegia_bonus, hp_bonus, descricao, dano_bonus)<br>
Classes (id_classe, tipo)<br>
A tabela Classes está na 4FN. Porém, para melhor utilizar a especialização, os atributos tipo, enegia_bonus, hp_bonus, descricao e dano_bonus, devido a serem atributos que todas as especializações compartilham, foram movidos para essa tabela.<br>

### Tabela Hacker:

Hacker (id_classe, especialidade)<br>
Hacker (id_classe, enegia_bonus, hp_bonus, descricao, dano_bonus)<br>
A tabela Hacker está na 4FN. Porém, para melhor utilizar a especialização, os atributos enegia_bonus, hp_bonus, descricao e dano_bonus, devido a serem atributos que todas as especializações compartilham, foram movidos para tabela Classes.<br>

### Tabela Daiymo:

Daiymo (id_classe, especialidade)<br>
Daiymo (id_classe, enegia_bonus, hp_bonus, descricao, dano_bonus)<br>
A tabela Daiymo está na 4FN. Porém, para melhor utilizar a especialização, os atributos enegia_bonus, hp_bonus, descricao e dano_bonus, devido a serem atributos que todas as especializações compartilham, foram movidos para tabela Classes.<br>

### Tabela Scoundrel:

Scoundrel (id_classe, especialidade)<br>
Scoundrel (id_classe, enegia_bonus, hp_bonus, descricao, dano_bonus)<br>
A tabela Scoundrel está na 4FN. Porém, para melhor utilizar a especialização, os atributos enegia_bonus, hp_bonus, descricao e dano_bonus, devido a serem atributos que todas as especializações compartilham, foram movidos para tabela Classes.<br>

### Tabela Facção:

Facção (id_faccao, nome, descricao, ideologia)<br>
Facção (id_faccao)<br>
A tabela Facção era irrelevante e utilizava especialização sem motivo, por isso as especializações foram removidas.<br>

### Tabela Yazuka:

Yazuka (id_faccao, nome, descricao, ideologia)<br>
As especializações de Facção foram removidas.<br>

### Tabela TRIAD:

TRIAD (id_faccao, nome, descricao, ideologia)<br>
As especializações de Facção foram removidas.<br>

### Tabela Inimigo:

Inimigo (id_inimigo, id_personagem, id_celula, nome, hp, xp, dano)<br>
Inimigo (id_inimigo, id_personagem, id_celula, nome, descricao)<br>
A tabela Inimigo possuía atributos dependentes de atributos não chave primária ( do id_personagem). Para normalizar foi tornado parte da PK, o atributo ‘id_personagem’. Além disso, foram movidos para essa tabela os atributos xp, dano e hp devido serem atributos que todas as instâncias compartilham. O atributo ‘descricao’ foi removido por ser repetitivo para os inimigos. Agora a tabela está na 4FN.<br>

### Tabela Distrito:

Distrito (id_distrito, nome, descricao, range_maximo, quantidade_personagens)<br>
Distrito (id_distrito, nome, descricao, range_maximo, quantidade_personagens)<br>
A tabela Distrito já estava na 4FN.<br>

### Tabela Célula:

Célula (id_celula,nome ,id_distrito, descricao, destino)<br>
Célula (id_celula, id_distrito, nome, descricao, destino)<br>
A tabela Célula tinha atributos dependentes de atributos não chave primária ( do nome). Para normalizar foi tornado parte da PK, o atributo ‘nome’. Agora a tabela está na 4FN.<br>

### Tabela Inventário:

Inventário (id_inventario, quantidade_itens, capacidade_maxima)<br>
Inventário (id_inventario, quantidade_itens, capacidade_maxima)<br>
A tabela Inventário já estava na 4FN.<br>

### Tabela Inventario_tem_item:

Inventario_tem_item (id_inventario,id_instancia_item)<br>
Foi criada uma tabela para representar um inventário ter uma instância de item. A tabela está na 4FN.<br>

### Tabela Item:

Item (id_item, tipo)<br>
Item (id_item, tipo)<br>
A tabela Item já estava na 4FN.<br>

### Tabela Instância item:

Instancia Item (id_instancia_item, id_item, id_celula)<br>
Instancia Item (id_instancia_item, id_inventario, id_item)<br>
A tabela Instancia Item estava na 4FN, porem ela tinha um atributo desnecessário ( id_inventario) e não possuía outro que era necessário ( id_celula).<br>

### Tabela Equipamento:

Equipamento (id_item, tipo)<br>
Equipamento (id_item, tipo)<br>
A tabela Equipamento já estava na 4FN.<br>

### Tabela Armadura:

Armadura (id_item, nome, descricao, valor, hp_bonus, raridade)<br>
Armadura (id_item, id_celula, nome, descricao, valor, hp_bonus, raridade)<br>
A tabela Armadura tinha atributos dependentes de atributos não chave primária ( do nome). Para normalizar foi tornado parte da PK, o atributo ‘nome’. Além disso, foi removido o atributo id_celula, pois este já se encontra na tabela ‘Instancia Item’. Agora a tabela está na 4FN.<br>

### Tabela Arma:

Arma (id_item, nome, descricao, valor, raridade, municao, dano)<br>
Arma (id_item, id_celúla, nome, descricao, valor, raridade, municao, dano)<br>
A tabela Arma tinha atributos dependentes de atributos não chave primária ( do nome). Para normalizar foi tornado parte da PK, o atributo ‘nome’. Além disso, foi removido o atributo id_celula, pois este já se encontra na tabela ‘Instancia Item’. Agora a tabela está na 4FN.<br>

### Tabela Implante Cibernético:

Implante Cibernético (id_item, nome, descricao, valor, raridade, custo_energia, dano)<br>
Implante Cibernético (id_item, id_celúla, nome, descricao, valor, raridade, custo_energia, dano)<br>
A tabela Implante Cibernético tinha atributos dependentes de atributos não chave primária ( do nome). Para normalizar foi tornado parte da PK, o atributo ‘nome’. Além disso, foi removido o atributo id_celula, pois este já se encontra na tabela ‘Instancia Item’. Agora a tabela está na 4FN.<br>

### Tabela Comerciante:

Comerciante (id_comerciante, id_personagem, nome, id_celula, descricao)<br>
Comerciante (id_comerciante, id_personagem, id_celula, nome, descricao)<br>
A tabela Comerciante tinha atributos dependentes de atributos não chave primária ( do id_personagem). Para normalizar foi tornado parte da PK, o atributo ‘id_personagem’. Agora a tabela está na 4FN.<br>

### Tabela Loja:

Loja (id_loja, id_comerciante)<br>
Loja (id_loja, id_comerciante, id_instancia_item)<br>
Foi retirado o atributo id_instancia_item, pois viola a 1FN. Agora a tabela está na 4FN.<br>

### Tabela Loja_tem_item:

Loja_tem_item (id_loja, id_instancia_item)<br>
Foi criada uma tabela para representar uma loja ter uma instância de item. A tabela está na 4FN.<br>

### Tabela Interação:

Interação (id_interacao, id_personagem, id_dialogo)<br>
Interação (id_interacao, id_personagem, id_dialogo)<br>
A tabela Interação já estava na 4FN.<br>

### Tabela Dialogo:

### Tabela Instancia inimigo:
Diálogo (id_interação, mensagem_atual, responsavel_mensagem)<br>
Diálogo (id_interação, mensagem_atual, responsavel_mensagem)<br>
A tabela Diálogo já estava na 4FN.<br>

### Tabela Instancia inimigo:

Instancia_Inimigo (id_instancia_inimigo, id_inimigo, id_celula, hp_atual, id_inventario)<br>
Instancia_Inimigo (id_instancia_inimigo, id_inimigo, id_celula, hp, hp_atual, xp, dano)<br>
A tabela Instancia_Inimigo está na 4FN. Porém, para melhor utilizar a instanciação, os atributos xp, dano e hp, devido a serem atributos que todas as instâncias compartilham, foram movidos para essa tabela.<br>

0 comments on commit a72e61a

Please sign in to comment.