tema 6 - mapeamento do modelo entidade- relacionamento para o modelo relacional. tema 7 –...
TRANSCRIPT
![Page 1: Tema 6 - Mapeamento do Modelo Entidade- Relacionamento para o Modelo Relacional. Tema 7 – Introdução a Linguagem SQL. Professor Me. Jeferson Bussula Pinheiro](https://reader036.vdocuments.com.br/reader036/viewer/2022062522/570638571a28abb8238fbe11/html5/thumbnails/1.jpg)
Tema 6 - Mapeamento do Modelo Entidade-Relacionamento para o Modelo Relacional.
Tema 7 – Introdução a Linguagem SQL.Professor Me. Jeferson Bussula Pinheiro.
![Page 2: Tema 6 - Mapeamento do Modelo Entidade- Relacionamento para o Modelo Relacional. Tema 7 – Introdução a Linguagem SQL. Professor Me. Jeferson Bussula Pinheiro](https://reader036.vdocuments.com.br/reader036/viewer/2022062522/570638571a28abb8238fbe11/html5/thumbnails/2.jpg)
Para início de Conversa!
![Page 3: Tema 6 - Mapeamento do Modelo Entidade- Relacionamento para o Modelo Relacional. Tema 7 – Introdução a Linguagem SQL. Professor Me. Jeferson Bussula Pinheiro](https://reader036.vdocuments.com.br/reader036/viewer/2022062522/570638571a28abb8238fbe11/html5/thumbnails/3.jpg)
Objetivos deste encontro• Objetivo da normalização• Funcionamento de cada forma normal (FN)• Melhor forma normal a ser utilizada• Transformar MER em modelo relacional• Linguagem de manipulação de dados. • Linguagem de definição de dados. • Tipos para definição de dados.
![Page 4: Tema 6 - Mapeamento do Modelo Entidade- Relacionamento para o Modelo Relacional. Tema 7 – Introdução a Linguagem SQL. Professor Me. Jeferson Bussula Pinheiro](https://reader036.vdocuments.com.br/reader036/viewer/2022062522/570638571a28abb8238fbe11/html5/thumbnails/4.jpg)
Objetivo da normalização
• Normalização é um recurso que evita anomalias na geração de tabelas para o modelo relacional, através da aplicação de regras sucessivas, conhecidas como formas normais (FN).
![Page 5: Tema 6 - Mapeamento do Modelo Entidade- Relacionamento para o Modelo Relacional. Tema 7 – Introdução a Linguagem SQL. Professor Me. Jeferson Bussula Pinheiro](https://reader036.vdocuments.com.br/reader036/viewer/2022062522/570638571a28abb8238fbe11/html5/thumbnails/5.jpg)
1ª Forma Normal (1FN)
• Define que não devem existir campos multivalorados em uma tabela ou subgrupos de atributos repetidos.
![Page 6: Tema 6 - Mapeamento do Modelo Entidade- Relacionamento para o Modelo Relacional. Tema 7 – Introdução a Linguagem SQL. Professor Me. Jeferson Bussula Pinheiro](https://reader036.vdocuments.com.br/reader036/viewer/2022062522/570638571a28abb8238fbe11/html5/thumbnails/6.jpg)
• Converter atributos não atômicos em atributos atômicos, impossibilitando a inserção de mais que um valor em cada campo de uma tabela.
• Eliminar os atributos repetidos, considerando-os elementos de uma nova tabela.
1ª Forma Normal (1FN)
![Page 7: Tema 6 - Mapeamento do Modelo Entidade- Relacionamento para o Modelo Relacional. Tema 7 – Introdução a Linguagem SQL. Professor Me. Jeferson Bussula Pinheiro](https://reader036.vdocuments.com.br/reader036/viewer/2022062522/570638571a28abb8238fbe11/html5/thumbnails/7.jpg)
1ª Forma Normal (1FN)
O campo “itens” possui diversos valores, caracterizando um campo multivalorado.
Fonte: Caderno de atividades
![Page 8: Tema 6 - Mapeamento do Modelo Entidade- Relacionamento para o Modelo Relacional. Tema 7 – Introdução a Linguagem SQL. Professor Me. Jeferson Bussula Pinheiro](https://reader036.vdocuments.com.br/reader036/viewer/2022062522/570638571a28abb8238fbe11/html5/thumbnails/8.jpg)
1ª Forma Normal (1FN)
Fonte: Caderno de atividades
• Eliminar os grupos de repetição.
![Page 9: Tema 6 - Mapeamento do Modelo Entidade- Relacionamento para o Modelo Relacional. Tema 7 – Introdução a Linguagem SQL. Professor Me. Jeferson Bussula Pinheiro](https://reader036.vdocuments.com.br/reader036/viewer/2022062522/570638571a28abb8238fbe11/html5/thumbnails/9.jpg)
Fonte: Caderno de atividades
![Page 10: Tema 6 - Mapeamento do Modelo Entidade- Relacionamento para o Modelo Relacional. Tema 7 – Introdução a Linguagem SQL. Professor Me. Jeferson Bussula Pinheiro](https://reader036.vdocuments.com.br/reader036/viewer/2022062522/570638571a28abb8238fbe11/html5/thumbnails/10.jpg)
2ª Forma Normal (2FN)
• Toda relação deve estar na 1FN e deve-se eliminar dependências funcionais parciais, ou seja, todo atributo não chave deve ser totalmente dependente da chave primária.
![Page 11: Tema 6 - Mapeamento do Modelo Entidade- Relacionamento para o Modelo Relacional. Tema 7 – Introdução a Linguagem SQL. Professor Me. Jeferson Bussula Pinheiro](https://reader036.vdocuments.com.br/reader036/viewer/2022062522/570638571a28abb8238fbe11/html5/thumbnails/11.jpg)
Fonte: Caderno de atividades
![Page 12: Tema 6 - Mapeamento do Modelo Entidade- Relacionamento para o Modelo Relacional. Tema 7 – Introdução a Linguagem SQL. Professor Me. Jeferson Bussula Pinheiro](https://reader036.vdocuments.com.br/reader036/viewer/2022062522/570638571a28abb8238fbe11/html5/thumbnails/12.jpg)
Fonte: Caderno de atividades
![Page 13: Tema 6 - Mapeamento do Modelo Entidade- Relacionamento para o Modelo Relacional. Tema 7 – Introdução a Linguagem SQL. Professor Me. Jeferson Bussula Pinheiro](https://reader036.vdocuments.com.br/reader036/viewer/2022062522/570638571a28abb8238fbe11/html5/thumbnails/13.jpg)
3ª Forma Normal (3FN)
• Toda relação deve estar na 2FN e deve-se eliminar dependências funcionais transitivas, ou seja, todo atributo não chave deve ser mutuamente independente.
![Page 14: Tema 6 - Mapeamento do Modelo Entidade- Relacionamento para o Modelo Relacional. Tema 7 – Introdução a Linguagem SQL. Professor Me. Jeferson Bussula Pinheiro](https://reader036.vdocuments.com.br/reader036/viewer/2022062522/570638571a28abb8238fbe11/html5/thumbnails/14.jpg)
Fonte: Caderno de atividades
![Page 15: Tema 6 - Mapeamento do Modelo Entidade- Relacionamento para o Modelo Relacional. Tema 7 – Introdução a Linguagem SQL. Professor Me. Jeferson Bussula Pinheiro](https://reader036.vdocuments.com.br/reader036/viewer/2022062522/570638571a28abb8238fbe11/html5/thumbnails/15.jpg)
4ª Forma Normal (4FN)
• Deve estar na 3FN.• É baseada na remoção de
dependências multivaloradas, como é o caso de um provável campo que trate vários telefones.
![Page 16: Tema 6 - Mapeamento do Modelo Entidade- Relacionamento para o Modelo Relacional. Tema 7 – Introdução a Linguagem SQL. Professor Me. Jeferson Bussula Pinheiro](https://reader036.vdocuments.com.br/reader036/viewer/2022062522/570638571a28abb8238fbe11/html5/thumbnails/16.jpg)
Boyce and Codd Normal Form (BCNF)
• Uma relação está na BCNF se e somente se todo determinante é chave candidata.
• Um determinante é qualquer atributo do qual algum outro atributo é funcionalmente dependente.aluno
disciplina
instrutor
![Page 17: Tema 6 - Mapeamento do Modelo Entidade- Relacionamento para o Modelo Relacional. Tema 7 – Introdução a Linguagem SQL. Professor Me. Jeferson Bussula Pinheiro](https://reader036.vdocuments.com.br/reader036/viewer/2022062522/570638571a28abb8238fbe11/html5/thumbnails/17.jpg)
Continuando...
![Page 18: Tema 6 - Mapeamento do Modelo Entidade- Relacionamento para o Modelo Relacional. Tema 7 – Introdução a Linguagem SQL. Professor Me. Jeferson Bussula Pinheiro](https://reader036.vdocuments.com.br/reader036/viewer/2022062522/570638571a28abb8238fbe11/html5/thumbnails/18.jpg)
DML, DDL, DCL! O que é isso?
• A linguagem SQL é composta por inúmeros comandos, os quais são agrupados da seguinte maneira:– Comandos que definem dados;– Comandos que manipulam dados;– Comandos de controle de dados.
![Page 19: Tema 6 - Mapeamento do Modelo Entidade- Relacionamento para o Modelo Relacional. Tema 7 – Introdução a Linguagem SQL. Professor Me. Jeferson Bussula Pinheiro](https://reader036.vdocuments.com.br/reader036/viewer/2022062522/570638571a28abb8238fbe11/html5/thumbnails/19.jpg)
DML, DDL, DCL e SQL
![Page 20: Tema 6 - Mapeamento do Modelo Entidade- Relacionamento para o Modelo Relacional. Tema 7 – Introdução a Linguagem SQL. Professor Me. Jeferson Bussula Pinheiro](https://reader036.vdocuments.com.br/reader036/viewer/2022062522/570638571a28abb8238fbe11/html5/thumbnails/20.jpg)
DDL
• CREATE TABLE – cria uma nova tabela (relação) no BD nova
tabela não possui dados• DROP TABLE
– remove uma tabela e sua instância do BD
• ALTER TABLE– altera a estrutura de uma tabela já existente
no BD
![Page 21: Tema 6 - Mapeamento do Modelo Entidade- Relacionamento para o Modelo Relacional. Tema 7 – Introdução a Linguagem SQL. Professor Me. Jeferson Bussula Pinheiro](https://reader036.vdocuments.com.br/reader036/viewer/2022062522/570638571a28abb8238fbe11/html5/thumbnails/21.jpg)
CREATE TABLE• Cria uma nova tabela (relação)• Cria os atributos da nova tabela, com
– nome do atributo: Ai (1 <= i <= n)– tipo de dado (domínio do atributo): Di– restrições que atuam no atributo: Ri
![Page 22: Tema 6 - Mapeamento do Modelo Entidade- Relacionamento para o Modelo Relacional. Tema 7 – Introdução a Linguagem SQL. Professor Me. Jeferson Bussula Pinheiro](https://reader036.vdocuments.com.br/reader036/viewer/2022062522/570638571a28abb8238fbe11/html5/thumbnails/22.jpg)
DROP TABLE
• Remove uma tabela existente do BD– Dados– Indices, etc.
• Usuários autorizados– Proprietário do banco de dados– DBA.
![Page 23: Tema 6 - Mapeamento do Modelo Entidade- Relacionamento para o Modelo Relacional. Tema 7 – Introdução a Linguagem SQL. Professor Me. Jeferson Bussula Pinheiro](https://reader036.vdocuments.com.br/reader036/viewer/2022062522/570638571a28abb8238fbe11/html5/thumbnails/23.jpg)
ALTER TABLE
• Altera o esquema de uma tabela do BD
![Page 24: Tema 6 - Mapeamento do Modelo Entidade- Relacionamento para o Modelo Relacional. Tema 7 – Introdução a Linguagem SQL. Professor Me. Jeferson Bussula Pinheiro](https://reader036.vdocuments.com.br/reader036/viewer/2022062522/570638571a28abb8238fbe11/html5/thumbnails/24.jpg)
Exemplos de alter table
![Page 25: Tema 6 - Mapeamento do Modelo Entidade- Relacionamento para o Modelo Relacional. Tema 7 – Introdução a Linguagem SQL. Professor Me. Jeferson Bussula Pinheiro](https://reader036.vdocuments.com.br/reader036/viewer/2022062522/570638571a28abb8238fbe11/html5/thumbnails/25.jpg)
![Page 26: Tema 6 - Mapeamento do Modelo Entidade- Relacionamento para o Modelo Relacional. Tema 7 – Introdução a Linguagem SQL. Professor Me. Jeferson Bussula Pinheiro](https://reader036.vdocuments.com.br/reader036/viewer/2022062522/570638571a28abb8238fbe11/html5/thumbnails/26.jpg)
DML• Insert
– Inserir dados • insert into aluno (id, nome) values (1, ‘Ana’);
• Update– Atualizar dados
• update aluno set nome =‘Ana’ where id = 1;• Delete
– Deletar dados• Delete from aluno where id = 1;
![Page 27: Tema 6 - Mapeamento do Modelo Entidade- Relacionamento para o Modelo Relacional. Tema 7 – Introdução a Linguagem SQL. Professor Me. Jeferson Bussula Pinheiro](https://reader036.vdocuments.com.br/reader036/viewer/2022062522/570638571a28abb8238fbe11/html5/thumbnails/27.jpg)
DML
• Select– Selecionar dados
• Select * from aluno;
![Page 28: Tema 6 - Mapeamento do Modelo Entidade- Relacionamento para o Modelo Relacional. Tema 7 – Introdução a Linguagem SQL. Professor Me. Jeferson Bussula Pinheiro](https://reader036.vdocuments.com.br/reader036/viewer/2022062522/570638571a28abb8238fbe11/html5/thumbnails/28.jpg)
DCL
• Revoke– Revogar permissões
• Grant– Conceder permissões
![Page 29: Tema 6 - Mapeamento do Modelo Entidade- Relacionamento para o Modelo Relacional. Tema 7 – Introdução a Linguagem SQL. Professor Me. Jeferson Bussula Pinheiro](https://reader036.vdocuments.com.br/reader036/viewer/2022062522/570638571a28abb8238fbe11/html5/thumbnails/29.jpg)
Exemplos de Tipos de Dados
• Numéricos– Integer, float, number ...
• Hora/Data– Date (YYYY-MM-DD), time (HH-MM-SS), ...
• Strings– Char, varchar, nchar, ...
• Binário– Blob, lob
• Etc.
![Page 30: Tema 6 - Mapeamento do Modelo Entidade- Relacionamento para o Modelo Relacional. Tema 7 – Introdução a Linguagem SQL. Professor Me. Jeferson Bussula Pinheiro](https://reader036.vdocuments.com.br/reader036/viewer/2022062522/570638571a28abb8238fbe11/html5/thumbnails/30.jpg)
Restrições de Integridade
• Valor nulo– representado por NULL – membro de todos os domínios
• Restrição NOT NULL– especificada quando NULL não é
permitido– proíbe que o atributo receba valor
nulo
![Page 31: Tema 6 - Mapeamento do Modelo Entidade- Relacionamento para o Modelo Relacional. Tema 7 – Introdução a Linguagem SQL. Professor Me. Jeferson Bussula Pinheiro](https://reader036.vdocuments.com.br/reader036/viewer/2022062522/570638571a28abb8238fbe11/html5/thumbnails/31.jpg)
Vamos Praticar!!??
![Page 32: Tema 6 - Mapeamento do Modelo Entidade- Relacionamento para o Modelo Relacional. Tema 7 – Introdução a Linguagem SQL. Professor Me. Jeferson Bussula Pinheiro](https://reader036.vdocuments.com.br/reader036/viewer/2022062522/570638571a28abb8238fbe11/html5/thumbnails/32.jpg)
ExercíciosConsidere para um sistema de encomenda onde temos o seguinte documento.
Empresa e Cia, Ltda.Rua 15 de Novembro, 234– Campo Grande-MSCNPJ – 02.987.405.0001-60
Encomenda nº 2125Data: 05/02/2014
Cliente Jeferson Bussula PinheiroRua Semíramis, 234 Campo Grande-MS - CPF: 111.111.111.11
Código Descrição Qtde Desconto Preço Total
2 Impressora 3 0 230,00 690,005 Pen Drive 2 0 40,00 80,00
8 Not Book 1 0 2350,00 2350,00Total Encomenda 3120,00
![Page 33: Tema 6 - Mapeamento do Modelo Entidade- Relacionamento para o Modelo Relacional. Tema 7 – Introdução a Linguagem SQL. Professor Me. Jeferson Bussula Pinheiro](https://reader036.vdocuments.com.br/reader036/viewer/2022062522/570638571a28abb8238fbe11/html5/thumbnails/33.jpg)
1. Quais os campos envolvidos na encomenda?
R: Cod_enc, Data_enc, CPF_cliente, nome_cliente, endereco_cliente, cod_produto, descricao_produto, qtde_produto, preco_produto, desconto, total_produto, total_encomenda
![Page 34: Tema 6 - Mapeamento do Modelo Entidade- Relacionamento para o Modelo Relacional. Tema 7 – Introdução a Linguagem SQL. Professor Me. Jeferson Bussula Pinheiro](https://reader036.vdocuments.com.br/reader036/viewer/2022062522/570638571a28abb8238fbe11/html5/thumbnails/34.jpg)
2. Considerando o sistema de encomenda, aplique a 1FN (“Eliminar
os grupos repetidos”) .R:
Encomenda
Cod_enc
Data_enc
CPF_cliente
nome_cliente
endereco_cliente
total_encomenda
Encomenda_Produto
Cod_enc
cod_produto
descricao_produto
qtde_produto
preco_produto
desconto
total_produto
![Page 35: Tema 6 - Mapeamento do Modelo Entidade- Relacionamento para o Modelo Relacional. Tema 7 – Introdução a Linguagem SQL. Professor Me. Jeferson Bussula Pinheiro](https://reader036.vdocuments.com.br/reader036/viewer/2022062522/570638571a28abb8238fbe11/html5/thumbnails/35.jpg)
3. Considerando o sistema de encomenda, aplique a 2FN. (“atributos não-chave são funcionalmente dependentes ”)
R:
Encomenda
Cod_enc
Data_enc
CPF_cliente
nome_cliente
endereco_cliente
total_encomenda
Encomenda_Produto
Cod_enc
cod_produto
desconto
qtde_produto
total_produto
Produto
cod_produto
descricao_produto
preco_produto
![Page 36: Tema 6 - Mapeamento do Modelo Entidade- Relacionamento para o Modelo Relacional. Tema 7 – Introdução a Linguagem SQL. Professor Me. Jeferson Bussula Pinheiro](https://reader036.vdocuments.com.br/reader036/viewer/2022062522/570638571a28abb8238fbe11/html5/thumbnails/36.jpg)
4. Considerando o sistema de encomenda, aplique a 3FN. (“nenhum atributo não-chave funcionalmente de nenhum outro
atributo não-chave”).
R:Encomenda
Cod_enc
Data_enc
CPF_cliente
total_encomenda
Encomenda_Produto
Cod_enc
cod_produto
desconto
qtde_produto
total_produto
Produtocod_produto
descricao_produto
preco_produto
cliente
CPF_cliente
nome_cliente
endereco_cliente
![Page 37: Tema 6 - Mapeamento do Modelo Entidade- Relacionamento para o Modelo Relacional. Tema 7 – Introdução a Linguagem SQL. Professor Me. Jeferson Bussula Pinheiro](https://reader036.vdocuments.com.br/reader036/viewer/2022062522/570638571a28abb8238fbe11/html5/thumbnails/37.jpg)
![Page 38: Tema 6 - Mapeamento do Modelo Entidade- Relacionamento para o Modelo Relacional. Tema 7 – Introdução a Linguagem SQL. Professor Me. Jeferson Bussula Pinheiro](https://reader036.vdocuments.com.br/reader036/viewer/2022062522/570638571a28abb8238fbe11/html5/thumbnails/38.jpg)
6. Informe pelo menos três tipos de dados que podemos definir nos campos em uma tabela no banco de dados relacional?
R:
![Page 39: Tema 6 - Mapeamento do Modelo Entidade- Relacionamento para o Modelo Relacional. Tema 7 – Introdução a Linguagem SQL. Professor Me. Jeferson Bussula Pinheiro](https://reader036.vdocuments.com.br/reader036/viewer/2022062522/570638571a28abb8238fbe11/html5/thumbnails/39.jpg)
![Page 40: Tema 6 - Mapeamento do Modelo Entidade- Relacionamento para o Modelo Relacional. Tema 7 – Introdução a Linguagem SQL. Professor Me. Jeferson Bussula Pinheiro](https://reader036.vdocuments.com.br/reader036/viewer/2022062522/570638571a28abb8238fbe11/html5/thumbnails/40.jpg)
Finalizando...
![Page 41: Tema 6 - Mapeamento do Modelo Entidade- Relacionamento para o Modelo Relacional. Tema 7 – Introdução a Linguagem SQL. Professor Me. Jeferson Bussula Pinheiro](https://reader036.vdocuments.com.br/reader036/viewer/2022062522/570638571a28abb8238fbe11/html5/thumbnails/41.jpg)
Revisando...
• Objetivo da normalização.– O grau de normalização possui
grande importância para definir o comportamento e a forma das tabelas, campos e registros.
![Page 42: Tema 6 - Mapeamento do Modelo Entidade- Relacionamento para o Modelo Relacional. Tema 7 – Introdução a Linguagem SQL. Professor Me. Jeferson Bussula Pinheiro](https://reader036.vdocuments.com.br/reader036/viewer/2022062522/570638571a28abb8238fbe11/html5/thumbnails/42.jpg)
Formas normais
• 1FN– Excluir repetições.
• 2FN– Os campos devem ser dependentes
da chave primária.• 3FN
– Todo atributo não chave deve ser independente.
![Page 43: Tema 6 - Mapeamento do Modelo Entidade- Relacionamento para o Modelo Relacional. Tema 7 – Introdução a Linguagem SQL. Professor Me. Jeferson Bussula Pinheiro](https://reader036.vdocuments.com.br/reader036/viewer/2022062522/570638571a28abb8238fbe11/html5/thumbnails/43.jpg)
• 4FN– Remoção das dependências.
• BCNF– Uma relação está na BCNF se e
somente se todo determinante é chave candidata.
– Dependência funcional.
![Page 44: Tema 6 - Mapeamento do Modelo Entidade- Relacionamento para o Modelo Relacional. Tema 7 – Introdução a Linguagem SQL. Professor Me. Jeferson Bussula Pinheiro](https://reader036.vdocuments.com.br/reader036/viewer/2022062522/570638571a28abb8238fbe11/html5/thumbnails/44.jpg)
– Introdução SQL• DDL
– Tipo de dados• DML
– Insert, update, delete e select• DCL
– Administrativo
![Page 45: Tema 6 - Mapeamento do Modelo Entidade- Relacionamento para o Modelo Relacional. Tema 7 – Introdução a Linguagem SQL. Professor Me. Jeferson Bussula Pinheiro](https://reader036.vdocuments.com.br/reader036/viewer/2022062522/570638571a28abb8238fbe11/html5/thumbnails/45.jpg)
• Transformar MER em modelo relacional– Atributos– Relacionamentos– Chaves primárias e estrangeiras
![Page 46: Tema 6 - Mapeamento do Modelo Entidade- Relacionamento para o Modelo Relacional. Tema 7 – Introdução a Linguagem SQL. Professor Me. Jeferson Bussula Pinheiro](https://reader036.vdocuments.com.br/reader036/viewer/2022062522/570638571a28abb8238fbe11/html5/thumbnails/46.jpg)
• Melhor forma normal a ser utilizada– Normalizar/Desnormalização