A modelagem consiste em um passo importante para a construção de um banco de dados, pois simplifica o processo de captura dos requisitos vindos a partir de um domínio de aplicação antes de se pensar em uma solução técnica para esse problema. No entanto, na continuidade do desenvolvimento de software surgirá a necessidade de transformar tais modelos de dados em bancos de dados físicos, que realmente possibilitem o armazenamento de informações a partir de um SGBD.
Nesse contexto, o objetivo deste artigo é descrever uma abordagem para converter um Diagrama de Entidade-Relacionamento (DER), que é um dos diagramas mais adotados para modelagem de dados durante o desenvolvimento de uma aplicação, em um banco de dados físico.
Este artigo não lida com alguns tópicos avançados relacionados à modelagem de dados, tal como relacionamentos envolvendo três ou mais entidades. Para este momento, focaremos em relacionamentos binários envolvendo duas entidades, que são aqueles mais comumente encontrados nas aplicações.
Ao final do artigo, será apresentado um estudo de caso relacionado à modelagem de uma aplicação para o domínio hospitalar, onde serão mapeados sintomas e doenças relacionadas a pacientes. Para a modelagem da aplicação, seguiremos os passos apresentados anteriormente para transformar um diagrama de entidade-relacionamento (desenvolvido ao longo do artigo) em um banco de dados físico.
Abordagem para Conversão de DER em Banco de Dados
A abordagem que seguiremos é formada por quarto passos, como resumiremos a seguir:
- Converter as entidades em tabelas. Existem quatro "sub-passos" que dependem dos relacionamentos que as entidades participam:
- Relacionamento um-para-um
- o Relacionamento um-para-muitos
- o Relacionamento muitos-para-muitos
- o Relacionamento supertipo -subtipo
- Aplicar as regras de negócio às tabelas criadas através da configuração de restrições (constraints) nos campos (colunas) de forma apropriada.
- Criar referências entre tabelas e integridade referencial, aplicando as regras de negócio apropriadas.
- Criar índices apropriados. Para típicos bancos de dados OLTP (Online Transaction Processing – Ver Nota DevMan 1), consideraremos que isso significaria garantir que chaves primárias e estrangeiras estejam indexadas.
- Podemos pensar ainda que existiria um outro passo que poderia ser incluído na abordagem: criar as visões (views) de apoio. Mas vamos deixar este passo fora da abordagem por enquanto.
A partir de agora conheceremos a abordagem passo a passo, conforme descrito nas seções seguintes.
Nota DevMan 1. OLTP – Online Transaction ProcessingSegundo o Wikipédia (http://pt.wikipedia.org/wiki/OLTP) OLTP é um acrônimo de Online Transaction Processing ou Processamento de transações em tempo real. São sistemas que se encarregam de registrar todas as transações contidas em uma determinada operação organizacional. Por exemplo: sistema de transações bancárias registra todas as operações efetuadas em um banco.
Passo 1: Converter as Entidades
O primeiro passo consiste em transformar as entidades presentes no DER em tabelas de um banco de dados. Conforme dito anteriormente, esse passo pode ser subdividido em quatro sub-passos.
Relacionamentos Um-para-um
Em um relacionamento Um-para-Um, as duas entidades que participam do relacionamento são convertidas, cada uma, em uma tabela. Tipicamente o nome da tabela fica no plural, o que dá mais sentido por se tratar de uma coleção de registros. Por exemplo:
Empregados, Departamentos, Fornecedores etc. Algumas pessoas preferem prefixar o nome da tabela com um ...