O Guia Essencial da Modelagem Conceitual de Dados

leon modelagem banco de dados

A modelagem conceitual é a etapa mais importante no design de um sistema.

Nela, o objetivo não é falar técnica ou sitstêmica, mas sim entender a regra de negócio. É o momento de traduzir a realidade de uma empresa em conceitos que podem ser organizados logicamente.

modelo conceitual é uma representação abstrata dos dados, que busca detalhar as necessidades do usuário e as regras de negócio. Ele é independente de qualquer tecnologia ou sistema de gerenciamento de banco de dados.

É uma representação abstrata dos dados de uma organização. Ele não se preocupa com o software (se vai usar MySQL ou Oracle) nem com a performance. O foco é: Quais dados existem e como eles se conectam?

O padrão mais utilizado é o Modelo Entidade-Relacionamento (MER), visualizado através de diagramas (DER).

2. Símbolos do Modelo Conceitual.

  • ▢ — entidade
  • ◊ — relacionamento
  • ↝ — as setas ligam os relacionamentos
  • ● — atributo identificador
  • o – atributo não identificador
  • * — atributo multivalorado

3. Os Três Pilares (Conceitos Fundamentais)

A. Entidades (Os Substantivos)

São os objetos ou conceitos do mundo real sobre os quais queremos guardar informações. Entidades podem ser pessoas, lugares, organizações, objetos físicos e tangíveis.

Representação: Retângulos com nome da Entidade.

Conforme figura a seguir, as entidades são classificadas em dois tipos: Entidades Fortes e Entidades Fracas.

image

As entidades fortes possuem um alto grau de independência de existência de identificação. Geralmente, outras entidades podem depender dela para serem identificadas. Podemos tomar como exemplo a entidade “EMPRESA”, onde a existência da mesma não depende de nenhuma outra entidade para ser identificada.

As entidades fracas possuem dependência de existência e/ou identificação. São sempre ligadas a outras tabelas através de relacionamentos. Podemos tomar como exemplo a entidade “FILIAL”, onde a existência e identificação da mesma estão vinculadas a outra entidade forte, no caso a “EMPRESA”.

Exemplos: CLIENTE, PRODUTO, VENDA, FUNCIONÁRIO.

B. Atributos (Os Adjetivos)

São as características de cada entidade.

Representação: Elipses ou círculos ligados à entidade.

Exemplos: O CLIENTE tem Nome, CPF e Telefone.

Os atributos são informações que caracterizam as entidades e os relacionamentos. Um atributo pode: identificar, descrever, qualificar, quantificar ou registrar o estado/situação/ocorrência de uma entidade.

Os atributos podem ser classificados em quatro tipos:

Atributo identificador: Representado através de um círculo preenchido na extremidade do atributo. É utilizado para identificar de forma única uma entidade, ou seja, os valores associados a esse atributo são distintos entre o conjunto de entidades. Como exemplo, podemos utilizar o Código do Produto. Ele é único e pode ser utilizado como atributo chave, uma vez que cada produto recebe apenas um Código distinto.

Obs.: Pode existir mais de um atributo identificador, desde que estes em conjunto componham a identificação única.

Atributo não identificador: Representado através de um círculo vazio na extremidade do atributo. Corresponde a maioria das ocorrências de uma entidade. Podem ser opcionais, ou seja, em algumas instâncias de entidade, alguns atributos poderão conter valores nulos.

Atributos multivalorados: Representado através de asterisco na extremidade do atributo.

É aquele que pode ter um ou N (vários) valores associados a ele. Por exemplo: o atributo telefone de um cliente. Este pode ter um ou vários telefones.

Como o objetivo do modelo conceitual é capturar a essência do negócio sem levar em conta aspectos de implementação, este tipo de abordagem é utilizado para representar todas essas instâncias em um único atributo, porém deve-se ter em mente que este tipo de abordagem não deve ser utilizado a partir da modelagem lógica de dados, onde entrarão em cena os conceitos de normalização.

Atributo simples: É um tipo de atributo indivisível, ou seja, é um atributo atômico. Um exemplo deste tipo é o atributo CPF, pois ele não pode ser dividido em partes menores para formar outros atributos.


Atributos compostos: Representados através de uma elipse com vários nós na extremidade do atributo.

Atributos compostos são utilizados para representar mais de um tipo de informação (qualificação) em um atributo. Pode ser dividido em partes menores que representam outros atributos, como endereço. Ele pode ser subdividido em atributos menores, como: cidade, estado, rua, CEP.

Tal como o atributo multivalorado, seu uso é recomendado somente no modelo conceitual de dados.

Atributo derivado e armazenado:  Atributos derivados dependem de outro atributo ou até mesmo outra entidade para existir, como, idade e data de nascimento. Para descobrirmos a idade de uma pessoa, precisamos da sua data de nascimento. Então, consideramos o atributo idade como derivado do atributo data de nascimento, chamado, por sua vez, de atributo armazenado.

Chaves primárias e estrangeiras

A entidade fraca recebe a chave primária da entidade forte com a qual está associada para formar a chave parcial. A entidade fraca, por si só, não tem uma chave primária, então podemos usar atributos identificadores específicos para compor essa chave parcial. Além disso, a chave primária da entidade forte é transferida para a entidade fraca, sendo chamada de chave estrangeira nesse contexto. Podemos pensar nela como “estrangeira” porque originalmente pertence à outra entidade e é transferida para a entidade de destino.


A figura a seguir, mostra os tipos de atributos utilizados em um modelo conceitual de dados.

image

O exemplo acima representa atributos comuns aos alunos de qualquer instituição: o número da matrícula é um atributo identificador, o nome do aluno é um atributo não identificador. Já o atributo telefones é um atributo multivalorado, onde representa os diversos telefones que um aluno possui. Endereço é considerado um atributo composto, pois é formado pela composição da UF, Cidade e Logradouro.

C. Relacionamentos (Os Verbos)

É como as entidades interagem entre si.

Representação: Losangos ligando as entidades.

Relacionamentos são associações entre entidades com um significado específico dentro do mundo real. Os objetos do mundo real não ocorrem de forma isolada, eles se associam ou se vinculam.

A figura de um relacionamento é representada através de um losango. Os relacionamentos são classificados em fortes ou fracos, e assim como as entidades, os relacionamentos também possuem nome e devem expressar o real significado dentro do contexto modelado.

A figura a seguir mostra como os relacionamentos são representados em um modelo conceitual de dados.

image

Na figura acima DEPENDENTE é uma entidade fraca em relação ao EMPREGADO, sempre que esta relação existir de forma fraca, o relacionamento também será fraco, por esta razão o losango desta relação está representado com uma linha dupla. Já na relação entre EMPREGADO e CARGO não há dependência de existência ou identificação, pois um CARGO não depende de um EMPREGADO para existir e ser identificado e vice-versa.

Para Relacionamentos existem três conceitos importantes que influenciam diretamente na modelagem e entendimento de um modelo conceitual:  grau, cardinalidade e tipo do relacionamento.

Grau dos Relacionamentos

O grau de um relacionamento corresponde ao número de entidades envolvidas na mesma relação. O grau de um relacionamento pode ser:

Binário: Duas entidades participam de um relacionamento. Este é o grau utilizado na maioria dos relacionamentos.

Ternário: Três entidades participam de um relacionamento. Muito se discute sobre o uso e aplicabilidade de relacionamentos com grau maior que dois (ternários e n-ários) em modelos de dados. Alguns autores sugerem inclusive que esses relacionamentos não sejam adotados.

N-ário: Quatro ou mais entidades participam de um relacionamento.

image

Exemplos: Um CLIENTE realiza um PEDIDO. Um PROFESSOR ministra uma DISCIPLINA.


3. O Conceito de Cardinalidade

A cardinalidade define o “número de ocorrências” em um relacionamento. É vital para entender as regras de negócio. A cardinalidade representa a quantidade de vezes que um elemento de uma entidade associa-se a outro(s) elemento(s) de outra entidade.

A cardinalidade de uma relação é definida em cada um dos sentidos do relacionamento por um conjunto (x,y) onde x representa a cardinalidade mínima e y representa a cardinalidade máxima.

  • Cardinalidade mínima é responsável por orientar a obrigatoriedade ou opcionalidade do relacionamento.
  • Cardinalidade máxima é responsável por definir a quantidade máxima de vezes que um elemento pode estar associado no relacionamento.

Cardinalidade de Colunas: No contexto de uma coluna refere-se ao número de valores únicos presentes nela.

  • Alta Cardinalidade: Colunas como CPF, E-mail ou IDs (pouca ou nenhuma repetição).
  • Baixa Cardinalidade: Colunas como Gênero, Status de Pedido ou UF (muita repetição).
image

No exemplo acima, um EMPREGADO trabalha em uma e somente uma EMPRESA e, em uma EMPRESA trabalham nenhum ou vários EMPREGADOS. Ou seja, dentro do contexto que foi modelado, é impossível existir um EMPREGADO sem uma EMPRESA associada, porém é totalmente viável criar uma EMPRESA e não associar inicialmente algum EMPREGADO.

O relacionamento é uma associação entre duas entidades. Por exemplo, entre as entidades PROFESSOR e ALUNO pode existir o relacionamento ensina. Um relacionamento é classificado quanto à participação das entidades. Essa classificação é chamada de cardinalidade e podem ser:

Tipos de Cardinalidade

  • Relacionamento 1:N (lê-se 1 para N) 
image

 Nesse exemplo, o relacionamento entre farmácia e produto é 1:N (1 para N), ou seja, uma farmácia pode ter vários produtos (N) e um produto só pode estar em uma única farmácia (1). O relacionamento entre farmácia e farmacêutico é também de 1:N, pois a farmácia pode ter vários farmacêuticos (N) e um farmacêutico só pode trabalhar em uma única farmácia (1).

  • Relacionamento N:1 (lê-se N para 1) 
image

 Um cliente pode participar de várias vendas, mas uma venda só terá o nome de um cliente (na nota fiscal, por exemplo).

  • Relacionamento 1:1 (lê-se 1 para 1) 
image

Um paciente só pode ter um prontuário e um prontuário pertence a somente um cliente.

  • Relacionamento N:M (lê-se N para M) 
image

Um autor pode escrever vários livros e um livro pode ser escrito por vários autores.

Tipos de Relacionamentos

O simples fato de associar duas entidades através de um relacionamento com suas cardinalidades às vezes não são suficientes para representar todas as regras de negócio existentes dentro dessas relações.

Para isto, podemos usar mecanismos de representação um pouco mais detalhados. Sob esta ótica, podemos ainda classificar os relacionamentos em três tipos:

  • Relacionamentos independentes;
  • Relacionamentos Contingentes;
  • Relacionamentos mutuamente exclusivos.


Relacionamentos Independentes:

Tipo de relacionamento presente na maioria das relações. Não há necessidade de interpretação simultânea de outro relacionamento. Ou seja, é independente, não depende de ninguém para existir ou influenciar o seu comportamento.


Relacionamentos Contingentes:

Estabelecem associações simultâneas entre os elementos envolvidos. Ou seja, mais de um relacionamento deve ocorrer em um mesmo instante.

A figura a seguir mostra um exemplo de relacionamento contingente.

image

No exemplo acima é impossível alocar empregados em um projeto sem um gerente definido e não é possível definir um gerente para um projeto sem existir empregados alocados no projeto. Ou seja, os dois relacionamentos são simultâneos.

Relacionamentos Mutuamente Exclusivos:

Estabelecem associações onde, se um relacionamento ocorre, os outros não deverão ocorrer em relação a um determinado objeto.

A figura a seguir mostra um exemplo de relacionamento mutuamente exclusivo.

image

O exemplo acima reflete um exemplo onde uma obra é gerida por uma Empresa Privada ou por uma Unidade Federativa ou por um Município. Ou seja, três tipos de entidades podem gerir uma obra, porém somente uma é a entidade gestora.

Mecanismos avançados de abstração utilizados em um Modelo Conceitual de Dados

Os mecanismos avançados de abstração são excelentes recursos para melhorar o entendimento e representação dos modelos de dados.

1 – Repetição

Existem situações em que uma mesma instância de uma entidade pode se relacionar com outra mesma instância de outra entidade várias vezes.

A repetição permite representar as regras de negócio que expressam a quantidade de instâncias de relacionamentos que podem ser estabelecidos entre os mesmos elementos das entidades participantes de um relacionamento.

Quando trabalhamos com o mecanismo de Repetição, é obrigatória a existência de um atributo identificador no relacionamento onde ocorre a repetição.

A repetição é indicada no modelo através de um número que indica quantas vezes uma mesma instância de uma entidade pode se relacionar com outra instância mais de uma vez em outra entidade. Se o número de vezes for indefinido utiliza-se a letra “N”.

A figura a seguir mostra um exemplo de uso do mecanismo da Repetição.

image

No exemplo, acima temos a representação de um relacionamento onde são registrados os cartões (amarelo ou vermelho) recebidos pelos jogadores de futebol em uma partida. Conforme regra vigente, um jogador não pode receber 2 cartões amarelos em uma mesma partida. Se isto acontecer, o segundo cartão amarelo é convertido em vermelho e ele é automaticamente expulso da partida. O número 2 colocado em cima do relacionamento “punição” representa esta regra.

2 – Auto Relacionamento

O auto relacionamento, também conhecido como relacionamento recursivo representa a associação entre elementos pertencentes à mesma entidade.

Em um auto relacionamento temos sempre dois papéis formados pelos elementos de uma entidade. A representação desses papéis é obrigatória e fundamental para o entendimento do modelo. De forma geral, prefiro utilizar um substantivo para nomear o relacionamento e verbos ou expressões verbais para nomear os papéis.

Geralmente, utilizamos um auto relacionamento quando:

1- Desejamos representar estruturas hierárquicas dentro da mesma entidade. Este tipo de representação sempre utilizará uma cardinalidade (0,1) x (0,N). A figura a seguir mostra um exemplo de utilização de um auto relacionamento com essas características.

image

Conforme exemplo da figura acima, conseguimos montar uma estrutura de rede hierárquica de empregados dentro de uma empresa.

2 – Desejamos representar estruturas similares a composições com a mesma entidade. Este tipo de representação sempre utilizará uma cardinalidade (0,N) x (0,N).

image

Conforme exemplo da figura acima, conseguimos montar uma estrutura que forma uma composição de materiais. O relacionamento composição será responsável por armazenar essas informações. Para ilustrar esta relação com exemplos reais, podemos imaginar que a entidade MATERIAL armazena todos os itens materiais de um carro. O relacionamento “composição” será responsável por montar a composição desses materiais. No caso de um carro, existirá várias instâncias de materiais dentro da entidade MATERIAL, inclusivo o material “motor”. O “motor” por sua vez é formado por vários materiais de menor porte e diversas quantidades. Por esta razão foi colocado o atributo quantidade dentro do relacionamento.

3 – Generalização e Especialização

Existem situações em que precisamos representar entidades comuns com um maior ou menor grau de propriedades em cada uma, sempre mantendo uma visão hierárquica entre essas entidades. Dependendo da situação, podemos utilizar a Generalização ou a Especialização.
A Generalização consiste em criar um conceito superior para as entidades existentes, mantendo uma relação de hierarquia de entidade entre a nova entidade (entidade pai) e as entidades já existentes (entidades filhas). A figura abaixo demonstra um exemplo de uso do mecanismo de generalização.

image

Figura 11 – Uso da Generalização em um Modelo Conceitual

Já a Especialização consiste em criar novos conceitos (entidades filhas) a uma entidade já existente, mantendo uma relação de hierarquia das novas entidades com a entidade pai (já existente). A figura a seguir demonstra um exemplo de uso do mecanismo de especialização.

image

Quando trabalhamos com mecanismos de Generalização / Especialização utilizamos regras de negócio que representam condições envolvendo especialização. A essas condições damos o nome de cobertura.

A cobertura é representada do lado da seta que indica a especialização / generalização por um par de valores (X,Y) onde X representa o conteúdo e Y representa a cobertura.

O valor de conteúdo pode ser representado pelas letras T e P onde:

T = Conteúdo Total (Toda instância de um elemento “E” deve pertencer também a uma instância em uma entidade filha especializada).

P = Conteúdo Parcial (Pode existir uma instância do elemento “E” que não pertença às entidades especializadas)

O valor de cobertura pode ser representado pelas letras E e S onde:

E = Cobertura Exclusiva (Toda instância do elemento “E” pode existir no máximo em uma instância nas entidades especializadas).

S = Cobertura Sobreposição (Toda instância do elemento “E” pode existir em várias instâncias das entidades especializadas).

4 – Agregação

A agregação é um mecanismo de abstração onde criamos um novo conceito a partir dos componentes de uma relação. Usamos a agregação quando sentimos a necessidade de associar um relacionamento ao outro. A figura abaixo mostra um exemplo de uso de uma agregação.

image

No exemplo acima, foi necessário criar um conceito mais abrangente para poder representar o consumo de um cliente hospedado em um quarto. Vale ressaltar que, quando utilizamos a agregação, as relações são dependentes. Ou seja, a associação da entidade agregada com a outra entidade só ocorre após a existência do fato (relação) da entidade agregada. No caso, o cliente só poderá consumir serviços, após estar hospedado em um quarto.

5. Por que não ir direto para o SQL?

Muitos desenvolvedores iniciantes cometem o erro de abrir o terminal e sair criando tabelas (CREATE TABLE). Isso é perigoso porque:

  1. Redundância: Sem modelar, você pode acabar salvando o nome do cliente em cinco lugares diferentes.
  2. Falta de Flexibilidade: Se a regra de negócio mudar (ex: um pedido agora pode ter mais de um entregador), um banco mal modelado exigirá uma reconstrução completa.
  3. Comunicação: O modelo conceitual serve como um documento de validação com o cliente. Ele olha o diagrama e diz: “Sim, é exatamente assim que meu negócio funciona”.

Conclusão e Próximos Passos

O modelo conceitual é a base sólida de qualquer banco de dados de qualidade. Depois dele, você evolui para o Modelo Lógico (onde define tipos de dados como INT, VARCHAR) e finalmente o Modelo Físico (o código SQL).

curso banco dados

Se você acompanhou nosso blog, percebeu que a modelagem de bancos de dados não é apenas um detalhe — é o alicerce de qualquer sistema robusto. Mas a verdade? O que discutimos até aqui é apenas a ponta do iceberg.

O mercado de tecnologia não procura apenas quem “sabe um pouco de SQL”, mas quem domina a estrutura por trás dos dados. Para te ajudar a dar esse salto, recomendamos o Curso de Banco de Dados da Danki Code. É o caminho mais rápido para você dominar o conteúdo e abrir as portas das melhores oportunidades no mercado.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *