You are on page 1of 39

BANCO DE DADOS I

PROFESSOR EVERTON JEAN MORO


BANCO DE DADOS
✓ Entidade x relação;
✓ Tipos de relacionamentos;
✓ Chaves;
✓ Cardinalidade;
✓ Integridade;
✓ Diagramação;

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

✓ Tipos de campo texto:


▪ CHAR MIN 1 MAX 255 caracteres
▪ VARCHAR MIN 1 MAX 255 caracteres
▪ TEXT MIN 0 MAX 65535 caracteres
▪ LONG MIN 0 MAX 4294967295 caracteres

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

✓ Um dicionário de dados é um documento usado para armazenar informações


sobre o conteúdo, formato e a estrutura de um banco de dados, assim como
os relacionamentos entre os seus elementos.
✓ Importante manter um dicionário de dados para limitar erros ao criar a
estrutura física do banco de dados no computador.
✓ Também chamado de repositório de mateados.

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

✓ Ainda sobre dicionário de dados:


✓ É muito importante, mas normalmente não é utilizado.
✓ É importante definir isso antes para que na hora de escrever o comando já
tenha tudo definido. (vamos ver na pratica)

✓ Mostrar o dicionário de dados da tabela no ORACLE.

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

• Exemplo: Considere a tabela Cliente abaixo:


• #codigo_cliente, nome, telefone, endereco
• Agora vamos analisar a mesma tabela Cliente com os respectivos registros: (desenhar no quadro);

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:

#codigo_cliente Nome telefone endereco


Rua Seis, 85
9653-6352
C001 José Morumbi
9847-2501
12536-965
Rua Onze, 64
C002 Maria 3265-8596 Moema
65985-693
Praça Ramos, S/N
8545-8956
C003 Jânio Liberdade 8/16/2022 18
9598-6301
68858-633
NORMALIZAÇÃODE DADOS
#codigo_cliente Nome telefone rua bairro CEP
9653-6352 Rua Seis, 85 Morumbi
C001 José 12536-965
9847-2501
Rua Onze, 64 Moema
C002 Maria 3265-8596 65985-693

8545-8956 Praça Ramos, S/N Liberdade


C003 Jânio 68858-633
9598-6301

• 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

Segunda Forma Normal (2FN)


• 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).
• Se o nome do produto já existe na tabela produtos, então não é necessário que ele exista na tabela de
pedidos. A segunda forma normal trata destas anomalias e evita que valores fiquem em redundância no
banco de dados.
• Procedimentos:
• Identificar os atributos que não são funcionalmente dependentes de toda a chave primária;
• Remover da entidade todos esses atributos identificados e criar uma nova entidade com eles.

8/16/2022 21
NORMALIZAÇÃODE DADOS

• Exemplo: Considere a tabela vendas abaixo:


• #n_pedido, cod_produto, produto, quantidade, valor_unit, subtotal;
• Agora vamos analisar a mesma tabela vendas com os respectivos registros:
(desenhar no quadro);

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

1005 1-934 Impressora Laser 5 1.500,00 7.500,00

1006 1-956 Impressora Deskjet 3 350,00 1.050,00

1007 1-923 Impressora Matricial 1 190,00 190,00

1008 1-908 Impressora fiscal 6 980,00 5.880,00

• 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

• Veja o resultado abaixo: #cod_produto produto


1-934 Impressora Laser
1-956 Impressora Deskjet
1-923 Impressora Matricial
1-908 Impressora fiscal 8/16/2022 24
NORMALIZAÇÃODE DADOS
Terceira Forma Normal (3FN)
• Uma tabela está na Terceira Forma Normal 3FN se ela estiver na 2FN e se nenhuma coluna
não-chave depender de outra coluna não-chave.
• Na terceira forma normal temos de eliminar aqueles campos que podem ser obtidos pela
equação de outros campos da mesma tabela.
• Procedimentos:
• Identificar todos os atributos (multivalorados) que são funcionalmente dependentes de
outros atributos não chave;
• Removê-los;
• A chave primária da nova entidade será o atributo do qual os atributos removidos são
funcionalmente dependentes.
8/16/2022 25
NORMALIZAÇÃODE DADOS

• Exemplo: Considere a tabela vendas abaixo:


• #n_pedido, cod_produto, produto, quantidade, valor_unit, subtotal;
• Agora vamos analisar a mesma tabela vendas com os respectivos registros: (desenhar no quadro);

8/16/2022 26
NORMALIZAÇÃODE DADOS
#n_pedido *cod_produto qtde valor_unit subtotal

1005 1-934 5 1.500,00 7.500,00

1006 1-956 3 350,00 1.050,00

1007 1-923 1 190,00 190,00

1008 1-908 6 980,00 5.880,00

• 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

Quarta Forma Normal (4FN)


• Uma tabela está na quarta forma normal se ela estiver na 3FN e
não possuir dependências funcionais multivaloradas.
• Exemplo: Considere a tabela Distribuição_Livros_Autor abaixo:
DISTRIBUIÇÃO_LIVROS_AUTOR

*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:

DISTRIBUIÇÃO_LIVROS_AUTOR DISTRIBUIÇÃO_LIVROS AUTORIA_LIVROS


*num_estante *num_estante *ISBN
*ISBN *ISBN *cod_autor
*cod_autor

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

✓ Chave primária, chave composta, chave estrangeira e chave candidata são


conceitos importantes na modelagem de dados , pois implementam
restrições que garantirá ao futuro a integridade dos dados.
✓ Na análise de entidade e na identificação dos relacionamentos , teremos que
definir as chaves que irão impor as restrições de integridade no banco de
dados.

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

You might also like