Buscar

Aula 3 - Modelagem de Dados com Modelo Relacional

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 3, do total de 34 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 6, do total de 34 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 9, do total de 34 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Prévia do material em texto

INSTITUTO DE COMPUTAÇÃO
BANCO DE DADOS
Modelagem de Dados 
com Modelo Relacional
JUNHO – 2013
Tópicos
➔ Conceitos básicos
➔ O que é Modelagem Lógica
➔ Modelo Relacional
➔ Mapeamento: Conceitual para Lógica
➔ MER → Modelo Relacional
➔ Exemplos
➔ Exercícios
O que é Modelagem
➔ Arquitetura de Banco de Dados
SGBD
Conexão
Aplicação
Visão
Conceitual
Física
Lógica
MER ou UML
Modelo Relacional
O que é Modelagem
SGBD
Conexão
Aplicação
Visão
Conceitual
Física
Lógica
 Para implementar os sistemas 
temos de
 usar uma linguagem de 
programação
 é preciso modelar a 
manipulação dos dados pela 
linguagem
Diagrama de Classes
O que é Modelagem
SGBD
Conexão
Aplicação
Visão
Conceitual
Física
Lógica
 Para armazenar os dados 
temos de 
 usar um SGBD
 é preciso modelar conforme 
modelo de dados do SGBD
Modelo Relacional
Modelo Relacional-Objeto
Modelo Orientado a 
Objetos
O que é Modelagem
SGBD
Conexão
Aplicação
Visão
Conceitual
Física
Lógica
 É preciso transformar os 
dados da aplicação para 
permitir o armazenamento
 Modelo de Persistência
mapeamento entre 
modelos
7
Modelo Relacional
➔ Edgar Codd
➔ Pai do Modelo Relacional
➔ IBM San Jose
➔ Em 1970, Codd publicou:“A Relational Model of Data 
for Large Shared Data Banks.”
➔ Um modelo formal, baseado na teoria matemática dos 
conjuntos
8
Histórico Modelo Relacional
➔ Primeiras implementações
➔ System R – IBM
➔ Criou linguagem SEQUEL
➔ Ingres – Berkeley
➔ Michael Stonebraker
➔ Eugene Wong
➔ Principais produtos:
9
Conceitos do Modelo Relacional
➔ Trabalha somente com Relações ou Tabelas
➔ O conceito de relação permite representar:
➔ uma entidade
➔ um relacionamento
➔ Esquema Relacional
➔ conjunto de relações semanticamente ligadas por 
seus domínios de definição
10
Conceitos do Modelo Relacional
➔ Uma Relação é composta por:
➔ Um nome
➔ que deve ser único no mesmo esquema
➔ Um conjunto de tuplas (ou registros ou linhas)
➔ que ocorrem em qualquer ordem
➔ Um conjunto de atributos (ou campos ou colunas)
➔ cada atributo possui um domínio → dom(a
i
)
➔ cada atributo possui valor atômico
➔ o número de atributos é o grau da relação
➔ um subconjunto dos atributos deve possuir a 
propriedade de identificar a tupla
➔ atributo chave
11
Conceitos do Modelo Relacional
➔ Tipos de atributos chave
➔ Super-chave 
➔ conjunto de atributos que identifica uma tupla.
➔ Chave candidata ou secundária
➔ conjunto minimal de atributos que mantem a 
propriedade de identificação da tupla.
➔ Chave primária (pk)
➔ chave candidata escolhida para ser utilizada 
identificador.
➔ Chave estrangeira (fk)
➔ um campo cujo valor referencia uma chave (primária 
ou secundária).
12
 Modelo Relacional
PILOTO Num-cad Nome CPF Endereço
João0101 123456 Recife
0035 José 234567 São Paulo
.
.
.
0987 Pedro 567890 Recife
Atributos
Tuplas
Chave
Primária
Chave Candidata
Conceitos do Modelo Relacional
13
Modelo Relacional
➔ Restrições de Integridade:
➔ Integridade de Entidade
➔ o valor da chave não pode ser nulo
➔ Integridade de Unicidade da Chave
➔ em uma relação o valor da chave tem de ser 
mantido único
 k(a
i
)=k(a
j
) ↔ i=j
➔ Integridade Referencial
➔ uma chave estrangeira só pode assumir um valor 
existente na chave primária que é referenciada
 fk(a) = pk(a) ou fk(a) = nulo
14
Modelo Relacional
ESTRUTURAS OPERADORES RESTRIÇÕES
Relação
Atributo
Domínio
Chave Primária
Chave Estrangeira
União
Interseção
Diferença
Seleção
Projeção
Junção
Divisão
Integridade de:
Domínio
Entidade
Referencial
Conceitos do Modelo Relacional
Mapeamento Conceitual → Lógico
 Apesar de certas equivalências entre os Modelos 
Conceituais (MER ou UML) com o Modelo Lógico 
Relacional
 o processo de mapeamento pode gerar, para 
um mesmo Modelo Conceitual, vários Modelos 
Lógicos
Mapeamento Conceitual → Lógico
 Entidade
 para cada entidade gera-se uma tabela 
equivalente
 A chave da entidade é chave da tabela.
 Ex:
Paciente
idade
nome
Paciente = {nome, idade}
Mapeamento Conceitual → Lógico
 Entidade
 para cada entidade gera-se uma tabela equivalente.
 a chave da entidade é chave da tabela.
 atributos monovalorados geram campos equivalentes.
 Ex:
Paciente
peso
nome
Paciente = {nome, peso}
Mapeamento Conceitual → Lógico
Paciente
nome
Paciente = {nome, tel1,tel2, tel3}
atributo2telefone
 Entidade
 atributos multivalorados
1º caso – gera-se um campo para cada ocorrência
2º caso – gera-se uma tabela para o campo 
 Ex:
Paciente = {nome}
Telefone = {nome, tel}
Mapeamento Conceitual → Lógico
Paciente = {nome, peso, rua,bairro,cidade, uf}
 Entidade
 atributos compostos
1º caso – gera-se um campo para cada subatributo
2º caso – gera-se uma tabela para o campo 
 Ex:
Paciente = {nome, peso}
Endereço = {nome, rua,bairro,cidade, uf}
Paciente
rua
bairroendereço
cidade
uf
peso
nome
Mapeamento Conceitual → Lógico
Paciente = {nome, dataNascimento}
 Entidade
 atributos derivados
caso o processamento para gerar o valor do 
atributo seja complexo, 
• então seu valor é armazenado em um campo 
equivalente 
• senão o valor é obtido em tempo de execução.
 Ex:
Paciente
idade
dataNascimento
Mapeamento Conceitual → Lógico
 Relacionamento
 O mapeamento depende do tipo da cardinalidade ou 
multiplicidade.
Mapeamento Conceitual → Lógico
Disciplina= {num, nome}
 Relacionamento
 Muitos para Muitos
Gera-se uma nova tabela que equivale ao 
relacionamento e sua chave é composta pelas chaves 
das entidades.
 Ex:
DisciplinaAluno Cursou MN
cod numnome nome
Aluno = {cod, nome}
Cursou= {numDisciplina, codAluno}
Mapeamento Conceitual → Lógico
Curso= {num, nome}
 Relacionamento
 Um para Muitos
gera-se uma chave estrangeira na tabela que equivale 
ao lado 1.
 Ex:
CursoAluno Faz 1N
cod numnome nome
Aluno = {cod, nome, curso}
Mapeamento Conceitual → Lógico
Carro= {placa, modelo,dono}
 Relacionamento
 Um para Um
gera-se uma chave estrangeira em alguma das tabelas
• sugere-se 
• a que possui menor cardinalidade
• a que possui participação total
 Ex:
CarroPessoa Possui 11
cod placanome modelo
Pessoa = {cod, nome}
Mapeamento Conceitual → Lógico
Disciplina= {num, nome}
 Relacionamento
➔ Quando possui atributos, eles acompanham a chave 
estrangeira
 Ex:
DisciplinaAluno Cursou MN
cod numnome nome
Aluno = {cod, nome}
Cursou= {numDisciplina, codAluno, nota, freq}
nota freq
Mapeamento Conceitual → Lógico
Compra= {codCliente, codProduto, codFuncionario}
 Relacionamento grau > 2
 Gera-se uma nova tabela cuja chave é composta pelas 
chaves das entidades participantes do relacionamento
 Ex:
FuncionárioCliente compra
Produto
Mapeamento Conceitual → Lógico
➔ Entidade Fraca
➔ A tabela equivalente à entidade fraca tem a chave 
composta pela chave dela mesma mais a chave da 
entidade forte.
➔ Ex:
TurmaDisciplina possui Turmapossui
Turma= {num, codDisciplina, hora}
num hora
Mapeamento Conceitual → Lógico
FuncionárioCliente
Pessoa
➔ Generalização / Especialização
➔ 1º caso:
➔ cria-se uma tabela para cada entidade.
➔ a chave das especializações é uma chave 
estrangeira da generalização.
➔ Ex:
dataNasc
cod
salario
nome
Cliente= {cod, dataNasc}
Pessoa = {cod, nome}
Funcionario= {cod, salario}
Mapeamento Conceitual → Lógico
➔ Generalização / Especialização
➔ 2º caso:
➔ cria-seuma tabela para cada especialização.
➔ todos os atributos da generalização são replicados 
nas especializações.
➔ Ex:
FuncionárioCliente
Pessoa
dataNasc
cod
salario
nome
Cliente= {cod, nome, dataNasc}
Funcionario= {cod, nome, salario}
Mapeamento Conceitual → Lógico
➔ Generalização / Especialização
➔ 3º caso:
➔ cria-se uma tabela para a generalização com 
atributos booleanos representando as instâncias 
das especializações.
➔ Ex:
FuncionárioCliente
Pessoa
dataNasc
cod
salario
nome
Pessoa = {cod, nome, dataNasc, 
 salario, cliente, funcionario}
Mapeamento Conceitual → Lógico
➔ Generalização / Especialização
➔ 4º caso:
➔ cria-se uma tabela para a generalização com um 
atributo informando o tipo da instância.
➔ Ex:
FuncionárioCliente
Pessoa
dataNasc
cod
salario
nome
Pessoa = {cod, nome, dataNasc, 
 salario, tipo}
Mapeamento Conceitual → Lógico
➔ Abstração de Agregação
➔ 1º caso – os atributos do relacionamento podem ser 
levados para a agregação
➔ O relacionamento não é mapeado
➔ Cria-se uma nova tabela cuja chave é composta pelas 
chaves das entidades
MédicoPaciente atende
Consulta
data
Consulta= {codPaciente, codMedico, data}
Mapeamento Conceitual → Lógico
➔ Abstração de Agregação
➔ 2º caso – os atributos do relacionamento não podem ser 
levados para a agregação
➔ O relacionamento é mapeado também
➔ Cria-se uma nova tabela cuja chave é composta pelas 
chaves das entidades
DisciplinaProfessor ministra
Aula
data
Aula= {codProfessor, codDisciplina, data}
Ministra = {codProfessor, codDisciplina, livroTexto}
livroTexto
Exercício
1) Para o mapeamento da Generalização para o 
Relacional comente:
➔ todos os mapeamentos servem para todos os tipos de 
cobertura? 
➔ Qual tem melhor desempenho?
2) Para as tabelas a seguir gere um possível MER
Cliente = {códigoCliente, nomeCliente, telefone,numCarro}
Funcionário={código,nome,especialidade,telefone}
Conserto={codFuncionário,codCarro,dataConserto,descrição}
Carro={códigoCarro,modelo,anoFabricação,fabricante}
UsouPeça={codFunc,codCarro,dataConserto, codPeça, qtde}
Peça = {cod, nome, fabricante}
	Slide 1
	Slide 2
	Slide 3
	Slide 4
	Slide 5
	Slide 6
	Slide 7
	Slide 8
	Slide 9
	Slide 10
	Slide 11
	Slide 12
	Slide 13
	Slide 14
	Slide 15
	Slide 16
	Slide 17
	Slide 18
	Slide 19
	Slide 20
	Slide 21
	Slide 22
	Slide 23
	Slide 24
	Slide 25
	Slide 26
	Slide 27
	Slide 28
	Slide 29
	Slide 30
	Slide 31
	Slide 32
	Slide 33
	Slide 34

Outros materiais