Oficina: Modelagem de Dados Ronaldo S. Mello INE/CTC/UFSC.

85
Oficina: Modelagem de Dados Ronaldo S. Mello INE/CTC/UFSC

Transcript of Oficina: Modelagem de Dados Ronaldo S. Mello INE/CTC/UFSC.

Page 1: Oficina: Modelagem de Dados Ronaldo S. Mello INE/CTC/UFSC.

Oficina:Modelagem de Dados

Ronaldo S. MelloINE/CTC/UFSC

Page 2: Oficina: Modelagem de Dados Ronaldo S. Mello INE/CTC/UFSC.

Objetivo da Oficina• Teoria e prática de projeto de Bancos de Dados

Relacionais (BDRs) • Foco: modelagem conceitual e lógica de BDRs

– Dicas avançadas de modelagem entidade-relacionamento (ER)

– Regras detalhadas de mapeamento ER-relacional• Exercícios práticos de modelagem

– ferramenta acadêmica brModelo• Bibliografia principal

– Projeto de Banco de Dados - Carlos Alberto Heuser - 5a Ed. Série Livros Didáticos – Instituto de Informática da UFRGS, número 4. Editora Sagra-Luzzatto, 2004.

Page 3: Oficina: Modelagem de Dados Ronaldo S. Mello INE/CTC/UFSC.

Sumário

1. Projeto de BD: objetivo e etapas2. Modelagem Conceitual

2.1 Modelo ER2.2 Dicas de Modelagem2.3 Exercícios

3. Mapeamento ER-Relacional3.1 Regras de Mapeamento3.2 Exercícios

Page 4: Oficina: Modelagem de Dados Ronaldo S. Mello INE/CTC/UFSC.

Sumário

1. Projeto de BD: objetivo e etapas2. Modelagem Conceitual

2.1 Modelo ER2.2 Dicas de Modelagem2.3 Exercícios

3. Mapeamento ER-Relacional3.1 Regras de Mapeamento3.2 Exercícios

Page 5: Oficina: Modelagem de Dados Ronaldo S. Mello INE/CTC/UFSC.

Projeto de Banco de Dados• Parte integrante do desenvolvimento de

um sistema de informação– preocupação com a representação adequada

de dados operacionais • Atividade de projeto de BD

– modelagem de dados em diferentes níveis de abstração

• nível conceitual, lógico e físico

Page 6: Oficina: Modelagem de Dados Ronaldo S. Mello INE/CTC/UFSC.

Projeto de BD - EtapasAnálise de Requisitos

Modelagem Conceitual

Modelagem Lógica

Modelagem Física

Page 7: Oficina: Modelagem de Dados Ronaldo S. Mello INE/CTC/UFSC.

Projeto de BD - EtapasAnálise de Requisitos

Modelagem Conceitual

Modelagem Lógica

Modelagem Física

• Coleta de informações sobre os dados, suas restrições e seus relacionamentos na organização• Forma de realização: reuniões com os usuários; observação do funcionamento da organização• Resultado: documento com a especificação de requisitos

Page 8: Oficina: Modelagem de Dados Ronaldo S. Mello INE/CTC/UFSC.

Projeto de BD - EtapasAnálise de Requisitos

Modelagem Conceitual

Modelagem Lógica

Modelagem Física

• Modelagem dos dados e seusrelacionamentos independente da estrutura de representação do SGBD (modelagem conceitual)• Forma de realização: análise da especificação de requisitos• Resultado: esquema conceitual + restrições de integridade

Especificação de requisitos

Page 9: Oficina: Modelagem de Dados Ronaldo S. Mello INE/CTC/UFSC.

Vantagens da Modelagem 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

Page 10: Oficina: Modelagem de Dados Ronaldo S. Mello INE/CTC/UFSC.

Projeto de BD - EtapasAnálise de Requisitos

Modelagem Conceitual

Modelagem Lógica

Modelagem Física

Especificação de requisitos

Esquema conceitual

• Conversão do esquema conceitualpara o esquema de representaçãode um SGBD (esquema lógico)• Forma de realização: aplicação de regras de conversão• Resultado: esquema lógico (tabelas,RIs, transações, consultas relevantes evisões, autorizações de acesso, ...)

Page 11: Oficina: Modelagem de Dados Ronaldo S. Mello INE/CTC/UFSC.

Projeto de BD - EtapasAnálise de Requisitos

Modelagem Conceitual

Modelagem Lógica

Modelagem Física

Especificação de requisitos

Esquema conceitual

• Definição do esquema lógicoem um SGBD adequado ao modelo• Forma de realização: SQL• Resultado: esquema físico

Esquema lógico

Page 12: Oficina: Modelagem de Dados Ronaldo S. Mello INE/CTC/UFSC.

Análise de Requisitos

Modelagem Conceitual

Modelagem Lógica

Modelagem Física

Especificação de requisitos

Esquema conceitual

Esquema lógico

Esquema físico ou implementação

Projeto de BD - Etapas

Page 13: Oficina: Modelagem de Dados Ronaldo S. Mello INE/CTC/UFSC.

Projeto de BD - Etapas

• Modelagem Conceitual– preocupação: correta abstração do mundo real(captura correta da semântica da aplicação)

• Modelagem Lógica + Física– preocupação: escolhas corretas na conversão

para o esquema do SGBD (relacional) para maximizar o desempenho

(distribuição adequada dos dados em tabelas)

Page 14: Oficina: Modelagem de Dados Ronaldo S. Mello INE/CTC/UFSC.

Sumário

1. Projeto de BD: objetivo e etapas2. Modelagem Conceitual

2.1 Modelo ER2.2 Dicas de Modelagem2.3 Exercícios

3. Mapeamento ER-Relacional3.1 Regras de Mapeamento3.2 Exercícios

Page 15: Oficina: Modelagem de Dados Ronaldo S. Mello INE/CTC/UFSC.

Modelagem 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

Page 16: Oficina: Modelagem de Dados Ronaldo S. Mello INE/CTC/UFSC.

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

a10 a12 a13

a11

Page 17: Oficina: Modelagem de Dados Ronaldo S. Mello INE/CTC/UFSC.

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

a10 a12 a13

a11

entidade

Page 18: Oficina: Modelagem de Dados Ronaldo S. Mello INE/CTC/UFSC.

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

a10 a12 a13

a11

entidade fraca

Page 19: Oficina: Modelagem de Dados Ronaldo S. Mello INE/CTC/UFSC.

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

a10 a12 a13

a11

entidade associativa

Page 20: Oficina: Modelagem de Dados Ronaldo S. Mello INE/CTC/UFSC.

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

a10 a12 a13

a11

relacionamento

Page 21: Oficina: Modelagem de Dados Ronaldo S. Mello INE/CTC/UFSC.

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

a10 a12 a13

a11

auto-relacionamento

Page 22: Oficina: Modelagem de Dados Ronaldo S. Mello INE/CTC/UFSC.

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

a10 a12 a13

a11

relacionamentoternário

Page 23: Oficina: Modelagem de Dados Ronaldo S. Mello INE/CTC/UFSC.

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

a10 a12 a13

a11atributo

identificador

Page 24: Oficina: Modelagem de Dados Ronaldo S. Mello INE/CTC/UFSC.

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

a10 a12 a13

a11

atributomonovalorado

Page 25: Oficina: Modelagem de Dados Ronaldo S. Mello INE/CTC/UFSC.

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

a10 a12 a13

a11

atributomultivalorado

Page 26: Oficina: Modelagem de Dados Ronaldo S. Mello INE/CTC/UFSC.

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

a10 a12 a13

a11

atributocomposto

Page 27: Oficina: Modelagem de Dados Ronaldo S. Mello INE/CTC/UFSC.

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

a10 a12 a13

a11

atributoopcional

atributoobrigatório

Page 28: Oficina: Modelagem de Dados Ronaldo S. Mello INE/CTC/UFSC.

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

a10 a12 a13

a11

especializaçãoparcial

especializaçãototal

Page 29: Oficina: Modelagem de Dados Ronaldo S. Mello INE/CTC/UFSC.

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

a10 a12 a13

a11

especializaçãoexclusiva

especializaçãonão-exclusiva

Page 30: Oficina: Modelagem de Dados Ronaldo S. Mello INE/CTC/UFSC.

Sumário

1. Projeto de BD: objetivo e etapas2. Modelagem Conceitual

2.1 Modelo ER2.2 Dicas de Modelagem2.3 Exercícios

3. Mapeamento ER-Relacional3.1 Regras de Mapeamento3.2 Exercícios

Page 31: Oficina: Modelagem de Dados Ronaldo S. Mello INE/CTC/UFSC.

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)

Page 32: Oficina: Modelagem de Dados Ronaldo S. Mello INE/CTC/UFSC.

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)

Page 33: Oficina: Modelagem de Dados Ronaldo S. Mello INE/CTC/UFSC.

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)

Page 34: Oficina: Modelagem de Dados Ronaldo S. Mello INE/CTC/UFSC.

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

Page 35: Oficina: Modelagem de Dados Ronaldo S. Mello INE/CTC/UFSC.

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)

Page 36: Oficina: Modelagem de Dados Ronaldo S. Mello INE/CTC/UFSC.

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)

Page 37: Oficina: Modelagem de Dados Ronaldo S. Mello INE/CTC/UFSC.

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

Page 38: Oficina: Modelagem de Dados Ronaldo S. Mello INE/CTC/UFSC.

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)

Page 39: Oficina: Modelagem de Dados Ronaldo S. Mello INE/CTC/UFSC.

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)

Page 40: Oficina: Modelagem de Dados Ronaldo S. Mello INE/CTC/UFSC.

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

Page 41: Oficina: Modelagem de Dados Ronaldo S. Mello INE/CTC/UFSC.

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

Page 42: Oficina: Modelagem de Dados Ronaldo S. Mello INE/CTC/UFSC.

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

Page 43: Oficina: Modelagem de Dados Ronaldo S. Mello INE/CTC/UFSC.

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)

Page 44: Oficina: Modelagem de Dados Ronaldo S. Mello INE/CTC/UFSC.

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

Page 45: Oficina: Modelagem de Dados Ronaldo S. Mello INE/CTC/UFSC.

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

Page 46: Oficina: Modelagem de Dados Ronaldo S. Mello INE/CTC/UFSC.

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 ?

Page 47: Oficina: Modelagem de Dados Ronaldo S. Mello INE/CTC/UFSC.

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

Page 48: Oficina: Modelagem de Dados Ronaldo S. Mello INE/CTC/UFSC.

Sumário

1. Projeto de BD: objetivo e etapas2. Modelagem Conceitual

2.1 Modelo ER2.2 Dicas de Modelagem2.3 Exercícios

3. Mapeamento ER-Relacional3.1 Regras de Mapeamento3.2 Exercícios

Page 49: Oficina: Modelagem de Dados Ronaldo S. Mello INE/CTC/UFSC.

Ferramenta brModelo• Modelagem conceitual ER – notação Peter Chen• Mapeamento semi-automático ER-relacional• Armazenamento XML de modelagens

Page 50: Oficina: Modelagem de Dados Ronaldo S. Mello INE/CTC/UFSC.

Exercício Modelagem 1 - Clínica

Cada médico que trabalha na clínica é identificado pelo seu CRM, possui um nome, uma data de admissão na clínica e um salário. Um médico tem formação em diversas especialidades (ortopedia, traumatologia, etc), mas só exerce uma delas na clínica. Para todo paciente internado na clínica são cadastrados alguns dados pessoais: código (único), nome, RG, CPF, endereço, telefone(s) para contato e data do nascimento. Um paciente tem sempre um determinado médico como responsável, com um horário de visita diário predeterminado. Pacientes estão sempre internados em quartos individuais, que são identificados por um número e estão em um andar da clínica.

Page 51: Oficina: Modelagem de Dados Ronaldo S. Mello INE/CTC/UFSC.

Exercício 2 - MuseuCada obra no museu possui um código, um título e um ano. Obras ou são pinturas ou são esculturas. No primeiro caso, são dados importantes o estilo (por exemplo, impressionista). No caso de esculturas, são importantes o peso e os materiais de que é feita (por exemplo, argila, madeira, etc). Uma obra pode estar exposta em um único salão, em uma determinada posição neste salão. Um salão, que geralmente abriga várias obras, é identificado por um número e está em um andar do museu. Certos dados a respeito dos autores de cada obra também são relevantes: código, nome e nacionalidade. Uma obra é produzida por apenas um autor, porém, pode existir mais de uma obra de um mesmo autor no museu. No museu trabalham funcionários, cada um possuindo um ID, CPF, um nome e um salário. Funcionários ou são guardas ou são restauradores de obras. No primeiro caso, mantêm-se dados sobre a hora de entrada e hora de saída. No caso de restauradores, qual a sua especialidade. Um guarda é responsável pela segurança de um único salão, que pode ser vigiado por vários guardas. Um restaurador pode estar realizando a manutenção de várias obras. Uma obra, caso esteja em manutenção, está nas mãos de apenas um restaurador. Para cada manutenção deve-se registrar a data de início e a data prevista de término do trabalho, uma descrição do serviço a ser feito e um custo previsto para realizar a manutenção. Uma manutenção pode estar utilizando uma ou mais matérias-primas. Uma matéria-prima possui um código, um nome e uma quantidade em estoque. Uma matéria-prima pode estar sendo utilizada em várias manutenções, em uma certa quantidade.

Page 52: Oficina: Modelagem de Dados Ronaldo S. Mello INE/CTC/UFSC.

Exercício 3 (se der tempo...) - BibliotecaUm livro tem vários exemplares na biblioteca, como por exemplo, Liv1-Ex1, Liv1-Ex2, Liv2-Ex1. Exemplares estão dispostos em estantes. São mantidos dados detalhados sobre autores e editoras dos livros para fins de consulta. Na biblioteca trabalham bibliotecárias. Cada estante é periodicamente organizada por uma única bibliotecária. Bibliotecárias também realizam empréstimos de exemplares para clientes. Empréstimos cadastrados no BD devem conter a data da devolução e o valor diário da multa, permanecendo no BD até o cliente entregar o exemplar. A bibliotecária que realizou o empréstimo também é relevante de ser mantido no BD. Algumas bibliotecárias são estagiárias. Uma bibliotecária estagiária está sempre sob a responsabilidade de uma bibliotecária efetiva. Deve-se saber também a instituição de ensino da qual a estagiária vem. Defina os atributos que julgares relevantes para os fatos identificados.

Page 53: Oficina: Modelagem de Dados Ronaldo S. Mello INE/CTC/UFSC.

Sumário

1. Projeto de BD: objetivo e etapas2. Modelagem Conceitual

2.1 Modelo ER2.2 Dicas de Modelagem2.3 Exercícios

3. Mapeamento ER-Relacional3.1 Regras de Mapeamento3.2 Exercícios

Page 54: Oficina: Modelagem de Dados Ronaldo S. Mello INE/CTC/UFSC.

Modelagem Lógica de BD• Foco

– mapeamento ER->relacional• Para 1 esquema ER – N esquemas

relacionais– existem várias maneiras de “se implementar”

uma modelagem conceitual abstrata

Page 55: Oficina: Modelagem de Dados Ronaldo S. Mello INE/CTC/UFSC.

Prática de Modelagem Lógica• Compromisso entre

– evitar um grande número de tabelas• evitar um tempo longo de resposta nas consultas e

atualizações de dados– implica minimizar junções entre tabelas

– evitar atributos opcionais• evitar tabelas sub-utilizadas

– implica evitar desperdício de espaço– evitar muitos controles de integridade no BD

• evitar organizações de dados em tabelas que gerem muitos controles de integridade

– implica evitar muitas dependências entre dados

Page 56: Oficina: Modelagem de Dados Ronaldo S. Mello INE/CTC/UFSC.

Processo de Mapeamento1. Mapeamento preliminar de entidades e

seus atributos2. Mapeamento de especializações3. Mapeamento de relacionamentos e seus

atributos

Page 57: Oficina: Modelagem de Dados Ronaldo S. Mello INE/CTC/UFSC.

Mapeamento de Entidades

EmpregadosIdadeNomeCPF

Empregados (CPF, Nome, Idade)

Page 58: Oficina: Modelagem de Dados Ronaldo S. Mello INE/CTC/UFSC.

Mapeamento de Entidades Fracas

Itens (NroPedido, NroItem, Produto, Quantidade)

ItensComposiçãoPedidos

Número Número Produto

(1,N)(1,1)

Quantidade

• Identificador da entidade forte torna-se– parte da chave primária na tabela

correspondente à entidade fraca (tabelaFraca)– chave estrangeira na tabelaFraca

Page 59: Oficina: Modelagem de Dados Ronaldo S. Mello INE/CTC/UFSC.

Mapeamento de Atributos

EmpregadosIdadeNomeCPF

Empregados (CPF, Nome, Idade, PlanoSaúde, Rua, Número, Cidade)Telefone(CPF, Número)ouTelefone (CPF, Número)

Telefone (1,N)PlanoSaúde (0,1)

EndereçoCidade

NúmeroRua

Page 60: Oficina: Modelagem de Dados Ronaldo S. Mello INE/CTC/UFSC.

Mapeamento de Atributos

EmpregadosIdadeNomeCPF

Empregados (CPF, Nome, Idade, PlanoSaúde, Rua, Número, Cidade, FoneRes, FoneCom, Celular)

Telefone (1,3)PlanoSaúde (0,1)

EndereçoCidadeNúmero

Rua

Page 61: Oficina: Modelagem de Dados Ronaldo S. Mello INE/CTC/UFSC.

Processo de Mapeamento1. Mapeamento preliminar de entidades e

seus atributos2. Mapeamento de especializações3. Mapeamento de relacionamentos e seus

atributos

Page 62: Oficina: Modelagem de Dados Ronaldo S. Mello INE/CTC/UFSC.

Mapeamento de Especializações

• Três alternativas são geralmente adotadas1. tabela única para entidade genérica e suas

especializações2. tabelas para a entidade genérica e as

entidades especializadas3. tabelas apenas para as entidades

especializadas

Page 63: Oficina: Modelagem de Dados Ronaldo S. Mello INE/CTC/UFSC.

Alternativa 1

Servidores (CPF, Nome, Tipo, Função, Titulação, Categoria)

Servidores

ProfessoresFuncionários

CPFNome

Função TitulaçãoCategoria

• Tipo pode assumir mais de um valor se a especialização é não-exclusiva

Page 64: Oficina: Modelagem de Dados Ronaldo S. Mello INE/CTC/UFSC.

Alternativa 2

Servidores

ProfessoresFuncionários

CPFNome

Função TitulaçãoCategoria

Servidores (CPF, Nome)

Funcionários (CPF, Função)

Professores (CPF, Titulação, Categoria)

Page 65: Oficina: Modelagem de Dados Ronaldo S. Mello INE/CTC/UFSC.

Alternativa 3

Servidores

ProfessoresFuncionários

CPFNome

Função TitulaçãoCategoria

Funcionários (CPF, Nome, Função)

Professores (CPF, Nome, Titulação, Categoria)

• Não se aplica a especializações parciais

Page 66: Oficina: Modelagem de Dados Ronaldo S. Mello INE/CTC/UFSC.

Processo de Mapeamento1. Mapeamento preliminar de entidades e

seus atributos2. Mapeamento de especializações3. Mapeamento de relacionamentos e seus

atributos

Page 67: Oficina: Modelagem de Dados Ronaldo S. Mello INE/CTC/UFSC.

Mapeamento de Relacionamentos• Recomendações de mapeamento

baseiam-se na análise da cardinalidade dos relacionamentos

– com base nesta análise, algumas alternativas de mapeamento podem ser adotadas1. entidades relacionadas podem ser fundidas em uma

única tabela2. tabelas podem ser criadas para o relacionamento3. chaves estrangeiras podem ser criadas em tabelas

a fim de representar adequadamente o relacionamento

Page 68: Oficina: Modelagem de Dados Ronaldo S. Mello INE/CTC/UFSC.

Relacionamento 1-1• Obrigatório em ambos os sentidos

ComissõesOrganizaçãoConferências

Sigla

eMail

Número Endereço

Nome DataInstalação

(1,1)(1,1)

Conferências (Sigla, Nome, DataInstCom, NroCom, EndereçoCom, eMailCom)

Page 69: Oficina: Modelagem de Dados Ronaldo S. Mello INE/CTC/UFSC.

Relacionamento 1-1• Opcional em um dos sentidos

alternativa 1

CarteirasMotoristaPessoas

Código

Número

NomeDataExpedição

(0,1)(1,1)Posse

Validade Categoria

Pessoas (Código, Nome, NúmeroCarteiraMotorista, DataExpedição, Validade, Categoria,

DataRetirada)

DataRetirada

Page 70: Oficina: Modelagem de Dados Ronaldo S. Mello INE/CTC/UFSC.

Relacionamento 1-1• Opcional em um dos sentidos

alternativa 2

CarteirasMotoristaPessoas

Código

Número

NomeDataExpedição

(0,1)(1,1)Posse

Validade Categoria

Pessoas (Código, Nome)

CarteirasMotorista (Número, DataExpedição, Validade, Categoria, Código,

DataRetirada)

DataRetirada

Page 71: Oficina: Modelagem de Dados Ronaldo S. Mello INE/CTC/UFSC.

Relacionamento 1-1• Opcional em ambos os sentidos

MulheresCasamentoHomens

CPF Nome Data

(0,1)(0,1)

Homens (CPF, Nome)

Casamento (CPFh, CPFm, Data)

CPF Nome

Mulheres (CPF, Nome)

alternativa 1

Page 72: Oficina: Modelagem de Dados Ronaldo S. Mello INE/CTC/UFSC.

Relacionamento 1-1• Opcional em ambos os sentidos

MulheresCasamentoHomens

CPF Nome Data

(0,1)(0,1)

CPF Nome

alternativa 2

Homens (CPF, Nome)

Mulheres (CPF, Nome, CPFmarido, DataCasamento)

Page 73: Oficina: Modelagem de Dados Ronaldo S. Mello INE/CTC/UFSC.

Relacionamento 1-N• Obrigatório/opcional no “lado N”

DepartamentosLotaçãoEmpregados

CPF

Código Nome

Nome Data

(1,1)(1,N)

Departamentos (Código, Nome)Empregados (CPF, Nome, CodDepto, DataLotação)

(0,N)

Page 74: Oficina: Modelagem de Dados Ronaldo S. Mello INE/CTC/UFSC.

Relacionamento 1-N• Opcional no “lado 1”

PessoasPosseAutomóveis

Chassi

CPF Nome

Modelo DataCompra

(0,1)(1,N)

Pessoas (CPF, Nome)Automóveis (Chassi, Modelo, Ano)Posse (CPF, Chassi, DataCompra)

(0,N)

Ano

alternativa 1

Page 75: Oficina: Modelagem de Dados Ronaldo S. Mello INE/CTC/UFSC.

Relacionamento 1-N• Opcional no “lado 1”

PessoasPosseAutomóveis

Chassi

CPF Nome

Modelo DataCompra

(0,1)(1,N)

(0,N)

Ano

alternativa 2

Pessoas (CPF, Nome)Automóveis (Chassi, Modelo, Ano, CPF, DataCompra)

Page 76: Oficina: Modelagem de Dados Ronaldo S. Mello INE/CTC/UFSC.

Relacionamento N-M

ProjetosParticipaçãoEmpregados

CPF

Código Nome

NomeDataInício

(1,N)(1,N)

Empregados (CPF, Nome)Projetos (Código, Nome)Participação (CPF, Código, DataInício)

(0,N) (0,N)

• Obrigatório/opcional em ambos os sentidos

Page 77: Oficina: Modelagem de Dados Ronaldo S. Mello INE/CTC/UFSC.

Auto-Relacionamento• Valem as mesmas recomendações

anteriores

Alternativas:1) Empregados(CPF, Nome, Idade)

Gerência(CPFe, CPFg)

2) Empregados(CPF, Nome, Idade, CPFg)

(0,N)

(0,1)

subordinado

gerente

IdadeNomeCPF

Empregados gerência

Page 78: Oficina: Modelagem de Dados Ronaldo S. Mello INE/CTC/UFSC.

Relacionamentos com Entidades Associativas• Valem as mesmas recomendações anteriores

– questão: “localizar” a entidade associativa

ClientesempréstimoLivros(0,1)(0,N)

cadastro(1,1)

(0,N)

Bibliotecárias

Livros (Código, ..., CPFcli, DataDevolução, CPFbibl)Clientes (CPFcli, ...)Bibliotecárias(CPFbibl, ...)

DataDevolução

alternativa 2

Empréstimos

Page 79: Oficina: Modelagem de Dados Ronaldo S. Mello INE/CTC/UFSC.

Relacionamentos com Entidades Associativas

CartõesMagnéticos

Contas

Concessão

Clientes vínculo(1,N)(1,N)

(1,1)

(0,1)

Correntista(CPF, NroCta, NroCartão, DataExp)

NúmeroDataExp

CPF Número

Correntistas

• Outro exemplo

alternativa 1

Page 80: Oficina: Modelagem de Dados Ronaldo S. Mello INE/CTC/UFSC.

Relacionamentos Ternários

(1,N)

Instituições

Pesquisadores

Projetos

Pesquisa(1,N)

(0,N)Sigla Número

CPF

DataInício

Instituições (Sigla, ...) Projetos (Número, ...)Pesquisadores (CPF, ...)Pesquisa (Sigla, Número, CPF, DataInício)

Caso N:N:N

• Gera uma tabela para o relacionamento

Page 81: Oficina: Modelagem de Dados Ronaldo S. Mello INE/CTC/UFSC.

Relacionamentos Ternários

(0,1)

Produtos

Distribuidores

Cidades

Distribuição(0,N)

(0,N)Código Código

Produtos (Código, ...)Cidades (Código, ...)Distribuidores (CPF, ...)Distribuição (CodProduto, CodCidade, CPF)

CPF

Caso 1:N:N

Page 82: Oficina: Modelagem de Dados Ronaldo S. Mello INE/CTC/UFSC.

(1,1)

Empregados

Salários

Atividades

Remuneração

(0,N) (1,1)

CPF Código

Empregados (CPF, Nome)Atividades (Código, Descrição)Salários (ID, valor)Remuneração (CodAtiv, CPF, ID-Salario)

Nome

IDCaso 1:1:N

Relacionamentos Ternários

Valor

Descrição

• Uma das RIs pode ser chave primária

Page 83: Oficina: Modelagem de Dados Ronaldo S. Mello INE/CTC/UFSC.

Relacionamentos Ternários

(0,1)

Painéis

Latarias

Veículo

(0,1)(0,1)

Código Código

CódigoCaso 1:1:1

FabricantePesoMotores

Modelo

Painéis (Código, Peso)Motores (Código, Fabricante)Latarias (Código, Modelo)Veículo (CodP, CodM, CodL) • Uma das RIs pode

ser chave primária

Page 84: Oficina: Modelagem de Dados Ronaldo S. Mello INE/CTC/UFSC.

Sumário

1. Projeto de BD: objetivo e etapas2. Modelagem Conceitual

2.1 Modelo ER2.2 Dicas de Modelagem2.3 Exercícios

3. Mapeamento ER-Relacional3.1 Regras de Mapeamento3.2 Exercícios

Page 85: Oficina: Modelagem de Dados Ronaldo S. Mello INE/CTC/UFSC.

Exercícios• Mapeamento das modelagens conceituais

definidas nos exercícios anteriores