Post on 04-Jan-2016
description
1
Modelo Relacional
ProfessorProfessor Edson Emílio Scalabrin
telefone: 0xx41-330-1786e-mail: scalabrin@ppgia.pucpr.br
download: http://www.ppgia.pucpr.br/~scalabrin
2
Modelo RelacionalModelo Relacional
ObjetivoObjetivo• introduzir os principais introduzir os principais
conceitos do modelo de dados conceitos do modelo de dados relacionalrelacional
3
Modelo RelacionalModelo Relacional
Sistemas Operacionais: Sistemas Operacionais: Geralmente implementados Geralmente implementados através de banco de dados relacionais.através de banco de dados relacionais.
Sistemas Analíticos: Sistemas Analíticos: Geralmente implementados através Geralmente implementados através de um banco de dados dimensional.de um banco de dados dimensional.
SISTEMA OPERACIONAL SISTEMA ANALÍTICO
PROJETOTOP-DOWN
PROJETOBOTTOM-UP
4
Modelo RelacionalModelo Relacional Definição: Definição: Representa os dados como uma coleção de Representa os dados como uma coleção de
tabelas.tabelas.
Chave_produto Descrição
Tabela Produto
Chave_loja endereçoTabela Loja
Marca Categoria Preço Compra Preço Venda
nome
Chave_venda Chave_produto
Tabela Venda
notaquantidade dataChave_loja
5
RelacionamentoRelacionamento No modelo relacional, as tabelas mantém um relacionamento
entre si. No exemplo abaixo, os registros da tabela venda se relacionam com os registros das tabelas loja e produto.
b
a
23
4loja
venda No modelo relacional os dados do produto não
precisam ser duplicados para cada registro de venda.
Y
X
produto
1
6
Implementação Física do Implementação Física do RelacionamentoRelacionamento
Os relacionamentos são implementados fisicamente através Os relacionamentos são implementados fisicamente através do relacionamento das chaves primárias de cada tabela que do relacionamento das chaves primárias de cada tabela que compõe o relacionamento.compõe o relacionamento.
Chave_produto Descrição
Tabela Produto
Chave_loja endereçoTabela Loja
Marca Categoria Preço Compra Preço Venda
nome
Chave_venda Chave_produtoTabela Venda
notaquantidade dataChave_loja
Chaves estrangeiras
7
Formas NormaisFormas Normais Regras desenvolvidas para:Regras desenvolvidas para:
• Evitar inconsistências lógicas nas operações de Evitar inconsistências lógicas nas operações de atualização das tabelas.atualização das tabelas.
• Evitar redundância na organização das tabelas.Evitar redundância na organização das tabelas.
Primeira Forma Normal
SegundaForma Normal
TerceiraForma Normal
Diminui o desempenho
Aumenta as restrições
8
Primeira Forma Normal – Primeira Forma Normal – 1FN1FN
Definição: Definição: o domínio de todos os atributos das tabelas deve ser atômico (indivisível)• Cada coluna da tabela deve conter só um tipo de atributos
id_pessoaid_pessoa nome contatoTabela Pessoa
id_pessoaid_pessoa nome endereçoTabela Pessoa telefone
NãoSatisfaz1FN
Satisfaz 1FN
Brigadeiro Franco233-3932paulo@hotmail.com
9
Segunda Forma Normal – Segunda Forma Normal – 2FN2FN
Definição: cada tabela deve satisfazer a 1FN, cada registro deve ter uma chave primária e cada campo não chave deve depender totalmente da chave primária.
id_pessoaid_pessoa nome endereço conta saldo
Não Satisfaz 2FN
Satisfaz 2FN
agência endereço_agência
os campos dependem apenas de parte da chave primária, alguns apenas de conta outros apenas de id_pessoa
chave primária: id_pessoa, conta
conta saldo agência endereço_agência
id_pessoaid_pessoa nome endereço conta
chave primária: id_pessoa
chave primária: conta
10
Terceira Forma Normal – Terceira Forma Normal – 3FN3FN
Definição: cada tabela deve satisfazer a 2FN e cada atributo não chave primária depende diretamente da chave primária.
Não Satisfaz 3FN
Satisfaz 3FN
endereço_agência
conta saldo agência endereço_agência
id_pessoaid_pessoa nome endereço conta
o endereço da agência não depende da conta, mas da agência.
conta saldo agência
agência
11
IntegridadeIntegridade Devem ser observados dois tipos de integridade:Devem ser observados dois tipos de integridade:
• a) a) Integridade de Entidades (cada tabela deve ter (cada tabela deve ter exatamente uma chave primária)exatamente uma chave primária)
• b) b) Integridade Referencial (cada chave estrangeira deve (cada chave estrangeira deve ser consistente com sua chave primária correspondente)ser consistente com sua chave primária correspondente)
id_pessoa nome endereço id_empresa
id_empresa nome_da_empresa endereço
Tabela Empresa
Tabela Pessoa
Chave estrangeiraChave
primária
12
Integridade ReferencialIntegridade Referencial O valor da chave estrangeira deve existir na tabela empresa ou
ser NULO. Quando um registro da tabela empresa for excluído, todas os
registros da tabela pessoa que façam referência a esse registro devem ter o valor da sua chave estrangeira alterado para NULO.
id_pessoa nome endereço id_empresa
id_empresa nome_da_empresa endereço
Tabela Empresa
Tabela Pessoa
1 Adao YYY 2
2 ZZZZ WWW
2 Eva YYY 2
13
Características do Modelo Características do Modelo RelacionalRelacional
Reduz a redundância das informações armazenadas, diminuindo o Reduz a redundância das informações armazenadas, diminuindo o espaço total gasto para armazenar-las.espaço total gasto para armazenar-las.
Simplifica significativamente as operações de escrita, tanto na Simplifica significativamente as operações de escrita, tanto na inserção de novas informações quanto a alteração de informações inserção de novas informações quanto a alteração de informações existentes.existentes.
Complica as operações de leitura. Quanto mais normalizado for o Complica as operações de leitura. Quanto mais normalizado for o modelo do banco de dados operacional, mais lenta e trabalhosa será modelo do banco de dados operacional, mais lenta e trabalhosa será a operação de leitura.a operação de leitura.
1a FORMANORMAL
2a FORMANORMAL
3a FORMANORMAL
Redução no volume de dados e aumento
da consistência
Desempenho na leitura
14
Modelo Relacional: Modelo Relacional: ConclusõesConclusões
Operação: ESCRITA:Operação: ESCRITA: • Apenas um pequeno número de registros precisa ser alterado. Apenas um pequeno número de registros precisa ser alterado. • Por exemplo, para associar uma nova conta ao usuário os dados do Por exemplo, para associar uma nova conta ao usuário os dados do
usuário não precisam ser recadastrados.usuário não precisam ser recadastrados.
Operação: LEITURA:Operação: LEITURA: • Várias tabelas precisam ser associadas para obter a resposta. Várias tabelas precisam ser associadas para obter a resposta. • Por exemplo, para obter o faturamento total que uma loja obteve Por exemplo, para obter o faturamento total que uma loja obteve
com um dado produto, num dado período. com um dado produto, num dado período.
ESCRITA LEITURA