Fazer download em pptx, pdf ou txt
Fazer download em pptx, pdf ou txt
Você está na página 1de 43

Modelagem para chegar ao Banco de Dados

1.Análise de Requisitos

4.Modelo
3.Modelo
2.Modelagem Lógico de Físico
Conceitual Dados
de Dados

Prof. Eduardo Benjamin Banco de Dados


Normalizar para reduzir redundância de dados
Normalização é o processo
de organização de dados em
um banco de dados. Isso
inclui a criação de tabelas e
o estabelecimento de
relações entre essas tabelas
de acordo com as regras
projetadas para proteger os
dados e tornar o banco de
dados mais flexível,
eliminando a redundância e
a dependência inconsistente.

Prof. Eduardo Benjamin Banco de Dados


O que é Normalização de um Banco de Dados

Normalização é o processo de organização de dados em


um banco de dados. Isso inclui a criação de tabelas e o
estabelecimento de relações entre essas tabelas de
acordo com as regras projetadas para proteger os dados
e tornar o banco de dados mais flexível, eliminando a
redundância e dependência inconsistente.

Prof. Eduardo Benjamin Banco de Dados


O que é Normalização de um Banco de Dados

Há algumas regras para normalização do banco de dados. Cada


regra é chamada de "normal Form". Se a primeira regra é
observada, o banco de dados é considerado como "primeira forma
normal". Se as três primeiras regras forem observadas, o banco de
dados é considerado como sendo "terceiro formato normal".
Embora outros níveis de normalização sejam possíveis, a terceira
forma normal é considerada o nível mais alto necessário para a
maioria dos aplicativos.

Prof. Eduardo Benjamin Banco de Dados


Normalização

1 Forma Normal
a

2 Forma Normal
a

3a Forma Normal
Prof. Eduardo Benjamin Banco de Dados
1a Forma Normal
"Uma Tabela está na Primeira Forma Normal quando seus
atributos não contém grupos de Repetição".

1º) Se um pai tiver mais de um filho, teremos que


Tabela Alunos na 1a FN digitar o Nome do Pai diversas vezes, tantas
quantos forem os filhos.
Nome do Aluno
Número da Matrícula do Aluno
Série do Aluno
2º ) Pode ser que por erro de digitação o Nome
Nome do Pai do Aluno dos Pais não seja digitado exatamente igual
todas as vezes,o que pode acarretar problemas
na hora de fazer pesquisas ou emitir relatórios.
Prof. Eduardo Benjamin Banco de Dados
Resolvendo o problema da 1a Forma Normal
A resolução para este problema é simples: Criamos uma tabela separada
para a informação dos Pais e Relacionamos a Tabela Pais com a Tabela Filhos
através de um relacionamento do tipo Um para Vários, ou seja, um Pai pode
ter Vários Filhos.

Tabela de Pais Tabela de Alunos


Id_Pai Id_Pai
Nome do Pai Nome do Aluno
Endereço do Pai Número da Matrícula do Aluno
Os outros dados do Pai Série do Aluno

Prof. Eduardo Benjamin Banco de Dados


2a Forma Normal
"Uma tabela está na Segunda Forma Normal 2FN se ela estiver na 1FN e
todos os atributos não chave forem totalmente dependentes da chave
primária (dependente de toda a chave e não apenas de parte dela)."

1º) Neste caso, devemos observar se todos os


Tabela de Cursos na 2 FN a
campos que não fazem parte da chave dependem
de todos os campos que compõem a chave.
Número da Matrícula
Código do Curso
Nota de Avaliação do Curso
2º ) Se algum campo depender somente de parte
Descrição do Curso
da chave composta, então este campo deve
pertencer a outra tabela.
Prof. Eduardo Benjamin Banco de Dados
2a Forma Normal
A Chave Primária Composta é formada pela combinação dos Campos Número
da Matrícula e Código do Curso.
O Campo Nota de Avaliação do curso depende tanto do Código do Curso
quanto do Número da Matrícula, porém o campo Descrição do Curso,
depende apenas do Código do Curso.

Com o código do curso é possível localizar a respectiva descrição,


independentemente do Número da Matrícula. Com isso temos um campo
que não faz parte da Chave Primária e depende apenas de um dos campos
que compõem a chave Primária Composta, esta tabela não está na Segunda
Forma Normal.
Prof. Eduardo Benjamin Banco de Dados
Resolvendo o problema da 2a Forma Normal
A Resolução para este problema também é simples: "Dividimos a
Tabela que não está na Segunda Forma Normal em duas outras
tabelas, conforme indicado pela figura abaixo, sendo que as duas
tabelas resultantes estão na Segunda Forma Normal.

Tabela de Avalição do Tabela Curso


Curso
Número da Matrícula Código do Curso
Código do Curso
Descrição do Curso
Nota de Avaliação do Curso

Prof. Eduardo Benjamin Banco de Dados


3a Forma Normal
Uma tabela está
na Terceira Forma
Normal 3FN se ela Tabela de Funcionário

estiver na 2FN e se Número da Matrícula


nenhum campo que Nome do Funcionário
não for chave Código do Cargo

primária depender Descrição do Cargo

de outro campo que


não for chave Esta Tabela não está na 3a Normal.
primária.

Prof. Eduardo Benjamin Banco de Dados


Resolvendo o problema da 3a Forma Normal
A Solução deste problema é simples. Novamente basta dividir a tabela em
duas outras, conforme indicado pela figura a seguir. As duas tabelas
resultantes estão na Terceira Forma Normal.

Tabela Funcionário Tabela Cargo

Número da Matrícula Código do Cargo


Nome do Funcionário Descrição do Cargo
Código do Cargo

Prof. Eduardo Benjamin Banco de Dados


O que é Normalização e para que ela serve?

Normalização é uma ferramenta usada no projeto lógico


que serve para reestruturar tabelas e atributos, reduzindo
assim redundâncias e permitindo o correto crescimento
do banco de dados. Por meio dela que bancos com muita
movimentação garantem sua integridade após remoção,
inserção e alteração dos dados.

Prof. Eduardo Benjamin Banco de Dados


Quantas são as formas normais?
O processo de normalização conta com 5 formas:
A partir da 3° forma normal diz-se que o banco de
1° Forma Normal dados já se encontra normalizado. A 4FN e a 5FN
2° Forma Normal são usadas para refinar ainda mais o banco. No
entanto alguns projetos decidem parar na 3FN pois
3° Forma Normal as outras formas, dependendo da situação, podem
4° Forma Normal exigir um pouco mais de processamento. Nesse
post, vamos abordar apenas as 3 primeiras, porque
5° Forma Normal são as mais usadas.

Prof. Eduardo Benjamin Banco de Dados


Problemas de tabelas não normalizadas

Problemas de alteração
Problemas de Inserção Problemas de exclusão
Para atualizar o telefone do
Só é possível inserir
cliente todos os outros registros
um cliente se o mesmo Se os produtos
deverão ser atualizados.
adquirir um produto adquiridos por algum
Para atualizar o preço do
Só é possível inserir cliente forem excluídos,
produto todos os registros
um produto se algum os dados cadastrais do
desse mesmo produto deverão
cliente adquiri-lo mesmo se perderão.
ser atualizados.

Prof. Eduardo Benjamin Banco de Dados


Formas normais e suas aplicações
1FN → 2FN → 3FN

As formas normais são sequenciais, ou seja, se um banco se


encontra na terceira forma normal, isso também significa que o
mesmo está na segunda e também na primeira. Por isso
devemos sempre começar a normalização pela primeira forma
normal, para que não hajam problemas mais a frente na nossa
normalização.

Prof. Eduardo Benjamin Banco de Dados


Exercícios de Normalização

Prof. Eduardo Benjamin Banco de Dados


Exercícios de normalização – Exercício 01

Prof. Eduardo Benjamin Banco de Dados


Exercícios de normalização – Exercício 01

Tabela Empregado Tabela Gerente Tabela Projeto


Código Nome Código Código Nome Código Código Nome Dt-Início Qtd. Hrs
Gerente Projeto
PK
Depto Depto Projeto Projeto Trabalhadas
PK PK
PK

Tabela Departamento Tabela Empregado Tabela Detalhes do Projeto


Código Depto Nome Código Nome Código Cargo Código Código Código
Depto Projeto Gerente Funcionário
PK Depto
PK PK PK PK

Prof. Eduardo Benjamin Banco de Dados


Exercícios de normalização – Exercício 02

Prof. Eduardo Benjamin Banco de Dados


Exercícios de normalização – Exercício 02

Tabela Ordem de Compra Tabela Fornecedor Tabela Material


Código Data Código Código Nome Endereço Código Descrição Valor
O.C. Emissão Forn. Forn. Forn. Forn. Material Material Unitário
PK PK PK

Detalhes do Material
Código Código Qtd. Vlr. Total Vlr. Total
O.C. Material Comprada Item O.C
PK

Prof. Eduardo Benjamin Banco de Dados


Exercícios de normalização – Exercício 03
Tabela de Notas Fiscais

Núm Dt. Código Nome End. CNPJ Código Desc. Qtd. Vlr. Vlr. Vlr.Total
NF Emissão Cliente Cliente Cliente Cliente Produto Produto Venda Unit. Total N. Fiscal

Normalizar esta tabela para que ela passe pela 1a


FN, 2a FN e, finalmente pela 3a FN

Prof. Eduardo Benjamin Banco de Dados


Exercícios de normalização – Exercício 03
Tabela de Notas Fiscais

Núm. Dt. Código Nome End. CNPJ Código Desc. Qtd. Vlr. Vlr. Vlr.Total
NF Emissão Cliente Cliente Cliente Cliente Produto Produto Venda Unit. Total N. Fiscal

Tabela de Notas Fiscais Tabela de Clientes


Núm. Dt. Código Vlr.Total Código Nome End. CNPJ
NF Emissão Cliente N.Fiscal Cliente Cliente Cliente Cliente
PK PK

Tabela de Produtos Tabela de Detalhes da NF


Código Desc. Vlr. Núm. Cod. Qtd. Vlr.
Produto Produto Unit. NF Produto Venda Total
PK PK

Prof. Eduardo Benjamin Banco de Dados


Exercícios de normalização – Exercício 04
Tabela de Gestão de Projetos

Código Nome Código Nome Cargo Salário Horas


Projeto Projeto Funcionário Funcionário Funcionário Funcionário Trabalhadas

Normalizar esta tabela para que ela passe pela 1a


FN, 2a FN e, finalmente pela 3a FN

Prof. Eduardo Benjamin Banco de Dados


Exercícios de normalização – Exercício 04
Tabela de Gestão de Projetos

Código Nome Código Nome Cargo Salário Horas


Projeto Projeto Funcionário Funcionário Funcionário Funcionário Trabalhadas

Tabela de Projeto Tabela de Funcionário


Código Nome Código Nome Cargo Salário
Projeto Projeto Funcionário Funcionário Funcionário Funcionário
PK PK

Tabela de Detalhes do Projeto


Código Código Horas
Projeto Funcionário Trabalhadas
PK PK

Prof. Eduardo Benjamin Banco de Dados


Exercícios de normalização – Exercício 05
Tabela de Vendedor

Normalizar esta tabela para que ela passe pela 1a


FN, 2a FN e, finalmente pela 3a FN

Prof. Eduardo Benjamin Banco de Dados


Exercícios de normalização – Exercício 05
Tabela de Vendedor

Tabela de Vendedor Tabela de Produto


Código Nome Endereço Cidade Fone Código Desc. Estoque Vlr. Unit
Vendedor Produto Produto
PK PK

Tabela Fatura Tabela Detalhes da Fatura


Núm. Dt. Código Total da Núm. Código Qtd. Total Venda
Fatura Emissão Vendedor Fatura Fatura Produto Vendida (do produto)
PK

Prof. Eduardo Benjamin Banco de Dados


Exercícios de normalização – Exercício 06
Tabela de Fatura

Normalizar esta tabela para que ela passe pela 1a


FN, 2a FN e, finalmente pela 3a FN

Prof. Eduardo Benjamin Banco de Dados


Exercícios de normalização – Exercício 06
Tabela de Fatura

Tabela fatura Tabela Cliente Tabela Produto


Núm. Data Total Código Nome End. Código Desc. Foto Preço
Fatura Fatura Fatura Cliente Cliente Cliente Produto Produto Produto Unitário

Tabela de Detalhes da Fatura


Núm Código Qtd. Preço Total
Fatura Produto Venda (do produto)

Prof. Eduardo Benjamin Banco de Dados


Recapitulando a Normalização

Prof. Eduardo Benjamin Banco de Dados


Quando a nossa tabela está na 1ª Forma Normal
Podemos dizer que uma tabela se encontra na Primeira Forma
Normal se:

Possui chave primária.

Não possui grupos repetitivos.

Todos os seus atributos são


atômicos, ou seja, não precisa ser
decomposto.
Prof. Eduardo Benjamin Banco de Dados
Como chegar na 1ª FN
Para chegar a primeira forma normal devemos: Determinar o atributo que possui
característica de chave primária, tornar todos atributos atômicos, transformar o
grupo repetitivo em uma nova tabela, levando a chave primária da tabela na
qual estava, para manter a ligação entre a tabela criada e a original. Depois
aplicamos também sobre essa nova tabela a primeira forma normal.

Tabela (cod_cliente, nome_cliente, tel1, tel2, endereco, cod_produto, nome_produto,


preco, quantidade) ✗

Cliente (cod_cliente, nome_cliente, tel1, tel2, rua, bairro, cidade, estado) ✓ 

Produto (cod_cliente, cod_produto, nome_produto, preco, quantidade) ✓  

Prof. Eduardo Benjamin Banco de Dados


Quando a nossa tabela está na 2ª Forma Normal
Podemos dizer que uma tabela se encontra na Segunda Forma
Normal se:

Está na primeira forma normal.

Não possui dependências parciais da


chave primária.

Prof. Eduardo Benjamin Banco de Dados


Como chegar na 2ª FN
Para chegar a segunda forma normal verifique se a chave primária dessa tabela é composta ou
simples. Se for simples, já se encontra na segunda forma normal. Se for composta, verifique se todos
os atributos da relação dependem de todos os atributos que compõem a chave primária. Por
exemplo, se a chave primária é composta dos atributos A , B e o campo C em questão depende
somente de B. Se sim, já está na segunda forma normal.

Se não, pegue o atributo (C) que depende parcialmente da chave primária e crie uma nova tabela.
Essa tabela terá como chave primária o campo da chave primária original que determinou o campo C
(nesse exemplo é o B) e adicione como atributo simples da relação o C. Veja o exemplo abaixo: (Obs:
➙ significa “determina”, ou seja, define, indica, aponta)

Cliente (cod_cliente, nome_cliente, tel1, tel2, rua, bairro, cidade, estado) 


(não possui chave primária composta) ✓

Produto (cod_cliente, cod_produto, nome_produto, preco, quantidade) ✗

Prof. Eduardo Benjamin Banco de Dados


Como chegar na 2ª FN
Veja o exemplo abaixo: (Obs: ➙ significa “determina”, ou seja, define, indica, aponta)

cod_produto ➙ nome_produto, preco (dependência parcial)

cod_cliente, cod_produto ➙ quantidade (dependência total)

Produto (cod_produto, nome_produto, preco) ✓

Compra (cod_cliente, cod_produto, quantidade) ✓

Prof. Eduardo Benjamin Banco de Dados


Quando a nossa tabela está na 3ª Forma Normal
Podemos dizer que uma tabela se encontra na Terceira Forma
Normal se:

Está na segunda forma normal;

Se nenhum dos campos foram determinados


transitivamente pela chave primária.

Prof. Eduardo Benjamin Banco de Dados


Como chegar na 3ª FN
Para chegar a terceira forma normal verifique os campos que não são chave primária. Se
algum desses campos não chave possuir dependência com outro campo não chave, então
essa tabela não se encontra na terceira forma normal. Veja o exemplo abaixo:
Carro (placa, modelo, km_rodados, cod_fabricante, nome_fabricante) ✗
Placa, modelo ➙ km_rodados
Placa, modelo ➙cod_fabricante
Placa, modelo ➙ nome_fabricante
Cod_frabricante ➙ nome_fabricante
Carro (placa, modelo, kmRodados, cod_fabricante) ✓

Fabricante (cod_fabricante, nome_fabricante) ✓

Prof. Eduardo Benjamin Banco de Dados


1a Forma Normal (1FN ou 1NF)

Não está na
1FN

Está na 1FN

Prof. Eduardo Benjamin Banco de Dados


2a Forma Normal (2FN ou 2NF)
• Uma relação está na 2 FN se e somente se está na
1FN e todos os atributos não chave são totalmente
dependentes da chave primária;
• Diz respeito às chaves primárias compostas;
• Se a chave primária de uma relação não é
composta e a relação está na 1FN, ela está também
na 2FN;
• Uma relação que está na 1 FN pode não estar na
2FN se sua chave for composta.
Prof. Eduardo Benjamin Banco de Dados
2a Forma Normal (2FN ou 2NF)
• Uma relação está na 2 FN se e somente se está na
1FN e todos os atributos não chave são totalmente
dependentes da chave primária;
• Diz respeito às chaves primárias compostas;
• Se a chave primária de uma relação não é
composta e a relação está na 1FN, ela está também
na 2FN;
• Uma relação que está na 1 FN pode não estar na
2FN se sua chave for composta.
Prof. Eduardo Benjamin Banco de Dados
3a Forma Normal (3FN ou 3NF)
• Uma relação está na 3 FN se e somente se ela está na 2
FN e seus atributos não chave são mutuamente
independentes;
• Os atributos são considerados mutuamente
independentes quando nenhum atributo é
funcionalmente dependente de nenhuma combinação
dos outros, exceto da chave primária;
• A título de simplificação a terceira forma normal
considera que a relação terá somente uma chave, ou
seja, a chave primária.
Prof. Eduardo Benjamin Banco de Dados
Integridades de um banco de dados
Integridade referencial: os relacionamentos lógicos entre as entidades
serão forçados pelos SGDB.

Integridade semântica: o dado de uma coluna sempre será do tipo de


dado definido na criação da coluna.

Integridade de entidade: cada linha de uma tabela possui um indicador


que garanta a unicidade da mesma.

Integridade de domínio: domínio é um conjunto de valores previamente


definido no qual uma coluna só poderá conter valores pertencentes a esse
domínio.

Prof. Eduardo Benjamin Banco de Dados


Dicionário de Dados
Junto com o MER, é
necessário que se
mantenha um documento
com a explicação de todos
os objetos nele criados.
Este documento, que pode
ser chamado de dicionário
de dados, permite que os
analistas obtenham
Descrição: é opcional e pode ser usado para descrever informações sobre todos
o que é aquele atributo ou dar informações adicionais os objetos do modelo de
que possam ser usadas futuramente pelo analista ou
forma textual.
programador do sistema.
Prof. Eduardo Benjamin Banco de Dados

Você também pode gostar