Esse artigo foi feito no intuito de servir como fixação dos conteúdos que estou estudando no momento, ministrado pelo professor Gabriel Ribeiro Diniz para as aulas de Banco de Dados no curso de Gestão de TI - FAPAM.

Introdução

MER - Modelo Entidade-Relacionamento

Baseia-se na percepção de um universo constituído por um grupo básico de objetos chamados entidades e por relacionamentos entre estes objetos.
- Peter Chen, 1976

O MER é um modelo de dados conceitual de alto-nível, ou seja, seus conceitos foram projetados para serem compreensíveis a usuários, descartando detalhes de como os dados são armazenados.

Vantagens

  • Simplicidade
  • Independe do SGDB a ser utilizado
  • Mundo real a ser mapeado (mini-mundo) pode ser visto como um conjunto de entidades e de relacionamentos entre as mesmas.
  • Desenvolvido para facilitar o projeto de banco de dados
  • Especifica "quais" os dados serão representados (O QUE) e não "como" os dados serão armazenados.
  • Elementos do modelo:
    • Entidades
    • Relacionamentos
    • Atributos

Entidade

Qualquer objeto, pessoa, lugar, conceito ou "coisa" no mundo real com uma existência própria/independente e sobre a qual seja necessário armazenar informações ou características.

Pode ter uma existência física (um rio, uma estrada, uma casa, um aluno, um carro, um cantor...) ou uma existência conceitual (um cargo, um curso, um evento..).

SÍMBOLO: Utiliza-se um retângulo para representar uma entidade, geralmente o nome é escrito no singular.

Exemplo de entidades: representação e interpretação Exemplo de entidades: representação e interpretação

Entidade Fraca

Caracterizada pela sua dependência da existência de outra entidade.
Uma entidade fraca não possui características o suficiente para existir "sozinha".

Exemplo
A entidade EMPREGADO, possui relacionamento com a entidade DEPENDENTE, isto é, filhos, cônjugue podem ser dependentes do plano de saúde de um funcionário de uma empresa. E a entidade DEPENDENTE depende da existência da entidade EMPREGADO para existir.

SÍMBOLO: Utilizamos um retângulo inscrito em outro retângulo para representarmos uma entidade fraca

Exemplo de entidade fraca Exemplo de entidade fraca

Relacionamento

Um relacionamento descreve um associação entre suas ou mais entidades (ação)

SÍMBOLO: Utilizamos um lozango para representarmos um relacionamento

Representação gráfica de um relacionamento Representação gráfica de um relacionamento

Relacionamento dependente

O relacionamento dependente é usado quando queremos relacionar uma ENTIDADE com uma ENTIDADE FRACA.

SÍMBOLO: Utilizamos um losango inscrito a outro losango para representar um relacionamento dependente

Relacionamento: FUNCIONARIO-possui-DEPENDENTE Relacionamento: FUNCIONARIO-possui-DEPENDENTE

Atributo

O atributo é cada característica, propriedade ou qualidade específica que descreve e/ou relacionamento.

Isto é...

  • A entidade EMPREGADO poderia ter os atributos: nome, endereço, data de nascimento, salário e profissão.
  • A entidade EMPRESA poderia ter os atributos: nome, razão social, CNPJ, matriz, presidente, endereço, telefone.
  • A entidade CARRO poderia ter os atributos: fabricante, modelo, ano de fabricação, cor, número de portas, placa, chassi.

SÍMBOLO: Utilizamos uma elípse (círculo ovulado) para representarmos um atributo.

Representação gráfica de um Atributo Representação gráfica de um Atributo

Representação gráfica dos atributos da entidade CLIENTE:

Atributos da entidade CLIENTE Atributos da entidade CLIENTE

Relacionamentos também podem conter atributos que os caracterizem:

Relacionamento PROFESSOR-orienta-ALUNO com atributo 'tipo' Relacionamento PROFESSOR-orienta-ALUNO com atributo 'tipo'

ATRIBUTO CHAVE ou CHAVE

São atributos ou conjunto de atributos que identifica unicamente e exclusivamente uma entidade, ou seja, não há valores repetidos desse atributo na entidade. Sendo assim, o seu valor pode ser usado para identificar cada entidade.

Alguns tipode de entidades podem ter mais que um atributo-chave, exêmplo: CPF, identidade, matrícula, CIU.

O atributo chave deve aparecer sublinhado em sua simbologia.

Exemplo de atributo chave da entidade CLIENTE: CPF Exemplo de atributo chave da entidade CLIENTE: CPF

ATRIBUTO CHAVE PARCIAL ou CHAVE PARCICAL

TL;DR: chamamos de chave-parcial o atributo chave de uma entidade-fraca

Uma entidade-fraca tem uma chave-parcial, que é um atributo (ou conjunto de atributos) que podem univocadamente identificar entidades-fracas relacionadas à uma entidade (forte).

Um tipo de entidade-fraca pode, algumas vezes, ser representado como atributo composto (endereço).

A escolha de qual representação usar é determinada pelo projetista do banco de dados.

Atributo simple ou atômico

São atributos que não são divisíveis, representam uma informação exata e direta, e que não são possíveis de serem decompostos em mais atributos.

Exemplos de atributos simples: CPF e Nome Exemplos de atributos simples: CPF e Nome

Atributo composto

É um atribusto que pode ser composto de outros atributos mais básicos.

Exemplo de atributo composto: Endereço = rua, cep, numero, bairro Exemplo de atributo composto: Endereço = rua, cep, numero, bairro

Atributo multivalorado

São atributos que possuem um ou mais valores de um mesmo tipo

SÍMBOLO: Um círculo ovalado dentro de outro círculo ovalado

Representação gráfica de um atributo multivalorado Representação gráfica de um atributo multivalorado

Exemplo 1
O atributo telefone, de uma entidade ALUNO, pode receber um ou mais números de telefones (residencial, celular, trabalho).

Exemplo 2
Um atributo idioma de uma entidade ALUNO pode conter os valores inglês e francês. Para um outro aluno poderia conter apenas um valor, como espanhol. Para um terceiro aluno, poderíamos ter 3 valores para esse atributo: inglês, francês e espanhol.

Modelo com atributo multivalorado idioma: cpf-ALUNO-idioma Modelo com atributo multivalorado idioma: cpf-ALUNO-idioma

ATENÇAO: Atributo MULTIVALORADO é diferente de atributo COMPOSTO

Atributo derivado

Este tipo de atributo é derivado de outros atributos.

Não necessitam serem armazenados na base de dados, podendo ser calculados apartir de um consulta através da aplicação.

Exemplo

O atributo idade de uma PESSOA. Para uma pessoa em particular, podemos determinar o valor atual de idade através do atributo data_nascimento e da data atual do sistema operacional.

Então a idade é chamada atributo derivado, pois pode ser obtida de outros atributos.

SÍMBOLO: Círculo ovalado com contorno pontilhado.

Exemplo de modelo com atributo derivado idade Exemplo de modelo com atributo derivado idade

Boas práticas: Sujestão para nomes

A literatura não define um padrão, mas algumas práticas são usadas:

Entidades

  • Nomes breves e objetivos, com letras maiúsculas que identifique facilmente o conteúdo da entidade;
  • No singular, já que a pluralidade decorre, naturalmente, do número de ocorrências, característica própria de toda entidade;
  • Nomes compostos separados por hífen -, eliminando-se o uso de preposições ou outros termos de ligação.

Relacionamentos

  • Palavras escritas com letras minúsculas;
  • Palavras compostas use underline _.

Atributos

  • Primeira letra do nome maiúscula e o restante mínúscula;
  • Palavras compostas use underline _;
  • Palavras repetidas em outras entidades, use a inicial da entidade no início e continue com o nome. Ex.: Empr_Nome para o nome da EMPRESA, Dept_Nome para o nome do DEPARTAMENTO.

Praticando

Controle de professores FAPAM

A FAPAM precisa ter controle de seus professores e quais turmas eles estão lecionando. Para isso ela precisa saber do professor o nome, CPF e o salário. Já de suas turmas, a faculdade precisa saber a descrição, quantos alunos possui e a carga horária.

Modelo: PROFESSOR-leciona-TURMAModelo: PROFESSOR-leciona-TURMA

Instituição de Ensino

Fomos contratados por uma instituição, e a mesma, precisa ter um sistema para controle de cursos, sabemos que precisamos ter informações dos alunos, dos cursos e de professores. De cada aluno, será necessário armazenar: seu nome, matrícula, data de nascimento e idade. De cada curso será necessário armazenar a descrição e quantidade de alunos inscritos. Do professor, o seu nome e CPF.

Modelo: PROFESSOR-CURSO-ALUNOModelo: PROFESSOR-CURSO-ALUNO

Tipos de relacionamento

Os tipos de relacionamento estão associados ao conceito denominado cardinalidade.

A cardinalidade é a quantidade de ocorrências que uma entidade pode ter em relação a outra entidade.

Cardinalidade nos RELACIONAMENTOS:

  • Relacionamento 1:1 Lê se UM PARA UM
  • Relacionamento 1:N Lê se UM PARA MUITOS
  • Relacionamento N:M ou N:N Lê se MUITOS PARA MUITOS

Relacionamento 1:1

Um relacionamento 1:1 é um relacionamento onde UMA entidade está associada a UMA outra entidade, e vice-versa.

Exemplo
O relacionamento entre a entidade PRESIDENTE e a entidade PAÍS. Cada país tem UM presidente e cada presidente é de UM país, portanto, é um relacionamento 1:1.

Relacionamento 1:1 | PRESIDENTE-preside-PAIS Relacionamento 1:1 | PRESIDENTE-preside-PAIS

Relacionamento 1:N

Um relacionamento 1:N é um relacionamento onde UMA entidade está associada a MUITAS outras entidades, mas as entidades associadas estão associadas a apenas UMA entidade.

Relacionamento N:1 | ALUNO-orientado-PROFESSOR Relacionamento N:1 | ALUNO-orientado-PROFESSOR

Relacionamento N:M

Um relacionamento N:M é um ripelacionamento onde MUITAS entidades estão associadas a MUITAS outras entidades.

Relacionamento N:N | ALUNO-cursa-DISCIPLINA

Par de cardinalidades

Alguns livros trazem a notação de par de cardinalidade, que de define através da atribuição de um valor mínimo e um valor máximo para os tipos de relacionamentos existentes.

Relacionamento EMPREGADO-lotacao-DEPARTAMENTO Relacionamento EMPREGADO-lotacao-DEPARTAMENTO

Notação de par de cardinalidades: (mínima, máxima)

Um empregado obrigatóriamente está lotado no máximo em 1 departamento. Um departamento pode ter até N empregados lotados nele.

Atributos em relacionamentos

Os relacionamentos também podem ter atributos. Por exemplo: pode haver a necessidade de representar a quantidade de horas semanais trabalhadas pode um empregado em um dado projeto. Isto pode ser representado no relacionamento trabalha_em na forma do atributo denominado Horas

EMPREGADO-trabalha_em-PROJETO EMPREGADO-trabalha_em-PROJETO

Praticando

Projetos de uma empresa

Numa empresa os funcionários são descritos por um nome, número do CPF, salário, endereço (logradouro, número, bairro, cidade), data de nascimento e sexo. Tanto o número do CPF possui valor exclusivo para cada funcionário.

Os funcionários pertencem a departamentos da empresa. Cada departamento possui um nome, um número, uma localização e uma sigla que o identifica. Esta sigla é exclusiva de cada departamento.

Cada departamento é supervisionado por um funcionário da empresa. É necessário saber a data de início da supervisão, para que a cada dois anos haja substituições.

Os departamentos possuem projetos associados. Cada projeto é identificado por um nome, um código e um número de funcionários alocados. O código do projeto é exclusivo para cada um deles.

Os funcionários da empresa trabalham em projetos, e o número de horas dedicadas a um determinado projeto deve ser armazenado no BD.

Modelo: PROJETO-FUNCIONARIO-DEPARTAMENTOModelo: PROJETO-FUNCIONARIO-DEPARTAMENTO

Cia de seguros de automóveis

Uma cia de seguros de automóveis possui vários cliente (nome, endereço, CPF, e telefone(s)), cada um deles são proprietários de um ou mais veículos (fabricante, modelo, ano, placa, estado).

Cada carro está associado a nenhum ou vários registros de acidentes (data, número do BO). Um acidente pode evolver não apenas um, mas vários carros.

Faça você mesmo!

Multi Relacionamentos

Um relacionamento liga duas entidades, porém, é possível que uma entidade se relacione com outra entidade mais de uma vez.

Relacionamentos entre MÉDICO-PACIENTE Relacionamentos entre MÉDICO-PACIENTE

Auto relacionamento

O auto relacionamento, também chamado de relacionamento recursivo, ocorre quando uma entidade se relaciona consigo mesma.

Auto relacionamento (1:N)

O relacionamento supervisiona relaciona um empregado com o seu supervisor, onde ambas entidades são membros do mesmo tipo de entidade EMPREGADO. Assim, o tipo de entidade EMPREGADO participa duas vezes: uma vez no papel de supervisor e outra no papel de supervisionado. Assim, e1 supervisiona e2, e2 supervisiona e3 e e1 supervisiona e4.

Auto relacionamento 1:N entre EMPREGADOs Auto relacionamento 1:N entre EMPREGADOs

Auto relacionamento (N:N) e (1:1)

Cada disciplina pode ter um ou mais pré-requisitos (disciplinas), e cada disciplina pode ser pré-requisito de uma ou mais disciplinas.

Cada pessoa casa com uma pessoa, e cada pessoa é casada com uma pessoa. na maioria dos casos

Exemplo de auto relacionamentos Exemplo de auto relacionamentos