AndersonArruda

Artigos de tecnologia ao alcance de um clique!


DER – Diagrama Entidade Relacionamento
sql

DER – Diagrama Entidade Relacionamento

04/06/2023 19:09

Hoje vamos falar um pouco sobre DER ou do inglês ERD Entity Relationship Model.

Afinal você sabe o que é? Para que serve? Qual a finalidade? E por que ele te ajuda?

Vamos trilhar o caminho do conhecimento e juntos descobrir mais sobre o DER.


O que é Diagrama Entidade Relacionamento?

Diagrama

Representação gráfica de fatos, fenômenos, pensamentos, etc... Um esquema que utiliza gráfico para entender fatos, fenômenos ou idéias.


Entidade

Aquilo que constituí a existência de algo real; essência.


Relacionamento

Ação de se relacionar ou em outras palavras estabelecer relação ou analogia entre coisas diferentes.


E quando juntamos tudo isso o que temos?

Estabelecimento de relações ou analogias entre entidade “essência de algo real” representado em gráficos de fatos, fenômenos e afins.


O que constituí um projeto de banco de dados?

Levantamento de requisitos

É feito entrevistas com usuários para entender o funcionamento do negócio e documentar os requisitos de dados de maneira completa e detalhada.


Exemplo

Você foi convidado para participar dum projeto para a captura de subscribers em um sistema de landing pages já existentes.

  • O sistema de landing page abriga várias landing pages
  • A captura deve conter o nome e o email do inscrito pertencente a uma landing page.
  • Quando uma nova campanha de marketing ocorrer é necessário que seja enviado emails para os inscritos das landing pages participantes.


Projeto conceitual

Nessa etapa é construído projeto ou esquema conceitual de alto nível a partir dos requisitos levantados na etapa anterior, que já contém principais objetos e relacionamentos entre eles.

No DER conceitual existem três elementos essenciais: entidades, relacionamentos e atributos.


Entidades

São representadas por um retângulo, e representa como dito anteriormente essência de algo que existe, no nosso caso por exemplo subscribers seria uma entidade.


Relacionamentos

Relação ou analogia entre coisas diferentes.

Representado por um losango no DER conceitual, ligado as entidades.


Atributos

Os atributos são representados por pequenas bolinhas, quando preenchida representa a chave primária da tabela.


O modelo conceitual garante que toda a estrutura necessária e o entendimento da mesma seja garantido, quando bem feito a conversão para o modelo lógico é extremamente simples, porém em alguns casos é possível utilizar atributos n-ários no conceitual que eventualmente se torna uma tabela no modelo lógico.´


Projeto Físico

O projeto físico engloba detalhes do banco de dados, como tipos de atributos, chaves primária, estrangeira, indexes e afins.

Ao iniciar o modelo físico deve-se preocupar com o banco de dados a ser utilizado, uma vez que por mais que hoje tem muitas similaridades, mas sempre tem diferenças e estruturas singulares que funcionam somente em um e no outro não e afins.

O modelo conceitual anterior se torna um modelo como esse já regras formais, virando o seguinte código SQL.

CREATE TABLE landing_page
(
 id INT PRIMARY KEY, 
);

CREATE TABLE campaign
(
 id INT PRIMARY KEY, 
 title VARCHAR(n) NOT NULL DEFAULT '100', 
);

CREATE TABLE subscribers
(
 id INT PRIMARY KEY, 
 name VARCHAR(n) NOT NULL DEFAULT '60', 
 email VARCHAR(n) NOT NULL DEFAULT '60', 
 idlanding_page INT, 
);

CREATE TABLE landing_page_campaign
(
 idcampaign INT, 
 idlanding_page INT, 
);

ALTER TABLE subscribers ADD FOREIGN KEY(idlanding_page) REFERENCES landing_page (idlanding_page)
ALTER TABLE landing_page_campaign ADD FOREIGN KEY(idcampaign) REFERENCES campaign (idcampaign)
ALTER TABLE landing_page_campaign ADD FOREIGN KEY(idlanding_page) REFERENCES landing_page (idlanding_page)


3 Formas Normais

Primeira forma normal

O banco de dados está na primeira forma normal se e somente se todos os atributos contiverem apenas dados atômicos. Atributos normalmente conhecidos como colunas em tabelas, deve conter somente dados atômicos evitando-se utilização de armazenamento em JSON e afins, especialmente em banco de dados que não suporta, porém mesmo aqueles cujos quais o suportam deve-se agir com bastante cautela uma vez que um JSON em uma tabela pode se tornar um verdadeiro pesadelo em desempenho e relações.


Segunda forma normal

Para estar na Segunda forma normal é necessário estar na primeira forma normal e se somente se todos os atributos não chave primária puderem ser obtidos da combinação de todos os atributos que formam a chave primária.


Imagine uma tabela que simultaneamente fala sobre Banco e agência, e que para cada tuple “linha” tiver nome do banco e nome da agência simultaneamente com seus respectivos códigos, veja quando quiser resgatar somente o nome do banco com sua respectiva chave primária não seria possível uma vez que a tabela estaria desnormalizada, para normaliza-la seria necessário nesse exemplo criar 2 tabelas, uma que falasse sobre banco e outra que fala sobre agência.


Terceira forma normal

Para estar na Terceira forma normal, precisa estar na segunda forma normal e se nenhuma coluna não-chave depender de outra coluna não chave.

Imagine uma coluna de produtos de uma venda onde você tem quantidade e valor, a multiplicar quantidade e valor e criar uma nova coluna, essa nova coluna está fora da terceira forma normal, em alguns casos a desnormatização é aceita pra incrementação de performance, um exemplo de desnormatização é quando se faz um datawarehouse usando formato estrela.

Existem outras formas normais como a quarta forma normal, a quinta forma normal e a forma normal de Boyce e Codd, mas explicarei sobre isso em outra oportunidade.


Relacionamentos


Relacionamentos binários

Indica que uma entidade se relaciona de alguma forma com outra entidade. Representa, portanto a forma como 2 entidades se relacionam.

Subscribers  se relaciona de forma binária com a entidade landing_page.


Relacionamentos ternários

Indica que uma entidade se relaciona de alguma forma com outras 2 entidades. Representa portanto, a forma como três entidades se relacionam.

Vamos supor que temos a entidade funcionário e a entidade empresa onde um funcionário pode pertencer a várias empresas, nesse caso teríamos uma terceira entidade relacionando ambas por exemplo funcionários_empresa.


Generalização especialização

O conceito de generalização / especialização atribuí outra propriedade as entidades.

A partir desse conceito é possível atribuir propriedades particulares a um subconjunto das ocorrências especializadas de uma entidade genérica.

Vou da um exemplo somente no mundo textual.

Imagine que você queira fazer um diagrama mais elaborado para Pessoa, focada somente no Brasil, você poderia ter uma entidade genérica chamada Pessoa, que nela tem o id, nome e qual sua especialização, e dados comuns, e especializar com 2 tabelas adjacentes, pessoa física e pessoa jurídica, cada uma recebendo seus atributos exclusivos como cpf, cnpj e afins, e herdando os dados genéricos que ambos podem ter da tabela pessoa.


O mundo relacional é extremamente extenso e complexo, esse é um artigo bem introdutório pra iniciarmos sobre esse mundo, em breve estarei trazendo mais informações sobre isso, trends no twitter e afins.


Deixem nos comentários sugestões para outros temas, se te ajudou compartilhe e ajude outros.

Agradeço desde já e nos vemos no próximo artigo.

Espaço para publicidade
0 Comentário(s)
Seja o primeiro a comentar o nosso artigo!
Todos os direitos reservados. © 2021-2031
SBBlog Powered By Powered By Sysborg | Powered By Anderson Arruda