Baixe o app para aproveitar ainda mais
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.
Compartilhar