Guia da Modelagem de Dados: introdução & modelo conceitual
Registros inteligentemente armazenados possibilitam o crescimento sustentável de aplicações e facilitam seu trabalho como desenvolvedor(a)
Contexto
Você aprendeu que muitas aplicações precisam de um lugar para armazenar seus dados. Chegou a hora de criar a sua, mas ainda não faz ideia de como guardá-los sem resultar na casa da mãe Joana. Calma.
Introdução
É utilizada a modelagem de dados para a construção de estruturas de armazenamento eficientes e escaláveis que permitam a recuperação de informações de forma simplificada.
Dado significa a menor partícula trabalhável de valores em estado bruto, enquanto informação, um conjunto de dados tratados que adquiriram relevância. “61” é um dado sem sentido quando isolado mas, aliado à sentença “teclado de 61 teclas”, torna-se importante para quem está em busca de um novo instrumento musical, por exemplo.
Três etapas compõem o processo de modelar um banco de dados, sendo elas:
- Modelagem conceitual (você está aqui);
- Modelagem lógica (em breve); e
- Modelagem física (em breve).
Esta séries de artigos baseia-se na abordagem relacional para bancos de dados de E.F. Codd.
Modelagem conceitual
É a análise dos elementos e fenômenos relevantes de uma realidade observada ou imaginada e a posterior formação de um modelo abstrato do corpo de conhecimento adquirido: o Modelo Entidade-Relacionamento ou MER. É frequentemente documentado de forma visual em um diagrama, quando passa a ser conhecido como Diagrama Entidade-Relacionamento ou DER.

Opcionalmente, poderão ser usadas tabelas para descrever com mais profundidade os componentes de um MER.
Podem ser usados documentos da modelagem conceitual como o DER para validar o ponto de vista da equipe de desenvolvimento com as partes interessadas de uma aplicação. Devido à natureza graficamente simples, possibilita uma discussão mais aberta ao permitir a troca de ideias com pessoas que não possuem conhecimento técnico.
Não é limitada esta etapa por questões físicas como orçamentos ou licenças de software e pode ser feita no papel ou até mesmo “de cabeça” em projetos de pequeno porte.
Fundamentos
Certos conceitos são utilizados na modelagem conceitual para descrever os papéis de cada componente do domínio analisado. Dentre eles, podemos citar:
- Instância: denomina uma ocorrência, um registro que existe ou passou a existir de uma entidade;
- Entidade: define qualquer coisa que seja identificável, singular e tenha existência bem delimitada, podendo ser classificada entre “fraca” e “forte” de acordo com sua cardinalidade e representada por um retângulo no DER;
- Atributo: é usado para referir-se à cada característica possuída pelas instâncias de uma entidade ou de um relacionamento e sua representação no DER se dá em forma de balões — embora seja desencorajada por poluí-lo facilmente;
- Relacionamento: descreve um evento significativo que ocorre entre instâncias de duas entidades e é representado por um losango, sendo considerado e representado a partir da modelagem lógica como uma entidade no DER quando tem cardinalidade N:N (surpresa!);
- Cardinalidade: conceito usado para dizer quantas vezes uma instância de uma entidade pode se relacionar com instâncias de outra entidade, também referenciado como “grau de relacionamento”; e
- Condicionalidade: responsável por comunicar se a existência de uma instância de uma entidade está condicionada à existência de uma instância de outra entidade, não sendo muito representada no DER.
Relacionamentos entre instâncias de entidades
São comumente efetivados com estas 3 cardinalidades:
- “Um” para “Um” (1:1): uma instância de uma entidade pode ou deve se relacionar com uma e apenas uma instância de outra entidade;
- “Um” para “Muitos” (1:N): uma instância de uma entidade pode ou deve se relacionar com uma ou mais instâncias de outra entidade — é com toda certeza a cardinalidade mais encontrada em bancos de dados; e
- “Muitos” para “Muitos” (N:N): uma ou mais instâncias de uma entidade podem ou devem se relacionar com uma ou mais instâncias de outra entidade — esse tipo de relacionamento transforma-se em uma entidade a partir da modelagem lógica.
Condição de relacionamentos
Podem ser regidos sob 2 condicionalidades (exemplificadas abaixo):
- Parcial: quando instâncias de uma entidade Telefone podem estar relacionadas com instâncias de Pessoa em uma agenda, ou seja, onde o cadastro de números de telefone sem nome é permitido; e
- Total: quando instâncias de uma entidade Carro devem estar relacionadas com instâncias de Cliente para entrar em uma oficina, ou seja, onde o cadastro de carros sem dono é proibido.
Entidades de uma relação 1:N
Duas categorias são usadas para definí-las:
- “Fortes”: para entidades do lado 1 da relação; e
- “Fracas”: para entidades do lado N.
Entidades “fracas” são capazes de nos dizer quando participam de uma relação 1:N pois, após a modelagem lógica, sempre terão um atributo especial que fará menção às entidades “fortes”. Estas últimas, contudo, não permitem o mesmo feito.
Boas práticas para nomeação de componentes do MER
- É recomendado nomear entidades e atributos com substantivos ou adjetivos e relacionamentos com verbos, ambos sem espaços e caracteres especiais (como letras acentuadas e símbolos); e
- É proibido nomes que comecem com números.
Conclusões
Projetos de software são beneficiados pela modularidade existente em bancos de dados devidamente modelados. Registros são organizados de modo a facilitar a manutenção e adição de recursos ao sistema e prover significado suficiente para apoiar nas tomadas de decisões ao refletirem a realidade da qual foram extraídos.
É necessário lembrar que a modelagem de dados não acaba por aqui. Ainda só estamos na primeira etapa. Lidaremos com um exercício prático de modelagem conceitual no próximo artigo e só então avançaremos ṕara a etapa seguinte: a modelagem lógica.
Até mais!
