Escolar Documentos
Profissional Documentos
Cultura Documentos
2013/1
Aula 7
Pablo Ariel do Prado Lpez
02/04/2013
Agenda
Modelo Lgico
Normalizao
Dicionrio de Dados
Restries de Integridade
02/04/2013
Trabalho N1
Duplas
Cristiano / Joo Antnio
Fernando Meneses / Diego Bellver
Jonata / Juliano
Rafael / Ricardo Pinheiro
Ricardo Lacerda / Lucas
02/04/2013
Exerccio
Considere o banco de dados relacional definido
parcialmente abaixo :
Empregado(CodigoEmpregado, Nome, NoPIS-PASEP)
Dependente(CodigoEmpregado, NoDependente, Nome)
02/04/2013
Exerccio
Abaixo aparece um esquema parcial para um banco de
dados relacional. Identifique neste esquema as chaves
primrias e chaves estrangeiras:
Aluno (CodigoAluno, Nome, CodigoCurso)
Curso (CodigoCurso, Nome)
Disciplina
(CodigoDisciplina,
Nome,
Creditos,
CodigoDepartamento)
Currculo (CodigoCurso, CodigoDisciplina, Obrigatria-Opcional)
Conceito (CodigoAluno, CodigoDisciplina, Ano-Semestre,
Conceito)
Departamento (CodigoDepartamento, Nome)
Fundamentos de Banco de Dados
02/04/2013
Normalizao
um processo sistemtico atravs do qual
uma tabela no normalizada transformada
em um conjunto de tabelas que representam
da melhor forma a realidade a ser modelada.
Consiste em definir o formato lgico
adequado para estruturas de dados
identificados no projeto lgico do sistema.
02/04/2013
Normalizao
Seus principais objetivos so:
Minimizar o espao utilizado pelos dados,
Garantir a integridade e confiabilidade das
informaes,
Evitar redundncias de dados,
Evitar a mistura de diferentes assuntos em uma
mesma tabela (entidade).
02/04/2013
Normalizao
Um conceito bsico utilizado para a
normalizao o da dependncia funcional:
Dada uma relao, um atributo Y dito
funcionalmente dependente de outro atributo X,
se e, somente se, cada ocorrncia de X est
associada sempre a mesma ocorrncia de Y.
Se um valor para X determina um nico valor para
Y em qualquer momento.
A notao que representa dependncias
funcionais : X -> Y
Fundamentos de Banco de Dados
02/04/2013
Normalizao
Exemplo:
Relao R (atributo A, atributo B, atributo C)
Atributo A -> Atributo B
Atributo A 1 valor de A (no existe outro)
Representa somente um nico valor do
atributo B
Fundamentos de Banco de Dados
02/04/2013
Normalizao
Cliente {nro_cliente, nome, endereo}
nro_cliente ->{nome, endereo}
PeasPedido
{nro_pedido,
nro_pea,
qtidade_comprada, preo_cotado}
{nro_pedido, nro_pea}
preo_cotado}
-> {qtidade_comprada,
02/04/2013
Normalizao
Se duas linhas da tabela Clientes tiverem o
mesmo valor de nro_cliente, ento elas tem
de ter o mesmo valor de nome e de endereo.
No vlida uma tabela que tenha duas linhas
que coincidem na(s) coluna(s) listadas antes
da seta (->), mas so diferentes em alguma
coluna listada depois da seta.
02/04/2013
Normalizao
feita atravs da anlise dos dados que
compem as estruturas utilizando o conceito
chamado "Formas Normais (FN)".
As FN so conjuntos de restries nos quais
os dados devem satisfaz-las.
Diz-se que a estrutura est na normalizada
(seja na 1, 2 ou 3FN), se os dados que a
compem satisfizerem as restries definidas
para a etapa.
Fundamentos de Banco de Dados
02/04/2013
Normalizao
Primeira Forma Normal
Uma entidade estar na 1FN, se e somente se,
todos seus atributos (colunas) forem
atmicos, ou seja no conter grupos
repetitivos ou colunas que tenham mais de
um valor.
02/04/2013
Normalizao
Passos a serem
consolidao da 1FN:
aplicados
para
02/04/2013
Normalizao
Exemplo: considere a relao Empregado
(Nmero Empregado, Nome do Empregado,
Nome do Departamento, Nmero do Gerente,
Nome do Gerente, Nmero do Projeto, Nome
do Projeto, Dia de Incio do Projeto, Nmero
de Horas Trabalhadas no Projeto)
02/04/2013
Normalizao
Para testarmos um dos atributos e ter
certeza que este atmico, podemos efetuar
uma pergunta conforme o exemplo abaixo:
Podemos ter outro Nome para o Projeto 1?
Podemos ter outra Data de Incio para o
Projeto 1?
Podemos ter outro Empregado para o
Projeto 1?
Fundamentos de Banco de Dados
02/04/2013
Normalizao
Transformado em 1FN
Empregados
Num_Empregado
Nome_Empregado
Num_Departamento
Nome_Departamento
Nm_Gerente
Nome_Gerente
Projeto
Num_Projeto
Nome_Projeto
Dia_Ini_Projeto
Num_Horas_Trab_Proj
Num_Empregado
02/04/2013
Normalizao
Uma tabela est na 1FN, se e somente
se, no possuir atributos multivalorados
e no contm tabelas aninhadas.
Problemas
Redundncia;
Atualizao de Dados (Anomalias).
02/04/2013
Normalizao
Segunda Forma Normal
Uma entidade est na 2FN, se e somente se,
estiver na 1FN e todos seus atributos (colunas)
no chaves, dependam unicamente da chave
primria.
Se algum atributo depende de apenas uma
parte da chave primria, isso considerada
uma violao da 2FN.
Fundamentos de Banco de Dados
02/04/2013
Normalizao
Passos a serem
consolidao da 2FN:
aplicados
para
02/04/2013
Normalizao
Primeira Forma Normal 1FN
Empregados
Num_Empregado
Nome_Empregado
Num_Departamento
Nome_Departamento
Num_Gerente
Nome_Gerente
Projeto
Num_Projeto
Nome_Projeto
Dia_Ini_Projeto
Num_Horas_Trab_Proj
Num_Empregado
02/04/2013
Normalizao
Transformado em 2FN
Empregados
Detalhes Projeto
Num_Empregado
Nome_Empregado
Projeto
Num_Departamento
Num_Projeto
Nome_Departamento
Num_Empregado
Num_Projeto
Nome_Projeto
Dia_Ini_Projeto
Num_Horas_Trab_Proj
Num_Gerente
Nome_Gerente
02/04/2013
Normalizao
Maior independncia de dados (no h
mais repetio de empregados por
projeto, por exemplo);
Redundncias
e
anomalias:
dependncias funcionais indiretas.
02/04/2013
Normalizao
02/04/2013
Normalizao
Terceira Forma Normal
Uma entidade est na 3FN, se e somente se,
estiver na 2FN e todos os atributos (colunas) no
chave, forem mutuamente independentes, isto ,
no h dependncia funcional entre elas, e todas
dependem nica e exclusivamente da chave
primria de forma irredutvel.
02/04/2013
Normalizao
Passos a serem
consolidao da 3FN:
aplicados
para
02/04/2013
Normalizao
Projeto
Nome_Empregado
Num_Projeto
Num_Departamento
Nome_Projeto
Nome_Departamento
Dia_Ini_Projeto
Num_Gerente
Num_Horas_Trab_Proj
Nome_Gerente
Num_Empregado
02/04/2013
Normalizao
Detalhes Projeto
Num_Empregado
Nome_Empregado
Projeto
Num_Departamento
Num_Projeto
Nome_Departamento
Num_Empregado
Num_Projeto
Nome_Projeto
Dia_Ini_Projeto
Num_Horas_Trab_Proj
Num_Gerente
Nome_Gerente
02/04/2013
Normalizao
Transformado em 3FN
Empregados
Projeto
Num_Empregado
Num_Projeto
Nome_Empregado
Num_Empregado
Num_Departamento
Detalhes Projeto
Departamentos
Num_Projeto
Num_Departamento
Nome_Projeto
Nome_Departamento
Dia_Ini_Projeto
Num_Gerente
Num_Horas_Trab_Proj
Nome_Gerente
Num_Empregado
02/04/2013
Normalizao
Maior independncia de dados;
3FN gera representaes lgicas finais na
maioria das vezes;
Redundncias e anomalias: dependncias
funcionais multivaloradas.
02/04/2013
Normalizao
02/04/2013
Normalizao
Alguns problemas que podem ocorrer:
Chaves primrias omitidas ou incorretas
Atributos
relevantes
implicitamente
representados
Atributos irrelevantes, redundantes ou derivados
02/04/2013
Exerccio
Aplicar as Formas Normais cabveis, nas questes
abaixo. Voc deve transformar os esquemas abaixo
em conjuntos de esquemas que estejam na 2NF, 3NF
e, analisar sua normalizao de acordo com suas
dependncias funcionais.
a)
Ordem_Compra
(cod_ordem_compra,
dt_emisso, cod_fornecedor, num_fornecedor,
endereo_fornecedor, cod_material (n vezes),
descrio_material (n vezes), qt_comprada
(nvezes), vl_unitrio (n vezes), vl_total_item (n
vezes), vl_total_ordem).
02/04/2013
Exerccio
b) Trabalhador
(Cod_Trabalhador,
Nome_Trabalhador,
Cod_Empresa,
Nome_Empresa, Cod_Departamento,
Nome_Departamento)
02/04/2013
Dicionrio de Dados
Um dicionrio de dados (do ingls data
dictionary) uma coleo de metadados
que contm definies e representaes
de elementos de dados.
um grupo de tabelas, habilitadas
apenas para leitura ou consulta, que
mantm as seguintes informaes:
Fundamentos de Banco de Dados
02/04/2013
Dicionrio de Dados
02/04/2013
Dicionrio de Dados
Ao contrrio dos banco de dados e tabelas de
dados, o dicionrio de dados desprovido de
quaisquer dados.
Apenas uma lista das variveis disponveis no
conjunto de dados com as suas caractersticas.
A principal funo padronizar e unificar os
termos utilizados nas variveis utilizadas nos
banco de dados.
Possibilita uma boa comunicao entre os
membros da equipe.
Fundamentos de Banco de Dados
02/04/2013
Dicionrio de Dados
Permite a consistncia entre itens de dados atravs de
diferentes tabelas.
Indicam como os elementos de dados so armazenados
em uma estrutura de computador de acordo com seu
tipo, ou seja, se so dados do tipo inteiro, caracter ou
formato de data.
No so glossrios (termos e definies).
So gerados, normalmente, separados do Modelo de
Dados visto que estes ltimos costumam incluir
complexos relacionamentos entre elementos de dados.
Fundamentos de Banco de Dados
02/04/2013
Dicionrio de Dados
Exemplo:
02/04/2013
Dicionrio de Dados
02/04/2013
Dicionrio de Dados
Nome
Descrio
Tipo
Tamanho
Formato
Restries
cliente
Inteiro
nome
Texto
60
cpf
Texto
11
999999999-99
endereco
Texto
100
telefone
Texto
20
(99) 9999-9999
02/04/2013
Exerccios
Escreva uma definio de DD das
informaes contidas na sua
carteira de identidade.
02/04/2013
Restries de Integridade
Um dos objetivos primordiais de um SGBD a integridade de
dados.
Dizer que os dados de um banco de dados esto ntegros
significa dizer que eles refletem corretamente a realidade
representada pelo banco de dados e que so consistentes
entre si e contm apenas dados vlidos.
Para tentar garantir a integridade de um banco de dados os
SGBD oferecem o mecanismo de restries de integridade.
Uma restrio de integridade uma regra de consistncia de
dados que garantida pelo prprio SGBD.
No caso da abordagem relacional, costuma-se classificar as
restries de integridade nas seguintes categorias:
Fundamentos de Banco de Dados
02/04/2013
Restries de Integridade
No pode ser
negativo
Emp#
Nome
Categoria
Salrio
Dep#
Data_Nasc
Antnio Souza
Programador
-1000
20/03/1980
Ana Amaral
Programador
1000
22/03/1970
Analista
2000
12/04/1964
Operador
20/08/2060
3
4
Carlos Silva
O campo no
pode ser nulo
Valor pequeno
Data Invlida
02/04/2013
Restries de Integridade
Suponha as seguintes regras na relao anterior:
O campo Nome no pode ser nulo
O Salrio tem que ser superior ao valor do salrio mnimo nacional
A Data de nascimento tem que ser maior que 01/01/1920 e menor que
01/01/2000
02/04/2013
Restries de Integridade
Integridade de domnio
Restries deste tipo especificam que o valor de um campo
deve obedecer a definio de valores admitidos para a coluna
(o domnio da coluna).
Nos SGBD relacionais comerciais, possvel usar apenas
domnios pr-definidos (nmero inteiro, nmero real,
alfanumrico de tamanho definido, data, ).
O usurio do SGBD no pode definir domnios prprios de sua
aplicao (por exemplo, o domnio dos dias da semana ou das
unidades da federao).
02/04/2013
Restries de Integridade
Integridade de Domnio
Emp#
Nome
Categoria
Salrio
Dep#
Data_Nasc
Antnio Souza
Programador
1000
20/03/1980
Ana Amaral
Programador
1000
22/03/1970
Jos Costa
Analista
2000
12/04/1964
Carlos Silva
Operador
Mil reais
20/08/1980
02/04/2013
Restries de Integridade
Integridade de Vazio
Emp#
Nome
Categoria
Salrio
Dep#
Data_Nasc
Antnio Souza
Programador
1000
20/03/1980
Ana Amaral
Programador
1000
22/03/1970
Analista
2000
12/04/1964
Operador
1000
20/08/1980
3
4
Carlos Silva
O campo no
pode ser nulo
Fundamentos de Banco de Dados
02/04/2013
Restries de Integridade
Integridade de Chave
Restrio que define que os valores da chave primria deve ser nico. Impede que
uma chave primria receba um valor NULL ou duplicado.
Emp#
Nome
Categoria
Salrio
Dep#
Data_Nasc
Antnio Souza
Programador
1000
20/03/1980
Ana Amaral
Programador
1000
22/03/1970
Jos Costa
Analista
2000
12/04/1964
Carlos Silva
Operador
500
20/08/1980
02/04/2013
Restries de Integridade
Integridade referencial
a restrio que define que os valores dos
campos que aparecem em uma chave estrangeira
devem aparecer na chave primria da tabela
referenciada.
Deve coincidir com a chave primria da sua tabela
"pai" a que a chave estrangeira se refere. Ou seja,
no s deve existir o atributo (campo), como
tambm, o valor referenciado.
02/04/2013
Restries de Integridade
Empregado
Emp#
Nome
Categoria
Salrio
Dep#
Data_Nasc
Antnio Souza
Programador
1000
20/03/1980
Ana Amaral
Programador
1000
22/03/1970
Jos Costa
Analista
2000
12/04/1964
Carlos Silva
Operador
500
20/08/1980
Departamento
Dep# Nome
Local
Desenvolvimento
Porto Alegre
Testes
Gravata
Qualidade
Cachoeirinha
02/04/2013
Restries de Integridade
As restries dos tipos acima especificados devem ser garantidas
automaticamente por um SGBD relacional.
No deve ser o programador que escrever procedimentos para
garantir o atendimento das Restries.
H outros tipos de restries que no se encaixam em nenhuma
das categorias acima e que normalmente no so garantidas pelo
SGBD. So as chamadas restries semnticas. Alguns exemplos de
restries deste tipo poderiam ser:
Um empregado do departamento denominado Finanas no
pode ter a categoria funcional Engenheiro.
Um empregado no pode ter um salrio maior que seu superior
imediato.
02/04/2013
Exerccios
Nome
Telefone
Tipo
123456
51 37742896
Usurio
20/02/2005
646512
54 35782485
Convidado
14/12/2010
21 4756324v
Convidado
30/02/1987
-3
11 87583627
Usurio
03/04/2013
43 21121681
Usurio
01/01/1900
51 94878756
Administrador
05/06/2007
374256
974208
7126,85
DataCadastro
NumDependentes
02/04/2013
Exerccios
Verifique se as seguintes Restries so atendidas
e indique onde houver violao das mesmas:
Um atributo Matrcula do tipo inteiro e no nulo;
Um atributo Nome do tipo texto de tamanho 30 e no
nulo;
Um atributo Telefone do tipo texto de tamanho 10;
Um atributo Tipo do tipo texto de tamanho 10 com o
seguinte domnio (valores vlidos);
Usurio, Administrador, Convidado
02/04/2013
Obrigado!
Perguntas?
Dvidas?
02/04/2013