A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Projeto, SQL e Normalização

Apresentações semelhantes


Apresentação em tema: "Projeto, SQL e Normalização"— Transcrição da apresentação:

1 Projeto, SQL e Normalização
Bancos de Dados I

2 Relacionamentos N para N
Tabela auxiliar, ligada às duas tabelas que serão relacionadas Atributos vão para tabela auxiliar Tabela representada graficamente por um hexágono Manual para utilização dos modelos da Unisa Digital

3 Exemplo 1 1 N N Materiais Fornecedores Fornecimentos Mat Forn
Cod Forn CNPJ Materiais Fornecimentos Fornecedores Manual para utilização dos modelos da Unisa Digital

4 Operações Básicas Virou uma sigla popular as quatro operações básicas nos dados: C – (create) criar, inserir dados R – (Retrieve) recuperar U – (update) atualizar D – (delete) excluir Manual para utilização dos modelos da Unisa Digital

5 Comando select Comando para consulta a dados (R) sintaxe:
select <coluna1>, <coluna2>,..., <colunan> from <tabela1>, <tabela2>,...<tabelam> [where <condição>] Manual para utilização dos modelos da Unisa Digital

6 select No select, escolhemos quais colunas farão parte do resultado
As colunas devem pertencer a tabelas presentes no comando from Quando há colunas com o mesmo nome, diferencia-se colocando-se o nome da tabela antes do nome da coluna, separando por um ponto Manual para utilização dos modelos da Unisa Digital

7 select exemplos: select nome, salário from funcionários select código
from disciplinas Manual para utilização dos modelos da Unisa Digital

8 Exemplos Select * from funcionários where salário > 1200
select nome from alunos where curso = ‘computação’ Manual para utilização dos modelos da Unisa Digital

9 exemplos Select * from funcionários where nome like ‘José%’ select *
from disciplinas where nome like ‘%cálculo%’ Manual para utilização dos modelos da Unisa Digital

10 Mais sobre o from Várias tabelas podem ser colocadas no from
É feito um produto cartesiano entre as linhas das tabelas do from select * from funcionários, departamentos Manual para utilização dos modelos da Unisa Digital

11 Junção Para conseguir uma consulta que faz junção de duas tabelas ligadas, é preciso colocar a declaração de junção no where select * from funcionários, departamentos where coddep = código Manual para utilização dos modelos da Unisa Digital

12 Inner join Ao executar o comando
select * from ( funcionários inner join departamentos on funcionários.coddep = departamentos.código ) Temos como resultado a tabela em que aparecem somente os funcionários e departamentos que tenham ligações. A condição de junção tem que ser especificada Manual para utilização dos modelos da Unisa Digital

13 Outer Join Com o outer join, podemos exibir valores que NÃO possuem ligação com a outra tabela. Right para a tabela da direita Left para a tabela da esquerda Full para exibir todos os valores de ambas as tabelas Quando não há ligação, o outro lado aparece vazio (nulo) Manual para utilização dos modelos da Unisa Digital

14 Exemplos select * from ( funcionários left outer join departamentos on funcionários.coddep = departamentos.código ) from ( funcionários right outer join departamentos on funcionários.coddep = departamentos.código ) from ( funcionários full outer join departamentos on funcionários.coddep = departamentos.código ) Manual para utilização dos modelos da Unisa Digital

15 Left outer join Manual para utilização dos modelos da Unisa Digital

16 Right outer join Manual para utilização dos modelos da Unisa Digital

17 Full outer join Manual para utilização dos modelos da Unisa Digital

18 União Podemos unir o resultado de duas consultas com o comando union
As colunas do select devem ser compatíveis (mesmo tipo) nas consultas participantes Retorna uma tabela com as linhas das duas tabelas. Repetições são excluídas. Manual para utilização dos modelos da Unisa Digital

19 União - exemplo select nome, datanasc from alunos
where curso = “computação” union from funcionários where salário < 1000 Manual para utilização dos modelos da Unisa Digital

20 Funções de agregação min max avg sum count outras (depende do sistema)
Manual para utilização dos modelos da Unisa Digital

21 exemplos select sum(salário) from funcionários select count(*)
from alunos select min(dataingresso) where curso = “computação” select avg(mensalidade) from cursos Manual para utilização dos modelos da Unisa Digital

22 agrupamentos Quando não se quer agregar um valor total, mas sim agrupar as agregações de acordo com um valor. Ex: Salário médio por departamento. Compras totais por cliente. Número de clientes por estado, etc. Comando group by após o comando SQL Manual para utilização dos modelos da Unisa Digital

23 exemplos select CPF, avg(saldo) from contas group by CPF
select nome, avg(preço) from Produtos group by nome Manual para utilização dos modelos da Unisa Digital

24 Subconsultas Consultas dentro da condição where, usadas como conjuntos, e em outras situações inclusão em consulta: in not in colocados no where, verifica se a coluna está ou não no resultado da consulta Manual para utilização dos modelos da Unisa Digital

25 Exemplo select * from correntes
where cpf in (select cpf from poupanca) where cpf not in (select cpf from poupanca) Manual para utilização dos modelos da Unisa Digital

26 Mais exemplos select nome from contas where (cpf, nome, numag) in
(select cpf, nome, numag from poupança) from alunos where nome not in (“Jones”, “James”) Manual para utilização dos modelos da Unisa Digital

27 comparação Podemos comparar uma coluna a vários valores de uma outra consulta, através das palavras any (ou some), e all select * from funcionários where salário >= all (select valor from produtos) Manual para utilização dos modelos da Unisa Digital

28 Alterações nos dados Exclusão: comando delete
Alteração: comando update Inclusão: comando insert Criação de Tabelas: create table Alteração de Tabelas: alter table Criação de visão: create view Manual para utilização dos modelos da Unisa Digital

29 Ordem de atualização A ordem de atualização de tabelas pode fazer diferença Vamos supor que queremos dar aumento de 5% para quem ganha menos que 1000 reais (inclusive), e de 2% para quem ganha mais de 1000. Qual o erro a seguir ? Manual para utilização dos modelos da Unisa Digital

30 Teste Update funcionários set salário = salário * 1,05
where salário <=1000 set salário = salário * 1,02 where salário > 1000 Manual para utilização dos modelos da Unisa Digital

31 Exemplo Create table departamentos ( codigo integer not null,
nome varchar(30), sala integer, primary key (codigo)) Create table funcionarios ( chapa integer not null, nome varchar(50) not null, Coddep integer, foreign key (Coddep) references departamentos, primary key (chapa)) Manual para utilização dos modelos da Unisa Digital

32 Normalização Processo de retirada de DFs, diminuindo a redundância.
Na verdade, uma formalização do MER Anomalias: exclusão, alteração, inserção Formas Normais 1a. Forma Normal 2a. Forma Normal 3a. Forma Normal Forma Normal de Boyce-Codd Manual para utilização dos modelos da Unisa Digital

33 1a. Forma Normal Dados atômicos
Motivos: modelo físico, lógica de 1ª. ordem. Nome Telefone José João Maria Nome Telefones José , , João , Maria Manual para utilização dos modelos da Unisa Digital

34 1FN – outra abordagem Nome Jose silva Antonio santos Maria oliveira
sobrenome Jose Silva Antonio Santos Maria Oliveira Manual para utilização dos modelos da Unisa Digital

35 Dependência Funcional
Dada uma tabela r com esquema R, e A,B  R A  B (A determina funcionalmente B) é válida se para qualquer par de tuplas t1 e t2, se t1[A]=t2[A], então vale que t1[B]=t2[B] Manual para utilização dos modelos da Unisa Digital

36 Interpretação prática
DF indica que os atributos pertencem à mesma entidade:ex: CPF  nome CPF  endereço_rua CPF  RG e RG  CPF anel de dependências (chaves alternativas) Manual para utilização dos modelos da Unisa Digital

37 2a. Forma normal Chave: ISBN RGAutor Valem: RGAutorNomeAutor
Uma tabela está em 2a. Forma normal se não houver DFs parciais em relação à chave Ex: Chave: ISBN RGAutor ISBN RGAutor NomeAutor Título 1 1111 José XXX 2222 João 2 YYY 3333 Maria 3 ZZZ Valem: RGAutorNomeAutor ISBN  Título Manual para utilização dos modelos da Unisa Digital

38 Decomposição É desejável uma decomposição sem perda de junção.
Se R,S é decomposição de P, teremos que: P = R S Uma decomposição é sem perda de junção se RS R ou RS S (a intersecção das tabelas deve ser uma chave Manual para utilização dos modelos da Unisa Digital

39 Junção Concatena tabelas a partir de linhas que tenham valores iguais em campos de mesmo nome. Ex: codigo descrição 1 XXX 2 YYY Nome Codigo AAA 1 BBB 2 CCC Nome Codigo descrição AAA 1 XXX BBB 2 YYY CCC Manual para utilização dos modelos da Unisa Digital

40 Solução da 2a. FN Decompor as tabelas:
Para cada DF parcial AB criar a tabela AB e tirar B da tabela original ISBN RGAutor 1 1111 2222 2 3333 3 ISBN Título 1 XXX 2 YYY 3 ZZZ RGAutor NomeAutor 1111 José 2222 João 3333 Maria Manual para utilização dos modelos da Unisa Digital

41 FNBC Se uma tabela tiver uma chave de uma única coluna, está em 2FN
Mas se houver outras DFs, pode haver redundâncias e anomalias. Ex: Alunos( RA, nome, Datanasc, curso, Nomecurso) Chave com 1 coluna  2FN ! Mas... Manual para utilização dos modelos da Unisa Digital

42 Exemplo RA Nome DataNasc CodCurso NomeCurso 1 José 01/01/80 BCC 2 João
02/01/80 3 Maria 03/02/81 4 Rafael 04/05/84 SI 5 Pedro 05/06/85 6 Ricardo 10/10/84 7 Henrique 8 Camila 9 Igor 08/07/79 10 Rogério 10/10/78 EC 11 Alexandre 11/11/77 12 Tatiana 04/07/78 13 Marcelo 14 03/06/70 Manual para utilização dos modelos da Unisa Digital

43 Exemplo Atendimento( CPFCli, CodAg, RGFFunc) Atendimento personalizado
RGFFuncCodAg Chave: CPFCli CodAg Exemplo: Manual para utilização dos modelos da Unisa Digital

44 Exemplo CPFCli CodAg RGFFunc 1111 123 321 1122 111 1133 2222 3333 4444
5555 6666 1234 7777 Manual para utilização dos modelos da Unisa Digital

45 3ª Forma Normal Uma tabela está em 3a. Forma Normal (3FN) se:
Para toda DF AB válida não trivial A é uma superchave B está contida em uma chave (B é primo). A tabela anterior está em 3FN. Sempre é possível preservar dependências com a 3FN Manual para utilização dos modelos da Unisa Digital

46 Quarta Forma Normal Uma relação está em Quarta Forma Nornal (4FN) se para toda DMV XY não trivial válida, X é uma superchave. Decomposição semelhante a da 3FN Manual para utilização dos modelos da Unisa Digital

47 Dependência de Projeção-Junção
Caso geral de DF e DMV Dados R1, R2, ... Rn, todos subconjuntos de R, vale a dependência de projeção junção denotada por JD(R1, R2, ... Rn) na tabela r se r = R1(r)  R2(r)  Rn(r) Manual para utilização dos modelos da Unisa Digital

48 Exemplo Fornecedor Peça Projeto SSS Parafuso ProjX Porca ProjY AAA WWW ProjZ Prego A DPJ DJ( Fornecedor Peça, Fornecedor Projeto, Peça Projeto ) é Válida: Manual para utilização dos modelos da Unisa Digital

49 Decomposição Fornecedor Peça SSS Parafuso Porca AAA WWW Prego
Projeto SSS ProjX ProjY AAA WWW ProjZ Peça Projeto Parafuso ProjX Porca ProjY ProjZ Prego Manual para utilização dos modelos da Unisa Digital

50 5ª. Forma Normal Uma tabela está na 5ª. Forma Normal quando para qualquer dependência de projeção junção JD(R1, R2, ..., Rn), R1, R2, Rn são chaves da tabela. Ou seja, não há redundância a ser eliminada com as projeções Manual para utilização dos modelos da Unisa Digital

51 Desnormalização Aumento do número de tabelas  Menor redundância
Aumento do número de tabelas  Consultas mais complexas e lentas Manter a redundância em alguns casos pode melhorar o desempenho de consultas Verificar o custo benefício entre consultas e atualizações (regra do 80/20 ) Manual para utilização dos modelos da Unisa Digital

52 Conclusão A Normalização é na verdade, uma formalização teórica do projeto conceitual. Com o projeto conceitual, em geral chegamos em 3a. Forma normal, no mínimo. Pode haver problemas com a FNBC se tivermos chaves compostas sobrepostas. Manual para utilização dos modelos da Unisa Digital

53 Conclusão (cont.) Senão, temos o projeto em 4FN.
A 5FN pode ser violada se tivermos relacionamentos triplos. Se substituirmos os relacionamentos triplos por 3 duplos, dificilmente haverá violação da 5FN. Manual para utilização dos modelos da Unisa Digital


Carregar ppt "Projeto, SQL e Normalização"

Apresentações semelhantes


Anúncios Google