Buscar

Banco Dados CC 2018.1 Np2

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 41 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 41 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 41 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

11/05/2018
Banco de Dados – Np2
Professor Fabriccio Dias Canhete
E-mail: fabriccio.canhete@docente.unip.br
Goiânia, Abril de 2018
Curso: Ciência da Computação
2
Álgebra Relacional
11/05/2018
3
Álgebra Relacional
4
Álgebra Relacional
11/05/2018
5
Álgebra Relacional
6
Álgebra Relacional
11/05/2018
7
Álgebra Relacional
8
Álgebra Relacional
11/05/2018
9
Álgebra Relacional
10
Álgebra Relacional
Liste os nomes dos clientes que possuem nomes iguais aos nomes de 
vendedores.
11/05/2018
11
Álgebra Relacional
12
Álgebra Relacional
11/05/2018
13
Álgebra Relacional
14
Álgebra Relacional
Liste os números dos clientes que têm nome igual ao nome de um 
vendedor.
11/05/2018
15
Álgebra Relacional
16
Álgebra Relacional
11/05/2018
17
Álgebra Relacional
Liste os números dos clientes que têm nome igual ao nome de um 
vendedor.
18
Álgebra Relacional
11/05/2018
19
Álgebra Relacional
20
Álgebra Relacional
11/05/2018
21
Álgebra Relacional
22
Álgebra Relacional
11/05/2018
23
Álgebra Relacional
24
Álgebra Relacional
11/05/2018
25
Álgebra Relacional
26
Álgebra Relacional
11/05/2018
27
Álgebra Relacional
28
Álgebra Relacional
11/05/2018
29
Álgebra Relacional
30
Álgebra Relacional
11/05/2018
31
Álgebra Relacional
32
Álgebra Relacional
11/05/2018
33
Álgebra Relacional
34
Normalização de Dados
11/05/2018
35
Normalização de Dados
A normalização de dados é um processo importante no 
processo de modelagem de dados. A primeira parte da 
normalização é chamada de 1FN ou primeira forma normal.
36
Normalização de Dados
11/05/2018
37
Normalização de Dados
Uma relação estará na primeira forma normal 1FN, se não 
houver grupo de dados repetidos, isto é, se todos os valores 
forem únicos. Em outras palavras podemos definir que a 
primeira forma normal não admite repetições ou campos que 
tenha mais que um valor.
38
Normalização de Dados
Os procedimentos mais recomendados para aplicar a 1FN 
são os seguintes:
a) Identificar a chave primária da entidade;
b) Identificar o grupo repetitivo e removê-lo da entidade;
c) 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.
11/05/2018
39
Normalização de Dados
Exemplo:
Considere a tabela cliente abaixo:
Cliente
Código_cliente
Nome
* Telefone
Endereço
40
Normalização de Dados
Analisando teremos:
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, como no exemplo a seguir:
11/05/2018
41
Normalização de Dados
Analisando teremos:
Analisando teremos:
42
Normalização de Dados
Tabela ainda não está na primeira forma normal
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. Veja o resultado a seguir:
11/05/2018
43
Normalização de Dados
44
Normalização de Dados
Na segunda tabela a chave primária está implícita, isto voe 
poderá encontrar algumas literaturas especializadas, onde 
nem sempre ela é especificada, mas ela deverá existir.
No exemplo acima foi gerado uma segunda entidade para 
que a primeira forma normal fosse satisfeita, contudo é 
importante ressaltar que nem sempre encontramos banco de 
dados com tabelas normalizadas. 
11/05/2018
45
Normalização de Dados
Existem casos onde as repetições são poucas ou o cenário 
permite administrar as repetições sem trazer grandes 
consequências.
46
Normalização de Dados
Quais os problemas de uma tabela não normalizada?
Muitos. A primeira forma normal tenta resolver um dos 
maiores problemas de banco de dados que é repetição e a 
desorganização deles. Imagine um campo telefone que 
permita a entrada de mais de um valor (dois números de 
telefones), por exemplo. Isto traria problemas na busca de 
um dos valores, por exemplo.
11/05/2018
47
Normalização de Dados
Quais os problemas de uma tabela não normalizada?
Outro problema seria um campo endereço onde as partes 
não estejam desmembradas. Isto é, um campo que permitisse 
eu escrever um endereço assim:
Rua das Oliveiras, 256, Parque Novo Mundo, São Paulo, SP.
48
Normalização de Dados
Quais os problemas de uma tabela não normalizada?
Como seria possível fazer uma busca por endereços de 
determinado bairro apenas ou de determinadas cidades? 
Veja que a normalização irá trazer inúmeros benefícios de 
performance do banco e claro nos possibilitaria trabalhar 
com esses dados da forma que fosse necessário.
11/05/2018
49
Normalização de Dados
Exercícios
De acordo com a normalização, se necessário, transforme 
para 1FN a tabela abaixo:
50
Solução:
Normalização de Dados
11/05/2018
51
Normalização de Dados
52
Normalização de Dados
2FN – Segunda 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).
11/05/2018
53
Normalização de Dados
2FN – Segunda Forma Normal
Se o nome do produto já existe na tabela produtos, então não 
é necessário que ele exista na tabela de produtos. A segunda 
forma normal trata destas anomalias e evita que valores 
fiquem em redundância no banco de dados.
54
Normalização de Dados
2FN – Segunda Forma Normal
Procedimentos:
a) Identificar os atributos que não são funcionalmente 
dependentes de toda a chave primária;
b) Remover da entidade todos esses atributos identificados e 
criar uma nova entidade com eles.
A chave primária da nova entidade será o atributo do qual os 
atributos removidos são funcionalmente dependentes.
11/05/2018
55
Normalização de Dados
Exemplo de 2FN:
Considere a tabela vendas abaixo:
56
Normalização de Dados
Analisando teremos:
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.
11/05/2018
57
Normalização de Dados
Analisando teremos:
Para normalizar esta tabela teremos de criar a tabela Produto 
que ficará com os atributos Código_produto e produto e na 
tabela Venda manteremos somente os atributos N_pedido, 
código_produto, quant, valor_unit e subtotal. 
Veja o resultado no próximo slide:
58
Normalização de Dados
Resultado obtido:
11/05/2018
59
Normalização de Dados
Coloque a tabela abaixo na 2FN.
60
Normalização de Dados
11/05/2018
61
Normalização de Dados
62
Normalização de Dados
11/05/2018
63
Normalização de Dados
Terceira Forma Normal - 3FN
A terceira forma normal é parte daquilo que chamamos de 
normalização de dados para fins de planejamento de bases 
de dados computacionais. É uma forma de analisar e refinar 
a estrutura dos dados a fim de torná-los íntegros e 
exclusivos, evitando repetições desnecessárias e possíveissobrecargas no gerenciador de banco de dados.
64
Normalização de 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.
11/05/2018
65
Normalização de Dados
Terceira Forma Normal - 3FN
Procedimentos:
a) Identificar todos os atributos que são funcionalmente 
dependentes de outros atributos não chave;
b) Removê-los.
A chave primária da nova entidade será o atributo do qual os 
atributos removidos são funcionalmente dependentes.
66
Normalização de Dados
Exemplo de normalização da 3FN
Considerando ainda a nossa tabela Venda, veremos que a mesma não 
está na terceira forma normal, pois o subtotal é o resultado da 
multiplicação Quant X Valor_unit, desta forma a coluna subtotal 
depende de outras colunas não-chave.
11/05/2018
67
Normalização de Dados
Exemplo de normalização da 3FN
Para normalizar esta tabela na terceira forma normal teremos de 
eliminar a coluna subtotal, como no exemplo a seguir:
68
Normalização de Dados
Exercício:
Normalize a tabela abaixo, onde idPedido e CodProduto formam a chave da tabela: 
11/05/2018
69
Normalização de Dados
Exercício:
Examine a tabela abaixo e responda:
a) Porque a tabela não está na 3FN? 
b) Demonstre o processo de normalização dos dados mostrados na tabela para a 3FN. 
70
Visões
• Conceito de uma View
Segundo Silberschatz (2006), um dos maiores benefícios de um 
banco de dados é proporcionar ao usuário uma visão abstrata dos 
dados. Isto é, o sistema acaba por ocultar determinados detalhes 
sobre a forma de armazenamento e manutenção desses dados.
11/05/2018
71
Visões
• Conceito de uma View
A criação de views é um recurso presente na maioria dos SGBDs. 
Views são parecidas com tabelas virtuais, ou seja, encapsulamos 
uma consulta complexa em uma view e após isto consultamos 
nossa view como se esta fosse uma tabela.
72
Visões
• Conceito de uma View
Uma view em terminologia SQL é uma única tabela que é 
derivada de outras tabelas.
Essas outras tabelas podem ser tabelas da base ou views
previamente definidas.
Uma view não existe de forma física; ela é considerada uma tabela 
virtual, ao contrário das tabelas bases, cujas tuplas sempre 
estarão armazenadas fisicamente.
11/05/2018
73
Visões
• Conceito de uma View
Pensamos em uma view como uma tabela que precisamos 
referenciar com frequência, embora ela não possa existir 
fisicamente.
Uma visão é qualquer relação que não faz parte do modelo lógico 
do banco de dados, mas que é visível ao usuário, como uma 
relação virtual.
74
Visões
• Conceito de uma View
O conjunto de tuplas de uma relação visão é resultado de uma 
expressão de consulta que foi definido no momento de sua 
execução. Logo, se uma relação visão é computada e armazenada, 
esta pode tornar-se desatualizada se as relações usadas em sua 
geração sofrerem modificações.
11/05/2018
75
Visões
• Conceito de uma View
Quando uma visão é definida, o sistema de banco de dados 
armazena sua definição ao invés do resultado da expressão SQL 
que a definiu. Sempre que a relação visão é usada, ela é sobreposta 
pela expressão da consulta armazenada, de maneira que, sempre 
que a consulta for solicitada, a relação visão será recomputada.
76
Visões
• Conceito de uma View
Alguns sistemas de banco de dados permitem que as relações de 
visões sejam materializadas, garantindo que se ocorrerem 
modificações nas relações reais usadas na definição da visão, 
também a visão será modificada. Contudo, esta abordagem pode 
incorrer em custos de armazenamento e atualizações de sistema.
11/05/2018
77
Visões
• Especificação das Views em SQL
Em SQL o comando para especificar uma view é CREATE VIEW.
A view recebe o nome da tabela ou nome da view, uma lista de 
nomes de atributo e uma consulta para especificar o conteúdo da 
view.
78
Visões
• Sintaxe
A cláusula padrão é:
CREATE VIEW <nome da visão> AS <expressão de consulta>;
11/05/2018
79
Visões
• Especificação das Views em SQL
O comando DROP pode ser usado para remover elementos 
nomeados do esquema.
Caso não necessitemos mais de uma dada visão, podemos 
eliminá-la por meio do comando:
DROP VIEW <nome da visão>;
80
Visões
• Especificação das Views em SQL
Para alterar uma view já existente, podemos utilizar o comando ALTER 
VIEW ou também o comando CREATE OR REPLACE VIEW.
Exemplo de alteração de uma view utilizando o comando ALTER VIEW:
CREATE OR REPLACE VIEW <nome view> AS SELECT * FROM <tabela>;
ALTER VIEW view_teste AS SELECT * FROM produtos WHERE estoque > 5
11/05/2018
81
Visões
• Exercícios – Crie o banco de dados abaixo no mysql.
82
Visões
• Exercícios – Crie a view abaixo.

Continue navegando