No design do banco de dados relacional, a repetição de informações (redundância de dados) e a incapacidade de representar certos relacionamentos facilmente são fortes indicadores de um design ruim. Vamos quebrar o porquê:
1. Repetição da informação (redundância de dados): *
O que é: Isso significa que a mesma peça de dados é armazenada em vários lugares dentro do banco de dados. Por exemplo, se você armazenar o endereço de um cliente na tabela de 'clientes' e em uma tabela 'pedidos', você terá redundância.
*
Por que é ruim: *
Atualizar anomalias: Se você precisar atualizar o endereço do cliente, precisará alterá -lo em * todos os * lugares, ele é armazenado. A falta de uma atualização leva a inconsistências e corrupção de dados. Imagine atualizar o endereço na tabela `ordens`, mas esquecendo de atualizá -lo na tabela` clientes` - agora seus dados não são confiáveis.
*
Anomalias de inserção: Você não pode adicionar um novo cliente, a menos que eles tenham feito um pedido (porque o endereço precisa ir a algum lugar). Da mesma forma, você não pode adicionar um novo produto, a menos que um cliente esteja pedindo. O banco de dados está forçando você a criar dados desnecessários apenas para armazenar fatos básicos.
*
Anomalias de exclusão: Se você excluir um cliente, poderá excluir sem querer o histórico de pedidos se as informações do endereço forem armazenadas apenas no registro do pedido. Ou, se você excluir um pedido, não está excluindo as informações do cliente, levando a dados órfãos.
*
Resíduos de armazenamento: Os dados redundantes consomem espaço desnecessário em disco e aumenta o tamanho do banco de dados, tornando os backups e as consultas mais lentamente.
2. Incapacidade de representar relacionamentos: *
O que é: Isso se refere a situações em que a estrutura do banco de dados não captura efetivamente as relações entre diferentes entidades (coisas). Por exemplo, um banco de dados pode lutar para representar um relacionamento de muitos para muitos (como estudantes e cursos, onde um aluno pode fazer muitos cursos e um curso pode ter muitos estudantes) sem um design cuidadoso.
*
Por que é ruim: *
Problemas de integridade de dados: Sem uma maneira adequada de representar relacionamentos, é mais difícil aplicar a integridade referencial (garantir que os relacionamentos sejam consistentes). Isso pode levar a registros órfãos (registros referentes a dados inexistentes) ou inconsistências nos relacionamentos.
*
Consultas complexas: A extração de informações significativas requer uma consulta complexa e ineficiente para escrever várias tabelas e lidar com as inconsistências criadas pela baixa representação dos relacionamentos.
*
Funcionalidade limitada: O banco de dados pode não ser capaz de executar certas operações facilmente, porque os relacionamentos não estão claramente definidos. Por exemplo, pode ser difícil encontrar todos os alunos matriculados em um curso específico se o relacionamento não for modelado corretamente.
*
Manutenção difícil: Modificar ou estender o banco de dados se torna um pesadelo à medida que a falta de relacionamentos claros dificulta a compreensão da estrutura de dados existente e suas implicações.
Em resumo, a redundância de dados e a incapacidade de representar os relacionamentos levam adequadamente a um banco de dados ineficiente, propenso a erros, difícil de manter e não suporta efetivamente a lógica de negócios pretendida. O bom design do banco de dados relacional visa minimizar a redundância e o modelo de relacionamentos explicitamente usando técnicas como normalização e estabelecimento de relacionamentos fundamentais.