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.