2_ATPS_Exemplo

17
FACULDADE ANHANGUERA DE CAMPINAS Sistemas de informação Programação em bando de dados Nelson Manoel da silva RA: 1299113233 ATPS - Atividade Prática Supervisionada Prof. Paulo Guimaraes Campinas

description

atps banco de dados

Transcript of 2_ATPS_Exemplo

Page 1: 2_ATPS_Exemplo

FACULDADE ANHANGUERA DE CAMPINAS

Sistemas de informação

Programação em bando de dados

Nelson Manoel da silva RA: 1299113233

ATPS - Atividade Prática Supervisionada

Prof. Paulo Guimaraes

Campinas

24/09/2015

Page 2: 2_ATPS_Exemplo

Sumário

Desafio....................................................................................................................................3

Etapa 1....................................................................................................................................4

Passo 1........................................................................................................................

Passo 2........................................................................................................................

Passo 3.......................................................................................................................

Passo 4.......................................................................................................................

Etapa 2...................................................................................................................................

Passo 1........................................................................................................................

Passo 2........................................................................................................................

Passo 3.......................................................................................................................

Passo 4.......................................................................................................................

Referências............................................................................................................................

Page 3: 2_ATPS_Exemplo

DESAFIO

A empresa de desenvolvimento de software chamada Microsys XYZ S.A. está projetando

um novo produto a ser lançado. Este novo software chamado SIG – Sistema Integrado de

Gerenciamento 1.0 irá atender a diversas empresas que precisam de um sistema para

controlar suas operações de vendas, controle de estoque, funcionários e demais atividades.

As consultas e outras atividades relacionadas a Banco de Dados devem ser realizadas com

o melhor desempenho possível, pois as empresas que utilizarão o SIG possuem grandes

volumes de dados. A Microsys XYZ S.A. também necessita de consultoria em algumas

áreas mais abrangentes que podem fazer parte do projeto como Banco de Dados

Distribuídos e Data Warehouse. Devido a esses requisitos a Microsys XYZ S.A. está

recrutando uma equipe para trabalhar na base de dados do SIG

ETAPA 1

Fazer uma pesquisa no livro texto ou nos livros complementares da disciplina

sobre os fundamentos de Consultas SQL e comandos DML (Data Manipulation

Languagem). Em seguida, elaborar um resumo de pelo menos três páginas sobre o

resultado da pesquisa.

Desenvolvida e implementada pelo Laboratório de Pesquisa da IBM em San

Jose entre os anos de 1964 e 1969, a Linguagem SQL “ Structured Query Language",

inicialmente chamada \SEQUEL", foi criada como uma interface entre os usuários e o

Sistema de Gerenciamento de Bancos de Dados Relacional, o \System R", que estava

sendo desenvolvido no Laboratório.

Por apresentar-se promissora devido a sua simplicidade e o grande poder de

consulta em GBDR, a linguagem SQL e atualmente o padrão industrial em linguagem de

consultas a banco de dados, e atinge mais de 95% do mercado de sistemas de

gerenciamento de bases de dados.

SQL é uma linguagem de consulta sofisticada, que vem evoluindo

continuamente, embora Mantendo um nível de padronização muito alto.

Entre seus principais atrativos esta a pequena quantidade de comandos

extremamente poderosos, atendendo ao paradigma Relacional, ou seja, o programador

expressa em SQL\o que" ele quer recuperar, não\como" deve ser recuperado.

Page 4: 2_ATPS_Exemplo

SQL é padronizado pelo “American National Standart Institute"(ANSI) e pela

“International Standard Organization" (ISO). A _ultima versão foi aprovada pela ISO em

2001, tendo sido designada SQL: 2001.

O sucesso da linguagem foi tal que obrigou o Instituto Americano de Padrões

(ANSI) a padronizar as implementações do produto. Assim, a maior parte - senão todas -

as implementações da linguagem seguem de perto o padrão ANSI definido.

As pequenas variações existentes não afetam a padronização global e

costumam ser incorporadas para complementar as capacidades da linguagem. Ainda que

tais variações possam aumentar a complexidade da migração de um ambiente para outro,

elas não afetam a estratégia global de portabilidade entre plataformas.

Se for o caso de desenvolver aplicações portáteis, o padrão ANSI - suportado

por todos os produtos, de uma forma geral - deve ser seguido rigorosamente. Ainda que se

percam alguns pontos em desempenho e facilidade, a portabilidade estará garantida. Então

meado da década de 80 foi publicado a primeira versão padronizada da linguagem SQL,

dois institutos trabalharam na sua padronização, o ANSI e o ISO. Desde então, a

linguagem vem evoluindo o que leva à criação de novas versões padronizadas, a saber, a

SQL-92 e a SQL-99, assim chamadas em regerências aos anos em que foram publicadas.

Com suas seguidas evoluções, a linguagem se tornou a mais poderosa

ferramenta de definição e manipulação de Bancos de Dados relacionais, e é hoje Utilizada

na grande maioria dos sistemas de Bancos de Dados relacionais, tais como MySQL, DB2,

SQLServer etc..

3. Paradigma

A linguagem SQL possui um paradigma cliente/servidor.

4.Características

A SQL estabeleceu-se como linguagem padrão de Banco de Dados Relacional. SQL

apresenta uma série de comandos que permitem a definição dos dados, chamada de DDL

(Data Definition Language), composta entre outros pelos comandos Create, que é

destinado à criação do Banco de Dados, das Tabelas que o compõe, além das relações

existentes entre as tabelas. Como exemplo de comandos da classe DDL temos os

comandos Create, Alter e Drop.

Page 5: 2_ATPS_Exemplo

Os comandos da série DML (Data Manipulation Language), destinados a consultas,

inserções, exclusões e alterações em um ou mais registros de uma ou mais tabelas de

maneira simultânea. Como exemplo de comandos da classe DML temos os comandos

Select, Insert, Update e Delete. Uma subclasse de comandos DML, a DCL (Data Control

Language), dispõe de comandos de controle como Grant e Revoke.

A Linguagem SQL tem como grandes virtudes sua capacidade de gerenciar índices, sem a

necessidade de controle individualizado de índice corrente, algo muito comum nas

linguagens de manipulação de dados do tipo registro a registro. Outra característica muito

importante disponível em SQL é sua capacidade de construção de visões, que são formas

de visualizarmos os dados na forma de listagens independente das tabelas e organização

lógica dos dados.

Outra característica interessante na linguagem SQL é a capacidade que dispomos de

cancelar uma série de atualizações ou de as gravarmos, depois de iniciarmos uma

sequência de atualizações. Os comandos Commit e Rollback são responsáveis por estas

facilidades.

Devemos notar que a linguagem SQL consegue implementar estas soluções, somente pelo

fato de estar baseada em Banco de Dados, que garantem por si mesmo a integridade das

relações existentes entre as tabelas e seus índices.

4.1.Utilização da SQL.

A compreensão e a utilização da SQL é decisiva por alguns bons motivos:

-É poderosa e flexível.

É muito mais rápida a recuperação e a manipulação de dados utilizando a SQL que os

objetos disponíveis na DAO. Com uma única instrução SQL podemos substituir dezenas

ou mesmo centenas de linhas de código baseadas nos objetos da biblioteca DAO.

-É um padrão na indústria.

Como a SQL, com pequenas variações, é suportada pelos mais importantes bancos de

dados relacionais, podemos criar programas de front-end para a administração de bancos

de dados relativamente independentes do back-end.

Por exemplo, podemos escrever um aplicativo voltado para administração de um banco de

dados Access e, sem alterações significativas, portá-lo de modo a utilizar o Microsoft SQL

Server ou outro banco de dados ODBC. Frequentemente, a implementação da linguagem

Page 6: 2_ATPS_Exemplo

SQL incorporada ao Microsoft Jet será utilizada para desempenho máximo, em conjunto

com os objetos da DAO.

Uma utilização comum poderá ser selecionar um subconjunto dos dados através de uma

instrução SQL, gerar um objeto Recordset e manipulá-lo com os métodos navegacionais

disponibilizados pela DAO. Com isso, o programador obterá o melhor de dois mundos.

Além disso, essa estratégia costuma facilitar a portabilidade do aplicativo: deve variar

somente o mecanismo de conexão com a fonte de dados SQL, tudo o mais permanecendo

constante.

O objetivo fundamental da SQL é fornecer ao usuário de um RDBMS uma interface de

alto nível, capaz de isolá-lo completamente das complexidades de implementação do

sistema. Com tal objetivo em mente, desenvolveu-se uma linguagem totalmente não-

procedural.

Ao usuário da SQL não cabe definir como o gerenciador do banco de dados executará uma

tarefa em particular, mas somente o que deve ser feito.

4.2. Sintaxe do SQL

Uma declaração SQL pode consistir dos seguintes componentes:

- Uma declaração de parâmetros.

Quando uma declaração requer parâmetros, isto é, valores somente disponíveis em tempo

de execução a partir da interação com o usuário, é conveniente - ainda que opcional - a

declaração explícita dos parâmetros utilizados. Tal declaração deve ser feita da seguinte

forma: PARAMETERS nomeDoParâmetro tipoDeDado; Qualquer quantidade de

parâmetros, dentre os tipos de dados suportados pelo dispositivo Jet (ou pelo sistema

gerenciador ao qual o aplicativo está conectado via ODBC), é inteiramente válida.

- O comando SQL.

Este componente informa ao gerenciador a ação a ser executada. Por exemplo, a

declaração SELECT * FROM Clientes solicita ao dispositivo gerenciador que retorne

todos os campos da tabela Clientes.

- Cláusulas opcionais.

Informam ao dispositivo gerenciador as condições segundo as quais os registros serão

selecionados, tais como ordenações, condições lógicas de filtro, agrupamentos, etc. Se o

Page 7: 2_ATPS_Exemplo

comando SQL informa ao dispositivo o que fazer, as cláusulas opcionais especificam os

registros a serem incluídos no processamento e o critério específico dessa inclusão.

SQL _e composta por 3 “sub-linguagens":

Linguagem de Definição de Dados - DDL

2 Linguagem de Manipulação de Dados - DML

3 Linguagem de Controle de Dados - DCL

Linguagem de Definição de Dados - DDL

Elementos fundamentais da linguagem:

DATABASE

USER

ROLE

SCHEMA

TABLESPACE

TABLE

INDEX

DOMAIN

FUNCTION

SEQUENCE

TRIGGER

VIEW

Todos os elementos podem ser criados (CREATE), corrigidos (ALTER) e removidos

(DROP), totalizando 36 comandos (cada um com sintaxe própria).

Linguagem de Manipulação de Dados – DML.

A sub-linguagem de Manipulação de Dados tem quatro comandos:

1. 1 SELECT

2. 2 INSERT INTO

3. 3 UPDATE

4. 4 DELETE

5. Gru

Page 8: 2_ATPS_Exemplo

Linguagem de Controle de Dados – DCL

Os comandos da sub-liguagem de Manipulação de Dados têm estrutura individual. Alguns

exemplos são:

CONNECT: Permite a conexão a uma base de dados através de um gerenciador;

DISCONNECT: Desconecta de uma base de dados;

COMMIT: Torna permanente todas as alterações feitas desde o início da conexão;

ROLLBACK: Descarta todas as alterações feitas desde o início da conexão, ou do último

comando COMMIT ou ROLLBACK.

PASSO 2

A)

SELECT NOME, CIDADE, UF, IDADE, GENERO

FROM CLIENTE

WHERE CIDADE = 'CAMPINAS';

B)

SELECT NOME, CARGO, IDADE, DATAADMISSAO, COMISSAO

FROM FUNCIONARIO

WHERE ATIVO = TRUE

ORDER BY CARGO;

C)

SELECT F.NOME AS NOME_FUNCIONARIO, V.VALORTOTAL AS

VALOR_DA_VENDA

FROM FUNCIONARIO F, VENDA V

WHERE DATA = '11/01/2013'

AND F.IDFUNCIONARIO = FUNCIONARIO_VENDA

ORDER BY VALOR_DA_VENDA DESC;

D)

Page 9: 2_ATPS_Exemplo

SELECT P.DESCRICAO, I.VALORUNITARIO, I.VALORTOTAL

FROM PRODUTO P, ITEMVENDA I

WHERE DATA = '11/01/2013'

AND P.IDPRODUTO = I.PRODUTO_ITEMVENDA

ORDER BY I.VALORTOTAL DESC

Exibir o nome do cliente, cidade, quantidade total de vendas, valor total de vendas. A

consulta deve exibir todos os clientes, inclusive aqueles que não possuem registros de

venda. Os registros devem estar ordenados por nome e cidade. Filtros da consulta: mês em

que foram realizadas as vendas.

E)

SELECT C.NOME AS NOME_CLIENTE, C.CIDADE, I.QTDE, V.VALORTOTAL

FROM CLIENTE C, VENDA V, ITEMVENDA V

WHERE V.DATA = TO_DATE('01/2013','MM/YYYY')

AND C.IDCLIENTE = V.CLIENTE_VENDA

AND I.VENDA_ITEMVENDA = V.IDVENDA

ORDER BY C.NOME, C.CIDADE;

PASSO 3

INSERT INTO CLIENTE

(IDCLIENTE, NOME, CPF, RG, ENDERECO, CIDADE, UF, FONE, CELULAR,

EMAIL, DATANASCIMENTO, GENERO)

VALUES

(1,'PLINIO

ARRUDA','12345678909','1234567-7','PALACIO DO PLANALTO, 171, CENTRO',

'BRASILIA','DF','1919191', '', '[email protected]','07/09/1822','P');

UPDATE CLIENTE

SET GENERO = 'M'

WHERE IDCLIENTE = 1;

Page 10: 2_ATPS_Exemplo

DELETE FROM CLIENTE

WHERE CPF = '12345678909';

INSERT INTO VENDA

(IDVENDA, CLIENTE_VENDA, DATA, HORA, VALORTOTAL,

FUNCIONARIO_VENDA)

VALUES

(15,1,TO_DATE('24/08/2013','DD/MM/

YYYY'),TO_DATE('15:00:00','HH24:MI:SS'),154.50,12);

UPDATE VENDA

SET VALORTOTAL = 15.35;

WHERE IDCLIENTE = 1

AND DATA = TO_DATE('24/08/2013','DD/MM/YYYY');

DELETE FROM CLIENTE

WHERE IDVENDA = 15;

INSERT INTO ITEMVENDA

(IDITEMVENDA, VENDA_ITEMVENDA, PRODUTO_ITEMVENDA, QTDE,

VALORUNITARIO, VALORDESCONTO, VALORTOTAL)

VALUES

(1,15,20,2,1.00,0.20,2.00);

UPDATE ITEMVENDA

SET VALORTOTAL = 15.35;

WHERE IDITEMVENDA = 1;

DELETE FROM ITEMVENDA

WHERE IDITEMVENDA = 15;

Page 11: 2_ATPS_Exemplo

INSERT INTO PRODUTO

(IDPRODUTO, DESCRICAO, PRECOVENDA, PRECOCOMPRA, MARCA, TIPO)

VALUES

(20,'CHOCOLATE AERADOS',1.20,0.80,1,2);

UPDATE PRODUTO

SET IDPRODUTO = 50;

WHERE IDPRODUTO = 1;

DELETE FROM PRODUTO

WHERE IDPRODUTO = 15;

INSERT INTO FUNCIONARIO

(IDFUNCIONARIO, NOME, CPF, RG, CTPS, CARGO, DATANASCIMENTO,

DATAADMISSAO, DATADEMISSAO, ATIVO, COMISSAO)

VALUES

(1,'GARIBALDO','36293577445','45454555','12','MANOBRISTA','15/05/1988','15/10/200

0','',TRUE,45.50);

UPDATE FUNCIONARIO

SET NOME = 'NESTOR';

WHERE CPF = '36293565445';

Page 12: 2_ATPS_Exemplo

Figura 1 – Processador Intel i7-3770

Fonte: fx8120, 2013

Especificações:

Velocidade padrão de 3,1 GHz

Oito núcleos reais

8192 kB de cache L3, 1024 kB de cache L2 e 48 kB de cache L1

Conjunto de instruções 32 e 64 bits

(AMD2, 2013)

Memórias: Os memórias escolhidos foram: . . .

Passo 2

Faça uma descrição a respeito dos tipos de equipamentos, Descritos no passo 1,

adequados para criação de um laboratório de multimídia....

ReferênciasAMD. Processadores AMD Phenom™ II. Disponível em: <http://www.amd.com/br/products/desktop/processors/phenom-ii/Pages/phenom-ii.aspx> Acesso em: 19 abr. 2013.

AMD_2. Desktop Processor Solutions. Disponível em: <http://products.amd.com/en-us/DesktopCPUDetail.aspx?id=771&f1=&f2=&f3=&f4=&f5=&f6=&f7=&f8=&f9=&f10=&f11=&f12=> Acesso em: 19 abr. 2013.

FX8120. AMD FX-8120 review. Disponível em: <http://www.expertreviews.co.uk/processors/1293553/amd-fx-8120> Acesso em: 19 abr. 2013.

Page 13: 2_ATPS_Exemplo

INTEL. Desktop Processor Solutions. Disponível em: <http://www.intel.com.br/content/www/br/pt/benchmarks/desktop/3rd-gen-core-i7-3770.html> Acesso em: 19 abr. 2013.

INTEL2. Intel® Core™ i7-3770T Processor (8M Cache, up to 3.70 GHz). Disponível em: <http://ark.intel.com/pt-br/products/65525/intel-core-i7-3770t-processor-8m-cache-up-to-3_70-ghz> Acesso em: 19 abr. 2013.

i7-3770. Intel Core i7-3770. Disponível em: <http://www.techpowerup.com/cpudb/1002/Intel_Core_i7-3770.html> Acesso em: 19 abr. 2013.