Boas práticas em seus bases de dados

Boas práticas em seus bases de dados

No âmbito da gestão de bancos de dados MySQL, a implementação de boas práticas é essencial para garantir um desempenho ótimo e a integridade dos dados.

Este artigo explorará diversas estratégias e abordagens para melhorar a eficiência e a segurança em ambientes MySQL. Desde a otimização de consultas até a gestão eficaz de índices, examinaremos como aplicar princípios-chave para manter bancos de dados saudáveis. Ao adotar essas boas práticas, os desenvolvedores e administradores podem assegurar um funcionamento suave, uma resposta rápida às consultas e uma maior confiabilidade em seus sistemas de bancos de dados MySQL.

Entre as principais práticas estão:

1. Usar Primary Key ou PK (chave primária)


Algo tão simples, mas que algumas pessoas começando a estudar deixam passar, é usar uma PK. Toda tabela deve sempre ter uma chave primária, com a qual se pode acessar cada tabela, de forma que se obtenha uma resposta em milissegundos.

Por exemplo:

CREATE TABLE contenido_photo (

id int not null primary key auto_increment,

nombre varchar(250),

datosImagen longblob

);

2. Repetição de dados nas tabelas

Quando se projeta um banco de dados, espera-se que a informação possa ser compartilhada entre ele, por isso devemos evitar a criação de dados repetidos. Por exemplo, se tivermos uma tabela de cliente na qual precisamos armazenar números de telefone, nossa melhor opção seria criar outra tabela onde herdamos a informação do cliente, para que cada cliente possa ter vários números de telefone em vez de criar vários campos de números de telefone na tabela de cliente.

Em termos de código, o que não se deve fazer:

CREATE TABLE cliente(

id INT NOT NULL auto_increment,

nombre VARCHAR(20) not null,

telefono char(8) not null,

telefono2 char(8) not null

);

Em vez disso, deve-se tentar fazer uma Foreign Key - FK (chave estrangeira) onde se armazena a informação telefônica do cliente, agrupando a informação através da referência à tabela de cliente por meio do id.

Dessa maneira:

CREATE TABLE cliente(

id INT NOT NULL auto_increment,

nombre VARCHAR(20) not null

);

CREATE TABLE cliente_telefono(

cliente_id int not null auto_increment,

cliente_telefono char(8) not null,

cliente_celular char(8) not null,

CONSTRAINT fk_cliente_id foreign key(cliente_id) REFERENCES cliente(id)

);

3. Compartilhar característica com PK na tabela


Cada tabela depende da sua chave primária. Por exemplo, se nossa tabela é sobre clientes e nossa chave primária é cliente_id, o restante dos campos na tabela deve estar relacionado com esse dado, pois a tabela careceria de lógica se, após inserir dados de clientes, agora inserirmos dados do produto na mesma tabela.

Por exemplo:

CREATE TABLE cliente (

cliente_id INT NOT NULL auto_increment,

cliente_nombre VARCHAR(20) not null,

cliente_telefono int

);

4. Adicionar detalhes importantes e precisos

Seguindo o exemplo anterior, também existem casos em que o programador gostaria de adicionar detalhes extras à tabela. Isso não é uma má prática, mas o que está errado é colocar todos os detalhes dentro da mesma tabela, pois esse tipo de detalhe, como por exemplo uma descrição, a melhor forma de fazer isso seria criando uma nova tabela onde você possa colocar as informações desejadas de forma que organizemos melhor nosso banco de dados.

5. Adicionar campo de exclusão lógica

Uma boa prática para nossos bancos de dados é ter um campo status, já que nunca devemos excluir uma tabela. Armazenar as informações é importante e nunca devemos perdê-las, por isso, em algumas ocasiões, o mais simples é desativar uma tabela que será usada ou substituída.

Outra ação recomendada é criar uma tabela individual que se conecte a esse tipo de dados em outras tabelas para manter a integridade dos dados.

Um exemplo disso:

CREATE TABLE cliente(

cliente_id INT NOT NULL,

cliente_nombre VARCHAR(20) not null,

cliente_telefono char(8),

cliente_status char(8) not null,

PRIMARY KEY(cliente_status, cliente_id)

);

CREATE TABLE status_customer(

status_id int primary key not null auto_increment,

status_cliente int not null,

CONSTRAINT fk_status FOREIGN KEY (status_cliente) REFERENCES cliente(cliente_status)

);

As chaves estrangeiras são índices que nos permitem unir duas tabelas. Por exemplo, o que fazemos em uma pode ser refletido na outra: se tivermos uma tabela de empregados e outra tabela de vendas, podemos fazer com que as vendas estejam ligadas aos empregados através do seu ID, de forma que, quando registramos uma venda, esta está ligada ao vendedor para atribuir as informações. Isso é especialmente útil porque, se algum empregado ou supervisor quisesse excluir alguma venda, ocorreria um erro, devido a que essa informação está ligada ao vendedor pela chave estrangeira, por isso, a informação não pode ser excluída, pois o dado do vendedor está em outra tabela, adicionando um passo extra de segurança ao nosso banco de dados.

6. Atribuir valores padrão

Uma prática recomendada em nossas tabelas de banco de dados é atribuir valores padrão aos nossos dados. Essa instrução funciona de forma que não precisamos incluir o dado no momento de fazer uma instrução insert, assim, não precisamos mencioná-lo, pois já terá um valor atribuído por padrão, graças a essa palavra reservada.

Se no seu banco de dados você planeja ter dados que ocupem apenas uma única cadeia de caracteres, lembre-se de usar CHAR(1) em vez de VARCHAR(1), pois VARCHAR(1) ocupa um byte adicional para armazenar a informação, o que é recomendado ter em mente na hora de gerenciar esses caracteres.

Quando se utilizam dados do tipo DATETIME e DATE, o mais ideal é utilizar o formato AAAA-MM-DD ou formato de data ISO para que se adapte melhor ao motor SQL, pois outros formatos regionais, como por exemplo DD-MM-YYY, não serão armazenados corretamente.

Chegado a certo ponto, nosso banco de dados pode ficar muito carregado de dados, portanto, no momento de fazer uma consulta, será mais lento, tendo em mente que, em produção, as tabelas podem ter dezenas de colunas, algumas até com grandes tipos de dados, então não seria a melhor opção selecioná-las todas, por isso é um bom hábito especificar quais colunas queremos visualizar usando a instrução SELECT.

Por exemplo:

SELECT cliente_nombre FROM cliente;

Conclusão

Na gestão de bancos de dados MySQL, a aplicação de boas práticas é crucial para o desempenho e a integridade dos dados. Este artigo aborda estratégias para melhorar a eficiência e a segurança em ambientes MySQL. Destaca a importância de usar chaves primárias (PK) para um acesso eficiente, evitando a repetição de dados através de chaves estrangeiras (FK). Enfatiza a coerência das tabelas, a atribuição de valores padrão e a inclusão de um campo de exclusão lógica.

Também se sublinha a utilidade de especificar colunas ao fazer consultas para otimizar o desempenho em ambientes com grandes conjuntos de dados.

Espero que este artigo tenha sido de grande ajuda. Nunca pare de aprender e praticar.

Até logo! 😊🚀

💡
As opiniões e comentários expressos neste artigo são de propriedade exclusiva de seu autor e não representam necessariamente o ponto de vista da Revelo.

A Revelo Content Network acolhe todas as raças, etnias, nacionalidades, credos, gêneros, orientações, pontos de vista e ideologias, desde que promovam diversidade, equidade, inclusão e crescimento na carreira dos profissionais de tecnologia.