From a72e61a2401fbe04dbb4e1583ed00acbe076fe21 Mon Sep 17 00:00:00 2001
From: Mateus Santos Negrini <119440440+14luke08@users.noreply.github.com>
Date: Mon, 13 Jan 2025 19:44:19 -0300
Subject: [PATCH] primeiro esquema das tabelas normalizadas
---
.../entrega-2/Normaliza\303\247\303\243o.md" | 123 +++++++++++++++++-
1 file changed, 122 insertions(+), 1 deletion(-)
diff --git "a/docs/entrega-2/Normaliza\303\247\303\243o.md" "b/docs/entrega-2/Normaliza\303\247\303\243o.md"
index 89a8d8f..cca6de8 100644
--- "a/docs/entrega-2/Normaliza\303\247\303\243o.md"
+++ "b/docs/entrega-2/Normaliza\303\247\303\243o.md"
@@ -78,46 +78,167 @@ Resolver problemas em que várias relações independentes são representadas na
## Tabelas normalizadas:
+#
+Formato:
+Tabela normalizada
+Tabela original
+Explicação
#
### Tabela PC:
+PC ( id_personagem, nome,id_celula, id_faccao, id_classe, descricao, dano, hp, hp_atual, level, energia, xp, id_inventario)
+PC ( id_personagem, id_celula, id_faccao, id_classe, id_inventario, descricao, dano, hp, hp_atual, nome, level, energia, xp)
+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.
+
### Tabela NPC:
+NPC (id_personagem, tipo)
+NPC (id_personagem, tipo)
+A tabela NPC já estava na 4FN.
+
### Tabela Personagem:
+Personagem ( id_personagem, tipo)
+Personagem ( id_personagem, tipo)
+A tabela Personagem já estava na 4FN.
+
### Tabela Classes:
+Classes (id_classe, nome, tipo, enegia_bonus, hp_bonus, descricao, dano_bonus)
+Classes (id_classe, tipo)
+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.
+
+### Tabela Hacker:
+
+Hacker (id_classe, especialidade)
+Hacker (id_classe, enegia_bonus, hp_bonus, descricao, dano_bonus)
+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.
+
+### Tabela Daiymo:
+
+Daiymo (id_classe, especialidade)
+Daiymo (id_classe, enegia_bonus, hp_bonus, descricao, dano_bonus)
+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.
+
+### Tabela Scoundrel:
+
+Scoundrel (id_classe, especialidade)
+Scoundrel (id_classe, enegia_bonus, hp_bonus, descricao, dano_bonus)
+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.
+
### Tabela Facção:
+Facção (id_faccao, nome, descricao, ideologia)
+Facção (id_faccao)
+A tabela Facção era irrelevante e utilizava especialização sem motivo, por isso as especializações foram removidas.
+
+### Tabela Yazuka:
+
+Yazuka (id_faccao, nome, descricao, ideologia)
+As especializações de Facção foram removidas.
+
+### Tabela TRIAD:
+
+TRIAD (id_faccao, nome, descricao, ideologia)
+As especializações de Facção foram removidas.
+
### Tabela Inimigo:
+Inimigo (id_inimigo, id_personagem, id_celula, nome, hp, xp, dano)
+Inimigo (id_inimigo, id_personagem, id_celula, nome, descricao)
+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.
+
### Tabela Distrito:
+Distrito (id_distrito, nome, descricao, range_maximo, quantidade_personagens)
+Distrito (id_distrito, nome, descricao, range_maximo, quantidade_personagens)
+A tabela Distrito já estava na 4FN.
+
### Tabela Célula:
+Célula (id_celula,nome ,id_distrito, descricao, destino)
+Célula (id_celula, id_distrito, nome, descricao, destino)
+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.
+
### Tabela Inventário:
+Inventário (id_inventario, quantidade_itens, capacidade_maxima)
+Inventário (id_inventario, quantidade_itens, capacidade_maxima)
+A tabela Inventário já estava na 4FN.
+
+### Tabela Inventario_tem_item:
+
+Inventario_tem_item (id_inventario,id_instancia_item)
+Foi criada uma tabela para representar um inventário ter uma instância de item. A tabela está na 4FN.
+
### Tabela Item:
+Item (id_item, tipo)
+Item (id_item, tipo)
+A tabela Item já estava na 4FN.
+
### Tabela Instância item:
+Instancia Item (id_instancia_item, id_item, id_celula)
+Instancia Item (id_instancia_item, id_inventario, id_item)
+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).
+
### Tabela Equipamento:
+Equipamento (id_item, tipo)
+Equipamento (id_item, tipo)
+A tabela Equipamento já estava na 4FN.
+
### Tabela Armadura:
+Armadura (id_item, nome, descricao, valor, hp_bonus, raridade)
+Armadura (id_item, id_celula, nome, descricao, valor, hp_bonus, raridade)
+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.
+
### Tabela Arma:
+Arma (id_item, nome, descricao, valor, raridade, municao, dano)
+Arma (id_item, id_celúla, nome, descricao, valor, raridade, municao, dano)
+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.
+
### Tabela Implante Cibernético:
+Implante Cibernético (id_item, nome, descricao, valor, raridade, custo_energia, dano)
+Implante Cibernético (id_item, id_celúla, nome, descricao, valor, raridade, custo_energia, dano)
+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.
+
### Tabela Comerciante:
+Comerciante (id_comerciante, id_personagem, nome, id_celula, descricao)
+Comerciante (id_comerciante, id_personagem, id_celula, nome, descricao)
+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.
+
### Tabela Loja:
+Loja (id_loja, id_comerciante)
+Loja (id_loja, id_comerciante, id_instancia_item)
+Foi retirado o atributo id_instancia_item, pois viola a 1FN. Agora a tabela está na 4FN.
+
+### Tabela Loja_tem_item:
+
+Loja_tem_item (id_loja, id_instancia_item)
+Foi criada uma tabela para representar uma loja ter uma instância de item. A tabela está na 4FN.
+
### Tabela Interação:
+Interação (id_interacao, id_personagem, id_dialogo)
+Interação (id_interacao, id_personagem, id_dialogo)
+A tabela Interação já estava na 4FN.
+
### Tabela Dialogo:
-### Tabela Instancia inimigo:
+Diálogo (id_interação, mensagem_atual, responsavel_mensagem)
+Diálogo (id_interação, mensagem_atual, responsavel_mensagem)
+A tabela Diálogo já estava na 4FN.
+### Tabela Instancia inimigo:
+Instancia_Inimigo (id_instancia_inimigo, id_inimigo, id_celula, hp_atual, id_inventario)
+Instancia_Inimigo (id_instancia_inimigo, id_inimigo, id_celula, hp, hp_atual, xp, dano)
+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.