ATPS Programacao BD

  • Upload
    kidobe

  • View
    91

  • Download
    0

Embed Size (px)

Citation preview

  • 5/28/2018 ATPS Programacao BD

    1/13

    NDICE

    PASSO 1.1.1 .............................................................................................................................. 2

    PASSO 1.1.2............................................................................................................................... 2

    PASSO 1.1.3............................................................................................................................... 4

    PASSO 1.2.1 .............................................................................................................................. 8

    PASSO 1.2.2............................................................................................................................... 8

    PASSO 1.2.3............................................................................................................................... 9

    PASSO 1.2.4 .............................................................................................................................. 9

    PASSO 1.2.5............................................................................................................................. 10

    PASSO 1.2.6............................................................................................................................. 10

    PASSO 1.2.7 ............................................................................................................................ 11

    PASSO 1.2.8............................................................................................................................. 11

    PASSO 1.2.9............................................................................................................................. 12

    PASSO 1.2.10 .......................................................................................................................... 12

    CONCLUSO ......................................................................................................................... 13

  • 5/28/2018 ATPS Programacao BD

    2/13

    2

    Passo 1.1.1 - Elaborar um script com os comandos SQL - DDL para criar o banco de dados do

    sistema SIG.

    O seguinte comando cria o database de nome ATPS_SIG:

    CREATEDATABASEATPS_SIG;

    Passo 1.1.2 - Criao das Tabelas e ndices

    Criar tabela cliente:

    CREATETABLEcliente

    (idcliente INT,

    nome VARCHAR(50) CHECK(nome like'[a-z]%'),

    cpf CHAR(12), -- formato '999999999-99'

    rg VARCHAR(11), -- formato '999999999-9'

    endereco VARCHAR(50),

    cidade VARCHAR(30),

    uf CHAR(2),

    fone VARCHAR(12), -- formato '(ll)nnnnnnnn'

    celular VARCHAR(13), -- formato '(ll)nnnnnnnnn'

    email VARCHAR(50),

    datanascimento DATE,

    genero CHAR(1),

    PRIMARYKEY (idcliente) );

    Criar tabela funcionario:

    CREATETABLEfuncionario(

    idfuncionario INT,

    nome VARCHAR(50)CHECK(nome like'[a-z]%'),

    cpf CHAR(12), -- formato '999999999-99'rg VARCHAR(11), -- formato '999999999-9'

    ctps VARCHAR(20),

    cargo VARCHAR(30),

    datanascimento DATE,

    dataadmissao DATE,

    datademissao DATE,

    ativo TINYINT,

    comissao NUMERIC(11,2),

    PRIMARYKEY(idfuncionario) );

  • 5/28/2018 ATPS Programacao BD

    3/13

    3

    Criar tabela produto:

    CREATETABLEproduto (

    idproduto INT,

    descricao VARCHAR(50) CHECK (descricao like'[a-z]%'),

    precovenda NUMERIC(11,2),

    precocompra NUMERIC(11,2),

    marca INT,

    tipo INT,

    PRIMARYKEY(idproduto));

    Criar tabela venda:

    CREATETABLEvenda(

    idvenda INT,

    cliente_venda INT,

    data DATE,

    hora TIME,

    valortotal NUMERIC(11,2),

    funcionario_venda INT,

    PRIMARYKEY(idvenda),

    CONSTRAINTcliente_venda FOREIGNKEY(cliente_venda)REFERENCEScliente

    (idcliente),

    CONSTRAINTfunc_venda FOREIGNKEY(funcionario_venda)REFERENCES

    funcionario(idfuncionario) );

    Criar tabela itemvenda:

    CREATETABLEitemvenda (

    iditemvenda INT,

    venda_itemvenda INT,

    produto_itemvenda INT,

    qtde NUMERIC(7),

    valorunitario NUMERIC(9,2),

    valordesconto NUMERIC(11,2),

    valortotal NUMERIC(15,2),

    PRIMARYKEY (iditemvenda),

    CONSTRAINTvenda_item FOREIGNKEY(venda_itemvenda)REFERENCESvenda

    (idvenda),

    CONSTRAINTproduto_item FOREIGNKEY(produto_itemvenda)REFERENCES

    produto(idproduto) );

  • 5/28/2018 ATPS Programacao BD

    4/13

    4

    Passo 1.1.3 Elaborar um script contendo os comandos SQL para inserir dados nas tabelas.

    Deve conter pelo menos 5 ocorrncias por tabela. Os dados da tabela funcionrios devem ser

    dos alunos do grupo, com os campos NOME: nome do aluno e RG: RA do aluno, demais

    dados podem ser fictcios.

    Cdigo cliente:

    INSERTINTOcliente(idcliente,nome,cpf,rg,endereco,cidade,uf,fone,

    celular,email,datanascimento,genero)

    VALUES

    (1,'Luiz Shig','123456789-12','987654321-0','Av Morro Velho, 100',

    'Sao Paulo','SP',

    '(11)12345678','(11)987651122','[email protected]',

    '1980/01/01','1'),

    (2,'Antonio da Silva','333456789-12','999654321-0','Av Sobe Desce,

    100','Sao Paulo','SP',

    '(11)12345666','(11)987653333','[email protected]',

    '1985/04/01','1'),

    (3,'Watson Oliveira','123444789-12','987666321-0','Rua Pinheiro

    Velho','Campo Limpo','SP',

    '(11)12345666','(11)987654444','[email protected]',

    '1995/01/25','2'),

    (4,'Berenice Almeida','122256789-12','987643221-0','Av Sem Saida, 10',

    'Bras','SP',

    '(11)12345678','(11)987651122','[email protected]',

    '1980/01/01','3'),

    (5,'Fernanda de Lima','126546789-12','887754321-0','Av Fim do Mundo,

    100','Rocinha','RJ',

    '(11)12235678','(11)987665522','[email protected]','1975/11/22','4');

    Antes do comando:

  • 5/28/2018 ATPS Programacao BD

    5/13

    5

    Depois do comando:

    Cdigo funcionario:

    INSERTINTOfuncionario(idfuncionario,nome,cpf,rg,ctps,cargo,

    datanascimento,dataadmissao,datademissao,ativo,comissao )

    VALUES

    (101,'Vinicius Mendes','192837465-01','42000683-4','0123456-001-SP',

    'gerente','1970/12/30','2013/10/27',null,1,null),

    (102,'Fernando Schmidt','192888465-01','420177446-4','987654-001-SP',

    'Adm','1970/12/11','2013/10/01',null,1,null),

    (103,'Gleisa Damario','192227465-01','373067758-5','0123336-001-SP',

    'Secretaria','1985/01/01','2012/10/27',null,1,null),

    (104,'Vinicius Mariano','194443365-01','424182962-9','01234566-001-SP',

    'Tecnico','1985/01/31','2012/01/05',null,1,null),

    (105,'Jos Oliveira','192227465-01','998877445-1','0123336-001-SP',

    'Analista','1988/07/01','2012/10/20',null,1,null) ;

    Antes do comando:

    Depois do comando:

  • 5/28/2018 ATPS Programacao BD

    6/13

    6

    Cdigo produto:

    INSERTINTO produto (idproduto,descricao,precovenda,precocompra,marca,

    tipo)VALUES(201,'caderno 100 fl',2.50,1.35,1,1),

    (202,'caderno 200 fl',4.50,3.35,1,2),

    (203,'lapis preto',0.50,0.25,2,5),

    (204,'lapis de cor',6.50,5.35,2,6),

    (205,'caneta preta',1.50,1.00,3,1),

    (206,'esferografica vermelha',1.20,0.65,3,8),

    (207,'Folha Sulfite A4',12.50,9.35,1,6),

    (208,'borracha verde',2.50,1.35,1,1);

    Antes do comando:

    Depois do comando:

    Cdigo venda:

    INSERTINTOvenda(idvenda,cliente_venda,data,hora,valortotal,

    funcionario_venda)

    VALUES(501,1,'2013/10/25','10:00:01',120.00,101),

    (502,1,'2013/12/20','05:00:01',230.00,101),

    (503,3,'2013/10/22','10:00:01',20.00,101),

    (504,2,'2012/10/25','7:00:01',100.00,102),

    (505,4,'2011/10/21','10:00:01',350.00,101),

    (506,4,'2013/05/25','10:00:01',340.00,102),

    (507,5,'2013/10/01','10:10:00',25.00,102),

    (508,5,'2013/10/25','10:00:01',120.00,103),

    (509,1,'2011/11/25','10:30:01',80.00,104);

  • 5/28/2018 ATPS Programacao BD

    7/13

    7

    Antes do comando:

    Depois do comando:

    Cdigo itemvenda:

    INSERTINTOitemvenda (iditemvenda,venda_itemvenda,produto_itemvenda,

    qtde,valorunitario,valordesconto,valortotal)

    VALUES(701,501,201,100,2.50,0.00,250.00),

    (702,501,202,50,4.00,0.10,200.00),

    (703,503,201,10,2.50,null,25.00),

    (704,501,204,25,6.00,null,15.00),(705,504,205,10,1.40,0.10,14.00),

    (706,504,208,25,2.00,0.15,50.00),

    (707,506,201,10,1.00,0.00,10.00);

    Antes do comando:

    Depois do comando:

  • 5/28/2018 ATPS Programacao BD

    8/13

    8

    Passo 1.2.1 - Consulta Cliente. Exibiros campos: nome, cidade,UF, idade, gnero. Osregistros devem estar ordenados por nome. Filtros da consulta: cidade.

    SELECTnome,cidade,uf,datanascimento,genero FROMcliente WHEREcidade='Sao

    Paulo'ORDERBYnome ASC

    Obs:o comando "asc" opcional. Por padro os resultados so mostrados de forma

    ascendente.

    Resultado:

    Passo 1.2.2 - Consulta funcionarios. Exibiros campos: nome, cargo, idade,datadeadmisso, valor da comisso. Os registros devem estar ordenados por cargo. Filtros daconsulta: ativo

    SELECTnome,cargo,datanascimento,dataadmissao,comissao FROMfuncionario

    WHEREativo ='1'ORDERBYcargo

    Resultado:

  • 5/28/2018 ATPS Programacao BD

    9/13

    9

    Passo 1.2.3 - Consulta vendas por funcionario - Exibir os campos: nome do funcionrio, valor

    da venda. Os registros devemestar ordenados por valor da venda, sendo os maiores valoresexibidos primeiro. Filtros da consulta: dia da venda.

    SELECTa.nome,b.valortotal FROMfuncionario a,venda b WHERE

    a.idfuncionario =b.funcionario_venda ANDb.data

  • 5/28/2018 ATPS Programacao BD

    10/13

    10

    Passo 1.2.5 - Consulta vendas por cliente. Exibir o nome do cliente, cidade, quantidade total

    de vendas, valor total de vendas. A consulta deve exibir todos os clientes, inclusive aqueles

    que no possuem registros de venda. Os registros devem estar ordenados por nome e cidade.

    Filtros da consulta: ms em que foram realizada as vendas.

    SELECTa.nome,a.cidade,b.valortotal,SUM(c.qtde)ASqtdetotal FROMcliente

    a,venda b,itemvenda c WHEREa.idcliente =b.cliente_venda AND

    c.venda_itemvenda =b.idvenda ANDb.data BETWEEN'2013-10-01'AND'2013-10-

    31'GROUPBYa.nome,a.cidade,b.valortotal ORDERBYa.nome,a.cidade

    Resultado:

    Passo 1.2.6 - Atualizao dos dados do cliente. alterar os dados de endereo para: Estrada do

    Campo Limpo, 123 cidade: So Paulo e UF: SP. Listar todos os campo da tabela Clientes para

    mostrar a atualizao realizada.

    UPDATEcliente SETendereco='Estrada do Campo Limpo, 123',cidade='Sao

    Paulo',uf='SP'WHEREidcliente ='5'

    Antes:

    Depois:

  • 5/28/2018 ATPS Programacao BD

    11/13

    11

    Passo 1.2.7 - Insero de dados do cliente. Inserir um novo cliente com os seus dados. Listar

    todas as linhas e colunas da tabela para evidenciar a execuo da insero.

    INSERTINTOcliente VALUES ('6', 'Carlos Bernardes', '158374695-12',

    '496829734-5', 'Rua Sem Numero, 560', 'Sao Paulo', 'SP', '(11)41234321',

    '(11)954789632', '[email protected]', '1988-07-31', '1')

    Antes:

    Depois:

    Passo 1.2.8 - Excluso de dados do cliente. Excluir o cliente inserido na etapa anterior. Listar

    todas as linhas e colunas da tabela para evidenciar a execuo

    DELETEFROMcliente WHEREidcliente ='6'

    Resultado:

  • 5/28/2018 ATPS Programacao BD

    12/13

    12

    Passo 1.2.9 - Consulta vendas e produtos. Relacionar os produtos que compem as vendas

    efetuadas no ano corrente, exibindo: identificao da venda, identificao do funcionrio que

    efetuou a venda, identificao do produto, descrio do produto, quantidade, preo unitrio e

    preo total.

    SELECTa.idvenda, a.funcionario_venda, b.idproduto, b.descricao, c.qtde,

    c.valorunitario, c.valortotal FROMvenda a,produto b,itemvenda c

    WHEREa.idvenda =c.venda_itemvenda ANDb.idproduto =c.produto_itemvenda

    ANDa.data BETWEEN'2013-01-01'AND'2013-12-31'

    Resultado:

    Passo 1.2.10 - Consulta vendas produtos e clientes. Relacionar as Vendas de Clientes com

    seus respectivos produtos, informando Identificao do Cliente, nome do Cliente, Unidade da

    Federao, Ident. Venda, data Venda, Ident. Produto, Nome do Produto.

    SELECTa.idcliente,a.nome,a.uf,b.idvenda,b.data,d.idproduto,

    d.descricao FROMcliente a,venda b,itemvenda c,produto d WHERE

    a.idcliente =b.cliente_venda ANDb.idvenda =c.venda_itemvenda AND

    d.idproduto =c.produto_itemvenda

    Resultado:

  • 5/28/2018 ATPS Programacao BD

    13/13

    13

    Concluso

    Com esse trabalho, conclumos que um banco de dados bem organizado fundamental, tanto

    no momento de interpret-lo como em um desenvolvimento de um sistema.

    Este trabalhou tratou de temas relacionados a otimizao de consultas, o que muito

    importante, pois atualmente, no podemos nos preocupar somente com segurana e

    confiabilidade de dados, mas tambm devemos lembrar de fatores indispensveis como

    desempenho, pois um banco de dados otimizado fundamental para qualquer empresa.

    Alm disso, o ATPS foi uma tima ferramenta de aprendizado pois nos incentivou a praticar etambm a pesquisarmos alm do aprendido em sala de aula.