Buscar

BD1_Aula05

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ê também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes
Você viu 3, do total de 42 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

Você também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes
Você viu 6, do total de 42 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

Você também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes
Você viu 9, do total de 42 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

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Banco de Dados 1 • Aula 05
Claudio Lobo Banco de Dados 1 Slide 2
Objetivos
• C04. Conhecer os principais conceitos de modelagem e 
normalização de dados;
– C04H7. Ser capaz de construir um modelo de negócios;
– C04H8. Ser capaz de construir um modelo lógico de dados;
– C04H9. Entender um modelo físico de dados e suas 
implicações na construção do banco de dados;
– C04H10. Conhecer e utilizar as 3 primeiras formas normais.
Claudio Lobo Banco de Dados 1 Slide 3
Abordagem Relacional
• Atualmente, há um claro predomínio dos SGBD 
relacionais.
• Muitos conceitos usados no projeto de BD (Ex.: o 
conceito de normalização), foram criados em 
combinação com a abordagem relacional. 
• Um banco de dados relacional é composto por Tabelas 
(também chamadas relações). 
Claudio Lobo Banco de Dados 1 Slide 4
Abordagem Relacional
• Tabelas
– Conjunto não ordenado de linhas (tuplas, na terminologia 
acadêmica). 
– Cada linha é composta por uma série de campos (ou 
atributos, na terminologia acadêmica).
– Cada campo é identificado por um nome de campo (nome de 
atributo, na terminologia acadêmica). 
– O conjunto de campos das linhas de uma tabela que 
possuem o mesmo nome formam uma coluna.
Claudio Lobo Banco de Dados 1 Slide 5
Abordagem Relacional
• Chaves
– Conceito básico para estabelecer relações entre linhas de 
tabelas de um SGBD Relacional (SGBDR).
– Em um SGBDR, há ao menos três tipos de chaves:
• Primária.
• Alternativa.
• Estrangeira.
Claudio Lobo Banco de Dados 1 Slide 6
Abordagem Relacional
• Chave Primária
– É uma coluna (ou uma combinação de colunas) cujos valores 
distinguem uma linha das demais dentro de uma tabela.
• Torna-se o identificador único.
• A definição formal de chave primária exige que seja 
mínima. 
– Uma chave é mínima quando todas suas colunas forem 
realmente necessárias para garantir o requisito de 
unicidade de valores da chave.
– Na abordagem relacional, uma chave primária é uma 
restrição de integridade.
• Garante a unicidade de valores nas colunas que compõem 
a chave.
Claudio Lobo Banco de Dados 1 Slide 7
Abordagem Relacional
• Chave Estrangeira
– É uma coluna (ou combinação de colunas), cujos valores 
referenciam valores da chave primária de uma outra tabela.
• É o mecanismo que permite a implementação de 
relacionamentos em um banco de dados relacional. 
• Logo, na tabela que possui a chave estrangeira, não podem 
aparecer linhas que contenham um valor do campo que é 
chave estrangeira que não exista na coluna que é chave 
primária da tabela referenciada.
Claudio Lobo Banco de Dados 1 Slide 8
Abordagem Relacional
• Chave Estrangeira
– Uma chave estrangeira impõe restrições que devem ser 
garantidas em diversas situações de alteração do banco de 
dados:
• Ao incluir uma nova linha ou alterar um valor de chave 
estrangeira já existente, na tabela que contém a chave 
estrangeira:
– Deve ser garantido que o valor da chave estrangeira 
EXISTA na coluna da chave primária referenciada.
• Ao excluir uma linha da tabela que contém a chave primária 
referenciada pela chave estrangeira:
– Deve ser garantido que na coluna chave estrangeira 
não apareça o valor da chave primária que está sendo 
excluída.
Claudio Lobo Banco de Dados 1 Slide 9
Abordagem Relacional
• Chave Estrangeira
Claudio Lobo Banco de Dados 1 Slide 10
Abordagem Relacional
• Chave Estrangeira
– Uma chave estrangeira NEM SEMPRE referencia uma chave 
primária de outra tabela. 
• Ela pode referenciar a chave primária da própria tabela.
• Isso acontece nos auto-relacionamentos.
Claudio Lobo Banco de Dados 1 Slide 11
Abordagem Relacional
• Domínios e valores nulos (null)
– Quando definimos uma tabela, para cada coluna deve ser 
especificado um conjunto de valores (alfanumérico, numérico, 
booleano, etc) que os campos daquela coluna podem assumir.
• Este conjunto de valores é chamado de domínio.
– Além disso, deve ser especificado se os campos da coluna 
podem estar nulos (“null” em inglês) ou não.
• Se não puderem ser nulos, indica obrigatoriedade. 
– Normalmente, os SGBDR exigem que as colunas que 
compõem a chave primária (e estrangeira) sejam obrigatórias 
(não nulas). 
Claudio Lobo Banco de Dados 1 Slide 12
Abordagem Relacional
• Restrições de Integridade de Dados.
– Para tentar garantir a integridade de um banco de dados, os 
SGBD oferecem o mecanismo de restrições de integridade.
• Conjunto de regras de consistência de dados que é 
garantida pelo próprio SGBD. 
– No caso da abordagem relacional, costuma-se classificar as 
restrições de integridade nas seguintes categorias:
• De Domínio.
• De Nulo (Null).
• De Chave.
• De Integridade Referencial.
Claudio Lobo Banco de Dados 1 Slide 13
Transformações entre Modelos
Transformações entre Modelos
Claudio Lobo Banco de Dados 1 Slide 14
Transformações entre Modelos
• Foram vistas duas formas de modelagem de dados, 
que se propõem a modelar os dados em diferentes 
níveis de abstração:
– Abordagem ER.
• Voltada à modelagem de dados de forma independente do 
SGBD considerado. 
• Gera o modelo conceitual.
– Abordagem Relacional. 
• Modela os dados a nível de SGBDR.
• Gera o modelo lógico.
Claudio Lobo Banco de Dados 1 Slide 15
Transformações entre Modelos
• Um MER pode ser implementado por meio de diversos 
modelos relacionais.
– Todos podem ser considerados uma implementação correta do 
desse MER. 
– Contudo, estes diferentes modelos relacionais podem:
• Resultar em diferentes performances do sistema construído 
sobre o banco de dados.
• Implicar maior facilidade ou dificuldade de desenvolvimento 
e manutenção do sistema construído sobre o SGBD.
Claudio Lobo Banco de Dados 1 Slide 16
Transformação ER → Relacional
• Procura-se alcançar dois objetivos centrais:
– Obter um banco de dados que permita boa performance de 
instruções de consulta e alteração do banco de dados.
– Obter um banco de dados que simplifique o desenvolvimento e 
a manutenção de aplicações.
• Para alcançar esses objetivos, é conveniente:
– Evitar junções, tendo os dados necessários à consulta numa 
única linha.
• Junções envolvem diversos acessos a disco.
– Diminuir o número de chaves primárias.
• O SGBD usa um índice para cada chave primária. Índices 
ocupam espaço em disco. Inserir/Remover entradas em um 
índice pode exigir diversos acessos a disco. 
Claudio Lobo Banco de Dados 1 Slide 17
Transformação ER → Relacional
• Passos:
– Tradução inicial de entidades e respectivos atributos.
– Tradução de relacionamentos e respectivos atributos.
– Tradução de generalizações/especializações.
•
Claudio Lobo Banco de Dados 1 Slide 18
Transformação ER → Relacional
• Tradução inicial de entidades e respectivos atributos.
– Cada entidade vira uma tabela.
– Cada atributo da entidade vira uma coluna desta tabela.
• Os atributos identificadores da entidade correspondem às 
colunas que compõem a chave primária da tabela.
– É uma tradução inicial.
• Pode ser que tabelas definidas nesta etapa sejam fundidas.
– Caso de algumas alternativas de implementação de 
relacionamentos 1:1 e de generalização/especialização.
Claudio Lobo Banco de Dados 1 Slide 19
Transformação ER → Relacional
• Tradução inicial de entidades e respectivos atributos.
• PESSOA (CpfPessoa, Nome, Endereco, DataAdm, 
 DataNAsc)
Claudio Lobo Banco de Dados 1 Slide 20
Transformação ER → Relacional
• Tradução inicial de entidades e respectivos atributos.
– Regras para nomes de entidades e atributos:
• É conveniente manter os nomes de colunas curtos.
– Ex.: DataNasc, em vez de Data de Nascimento.
• O nome de uma coluna não deve conter espaços em 
branco.
– Ex.: DataNasc, em vez de Datade Nascimento.
• Nomes de atributos compostos de diversas palavras devem 
ser abreviados.
– Ex.: DataNasc, em vez de Data de Nascimento.
Claudio Lobo Banco de Dados 1 Slide 21
Transformação ER → Relacional
• Tradução inicial de entidades e respectivos atributos.
– Regras para nomes de entidades e atributos:
• Não é recomendado incluir no nome de uma coluna o nome 
da tabela em que ela aparece.
– A coluna chave primária da entidade é exceção a essa 
regra.
– Como esta coluna pode aparecer em outras tabelas na 
forma de chave estrangeira, é recomendável que os 
nomes das colunas que compõem a chave primária 
sejam sufixadas ou prefixadas com o nome ou sigla da 
tabela na qual aparecem como chave primária.
– Ex.: CpfPessoa.
Claudio Lobo Banco de Dados 1 Slide 22
Transformação ER → Relacional
• Tradução inicial de entidades e respectivos atributos.
– Relacionamentos Identificadores (Entidade Fraca)
• A tabela que possui o Relacionamento Identificador 
(Entidade Fraca) HERDA, como parte de sua chave 
primária, o atributo identificador da tabela "forte". 
DEPENDENTE (CpfEmpregado, CodDependente, Nome)
Claudio Lobo Banco de Dados 1 Slide 23
Transformação ER → Relacional
• Tradução de relacionamentos e respectivos atributos.
– Para Relacionamentos, o fator determinante para a tradução 
a adotar é a cardinalidade mínima e máxima das entidades 
que participam do relacionamento. 
– É interessante conhecer as três formas básicas de tradução de 
relacionamentos para o modelo relacional:
• Tabela própria.
• Colunas adicionais dentro da tabela da(s) entidade(s).
• Fusão de tabelas de entidades.
Claudio Lobo Banco de Dados 1 Slide 24
Transformação ER → Relacional
• Tradução de relacionamentos e respectivos atributos.
– Tradução usando Tabela própria.
• O relacionamento torna-se uma tabela própria. 
• Esta tabela contém as colunas que herdam:
– Os identificadores das entidades relacionadas.
» Comporão a chave primária dessa tabela.
– Os atributos do relacionamento.
• Cada uma das colunas que corresponde ao identificador de 
uma entidade é chave estrangeira em relação à tabela 
que implementa a entidade referenciada.
Claudio Lobo Banco de Dados 1 Slide 25
Transformação ER → Relacional
• Tradução de relacionamentos e respectivos atributos.
– Tradução usando Tabela própria.
ENGENHEIRO (CodEng, Nome)
PROJETO (CodProj, Titulo)
ALOCAÇÃO (CodEng, CodProj, Funcao)
CodEng referencia Engenheiro
CodProj referencia Projeto
Claudio Lobo Banco de Dados 1 Slide 26
Transformação ER → Relacional
• Tradução de relacionamentos e respectivos atributos.
– Tradução usando colunas adicionais dentro da tabela da(s) 
entidade(s).
• Só é possível quando uma das entidades que participa do 
relacionamento tem cardinalidade máxima um.
• A tabela com entidade de cardinalidade máxima 1 HERDA:
– As colunas do identificador da entidade relacionada.
» Estas colunas formam a chave estrangeira em 
relação à entidade relacionada.
– As colunas correspondentes aos atributos do 
relacionamento.
Claudio Lobo Banco de Dados 1 Slide 27
Transformação ER → Relacional
• Tradução de relacionamentos e respectivos atributos.
– Tradução usando colunas adicionais dentro da tabela da(s) 
entidade(s).
DEPARTAMENTO (CodDep, Nome)
EMPREGADO (CodEng, Nome, CodDep, DataLot)
CodDep referencia Departamento
Claudio Lobo Banco de Dados 1 Slide 28
Transformação ER → Relacional
• Tradução de relacionamentos e respectivos atributos.
– Tradução com Fusão de tabelas de entidades.
• Só pode ser aplicada quando o relacionamento é de tipo 
1:1. 
• A tradução consiste em implementar todos atributos de 
ambas entidades, bem como os atributos do 
relacionamento em uma única entidade.
Claudio Lobo Banco de Dados 1 Slide 29
Transformação ER → Relacional
• Tradução de relacionamentos e respectivos atributos.
– Tradução com Fusão de tabelas de entidades.
PAISTRATADO (CodPais, Nome, DataCeleb, Local)
Claudio Lobo Banco de Dados 1 Slide 30
Transformação ER → Relacional
• Tradução de relacionamentos e respectivos atributos.
– A regra específica que deve ser usada na tradução de um 
relacionamento é determinada pelas cardinalidades mínima 
e máxima das entidades envolvidas nos relacionamentos.
Claudio Lobo Banco de Dados 1 Slide 31
Transformação ER → Relacional
• Tradução de relacionamentos e respectivos atributos.
Relacionamentos 1:1
Regra de Implementação
Tabela Própria Adição de Coluna Fusão de Tabelas
(0,1)──◊──(0,1) Talvez Sim Não
(0,1)──◊──(1,1) Não Talvez Sim
(1,1)──◊──(1,1) Não Talvez Sim
Claudio Lobo Banco de Dados 1 Slide 32
Transformação ER → Relacional
• Tradução de relacionamentos e respectivos atributos.
Relacionamentos 1:n
Regra de Implementação
Tabela Própria Adição de Coluna Fusão de Tabelas
(0,1)──◊──(0,n) Talvez Sim Não
(0,1)──◊──(1,n) Talvez Sim Não
(1,1)──◊──(0,n) Não Sim Não
(1,1)──◊──(1,n) Não Sim Não
Claudio Lobo Banco de Dados 1 Slide 33
Transformação ER → Relacional
• Tradução de relacionamentos e respectivos atributos.
Relacionamentos n:n
Regra de Implementação
Tabela Própria Adição de Coluna Fusão de Tabelas
(0,n)──◊──(0,n)
Sim Não Não(0,n)──◊──(1,n)
(1,n)──◊──(1,n)
Claudio Lobo Banco de Dados 1 Slide 34
Transformação ER → Relacional
• Tradução de Especialização/Generalização.
– Para hierarquias de generalização/especialização na 
abordagem relacional, há duas alternativas a considerar:
• Uso de uma única tabela para toda hierarquia de 
generalização/especialização. 
• Uso de uma tabela para cada entidade.
Claudio Lobo Banco de Dados 1 Slide 35
Transformação ER → Relacional
• Tradução de Especialização/Generalização.
– Uso de uma única tabela para toda hierarquia de 
generalização/especialização.
• Esta tabela conterá:
– A chave primária correspondente ao identificador da 
entidade mais genérica (“entidade pai”).
– Uma coluna Tipo, que identifica que tipo de entidade 
especializada está sendo representada por cada linha 
da tabela.
– Uma coluna para cada atributo da entidade genérica.
– Colunas referentes aos relacionamentos dos quais 
participa a entidade genérica e que sejam 
implementados através da alternativa de adicionar 
colunas à tabela da entidade genérica.
Claudio Lobo Banco de Dados 1 Slide 36
Transformação ER → Relacional
• Tradução de Especialização/Generalização.
– Uso de uma única tabela para toda hierarquia de 
generalização/especialização.
• Esta tabela conterá:
– Uma coluna para cada atributo de cada entidade 
especializada.
– Colunas referentes aos relacionamentos dos quais 
participa cada entidade especializada e que sejam 
implementados através da alternativa de adicionar 
colunas à tabela da entidade.
Os valores destas colunas serão opcionais, já que só 
existirão valores quando a linha for referente à entidade 
especializada em questão.
Claudio Lobo Banco de Dados 1 Slide 37
Transformação ER → Relacional
• Tradução de Especialização/Generalização.
– Uso de uma única tabela para toda hierarquia de 
generalização/especialização. 
INSTRUMENTO (CodInstr, NrCordas, Tipo)
VIOLONISTA (Rg, Nome, CodInstr)
CodInstr referencia INSTRUMENTO
Claudio Lobo Banco de Dados 1 Slide 38
Transformação ER → Relacional
• Tradução de Especialização/Generalização.
– Uso de uma tabela para cada entidade.
• Nesse caso, cria-se uma tabela para cada entidade que 
compõe a hierarquia:
– Aplicando as regras correspondentes à implementação 
de entidades e relacionamentos já vistas.
– Incluindo a chave primária da tabela correspondente à 
entidade genérica em cada tabela correspondente a 
uma entidade especializada.
Claudio Lobo Banco de Dados 1 Slide 39
Transformação ER → Relacional
• Tradução de Especialização/Generalização.– Uso de uma tabela para cada entidade. 
SOPRO (CodInstr, Tipo)
CORDAS (CodInstr, NrCordas)
VIOLONISTA (Rg, Nome, CodInstr)
CodInstr referencia CORDAS
Claudio Lobo Banco de Dados 1 Slide 40
Transformação ER → Relacional
• Tradução de Especialização/Generalização.
– Comparação entre as abordagens
Tabela única Uma tabela para cada entidade
Todos os dados (tanto da entidade 
genérica quanto das especializações) 
estão em uma única linha. 
Os dados encontram-se separados em 
várias tabelas.
Gera colunas cujos dados são opcionais 
(ou seja, podem não ser preenchidos)
As colunas opcionais que aparecem são 
apenas aquelas referentes a atributos que 
podem ser vazios do ponto de vista da 
aplicação.
Não há necessidade de realizar junções 
para obter dados referentes a uma 
ocorrência de entidade genérica 
juntamente com uma ocorrência de 
entidade especializada.
Necessita junções para obter valores 
correspondentes à entidade genérica e 
suas especializações.
A chave primária é armazenada uma única 
vez
A chave primária aparece tanto na tabela 
referente à entidade genérica quanto na 
tabela referente à entidade especializada.
Claudio Lobo Banco de Dados 1 Slide 41
Transformação ER → Relacional
• Tradução de Atributos Multivalorados.
– Atributos multivalorados não são desejáveis em DER, já que 
não possuem implementação direta na abordagem relacional. 
– Normalmente, são traduzidos em uma Entidade.
– Entretanto, esta implementação pode trazer problemas de 
performance. Deve ser analisado se:
• Existem casos em que a entidade não possui mais que 
duas instâncias do atributo. 
– Quando isso ocorrer, é suficiente armazenarmos 
apenas os dois atributos.
• Há consultas ao SGBD usando o atributo multivalorado 
como critério de seleção.
– Se não houver, não deve ser gerada outra entidade.
Claudio Lobo Banco de Dados 1 Slide 42
Transformação ER → Relacional
• Tradução de Atributos Multivalorados.
Abordagem usando outra entidade
CLIENTE (CpfCli, Nome)
TELEFONE (CpfCli, NúmeroTel)
CpfCli referencia CLIENTE
Abordagem usando uma única entidade
CLIENTE (CpfCli, Nome, NúmeroTel1, NúmeroTel2)
	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
	Slide 35
	Slide 36
	Slide 37
	Slide 38
	Slide 39
	Slide 40
	Slide 41
	Slide 42

Outros materiais