É muito frequente o número de webdesigners, webmasters e programadores freelancers que criam seu banco de dados sem antes elaborar um projeto. Neste artigo explico porque elaborar um projeto de banco de dados com um modelo relacional, diagrama ER e modelo lógico é tão importante para o sucesso do mesmo. Dou também uma dica de leitura para que você saiba como projetar um banco de dados com o mínimo de erros possível.
Quando comecei a programar, desconhecia totalmente o projeto de banco de dados. Em 2009, porém, na minha formação como técnico em informática, fui ensinado a parar, pensar e projetar o banco. Para isso, aprendi a utilizar técnicas essenciais para o bom funcionamento do banco. Entre elas, podemos alistar:
- Modelo conceitual utilizando o Diagrama E[ntidade]R[elacionamento] (artigo na Wikipédia);
- Modelo Relacional (artigo na Wikipédia);
- Modelo Lógico e Modelo Físico (artigo na Wikipédia).
O que envolve o projeto? Bem, projetar envolve pensar, pegar um papel e uma caneta e começar a desenhar. O projeto do banco de dados é bastante semelhante ao trabalho de um engenheiro. Ele deve calcular o que é melhor para o banco. Formar a estrutura do banco e visualizar como cada tabela irá se relacionar uma com a outra. Mais do que simplesmente rabiscar em um papel como você imagina que deva ser o banco de dados, você deveria seguir certas regras. Estas regras trarão benefícios tais como:
- Diminuição ou término das redundâncias nos bancos de dado;
- Rapidez nas consultas à tabelas;
- Facilidade em atualização futura de uma tabela no banco de dados;
A fim de evitar redundância desnecessária, aumentar a rapidez e evitar outros problemas, foram criados os modelos de banco de dados apresentados anteriormente. Segundo o professor Carlos Alberto Heuser, da UFRGS, “modelo de dados é a descrição formal da estrutura de um banco de dados“. Podemos projetar um banco de dados textualmente (modelo físico e relacional) ou graficamente (modelo lógico ou conceitual).
Quando falamos de modelo conceitual, a técnica mais difundida é a abordagem entidade-relacionamento (ER). Representamos esta técnica através de um diagrama, tal como podemos ver na imagem abaixo. Os retângulos representam a entidade (nome da tabela). As “bolinhas” representam os atributos, prováveis colunas da tabela. E os losangos representam os relacionamentos. Temos também as cardinalidades, tais como 0, 1; 0, 0, 1, 0; 1, N; N, 1; NN. Existe também a especialização, retratada pelo triângulo. No que isso ajuda? É somente um desenho bonitinho de meu banco? Não. Tudo isso tem um significado. Não abordarei neste post porque não é este o objetivo do mesmo. Darei links e dicas de leitura para que saibam mais a respeito disso. Mas saiba que, depois de um modelo conceitual, virá um modelo lógico, outro físico e assim por diante. Isso lhe facilitará a vida. Você e seu banco ficarão mais organizados. Evitará dores de cabeça. Lhe trará maior profissionalismo e menos gambiarras.
Existem alguns programas, como os que citarei mais abaixo, que, após você fazer o modelo conceitual, gerarão o modelo lógico e o físico, já tendo o código pronto para criar o banco de dados e suas tabelas. O próprio programa lhe sugerirá, de acordo com o que estruturastes no diagrama ER, por exemplo, o que seria melhor para sua tabela. Seria melhor criar uma nova tabela? Criar uma chave estrangeira? O programa lhe dará dicas com base em regras pré-definidas. Aprofunde-se no assunto. Você verá como será bom.
Depois que aprendi sobre o assunto no curso técnico, procurei me aprofundar mais no assunto. Meus sistemas ficaram muito melhores. Elevei a performance dos mesmos em 60%. A programação, posteriormente, ficará também mais fácil. Quando cursei a cadeira de Projeto de Banco de Dados na faculdade, as informações adicionais que me foram apresentadas elevaram ainda mais a qualidade dos sistemas. Não ache que isso é perda de tempo. É essencial para que você seja um profissional qualificado. Imagine um prédio sem um projetista, sem uma planta. Você compraria um apartamento nele sabendo que os pedreiros/construtores o construíram do nada, sem um projeto, colocando tijolo por tijolo sem ter uma planta? É isso que será seu banco de dados e sistema sem um bom projeto.
Ajuda e dicas
O que me ajudou essencialmente a projetar bons bancos de dados foram meus professores, tanto da faculdade como do curso técnico. Porém, uma boa leitura, a qual também foi usada como base das aulas ministradas por eles é o livro do professor anteriormente já citado, Carlos Alberto Heuser (UFRGS), chamado: Projeto de Banco de Dados. Em um post posterior falarei um pouco do livro e minha avaliação do mesmo. Mas adquira este livro. Ele aborda os principais tipos de modelos de banco de dados, juntamente com exemplos práticos do assunto. Este professor já escreveu diversos livros pela UFRGS e é usado nacional e internacionalmente como base das aulas de projeto de banco de dados em faculdades e escolas de TI. Como disse, mesmo sendo diferentes instituições, tanto na QI, onde fiz meu curso técnico, quanto na FTEC, onde faço faculdade, meus professores utilizam este livro.
Quanto a softwares, indico, para iniciar, o software BRMODELO, criado por um estudante do tema em Santa Catarina. Ele criou este software com base nas informações apresentadas no livro anteriormente citado. Ele é um software para quem está aprendendo a modelar. É muito bom. Cumpre com seu objetivo. Você consegue criar seu diagrama ER, converte-lo para modelo lógico e gerar o código fonte do banco de dados. Há um porém: não é compatível com computadores MAC.
Outro software excelente, porém somente com o modelo Lógico, é o MySQLWorkbench. Embora em inglês, é um software maravilhoso para modelos lógicos, também gerando o código fonte do banco de dados. Atualmente utilizo este software. É mais profissional e consegue se conectar com seu banco remoto e gerar, através dele, o modelo lógico, fazendo assim uma engenharia reversa.
Espero que tenham gostado do artigo. Seguem os links para os softwares apresentados.
- brModelo. Windows;
- MySQLWorkbench. Mac, Windows, Linux.