Professional Documents
Culture Documents
Aula 3
Aula 3
8/16/2022 2
TIPOS DE DADOS
✓ Tipos numéricos:
▪ TINYINT MIN 0 MAX 255
▪ SMALLINT MIN 0 MAX 65535
▪ MEDIUMINT MIN 0 MAX 16777215
▪ INT OR INTEGER MIN 0 MAX 4294967295
▪ BIGINT MIN 0 MAX 18446744073709551615
▪ FLOAT MIN 1.175494351E-38 MAX 3.402823466E+38
▪ DOUBLE MIN 2.2250738585072014E-308 MAX 1.7976931348623157E+308
▪ DECIMAL
8/16/2022 3
TIPOS DE DADOS
✓ Tipos de dada:
▪ DATE MIN ‘1000-01-01’ MAX ‘9999-12-31 (Formato: ‘YYYY-MM-DD’)
▪ DATETIME MIN ‘1000-01-01 00:00:00’ MAX ‘9999-12-31 23:59:59’ (Formato:
‘YYYY-MM-DD HH:MM:SS’)
▪ TIMESTAMP ...
▪ TIME ‘HH:MM:SS’
▪ YEAR YYYY
8/16/2022 4
TIPOS DE DADOS
8/16/2022 5
PRINCIPAIS MISTAKES
✓ Armazenar CPF em campo numérico, o qual remove os zeros à esquerda.
✓ Outro aspecto desta questão seria se em alguma hipótese o CPF passar a
conter caracteres, então poderia apresentar problemas na aplicação.
✓ Diferença de CHAR e VARCHAR ? Ambos armazenam de 0-255 caracteres!
✓ Utilizar CHAR para campos que você sabe o tamanho que de bytes que
precisar armazenar, exemplo CPF, placa de carro, RH, etc.
✓ Utilizar VARCHAR para quando não se tem uma quantidade de caracteres
definidas entre 0-255.
8/16/2022 6
DICIONÁRIO DE DADOS
8/16/2022 7
DICIONÁRIO DE DADOS
✓ Metadados, ou Metainformação, são dados sobre outros dados. Um item de um metadado pode dizer
do que se trata aquele dado, geralmente uma informação inteligível por um computador. Os metadados
facilitam o entendimento dos relacionamentos e a utilidade das informações dos dados. Wikipédia
8/16/2022 8
DICIONÁRIO DE DADOS
8/16/2022 9
DEPENDÊNCIAS DE MODELAGEM DE DADOS
✓ Dependência funcional:
✓ Seja E é uma entidade, e X e Y dois atributos quaisquer de E. Dizemos que Y é
funcionalmente dependente de X.
✓ Simbolicamente: X-----> Y
✓ Quando lemos como X determina funcionalmente Y.
✓ exe.: O prazo de entrega de um pedido depende do número do pedido
considerado: Numero_pedido -----> Prazo_entrega_pedido
8/16/2022 10
NORMALIZAÇÃODE DADOS
✓ Normalização de dados é o processo formal passo a passo que examina os atributos de uma entidade,
com o objetivo de evitar anomalias observadas na inclusão, exclusão e alteração de registros.
✓ O exemplo abaixo, embora simples, pode nos mostrar os possíveis problemas ao se projetar uma base
de dados relacional não normalizada: suponhamos que se deseja registrar numa tabela todos os dados
relativos aos fornecedores de uma empresa: nome (razão social), endereço, telefone, contato, CNPJ,
materiais fornecidos, prazo, preço e etc. O esquema dessa relação (tabela) poderia ser semelhante a:
Fornecedores (numf, nome, end, tel ,contato, CNPJ, num-mat, prazo, preço)
8/16/2022 11
NORMALIZAÇÃODE DADOS
✓ Esta tabela terá uma linha para cada possível material que o fornecedor fornece o que leva aos
seguintes problemas:
• Redundância: dados como nome, endereço e CNPJ são repetidos inúmeras vezes;
• Inconsistência de atualização: se o endereço do fornecedor mudar e se alguma das linhas onde ele
aparece não for atualizada, isto causa o armazenamento do endereço antigo junto com o novo;
• Inserção na base de dados de um novo fornecedor para o qual nenhum material ainda foi homologado
fica complicada: valores nulos teriam que ser inseridos para num-mat, prazo, preço e etc.
Posteriormente, quando materiais forem homologados, a linha com esses nulos poderia ser esquecida
na tabela, prejudicando a execução de certas consultas;
8/16/2022 12
NORMALIZAÇÃODE DADOS
✓ Esta tabela terá uma linha para cada possível material que o fornecedor fornece o que leva aos
seguintes problemas:
• Inserção de novo material de um determinado fornecedor: teríamos que garantir a consistência do
nome, CNPJ, endereço e etc.;
• Remoção sucessiva de materiais fornecidos poderia levar à perda completa dos dados do fornecedor
(nome, end, CNPJ e etc.);
8/16/2022 13
NORMALIZAÇÃODE DADOS
• A solução dos problemas acima essencialmente coincide com a solução do primeiro deles, isto é, na
eliminação da informação redundante. Isto resultará na divisão de uma tabela em várias outras tabelas
menores, ou seja, com número reduzido de atributos em cada tabela.
• Essa redução das tabelas é a aplicação da Normalização de dados, cujos principais objetivos são, entre
outros:
• Minimização de redundâncias e inconsistências;
• Facilidade de manipulação de banco de dados;
• Facilidade de manutenção do sistema de informação.
8/16/2022 14
NORMALIZAÇÃODE DADOS
• As formas normais:
➢ O processo de normalização dos dados aplica uma série de regras sobre as tabelas de um banco de
dados, para verificar se estas estão corretamente projetadas. Embora existam cinco formas normais (ou
regras de normalização), na prática usamos um conjunto de três Formas Normais.
➢ Para aplicar a normalização de dados é necessário considerar a sequência das formas normais, isto é,
para aplicar a segunda forma normal, por exemplo, é necessário que seja aplicado a primeira forma
normal. Da mesma forma, para aplicar a terceira forma normal é necessário que já tenha sido feita a
normalização na segunda forma normal.
8/16/2022 15
NORMALIZAÇÃODE DADOS
• Primeira Forma Normal (1FN)
• Uma relação estará na Primeira forma normal 1FN, se e somente se todos os domínios básicos
contiverem somente valores atômicos (não contiver grupos repetitivos).
• Procedimentos:
• Identificar a chave primária da entidade;
• Identificar o grupo repetitivo (atributo composto) e removê-lo da entidade;
• Criar uma nova entidade com a chave primária da entidade anterior e o grupo repetitivo;
• A chave primária da nova entidade será obtida pela concatenação da chave primária da entidade inicial
e a do grupo repetitivo.
8/16/2022 16
NORMALIZAÇÃODE DADOS
8/16/2022 17
NORMALIZAÇÃODE DADOS
• Analisando o exemplo:
• Todos os clientes possuem Rua, CEP e Bairro, e essas informações estão na mesma célula da tabela, logo
ela não está na primeira forma normal. Para normalizar, deveremos colocar cada informação em uma
coluna diferente:
• Mesmo com o ajuste acima a tabela ainda não está na primeira forma normal, pois há clientes com
mais de um telefone e os valores estão em uma mesma célula. Para normalizar será necessário criar
uma nova tabela para armazenar os números dos telefones e o campo-chave da tabela cliente.
CLIENTE
#codigo_cliente Nome rua bairro CEP
Rua Seis, 85 Morumbi
C001 José 12536-965
Rua Onze, 64 Moema
C002 Maria 65985-693
8/16/2022 19
Praça Ramos, S/N Liberdade
C003 Jânio 68858-633
NORMALIZAÇÃODE DADOS
TELEFONES_CLIENTE
#codigo_cliente telefone
C001 9653-6352
C001 9847-2501
C002 3265-8596
C003 8545-8956
C003 9598-6301
• No exemplo acima foi gerado uma segunda entidade para que a primeira forma normal fosse satisfeita,
contudo é possível manter a tabela original, criando-se novas colunas na mesma para abrigar os demais
números de telefone.
• Exe. Campos telefone_1, telefone_2;
8/16/2022 20
NORMALIZAÇÃODE DADOS
8/16/2022 21
NORMALIZAÇÃODE DADOS
8/16/2022 22
NORMALIZAÇÃODE DADOS
• Analisando o exemplo:
• O nome do produto depende do código do produto, porém não depende de n_pedido que é a chave
primária da tabela, portanto não está na segunda forma normal. Isto gera problemas com a
manutenção dos dados, pois se houver alteração no nome do produto teremos que alterar em todos os
registros da tabela venda.
*cod_produ
#n_pedido produto qtde valor_unit subtotal
to
Impressora
1005 1-934 5 1.500,00 7.500,00
Laser
Impressora
1006 1-956 3 350,00 1.050,00
Deskjet
Impressora
1007 1-923 1 190,00 190,00 8/16/2022 23
Matricial
Impressora
1008 1-908 6 980,00 5.880,00
fiscal
NORMALIZAÇÃODE DADOS
#n_pedido *cod_produto produto qtde valor_unit subtotal
• Para normalizar esta tabela teremos de criar a tabela Produto que ficará com os atributos cod_produto
e produto e na tabela Vendas manteremos somente os atributos n_pedido, cod_produto, qtde,
valor_unit e subtotal. PRODUTO
8/16/2022 26
NORMALIZAÇÃODE DADOS
#n_pedido *cod_produto qtde valor_unit subtotal
• Analisando o exemplo:
• Considerando a tabela acima, vemos que a mesma não está na terceira forma normal, pois o subtotal é
o resultado da multiplicação qtde X valor_unit, desta forma a coluna subtotal depende de outras
colunas não-chave.
• Para normalizar esta tabela na terceira forma normal teremos de eliminar a coluna subtotal, como no
exemplo a seguir:
VENDAS
#n_pedido *cod_produto qtde valor_unit
1005 1-934 5 1.500,00
1006 1-956 3 350,00 8/16/2022 27
1007 1-923 1 190,00
1008 1-908 6 980,00
NORMALIZAÇÃODE DADOS
*num_estante
*ISBN
8/16/2022 28
*cod_autor
NORMALIZAÇÃODE DADOS
• Para normalizarmos esta tabela de acordo com os princípios da 4FN devemos criar duas
novas tabelas conforme exemplo abaixo:
8/16/2022 29
NORMALIZAÇÃODEDADOS
O processo de normalização foi proposto por Codd em 1972, aplica a um esquema de relações uma serie de testes
para certificar que ela satisfaça uma forma normal (FN);
➢ Codd propôs orinalmente 3 formar normais: 1º, 2º e 3 FNs.
➢ Posteriormente, a 3FN foi revisada e uma definições mais robusta foi proposta por Boyce e Codd, denominada
Forma Normal de Boyce-Codd (FNBC);
Objetivos da normalização:
Analise esquemas de relações(tabelas) com base em suas dependências funcionais e chaves primárias para:
➢ Minimizar redundâncias
➢ Minimizar anomalias de inserção, exclusão e modificação.
➢ As relações são decompostas em esquemas de relação menores que atendem aos testes de forma normal.
➢ O ideal é que o projeto do banco de dados relacional alcance a FNBC ou a 3FN para cada tabela.
➢ Não é adequado normalizar apenas até a 1FN ou à 2FN, pois na verdade essas formas normas são usadas para
se chegar a 3FN ou FNBC.
8/16/2022 30
DEPENDÊNCIAS DE MODELAGEM DE DADOS
Tabela Não-Normalizada
Remover atributos
Multivalorados e compostos
1FN
Remover dependências
parciais
2FN
Remover dependências
transitivas
8/16/2022 31
3FN
DEPENDÊNCIAS DE MODELAGEM DE DADOS
✓ Eliminar anomalias:
✓ Projetas os esquemas de relações (tabelas) no banco de dados de modo que
nenhuma anomalia de inserção exclusão ou modificação esteja presente nas
relações. Para isso usamos o processo de normalização.
✓ Normalização consistem em um processo de analise de uma relação para assegurar
que seja bem formada.
✓ Decompor relações com anomalias para produzir relações menores e bem-
estruturadas
✓ Ou seja em uma relação normalizada podemos inserir, excluir ou modificar registros
sem criar anomalias.
8/16/2022 32
CAMPOSCHAVE
8/16/2022 33
CAMPOSCHAVE
Chave primária simples
• Atributo ou combinação de atributos que possuem a propriedade de identificar de
forma única uma linha da tabela. Corresponde a um atributo determinante.
• Cada tabela deve incluir um campo ou conjunto de campos que identifique de
forma exclusiva , cada registro armazenado na tabela. Essas informações são
chamadas de chave primária da tabela.
• Desta forma, com a chave primária cria-se uma identificação única, o que dá total
segurança para que aplicações possam acessar, alterar e excluir dados sem correr o
risco de apagar ou alterar dois campos da tabela ao mesmo tempo.
• Chave primária é um importante objeto quando se aplica regras de normalização
de dados , muitas das formas normais são baseadas nas relações dos demais
atributos com a chave primária da tabela. 8/16/2022 34
CAMPOSCHAVE
Chave primária composta
• Com base no conceito de chave primária, podemos dizer que não é correto utilizar um
nome como sendo uma chave primária pois podemos ter dois nomes iguais, independente de
estarmos nos referindo à pessoas, cidades e objetos. Nesses casos, se houver essa
ocorrência estaremos perdendo a integridade referencial do banco e, de quebra gerando
redundância da informação.
• A solução para o problema acima é criarmos uma chave primária composta. É muito
importante entendermos que não existe duas chaves primárias e sim chave primária
composta.
• A chave primária composta é aquela que é criada em dois campos e desta forma passa a
utilizar a junção dos dados dos dois campos indicados para formar um valor único e assim
aplicar o bloqueio de duplicidade.
8/16/2022 35
CAMPOSCHAVE
Chave estrangeira
• A chave estrangeira ocorre quando um atributo de uma relação for
chave primária em outra relação.
• Exemplo:
8/16/2022 36
CAMPOSCHAVE
Chaves Candidatas
• Ocorrem quando em uma relação existe mais de uma combinação
de atributos possuindo a propriedade de identificação única.
• Exemplo: Matrícula, CPF, RG, Titulo Eleitor
8/16/2022 37
“Aqui nós não olhamos para trás por muito tempo. Continuamos seguindo em
frente, abrindo novas portas e fazendo coisas novas, porque somos curiosos. E a
curiosidade continua nos conduzindo por novos caminhos”
- Walt Disney
8/16/2022 38
OBRIGADO!
8/16/2022 39