Revisão e Dicas de Projeto Conceitual – Modelo...

Preview:

Citation preview

Revisão e Dicas de Projeto Conceitual – Modelo ER

• Modelo definido por Peter Chen em 1976– modelo sofreu diversas extensões e notações

ao longo do tempo• Padrão para modelagem conceitual de BD

– modelo simples• poucos conceitos

– representação gráfica– modelo de fácil compreensão

• Um esquema conceitual de BD é também chamado de diagrama ER

Conceitos do Modelo ER• Entidade

– normal, fraca ou associativa• Relacionamento

– auto-relacionamento, binário ou n-ário– cardinalidades

• um-para-um, um-para-muitos ou muitos-para-muitos – participação opcional ou obrigatória das entidades

envolvidas• Atributo

– categorias • identificador, monovalorado, multivalorado, composto,

obrigatório e opcional• Generalização e Especialização

– total ou parcial– exclusiva ou não-exclusiva

Modelo ER - Notação

E1 E2

a4 (0,1)a1

r 1

a3

(1,N) (0,3)

r 2

(1,N)

a2 (0,N)

E3(1,1)

(1,N)

E4a8 (1,N)

a7

a5 a6r 3

(0,N)

(1,1)

papel 1

papel 2

E5 E6

p

E7 E8

r 4

E9

(0,N)

(1,1)

r 5

(1,N)

(0,N)

E10

E11

r 6

(1,1)

E12

(0,1)

a9

a10a12 a13

a11

Modelo ER - Notação

E1 E2

a4 (0,1)a1

r 1

a3

(1,N) (0,3)

r 2

(1,N)

a2 (0,N)

E3(1,1)

(1,N)

E4a8 (1,N)

a7

a5 a6r 3

(0,N)

(1,1)

papel 1

papel 2

E5 E6

p

E7 E8

r 4

E9

(0,N)

(1,1)

r 5

(1,N)

(0,N)

E10

E11

r 6

(1,1)

E12

(0,1)

a9

a10a12 a13

a11

entidade

Modelo ER - Notação

E1 E2

a4 (0,1)a1

r 1

a3

(1,N) (0,3)

r 2

(1,N)

a2 (0,N)

E3(1,1)

(1,N)

E4a8 (1,N)

a7

a5 a6r 3

(0,N)

(1,1)

papel 1

papel 2

E5 E6

p

E7 E8

r 4

E9

(0,N)

(1,1)

r 5

(1,N)

(0,N)

E10

E11

r 6

(1,1)

E12

(0,1)

a9

a10a12 a13

a11

entidade fraca

Modelo ER - Notação

E1 E2

a4 (0,1)a1

r 1

a3

(1,N) (0,3)

r 2

(1,N)

a2 (0,N)

E3(1,1)

(1,N)

E4a8 (1,N)

a7

a5 a6r 3

(0,N)

(1,1)

papel 1

papel 2

E5 E6

p

E7 E8

r 4

E9

(0,N)

(1,1)

r 5

(1,N)

(0,N)

E10

E11

r 6

(1,1)

E12

(0,1)

a9

a10a12 a13

a11

entidade associativa

Modelo ER - Notação

E1 E2

a4 (0,1)a1

r 1

a3

(1,N) (0,3)

r 2

(1,N)

a2 (0,N)

E3(1,1)

(1,N)

E4a8 (1,N)

a7

a5 a6r 3

(0,N)

(1,1)

papel 1

papel 2

E5 E6

p

E7 E8

r 4

E9

(0,N)

(1,1)

r 5

(1,N)

(0,N)

E10

E11

r 6

(1,1)

E12

(0,1)

a9

a10a12 a13

a11

relacionamento

Modelo ER - Notação

E1 E2

a4 (0,1)a1

r 1

a3

(1,N) (0,3)

r 2

(1,N)

a2 (0,N)

E3(1,1)

(1,N)

E4a8 (1,N)

a7

a5 a6r 3

(0,N)

(1,1)

papel 1

papel 2

E5 E6

p

E7 E8

r 4

E9

(0,N)

(1,1)

r 5

(1,N)

(0,N)

E10

E11

r 6

(1,1)

E12

(0,1)

a9

a10a12 a13

a11

auto-relacionamento

Modelo ER - Notação

E1 E2

a4 (0,1)a1

r 1

a3

(1,N) (0,3)

r 2

(1,N)

a2 (0,N)

E3(1,1)

(1,N)

E4a8 (1,N)

a7

a5 a6r 3

(0,N)

(1,1)

papel 1

papel 2

E5 E6

p

E7 E8

r 4

E9

(0,N)

(1,1)

r 5

(1,N)

(0,N)

E10

E11

r 6

(1,1)

E12

(0,1)

a9

a10a12 a13

a11

relacionamentoternário

Modelo ER - Notação

E1 E2

a4 (0,1)a1

r 1

a3

(1,N) (0,3)

r 2

(1,N)

a2 (0,N)

E3(1,1)

(1,N)

E4a8 (1,N)

a7

a5 a6r 3

(0,N)

(1,1)

papel 1

papel 2

E5 E6

p

E7 E8

r 4

E9

(0,N)

(1,1)

r 5

(1,N)

(0,N)

E10

E11

r 6

(1,1)

E12

(0,1)

a9

a10a12 a13

a11

atributoidentificador

Modelo ER - Notação

E1 E2

a4 (0,1)a1

r 1

a3

(1,N) (0,3)

r 2

(1,N)

a2 (0,N)

E3(1,1)

(1,N)

E4a8 (1,N)

a7

a5 a6r 3

(0,N)

(1,1)

papel 1

papel 2

E5 E6

p

E7 E8

r 4

E9

(0,N)

(1,1)

r 5

(1,N)

(0,N)

E10

E11

r 6

(1,1)

E12

(0,1)

a9

a10a12 a13

a11

atributomonovalorado

Modelo ER - Notação

E1 E2

a4 (0,1)a1

r 1

a3

(1,N) (0,3)

r 2

(1,N)

a2 (0,N)

E3(1,1)

(1,N)

E4a8 (1,N)

a7

a5 a6r 3

(0,N)

(1,1)

papel 1

papel 2

E5 E6

p

E7 E8

r 4

E9

(0,N)

(1,1)

r 5

(1,N)

(0,N)

E10

E11

r 6

(1,1)

E12

(0,1)

a9

a10a12 a13

a11

atributomultivalorado

Modelo ER - Notação

E1 E2

a4 (0,1)a1

r 1

a3

(1,N) (0,3)

r 2

(1,N)

a2 (0,N)

E3(1,1)

(1,N)

E4a8 (1,N)

a7

a5 a6r 3

(0,N)

(1,1)

papel 1

papel 2

E5 E6

p

E7 E8

r 4

E9

(0,N)

(1,1)

r 5

(1,N)

(0,N)

E10

E11

r 6

(1,1)

E12

(0,1)

a9

a10a12 a13

a11

atributocomposto

Modelo ER - Notação

E1 E2

a4 (0,1)a1

r 1

a3

(1,N) (0,3)

r 2

(1,N)

a2 (0,N)

E3(1,1)

(1,N)

E4a8 (1,N)

a7

a5 a6r 3

(0,N)

(1,1)

papel 1

papel 2

E5 E6

p

E7 E8

r 4

E9

(0,N)

(1,1)

r 5

(1,N)

(0,N)

E10

E11

r 6

(1,1)

E12

(0,1)

a9

a10a12 a13

a11

atributoopcional

atributoobrigatório

Modelo ER - Notação

E1 E2

a4 (0,1)a1

r 1

a3

(1,N) (0,3)

r 2

(1,N)

a2 (0,N)

E3(1,1)

(1,N)

E4a8 (1,N)

a7

a5 a6r 3

(0,N)

(1,1)

papel 1

papel 2

E5 E6

p

E7 E8

r 4

E9

(0,N)

(1,1)

r 5

(1,N)

(0,N)

E10

E11

r 6

(1,1)

E12

(0,1)

a9

a10a12 a13

a11

especializaçãoparcial

especializaçãototal

Modelo ER - Notação

E1 E2

a4 (0,1)a1

r 1

a3

(1,N) (0,3)

r 2

(1,N)

a2 (0,N)

E3(1,1)

(1,N)

E4a8 (1,N)

a7

a5 a6r 3

(0,N)

(1,1)

papel 1

papel 2

E5 E6

p

E7 E8

r 4

E9

(0,N)

(1,1)

r 5

(1,N)

(0,N)

E10

E11

r 6

(1,1)

E12

(0,1)

a9

a10a12 a13

a11

especializaçãoexclusiva

especializaçãonão-exclusiva

Vantagens do Projeto Conceitual• Abstração de dados de alto nível

– indicação de dados e seus relacionamentos da forma como percebidos no mundo real

– independência de detalhes de representação de SGBDs

• Fácil compreensão pelo usuário leigo– facilita a validação da modelagem dos dados

• Facilita a manutenção dos dados– modificação dos requisitos– migração de SGBD

• Tradução para qualquer modelo de SGBD

Dicas de Modelagem Conceitual• Entidade X Atributo

– a opção por entidade é válida se existem propriedades (atributos e relacionamentos) e transações relevantes para o fato

Empregados salário

Salários

deduçãoIRPF valorBruto

categoria

valorLíquidogratificação

remuneração(1,1)

Empregados(1,N)

Dicas de Modelagem Conceitual• Entidade X Atributo Composto

– a opção por atributo composto é válida se

existe noção de agregação

Pessoas

Imóveis

localização

valorproprietário(1,1)

Pessoas(0,N)

imóvellocalizaçãovalor

aplicação de negócio imobiliário

aplicação comercial (setor de crediário de uma loja)

Dicas de Modelagem Conceitual• Entidade X Atributo Multivalorado

– a opção por atributo multivalorado é válida se

existe noção de agregação

Pessoas

LinhasTelefônicas

DDD

númeroproprietário(1,N)

Pessoas(0,1)

telefone(0,N)

aplicação: companhia telefônica

aplicação comercial (setor de crediário de uma loja)

Dicas de Modelagem Conceitual• Entidade Fraca X Atributo

– a opção por atributo é válida se o fato não

possui outros relacionamentos

Pedidos

Itens

número

composição

(1,1)

Pedidos(1,N)

itens (1,N)descriçãoquantidade

quantidade

referência(1,1)

(0,N)

Produtos

valor

Dicas de Modelagem Conceitual• Entidade X Relacionamento

– admite-se representações equivalentes• a opção por relacionamento é recomendada se não

existem propriedades associadas ao fato• a opção por entidade é recomendada se existe um

identificador explícito para o fato (ex.: ID da consulta)

Médicos Pacientes

data

nome

código

CRMnome

hora

consulta(0,N) (0,N)

Médicos Pacientes

data

nome

código

CRMnome

hora

(0,N) (0,N)

Consultas(1,1)(1,1)

Dicas de Modelagem Conceitual• Entidade X Relacionamento

– a opção por entidade introduz uma indireção na associação entre fatos

• não recomendável, especialmente para casos um-

para-um e um-para-muitos– não geram o mesmo banco de dados relacional!

Pessoas Automóveis

marca

chassi

CPFnome

posse(0,1) (0,N)

Pessoas Automóveis

marca

chassi

CPFnome

(0,N) (0,1)

Posses(1,1)(1,1)

Dicas de Modelagem Conceitual• Entidade X Entidade Associativa

– admite-se representações equivalentes• levar em conta as recomendações do caso anterior

(entidade X relacionamento)

Médicos Pacientes

data

nome

código

CRMnome

hora

consulta(0,N) (0,N)

Medicamentos

nome

códigoprescrição

(0,N)

(0,N)intervaloHoras

Consultas

Dicas de Modelagem Conceitual

• Entidade X Entidade Associativa

Medicamentos

nome

códigoprescrição

(0,N)

(0,N)intervaloHoras

Médicos Pacientes

data

nome

código

CRMnome

hora

(0,N) (0,N)

Consultas(1,1)(1,1)

Dicas de Modelagem Conceitual• Entidade Associativa X Relacionamento N-Ário

– recomenda-se a opção por relacionamento n-ário apenas se a participação for obrigatória para todas as entidades

• evita problemas de identificação do relacionamento

Empregados Projetos

nome

código

CPFnome

alocação(1,N) (1,N)

Tarefas

nome

código

(1,N)

Dicas de Modelagem Conceitual• Entidade Associativa X Relacionamento N-Ário

– recomenda-se a opção por entidade associativa se a participação não for obrigatória para todas as entidades

Empregados Projetos

nome

código

CPFnome

alocação(1,N) (0,N)

Tarefas

nome

códigoexecução

(0,N)

(0,N)

Alocações

Dicas de Modelagem Conceitual• Relacionamento X Especialização

– a opção por especialização é válida se houver uma associação um-para-um entre as entidades participantes

Pessoas

CPFnome

Professores

titulação

Pessoas

CPFnome

Professores

habilitaçãoformação

(1,N)

(0,N)

aplicação universitáriaaplicação de uma escola de música

tempoexperiência

código

Dicas de Modelagem Conceitual• Atributo X Especialização

– a opção por especialização é valida se houver atributos e/ou relacionamentos relevantes para os fatos especializados

Pessoas

CPFnome

função

Pessoas

CPFnome

Motoristas

nroHabilitação

Engenheiros

CREA

Dicas de Modelagem Conceitual• Atributo X Especialização

– atenção: atributos opcionais podem sugerir a modelagem de uma entidade especializada

PessoasCPF

nomenroHabilitação (0,1)

Pessoas

CPFnome

Motoristas

nroHabilitação

veículosHabilitados (0,N)

veículosHabilitados (1,N)

Dicas de Modelagem Conceitual• Limitações no poder de expressão!

– exige a documentação de restrições de

integridade em anexo

Empregados supervisão(0,N)

(0,1) supervisor

supervisionado

RIs: - um empregado não pode ser supervisor de si próprio - ciclos em hierarquias de supervisão não são permitidos

Cursos

Pós-Graduação

GraduaçãoemCursoG

emCursoPG

Alunos

(0,1)

(0,N) (0,1)

(0,N)

RIs: - um aluno não pode estar cursando ambos os cursos

- um aluno deve estar cursando pelo menos um dos cursos

aplicação de um deptouniversitário

Dicas de Modelagem Conceitual• Consideração de aspectos temporais

– atenção: alteram a modelagem conceitual!

Empregados salário

Saláriosremuneração(1,1)

Empregados(1,N)

valor data

Departamentoslotação(1,1)

Empregados(0,N)

Departamentoslotação(1,N)

Empregados(0,N)

data

temporal

temporal

instantâneo

instantâneo

Dicas de Modelagem Conceitual• Entidade isolada

– pode-se admitir a sua representação

Departamentoslotação(1,1)

Empregados(0,N)

Empresa

Home-Pagesdefinição(0,N)

Escolas(1,1)

DicasDidáticas(mostrada aleatoriamente sempre

que uma home-page é aberta)

OK !

OK ?

Dicas de Modelagem Conceitual• Validação do esquema conceitual

– verificar eventuais redundâncias...• eliminar excessos e pesar desempenho de consultas

X controles de integridade e volume de dados

Departamentoscomposição(1,1)

Setores(0,N)

lotação(1,1)

Empregados

(0,N)

departamento

Fábricascomposição(1,1)

Setores(1,N)

lotação(0,1)

Máquinas

(0,N)

bens(1,1)(0,N)

inadequado!

Dicas de Modelagem Conceitual• Validação do esquema conceitual

– substantivos para nomes de relacionamentos• minimizam a redundância de nomes• nomes mais adequados para futuros conceitos

lógicos (tabelas, atributos)– cardinalidade de relacionamentos

• na dúvida, definir cardinalidades opcionais– menos restritivas– reduzem os controles de integridade no BD

» dependências de inserção e controles na atualização

Setoreslotação(1,1)

Máquinas

(0,N)

Setorespossui(1,1)

Máquinas

(1,N)

revisão

Categoria (ou Entidade União)• Entidade que representa uma união de entidades

com propriedades e identificações independentes– indicam categorias de entidades que podem assumir o

papel representado pela entidade união– caso especial de especialização (total ou parcial)

• várias superclasses, mas herança de apenas uma delas• Obs.: conceito não suportado pela ferramenta de projeto

Pessoas

CPFnome

Proprietários Automóveis

marca

renda posse(0,1) (0,N)

chassi

Bancos

CGCnome

Empresas

CNPJnomeDN ramo

Up

pp

Mapeamento de Categorias• Tabelas das entidades participantes da categoria se

relacionam com a tabela da entidade união

Pessoas

CPFnome

Proprietáriosrenda

Bancos

CGCnome

Empresas

CNPJnomeDN ramo

Up

pp

Proprietários (ID, renda)Pessoas (CPF, DN, nome, IDProp)Bancos (CGC, nome, IDProp)Empresas (CNPJ, nome, ramo, IDProp)

Recommended