Documentos relacionados
Fundamentos de Banco de Dados Postgre com Sql

SQL E MYSQL - COMANDOS BÁSICOS

TRABALHO DE BANCO DE DADOS


Os tipos de cardinalidade dos relacionamentos usados em Mysql são:

Uma solução possível para garantir, em ambiente APEX, a consistência duma estrutura ISA, total e disjuntiva.

Conceitos SQL SQL 19/03/2017 O que é dado? O que é BD? O que é uma informação? O que é SGBD? O que é SQL? O que é BD? O que é SGBD?

UNIVERSIDADE FEDERAL DA GRANDE DOURADOS PRÓ-REITORIA DE GRADUAÇÃO PROGRAD FACULDADE DE CIÊNCIAS EXATAS E TECNOLOGIA CURSO DE SISTEMAS DE INFORMAÇÃO

Programação em Banco de dados

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE INTRODUÇÃO A SQL

Professor: Claudio Maximiliano Zaina Aluno: Alef Vinicius Cardoso e Silva Prontuário: Aluno: Protuário: BANCO DE DADOS II

Modelo Entidade-Relacionamento (E-R)

Banco de Dados. Professora: Luciana Faria

SQL Básica DDL. Prof. Marcos A. Schreiner. 21 de outubro de Curso de Licenciatura em Computação

Banco de Dados. Diego Silveira Costa Nascimento. 20 de março de Instituto Federal do Rio Grande do Norte

Disciplina: Banco de Dados Tema: SQL Parte 2

BANCO DE DADOS II CONVENIÊNCIA

Banco de Dados I Introdução SQL

A U L A 8 C O N S U L T A S U N I N D O D U A S O U M A I S T A B E L A S P A R T E 2

ORACLE HETEROGENEUS SERVICES: CRIANDO UM DATABASE LINK COM MYSQL

Banco de dados. Conteúdo: DDL Prof. Patrícia Lucas

drop database escola; CREATE DATABASE escola; USE escola; CREATE TABLE curso ( numcurso int NOT NULL, nome varchar(40), totalcreditos int,

Administração de Banco de Dados

Introdução à Banco de Dados. Nathalia Sautchuk Patrício

Teste Exemplo Revisão da tentativa 1

Lista 02 Sistema de Banco de Dados CAP 241 Computação Aplicada I

BANCO DE DADOS. info 3º ano. Prof. Diemesleno Souza Carvalho

TECNOLOGIA EM SISTEMAS PARA INTERNET PROJETO DE BANCO DE DADOS

Introdução ao Banco de Dados. Banco de Dados

12.4 DER Mais sobre Cardinalidade DER Mais sobre Cardinalidade DER Mais sobre Cardinalidade DER Mais sobre Cardinalidade

Marcio Victorino

Linguagem SQL (Parte II)

BANCO DE DADOS SQL. Aprendendo a manipular dados. Banco de dados utilizado: PostgreSQL.

Aula de SQL Comandos DDL. André Luiz de Oliveira Eduardo Raul Hruschka

Utilizando o Postgres - comandos SQL para a manipulação de dados

Introdução à linguagem SQL

Crie a seguinte estrutura: Banco de Dados: Carros e duas tabelas: proprietários e veículos, conforme está abaixo e cadastre os mesmos dados:

PROGRAMA. 3.SQL Básico. 3.1 Criação de tabelas 3.2 Queries simples 3.3 Subqueries 3.4 Agregação. Prof. Dr. Marcos Tsuzuki

BANCO DE DADOS II SQL Básico. COTEMIG Gerson Borges

SQL CREATE DATABASE. MySQL, SQL Server, Access, Oracle, Sybase, DB2, e outras base de dados utilizam o SQL.

Page 1. Prof. Constantino Jacob

LINGUAGEM SQL Linguagem usada em SGBD para: Definir estrutura de dados; Modificar dados em um banco de dados; Especificar restrições de segurança; Rea

NORMALIZAÇÃO. Quantidade do Produto. Produto

'%'! $!0" $ 8 ' %%! % '! $ $$% + ' %!%$/)!'4!+,"/)!)+,/)% *! +,"0''% * %$!*!$$ #!"%&%'%'%$! "94(# ' %'$%$$$%0%$%' *!% %%%'!**% > %% %%!31?

Objetivos:

INNER, CROSS, LEFT, RIGHT E FULL JOINS SIMPLES ASSIM! Wellyngton Luiz Cruz Moreira wlcmoreira@hotmail.com

MySql. Introdução a MySQL. Andréa Garcia Trindade

EXERCÍCIOS PRÁTICOS DE REVISÃO. Banco de Dados

NORMALIZAÇÃO. Adão de Melo Neto

BANCO DE DADOS I. Exercícios

SGATF Sistema para Gerenciamento de Alugueis de Trajes para Festa

SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name = 'pessoas';

PCS3413. Engenharia de So-ware e Banco de Dados. Aula 16. Escola Politécnica da Universidade de São Paulo

Normalização de Dados. Disciplina: Fundamentos de Banco de dados Docente: Kelyn Schenatto

Blob fields in MySQL Databases

Preparação. Linguagem de Manipulação de Dados (DML) Estudo Dirigido 10/12/2013

Banco de Dados Loja Virtual. CLIENTE(ClienteId, PrimNome, UltNome, Endereço, Cidade, Cep, Telefone)

Prof. Dr. Joaquim Assunção Banco de Dados. SQL (parte 4) DDL Restrições

DDL DML DCL DTL Tipos Numéricos: INT FLOAT DOUBLE Tipos String: CHAR VARCHAR BINARY BLOB TEXT Tipos Data e Hora: DATE TIME TIMESTAMP YEAR

PHP INTEGRAÇÃO COM MYSQL PARTE 1

SQL PostgreSQL. I Criação de Tabelas. Disciplina: SCC0241 Bases de Dados Professor: Eduardo Hruschka Estagiária PAE: Dayse de Almeida

Modelagem Física e SQL

Aula 6 BD1 Modelo Relacional. Profa. Elaine Faria UFU


Sumário: 1) Trabalhando com Constraints: - NOT NULL - UNIQUE - PRIMARY KEY - FOREIGN KEY - DEFAULT

Comandos de Manipulação

Marcos Alexandruk Marcos Alexandruk

Linguagem de Consulta Estruturada (SQL)

Considere as Relações Funcionários (F) e Dependentes (D), com o seguinte esquema simplificado:

Tabelas. Banco de Dados I MySQL

Sumário. SQL - Criação de Tabelas. Structured Query Language. SQL Versões. André Restivo. October 18, 2010

Introdução ao PostgreSQL

BANCO DE DADOS. Para a criação de um banco de dados, através de scripts SQL, deve-se usar a seguinte sintaxe: CREATE DATABASE <nome_banco_de_dados>

BANCO DE DADOS BANCO DE DADOS. Prof. Patrícia Lucas 3º Trimestre

TECNÓLOGO EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS BANCO DE DADOS I PROFA. CLEIANE GONÇALVES OLIVEIRA ATIVIDADE 15

Bases de Dados. DDL Data Definition Language

Definição do esquema da base de dados. o esquema da BD é composto pelas definições de todas as tabelas da BD.

Escola Secundária de Albufeira. Comandos MySQL. (Páginas Web Dinâmicas: PHP e MySQL) Carlos Nunes

STRBY Sistema de Gerenciamento de Lojas de Roupas

MySQL. Prof. César Melo. com a ajuda de vários

Transcrição:

# Normalização # 1 Forma normal, não podem ter recursos com mais de um item (vetores) # dados que devem ser detalhados... #Revisão #não normalizado #Normalização (Nada é redundante) Cliente idcliente nome email telefone endereco 1 edson edson@gmail 981190108, 22684219 rua a, numero 60, bairro Grajau, cidade Rio de Janeiro #Erros telefone Vetor #Erros EnDereco Possui muitos valores 1 _Forma Normal Cliente idcliente nome email 1 edson edson@gmail Telefone idtelefone Numero 10 98199-0108 1 11 22684219 1 id_cliente Endereco idendereco rua bairro cidade id_cliente 100 rua a grajau Rio de Janeiro 1 2 Forma Normal Observar os dados sempre verificando se tudo está preso a chave primária A normalização de dados é uma série de passos que se seguem no projeto de um banco de dados, que permitem um armazenamento consistente e um eficiente acesso aos dados em bancos de dados relacionais. Esses passos reduzem a redundância de dados e as chances dos dados se tornarem inconsistentes. 1

No entanto, muitos SGBDs relacionais não têm separação suficiente entre o projeto lógico da base de dados e a implementação física do banco de dados, e isso tem como consequência que as consultas feitas a um banco de dados totalmente normalizado tenham mau desempenho. Nestes casos, usa-se por vezes a desnormalização para melhorar o desempenho, com o custo de menores garantias de consistência. Segunda Forma Normal (ou 2FN) requer que não haja dependência funcional não-trivial de um atributo que não seja a chave, em parte da chave candidata; Segunda Forma Normal: Uma relação está na 2FN se, e somente se, estiver na 1FN e cada atributo não-chave for dependente da chave primária inteira, isto é, cada atributo não-chave não poderá ser dependente de apenas parte da chave. No caso de tabelas com chave primária composta, se um atributo depende apenas de uma parte da chave primária, então esse atributo deve ser colocado em outra tabela. idpedido datapedido codproduto nomeproduto qtde valorunitario valortotal 10 20/03/2015 1 celular 2 300 600 #Erro na Segunda Forma Normal # O nome Do Produto está preso ao código, os dados sempre presos @ a chave primária... 2

create database bnc5; use bnc5; create table produto( idproduto int primary key, nomeproduto varchar (35), valorunitario double ); insert into produto values (100,'celular Asus',600); insert into produto values (101,'celular iphone', 3000); insert into produto values (102,'celular sansung', 1500); create table pedido ( idpedido int primary key, datapedido date, codigoproduto int, qtde int, valortotal double, foreign key(codigoproduto) references produto(idproduto)); insert into pedido values (500,'2015/03/10',100,1, 600); insert into pedido values (501,'2015/03/11',102,3, 4500); insert into pedido values (502,'2015/03/11',101,2, 3000); desc produto; +---------------+-------------+------+-----+---------+-------+ Field Type Null Key Default Extra +---------------+-------------+------+-----+---------+-------+ idproduto int(11) NO PRI NULL nomeproduto varchar(35) YES NULL valorunitario double YES NULL +---------------+-------------+------+-----+---------+-------+ desc pedido; +---------------+---------+------+-----+---------+-------+ Field Type Null Key Default Extra +---------------+---------+------+-----+---------+-------+ idpedido int(11) NO PRI NULL datapedido date YES NULL codigoproduto int(11) YES MUL NULL qtde int(11) YES NULL valortotal double YES NULL +---------------+---------+------+-----+---------+-------+ 3

select*from produto; +-----------+------------------+---------------+ idproduto nomeproduto valorunitario +-----------+------------------+---------------+ 100 celular Asus 600 101 celular iphone 3000 102 celular sansung 1500 +-----------+------------------+---------------+ select*from pedido; +----------+------------+---------------+------+------------+ idpedido datapedido codigoproduto qtde valortotal +----------+------------+---------------+------+------------+ 500 2015-03-10 100 1 600 501 2015-03-11 102 3 4500 502 2015-03-11 101 2 3000 +----------+------------+---------------+------+------------+ #Observar que Geramos 2 Tabelas, porque o nome do produto estva preso # a tabela pedido, com o codigodoproduto -->NOmeDoProduto # NomeProduto (Fora por não estar preso ao Pedido #3 Forma Normal Terceira Forma Normal: Uma relação R está na 3FN se ela estiver na 2FN e cada atributo não-chave de R não possuir dependência transitiva, para cada chave candidata de R. # Valor Total Depende da muliplicação da qtde * o valorunitario # Nenhuma dependencia pode ser transitiva idpedido datapedido codproduto nomeproduto qtde valorunitario valortotal 10 20/03/2015 1 celular 2 300 600 #Cortar VALORTORAL #ValorToTal NA TERCEIRA FORMA NORMAL NÃO ENTROU... 4

drop table pedido3fn; drop table produto3fn; create table produto3fn( idproduto int primary key, nomeproduto varchar (35), valorunitario double ); create table pedido3fn( idpedido int primary key, datapedido date, codigoproduto int, qtde int, foreign key(codigoproduto) references produto3fn(idproduto) ); insert into produto3fn values (10,'celular ASUS',500); insert into produto3fn values (20,'celular Sansung',800); insert into produto3fn values (30,'celular Iphone',1500); insert into pedido3fn values (1000,'2010/03/10',10,1); insert into pedido3fn values (1001,'2010/03/11',20,2); insert into pedido3fn values (1002,'2010/03/11',30,1); insert into pedido3fn values (1003,'2010/03/12',10,3); commit; create view V$Pedido_Produto as select p.idproduto, p.nomeproduto, p.valorunitario, pe.idpedido, pe.datapedido, pe.qtde from produto3fn p inner join pedido3fn pe on p.idproduto = pe.codigoproduto; select idproduto, nomeproduto,valorunitario, idpedido, datapedido, qtde into outfile 'c:/temp/visao_pedidoproduto.csv' fields terminated by ';' lines terminated by '\n' from V$Pedido_Produto; 5

#Não ter total em tabela geralmente se aplica na 3 Forma Normal... 6