Modelo de Entidade e Relacionamento
Objetivos
- Compreender o Modelo Entidade-Relacionamento (MER).
- Identificar entidades e seus atributos.
- Explorar tipos de atributos e suas características.
- Aprender a representação gráfica e tabular das entidades.
O que é o Modelo Entidade-Relacionamento?
O Modelo Entidade-Relacionamento (MER) é uma técnica de modelagem conceitual que representa o mundo real através de objetos chamados entidades e seus relacionamentos.
Definição: “O Modelo Entidade-Relacionamento tem por base a percepção de que o mundo real é formado por um conjunto de objetos chamados entidades e pelo conjunto dos relacionamentos entre esses objetos.”
Este modelo permite criar esquemas puramente conceituais sobre a essência de um sistema, focando no negócio e não em procedimentos técnicos.
Objetos Conceituais do MER
Os principais componentes do modelo são:
- Entidades: Objetos do mundo real com existência independente
- Atributos: Propriedades que descrevem as entidades
- Relacionamentos: Associações entre entidades
- Especialização/Generalização: Hierarquias entre entidades
Entidades
Uma entidade é qualquer objeto do mundo real que possui identificação distinta e significado próprio no contexto do negócio.
Características:
- Existência independente
- Conjunto de propriedades únicas
- Representa “coisas” do negócio
Exemplos de entidades:
- Pessoas em uma empresa
- Empréstimos bancários
- Alunos matriculados
- Disciplinas oferecidas
Identificação Única
Cada entidade possui um conjunto de propriedades cujos valores devem ser únicos, permitindo identificar cada instância.
Exemplos:
- Pessoa: CPF identifica unicamente cada pessoa
- Aluno: Matrícula identifica dentro do contexto acadêmico
- Empréstimo: Número identifica cada operação
Representação Gráfica das Entidades
No diagrama ER, as entidades são representadas por retângulos com o nome da entidade em maiúsculo.
Representação Tabular
Cada entidade corresponde a uma tabela no banco de dados, onde cada linha representa uma instância específica.
Exemplo - Tabela ALUNO:
| Matrícula | Nome | Turma | Curso |
|---|---|---|---|
| 001.201501 | Ana Claudia | A | Sistemas |
| 002.201501 | João Silva | B | Direito |
Atributos
Atributos são as propriedades descritivas de cada entidade. Toda entidade é definida por um conjunto de atributos que descrevem suas características.
Definição: “Todo objeto para ser uma entidade possui propriedades que são descritas por atributos e valores.”
Exemplo Prático
Cada instância da entidade PESSOA terá valores específicos para seus atributos:
| CPF | Nome | Sexo | Salário | Data Nasc. | Endereço | Estado Cívil | Grau de instrução | Idade | Nota |
|---|---|---|---|---|---|---|---|---|---|
| 10001 | Frodo Baggins | M | 1500.00 | 22/09/2980 | Bolsão, Vila dos Hobbits | Solteiro | Ensino Médio | 50 | 10 |
| 10002 | Samwise Gamgi | M | 1200.00 | 06/04/2980 | Vila dos Hobbits | Casado | Ensino Fundamental | 38 | 9 |
| 10003 | Gandalf | M | 10000.00 | 01/01/2000* | Terra Média | Nulo | Superior | 2019 | 10 |
| 10004 | Aragorn | M | 3000.00 | 01/03/2931 | Reino de Gondor | Casado | Superior | 87 | 10 |
| 10005 | Legolas | M | 2500.00 | 01/01/2879 | Floresta das Trevas | Solteiro | Superior | 221 | 9 |
| 10006 | Gimli | M | 2200.00 | 01/01/2879 | Montanhas Azuis | Solteiro | Médio | 140 | 8 |
| 10007 | Galadriel | F | 9000.00 | 01/01/1362 | Lothlórien | Casada | Superior | 7000 | 10 |
| 10008 | Boromir | M | 2000.00 | 23/06/2978 | Minas Tirith | Solteiro | Superior | 41 | 8 |
| 10009 | Arwen | F | 2500.00 | 01/01/241 | Rivendell | Casada | Superior | 2777 | 10 |
| 10010 | Saruman | M | 9500.00 | 01/01/2000* | Isengard | Nulo | Superior | 2019 | 7 |
*Datas fictícias e idades aproximadas para fins didáticos.
Tipos de Atributos
1. Simples vs Compostos
- Simples: Valor indivisível (sexo, telefone)
- Compostos: Podem ser divididos em subpartes (nome: primeiro + último; endereço: rua + cidade + CEP)
-- Simples
CREATE TABLE pessoa_simples (
id SERIAL PRIMARY KEY,
sexo CHAR(1),
telefone VARCHAR(20)
);
-- Composto (endereços e nomes podem ser divididos em colunas)
CREATE TABLE pessoa_composto (
id SERIAL PRIMARY KEY,
primeiro_nome VARCHAR(50),
ultimo_nome VARCHAR(50),
rua VARCHAR(100),
cidade VARCHAR(50),
cep VARCHAR(10)
);
2. Monovalorados vs Multivalorados
- Monovalorado: Um único valor (idade, data nascimento)
- Multivalorado: Múltiplos valores possíveis (telefones, salários históricos)
-- Monovalorado
CREATE TABLE pessoa_monovalorado (
id SERIAL PRIMARY KEY,
idade INTEGER,
data_nascimento DATE
);
-- Multivalorado (relacionamento 1:N)
CREATE TABLE pessoa (
id SERIAL PRIMARY KEY,
nome VARCHAR(100)
);
CREATE TABLE telefone (
id SERIAL PRIMARY KEY,
pessoa_id INTEGER REFERENCES pessoa(id),
numero VARCHAR(20)
);
3. Nulos
Atributos que podem não ter valor em algumas instâncias (estado civil, Grau de instrução).
CREATE TABLE pessoa_nulo (
id SERIAL PRIMARY KEY,
nome VARCHAR(100),
estado_civil VARCHAR(20) NULL,
grau_instrucao VARCHAR(30) NULL
);
4. Derivados
Valores calculados a partir de outros atributos (idade derivada da data nascimento, total derivado de itens).
CREATE TABLE pessoa_derivado (
id SERIAL PRIMARY KEY,
nome VARCHAR(100),
data_nascimento DATE
);
-- Idade derivada (exemplo de view)
CREATE VIEW pessoa_idade AS
SELECT
id,
nome,
data_nascimento,
EXTRACT(YEAR FROM AGE(CURRENT_DATE, data_nascimento)) AS idade
FROM pessoa_derivado;
Importância do MER
- Abstração: Foca no essencial do negócio
- Comunicação: Linguagem comum entre usuários e desenvolvedores
- Base sólida: Fundamento para implementação em qualquer SGBD
- Flexibilidade: Independente de tecnologia específica
O Modelo ER é a base para projetar bancos de dados que refletem com precisão o mundo real que representam.