Design de banco de dados. Melhores práticas

Antecipando o início do próximo fluxo no curso de Bancos de dados, preparamos um pequeno material autoral com dicas importantes para o design do banco de dados. Esperamos que este material seja útil para você.




Os bancos de dados estão por toda parte: de blogs e diretórios simples a sistemas de informações confiáveis ​​e grandes redes sociais. Não é tão importante, um banco de dados simples ou complexo, quanto é essencial projetá-lo corretamente. Quando a base é projetada sem pensar e sem uma compreensão clara da meta, ela não é apenas eficaz, mas o trabalho adicional com a base será um verdadeiro tormento, uma floresta intransitável para os usuários. Aqui estão algumas dicas de design do banco de dados para ajudá-lo a criar um produto útil e fácil de usar.

1. Determine para que serve a tabela e qual é sua estrutura.




Atualmente, métodos de desenvolvimento como Scrum ou RAD (rápido desenvolvimento de aplicativos) ajudam as equipes de TI a desenvolver rapidamente bancos de dados. No entanto, na busca do tempo, é muito grande a tentação de mergulhar na construção da base, imaginando vagamente qual é o objetivo, quais devem ser os resultados finais.

Como se a equipe estivesse focada no trabalho eficiente e de alta velocidade, mas isso é uma miragem. Quanto mais e mais rápido você se aprofundar no projeto, mais tempo será necessário para identificar e alterar erros na base do projeto.

Portanto, a primeira coisa a decidir é determinar a finalidade do seu banco de dados. Para que tipo de aplicativo o banco de dados é desenvolvido? O usuário trabalha apenas com registros e precisa prestar atenção nas transações ou está mais interessado em análise de dados? Onde a base deve ser implantada? Ela acompanhará o comportamento do cliente ou apenas gerenciará o relacionamento entre eles?

Quanto mais cedo a equipe de design responder a essas perguntas, mais suave e suave será o processo de design do banco de dados.

2. Quais dados escolher para armazenamento?




Planeje com antecedência. Pensamentos sobre o que o site ou sistema fará no futuro para o qual o banco de dados está sendo projetado. É importante ir além dos requisitos simples das especificações técnicas. Apenas, por favor, não comece a pensar imediatamente em todos os tipos possíveis de dados que o usuário jamais armazenará. É melhor pensar se os usuários podem postar, fazer upload de documentos ou fotos ou trocar mensagens. Nesse caso, no banco de dados você precisará alocar espaço para eles.

Trabalhe com uma equipe, departamento ou organização para os quais a base do projeto será apoiada no futuro. Conecte-se com pessoas de todos os níveis, desde especialistas em atendimento ao cliente a chefes de departamento. Portanto, com a ajuda do feedback, você obtém uma idéia clara dos requisitos da empresa.

Inevitavelmente, as necessidades dos usuários em até um departamento entrarão em conflito. Se você encontrar isso, não tenha medo de confiar em sua própria experiência e encontre um compromisso que atenda a todas as partes e atenda ao objetivo final do banco de dados. Tenha certeza: no futuro, +100500 em karma e uma montanha de biscoitos voarão até você.

3. Modele dados com cuidado




Existem vários pontos importantes a serem considerados ao modelar dados. Como dissemos anteriormente, depende do objetivo do banco de dados quais métodos usar na simulação. Se projetarmos um banco de dados para processamento operacional de registros (OLTP), em outras palavras, para criar, editar e excluí-los, usaremos a modelagem de transações. Se o banco de dados deve ser relacional, a modelagem multidimensional é melhor.

Durante a simulação, modelos de dados conceituais (CDM), físicos (PDM) e lógicos (LDM) são construídos.

Modelos conceituais descrevem as entidades e tipos de dados que eles incluem, bem como os relacionamentos entre eles. Divida seus dados em partes lógicas - é muito mais fácil viver.
O principal é uma medida, não exagere.

Se uma entidade é muito difícil de classificar em uma palavra ou frase, é hora de usar subtipos (entidades filhas).

Se uma entidade leva vida própria, possui atributos que descrevem seu comportamento e aparência, além de relacionamentos com outros objetos, é possível usar com segurança não apenas um subtipo, mas também um supertipo (entidade pai).

Se você negligenciar esta regra, outros desenvolvedores ficarão confusos no seu modelo e não entenderão completamente os dados e regras, como coletá-los.

Modelos conceituais são implementados usando modelos lógicos. Esses modelos são como um roteiro para projetar um banco de dados físico. No modelo lógico, as entidades dos dados corporativos são distinguidas, os tipos de dados e o status da chave de regra que governa o relacionamento entre os dados são determinados.

Em seguida, o modelo de dados lógicos é comparado com a plataforma previamente selecionada do DBMS (sistema de gerenciamento de banco de dados) e o modelo físico é obtido. Ele descreve uma maneira de armazenar dados fisicamente.

4. Use tipos de dados adequados




Usar o tipo de dados incorreto pode levar a dados menos precisos, dificuldades em unir tabelas, sincronizar atributos e aumentar o tamanho dos arquivos.
Para garantir a integridade das informações, um atributo deve conter apenas tipos de dados aceitáveis. Se a idade for inserida no banco de dados, verifique se os números inteiros com no máximo 3 dígitos estão armazenados na coluna.

Crie um mínimo de colunas vazias com um valor NULL. Se você criar todas as colunas como NULL, isso é um erro. Se você precisar de uma coluna vazia para executar uma função comercial específica, quando os dados forem desconhecidos ou ainda não fizerem sentido, fique à vontade para criar. Afinal, não podemos preencher as colunas “Data da morte” ou “Data da demissão” antecipadamente, não somos preditores de apontar o dedo para o céu :-).

A maioria dos dados de software de modelagem (ER / Studio, MySQL Workbench, SQL DBM, gliffy.com) permite criar protótipos de áreas de dados. Isso garante não apenas o tipo de dados correto, a lógica do aplicativo e o bom desempenho, mas também o valor necessário.

5. Prefere natural




Ao decidir qual coluna da tabela escolher como chave, sempre preste atenção em quais campos o usuário pode editar. Nunca os escolha como chave - uma má ideia. Tudo pode acontecer e você deve garantir a exclusividade.

É melhor usar uma chave natural ou comercial. Faz sentido, para evitar duplicação no banco de dados.

Se apenas a chave comercial não for exclusiva (nome, sobrenome, posição) e for repetida em diferentes linhas da tabela ou precisar ser alterada, a chave gerada deverá receber a chave artificial substituta (chave artificial) gerada.

6. Normalize com moderação




Para organizar efetivamente os dados no banco de dados, você deve seguir um conjunto de recomendações e normalizar o banco de dados. Existem cinco formas normais a seguir.
Usando a normalização, você evita redundância e garante a integridade dos dados usados ​​no aplicativo ou no site.

Como sempre, tudo deve estar com moderação, até normalização. Se o banco de dados tiver muitas tabelas com as mesmas chaves exclusivas, você se empolga e normaliza demais o banco de dados. Normalização excessiva afeta negativamente o desempenho do banco de dados.

7. Teste cedo, teste com mais frequência




Um plano de teste e testes adequados devem fazer parte do design do banco de dados.

É melhor testar o banco de dados por meio da integração contínua. Modele o cenário “Um dia na vida do banco de dados” e verifique se todos os casos de limite são tratados e quais interações do usuário são prováveis. Quanto mais cedo você encontrar bugs, mais você economizará tempo e dinheiro.

Estas são apenas sete dicas para ajudar você a criar um ótimo banco de dados de desempenho e eficiência. Se você os seguir, evitará a maioria das dores de cabeça no futuro. Essas dicas são apenas a ponta do iceberg na modelagem de banco de dados. Há um grande número de hackers vitais. Quais você usa?

Source: https://habr.com/ru/post/pt471016/


All Articles