SEGUNDA FASE / S2B MIC PERNAMBUCO Banco de Dados Turma: Manhã / FIR Recife-PE www.micpernambuco.com.br.

Slides:



Advertisements
Apresentações semelhantes
O Comando DROP INDEX Para eliminar um índice definido sobre uma tabela, utilize: Drop Index on ; Ex: No Access: Drop Index X on.
Advertisements

Banco de Dados Prof. Antonio.
SQL Avançado Continuação
Banco de Dados Bruno Rafael de Oliveira Rodrigues.
SISTEMAS DE INFORMAÇÃO Sistemas de Bancos de Dados I 2º Semestre – 2010 Pedro Antonio Galvão Junior Fone:
SISTEMAS DE INFORMAÇÃO Sistemas de Bancos de Dados 2º Semestre – 2010 Pedro Antonio Galvão Junior Fone: 9531 – 7555.
Visões Marilde Santos.
SGBD.
SQL – Comandos de Agregação
SQL – Consultas Básicas
SQL – Noções Gerais Por Márcia Jacyntha N. Rodrigues Lucena
SQL – DML Consulta a dados de uma tabela
Operadores Especiais da SQL
SCC Bancos de Dados e Suas Aplicações
SCC Bancos de Dados e Suas Aplicações
Material III-Bimestre Wagner Santos C. de Jesus
Linguagem de Banco de Dados - SQL
Banco de dados Profª Kelly Medeiros.
Equipe de monitoria Aula prática 2. Apresentação do caso de estudo Conceitual Lógico Algumas informações iniciais Consultas e exercícios Surpresa... =)
Query Tuning Lílian Simão Oliveira.
Comandos de SQL Excel VBA II.
Monitoria GDI Aula Prática
Monitoria GDI Aula Prática
Treinamento do Microsoft® Access® 2010
Bancos de Dados SQL Server 2012 SQL DML - Data Manipulation Language)
SQL Álvaro Vinícius de Souza Coêlho
Cronograma Formato do Comando SELECT – 1ª Seção Uso de Funções (DATE_FORMAT, DAY, MONTH, NOW, CONCAT, FORMAT, COUNT, AVG, MAX, MIN e FORMAT) AS DISTINCT.
BANCO DE DADOS UNIVERSIDADE ESTADUAL DE SANTA CRUZ
Design Patterns / Acesso ao banco de dados (java.sql)
Banco de Dados Aplicado ao Desenvolvimento de Software
Otimização de Consultas em SQL Planos de Execução
sintonia de banco de dados
SQL Server – Aula Prática
SEGUNDA FASE / S2B MIC PERNAMBUCO SEGUNDA FASE / S2B MIC PERNAMBUCO
Capítulo 3: SQL Korth • Silberschatz • Sundarshan.
Desenvolvendo um script SQL
Treinamento sobre SQL.
Treinamento PHP Módulo 2 PHP Avançado Waelson Negreiros waelson.com.br “Está conosco o Senhor dos Exércitos”
Baseado no material do Professor Raul Paradeda
REVISÃO Comandos SQL - DML SELECT * FROM ?.
Linguagem de Manipulação de Dados. 2 Conteúdos Introdução ao SQL Comando SELECT – Extracção de Dados  Pesquisas Simples  Restrições na pesquisa de dados.
©Silberschatz, Korth and Sudarshan (modificado)4.1.1Database System Concepts Capítulo 4: SQL Estrutura básica Operações com conjuntos Funções de agregação.
Treinamento SQL Server
Fundamentos de Banco de Dados Fundamentos de Banco de Dados Prof. Gale 2º. Semestre 2008.
NOTA DE AULA SQL.
Linguagem SQL Prof. Juliano.
SQL Parte 02 Prof. Juliano. Manuseando Valores Nulos Um valor nulo é um valor indisponível e desconhecido. O valor nulo não é zero. Zero é um número.
©Silberschatz, Korth and Sudarshan (modificado)4.2.1Database System Concepts Capítulo 4: SQL Estrutura básica Operações com conjuntos Funções de agregação.
IEC Banco de Dados I Aula 04 – SQL (II) Turmas: Sistemas de Informação Professora: André Luiz da Costa Carvalho
1 Structured Query Language (SQL) 4 SQL é uma linguagem normalizada (ANSI) para consultas e actualizações de bases de dados relacionais.
©Silberschatz, Korth and Sudarshan (modificado)4.2.1Database System Concepts Capítulo 4: SQL Estrutura básica Operações com conjuntos Funções de agregação.
Daniel Paulo Backup Para evitar perdas de informações importantes, será necessário criar estratégias para a implementação de.
Aula 09: Comando SELECT: Ligações entre tabelas e Subconsultas
Daniel Paulo SQL Módulo I Daniel Paulo
Recuperação de Dados Banco de Dados Carina Farias
VBA – Visual Basic para Aplicativos
UCSal – Bacharelado em Informática
Linguagem de definição de dados - SQL
SELECT Professor: Virgílio Fries Müller www. vfm.com.br
Acesso a Banco de Dados com o JDBC Prof. M.Sc. Ronnison Reges Vidal.
Banco de Dados -Aprendendo conceitos -Usando o SQL Conf para:
José Antônio da Cunha IFRN Administração de Banco de Dados.
José Antônio da Cunha CEFET - RN José Antônio -
Programação para Internet Aula 12 SQL (Comandos de Consulta ao BD)
José Antônio da Cunha 2/6/2016 José Antônio - CEFET-RN 1 Disciplina: Banco de Dados.
Prática de Banco de Dados Créditos: Prof. Jefferson Silva Adaptações: Prof. Nécio de Lima Veras.
Índices - Full Text Searching IFRN José Antonio da Cunha.
José Antônio da Cunha 3/6/2016 José Antônio - CEFET-RN 1 Copyright © Dale Carnegie & Associates, Inc.
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Capítulo 5 Mais SQL: Consultas Complexas, Triggers e Views.
SQL – COMANDOS DML Profª Rosana Traversa.
Transcrição da apresentação:

SEGUNDA FASE / S2B MIC PERNAMBUCO Banco de Dados Turma: Manhã / FIR Recife-PE

 Existem muita tarefas que devem ser feitas em um banco de dados, com o passar do tempo chegamos a classificá-las e distribuí-las em grupos, mas por onde começar?  Backup  Restore  Concorrência  Profiler  SQL Server Agent  SQL Server Configuration Manager

 A principal tarefa de um DBA é garantir que os dados não só vão ser inseridos, mas também que estes dados permaneçam existindo  Independente do sistema de contingência o Backup é indispensável  Devemos entender como a empresa trabalha e qual o tamanho do banco de dados para definir a melhor política de backup  Fazer testes periódicos para garantir que o processo de backup não está com problemas

 Comando de backup:  BACKUP DATABASE { database_name } TO [,...n ] [ ] [ next-mirror-to ] [ WITH { DIFFERENTIAL | [,...n ] } ] [;]  Facilitando, exemplo:  BACKUP DATABASE ADVENTUREWORKS  TO DISK=“C:\SQL\AW.BAK”  WITH FORMAT, COMPRESSION, STATS=10

 Backup completo Cria uma cópia de todo o banco de dados.  Backup diferencial Cria uma cópia do que foi modificado em relação ao último backup completo.  Backup do log de transações Cria uma cópia do log de transações do banco, sendo possível, ao DBA, restaurar o banco de dados posteriormente até determinada transação.

SundayMondayTuesday SundayMonday Somente Full Full e Log

 Importante recurso para recuperação da informação em caso de desastre  Apenas retornamos uma database a partir do backup full (completo)  O processo de restore deve ser feito com frequência no ambiente de teste, para se evitar falhas em um possível desastre, checando a consistência do processo  Sempre que um restore é feito, a database fica indisponível para acesso dos usuários

 Comando de Restore:  RESTORE DATABASE { database_name } [ FROM [,...n ] ] [ WITH { [ RECOVERY | NORECOVERY | STANDBY = {standby_file_name } ] |, [,...n ] |, |, |, |, } [,...n ] ] [;] Simplificando:  RESTORE DATABASE ADVENTUREWORKS  FROM DISK=“C:\SQL\AW.BAK”  WITH NORECOVERY

 A concorrência é muito importante ser observada, quando temos muita concorrência e as aplicações não foram preparadas para isso acabamos com problemas de performance. Como observar?  Observar os metadados do SQL Server, usando:  Stored procedures  Dynamic Management Views  SQL Server Management Studio  Quais nossas principais opções?  sp_who e sp_who2  sys.dm_tran_locks

 Ter o máximo controle sobre abertura e fechamento das transações nas aplicações  Minimizar os erros de codificação  Otimizar ao máximo suas consultas  Em casos extremos podemos acabar com a conexão que está bloqueando as transações:  KILL (ID da conexão)  Exemplo: KILL 53

 O SQL Server Agent tem uma ferramenta que auxilia na execução de processos automatizados  Onde podemos agendar as tarefas para serem executadas. Tarefas agendadas Log das tarefas

 Iniciando o serviço do SQL Server por meio da ferramenta de configuração de startup  Escolha do usuário que irá executar o serviço

 Listando os primeiros n valores com TOP n  Usando funções agregadas  Noções básicas sobre a cláusula GROUP BY  Gerando valores agregados em conjuntos de resultados  Usando as cláusulas COMPUTE e COMPUTE BY

 Lista apenas os n primeiros registros de um conjunto de resultados  Especifica o intervalo de valores na cláusula ORDER BY  Retorna correspondências se WITH TIES for usada USE northwind SELECT TOP 5 orderid, productid, quantity FROM [order details] ORDER BY quantity DESC GO USE northwind SELECT TOP 5 orderid, productid, quantity FROM [order details] ORDER BY quantity DESC GO USE northwind SELECT TOP 5 WITH TIES orderid, productid, quantity FROM [order details] ORDER BY quantity DESC GO USE northwind SELECT TOP 5 WITH TIES orderid, productid, quantity FROM [order details] ORDER BY quantity DESC GO Exemplo 1 Exemplo 2

Funções agregadas DescriçãoDescrição AVG Média de valores em uma expressão numérica COUNT Número de valores em uma expressão COUNT (*) Número de registros selecionados MAX Maior valor da expressão MIN Menor valor da expressão SUM Valores totais em uma expressão numérica STDEV Desvio padrão de todos os valores STDEVP Desvio padrão da população VAR Variância estatística de todos os valores VARP Variância estatística de todos os valores da população Variância estatística de todos os valores da população

 A maioria das funções agregadas ignora valores nulos  A função COUNT (*) conta todos os registros com valores nulos USE northwind SELECT COUNT (*) FROM employees GO USE northwind SELECT COUNT (*) FROM employees GO USE northwind SELECT COUNT(reportsto) FROM employees GO USE northwind SELECT COUNT(reportsto) FROM employees GO Exemplo 1 Exemplo 2

 Usando a cláusula GROUP BY  Usando a cláusula GROUP BY com a cláusula HAVING

USE northwind SELECT productid, orderid,quantity FROM orderhist GO USE northwind SELECT productid, orderid,quantity FROM orderhist GO USE northwind SELECT productid,SUM(quantity) AS total_quantity FROM orderhist GROUP BY productid GO USE northwind SELECT productid,SUM(quantity) AS total_quantity FROM orderhist GROUP BY productid GO productidproductidorderidorderidquantityquantity productidproductidtotal_quantitytotal_quantity productidproductidtotal_quantitytotal_quantity Apenas os registros que satisfazem às condições da cláusula WHERE serão agrupados USE northwind SELECT productid,SUM(quantity) AS total_quantity FROM orderhist WHERE productid = 2 GROUP BY productid GO USE northwind SELECT productid,SUM(quantity) AS total_quantity FROM orderhist WHERE productid = 2 GROUP BY productid GO

USE northwind SELECT productid, orderid,quantity FROM orderhist GO USE northwind SELECT productid, orderid,quantity FROM orderhist GO USE northwind SELECT productid, SUM(quantity) AS total_quantity FROM orderhist GROUP BY productid HAVING SUM(quantity)>=30 GO USE northwind SELECT productid, SUM(quantity) AS total_quantity FROM orderhist GROUP BY productid HAVING SUM(quantity)>=30 GO productidproductidtotal_quantitytotal_quantity productidproductidorderidorderidquantityquantity

 Usando a cláusula GROUP BY com o operador ROLLUP  Usando a cláusula GROUP BY com o operador CUBE  Usando a função GROUPING

USE northwind SELECT productid, orderid, SUM(quantity) AS total_quantity FROM orderhist GROUP BY productid, orderid WITH ROLLUP ORDER BY productid, orderid GO USE northwind SELECT productid, orderid, SUM(quantity) AS total_quantity FROM orderhist GROUP BY productid, orderid WITH ROLLUP ORDER BY productid, orderid GO Descrição productidproductidorderidorderidtotal_quantitytotal_quantity NULL NULL NULL NULL Total geral Resume apenas os registros de productid 1 Valores de detalhe de productid 1, orderid 1 Valores de detalhe de productid 1, orderid 2 Resume apenas os registros de productid 2 Valores de detalhe de productid 2, orderid 1 Resume apenas os registros de productid 3 Valores de detalhe de productid 3, orderid 1 Valores de detalhe de productid 3, orderid 2

USE northwind SELECT productid, orderid, SUM(quantity) AS total_quantity FROM orderhist GROUP BY productid, orderid WITH CUBE ORDER BY productid, orderid GO USE northwind SELECT productid, orderid, SUM(quantity) AS total_quantity FROM orderhist GROUP BY productid, orderid WITH CUBE ORDER BY productid, orderid GO O operador CUBE produz dois valores de resumo a mais que o operador ROLLUP Descriçãoproductidproductidorderidorderidtotal_quantitytotal_quantity NULL 95 NULL NULL NULL NULL NULL Total geral Resume todos os registros de orderid 1 Resume todos os registros de orderid 2 Resume apenas os registros de productid 1 Valores de detalhe de productid 1, orderid 1 Valores de detalhe de productid 1, orderid 2 Resume apenas os registros de productid 2 Valores de detalhe de productid 2, orderid 1 Valores de detalhe de productid 2, orderid 2 Resume apenas os registros de productid 3 Valores de detalhe de productid 3, orderid 1 Valores de detalhe de productid 3, orderid 2

1 representa os valores de resumo na coluna anterior 0 representa os valores de detalhe na na coluna anterior USE northwind SELECT productid, GROUPING (productid),orderid, GROUPING (orderid),SUM(quantity) AS total_quantity FROM orderhist GROUP BY productid, orderid WITH CUBE ORDER BY productid, orderid GO USE northwind SELECT productid, GROUPING (productid),orderid, GROUPING (orderid),SUM(quantity) AS total_quantity FROM orderhist GROUP BY productid, orderid WITH CUBE ORDER BY productid, orderid GO productid NULL orderid total_quantity

COMPUTE BYCOMPUTE USE northwind SELECT productid, orderid, quantity FROM orderhist ORDER BY productid, orderid COMPUTE SUM(quantity) BY productid COMPUTE SUM(quantity) GO USE northwind SELECT productid, orderid, quantity FROM orderhist ORDER BY productid, orderid COMPUTE SUM(quantity) BY productid COMPUTE SUM(quantity) GO USE northwind SELECT productid, orderid,quantity FROM orderhist ORDER BY productid, orderid COMPUTE SUM(quantity) GO USE northwind SELECT productid, orderid,quantity FROM orderhist ORDER BY productid, orderid COMPUTE SUM(quantity) GO productidproductidorderidorderidquantityquantity sum 95 productidproductidorderidorderidquantityquantity sum sum sum 45 sum 95

Use a cláusula COMPUTE ou COMPUTE BY para testar seus aplicativos Indexe colunas freqüentemente agregadas Evite usar funções agregadas com colunas que contêm valores nulos Use a cláusula ORDER BY para garantir a classificação do conjunto de resultados Use o operador ROLLUP sempre que possível

 Recuperando dados usando a instrução SELECT  Filtrando dados  Formatando conjuntos de resultados  Como as consultas são processadas  Como as consultas são colocadas em cache automaticamente  Considerações sobre o desempenho

 Usando a instrução SELECT  Especificando colunas  Usando a cláusula WHERE para especificar registros

SELECT [ALL | DISTINCT] FROM { } [,…n] WHERE Sintaxe parcial  A lista de seleção especifica as colunas  A cláusula WHERE especifica a condição que restringe a consulta  A cláusula FROM especifica a tabela

employeeidemployeeidlastnamelastnamefirstnamefirstnametitletitle 1 1 Davolio Nancy Sales Representative 2 2 Fuller Andrew Vice President, Sales 3 3 Leverling Janet Sales Representative 4 4 Peacock Margaret Sales Representative 5 5 Buchanan Steven Sales Manager 6 6 Suyama Michael Sales Representative 7 7 King Robert Sales Representative 8 8 Callahan Laura Inside Sales Coordinator 9 9 Dodsworth Anne Sales Representative USE northwind SELECT employeeid, lastname, firstname, title FROM employees GO USE northwind SELECT employeeid, lastname, firstname, title FROM employees GO

employeeidemployeeidlastnamelastnamefirstnamefirstnametitletitle 5 5 Buchanan Steven Sales Manager USE northwind SELECT employeeid, lastname, firstname, title FROM employees WHERE employeeid = 5 GO USE northwind SELECT employeeid, lastname, firstname, title FROM employees WHERE employeeid = 5 GO

 Usando operadores de comparação  Usando comparações de seqüências  Usando operadores lógicos  Recuperando um intervalo de valores  Usando uma lista de valores como critérios de pesquisa  Recuperando valores desconhecidos

USE northwind SELECT lastname, city FROM employees WHERE country = 'USA‘ GO USE northwind SELECT lastname, city FROM employees WHERE country = 'USA‘ GOlastnamelastnamecitycity Davolio Seattle Fuller Tacoma Leverling Kirkland Peacock Redmond Callahan Seattle Exemplo 1

USE northwind SELECT companyname FROM customers WHERE companyname LIKE '%Restaurant%‘ GO USE northwind SELECT companyname FROM customers WHERE companyname LIKE '%Restaurant%‘ GOcompanynamecompanyname GROSELLA-Restaurante Lonesome Pine Restaurant Tortuga Restaurante

USE northwind SELECT productid, productname, supplierid, unitprice FROM products WHERE (productname LIKE 'T%' OR productid = 46) AND (unitprice > 16.00) GO USE northwind SELECT productid, productname, supplierid, unitprice FROM products WHERE (productname LIKE 'T%' OR productid = 46) AND (unitprice > 16.00) GOproductidproductidproductnameproductnamesupplieridsupplieridunitpriceunitprice 14 Tofu Thüringer Rostbratwurst Tarte au sucre Exemplo 1

USE northwind SELECT productname, unitprice FROM products WHERE unitprice BETWEEN 10 AND 20 GO USE northwind SELECT productname, unitprice FROM products WHERE unitprice BETWEEN 10 AND 20 GOproductnameproductnameunitpriceunitprice Chai 18 Chang 19 Aniseed Syrup 10 Genen Shouyu 15.5 Pavlova Sir Rodney’s Scones 10 … … … … Exemplo 1

USE northwind SELECT companyname, country FROM suppliers WHERE country IN ('Japan', 'Italy') GO USE northwind SELECT companyname, country FROM suppliers WHERE country IN ('Japan', 'Italy') GOcompanynamecompanynamecountrycountry Tokyo Traders Japan Mayumi’s Japan Formaggi Fortini s.r.l. Italy Pasta Buttini s.r.l. Italy Exemplo 1

USE northwind SELECT companyname, fax FROM suppliers WHERE fax IS NULL GO USE northwind SELECT companyname, fax FROM suppliers WHERE fax IS NULL GOcompanynamecompanynamefaxfax Exotic Liquids NULL New Orleans Cajun Delights NULL Tokyo Traders NULL Cooperativa de Quesos ‘Las Cabras’ NULL … … … …

 Classificando dados  Ocultando registros duplicados  Alterando nomes de colunas  Usando literais

USE northwind SELECT productid, productname, categoryid, unitprice FROM products ORDER BY categoryid, unitprice DESC GO USE northwind SELECT productid, productname, categoryid, unitprice FROM products ORDER BY categoryid, unitprice DESC GOproductidproductidproductnameproductnamecategoryidcategoryidunitpriceunitprice 38 Cote de Blaye Ipoh Coffee Chang … … … … … … … … 63 Vegie-spread Northwoods Cranberry Sauce Sirop d'érable … … … … … … … … Exemplo 1

USE northwind SELECT DISTINCT country FROM suppliers ORDER BY country GO USE northwind SELECT DISTINCT country FROM suppliers ORDER BY country GOcountrycountry Australia Brazil Canada Denmark Finland France Germany Italy Japan Netherlands Norway Singapore Spain Sweden UK USA Exemplo 1

USE northwind SELECT firstname AS First, lastname AS Last,employeeid AS 'Employee ID:' FROM employees GO USE northwind SELECT firstname AS First, lastname AS Last,employeeid AS 'Employee ID:' FROM employees GOFirstFirstLastLast Employee ID: Nancy Davolio 1 1 Andrew Fuller 2 2 Janet Leverling 3 3 Margaret Peacock 4 4 Steven Buchanan 5 5 Michael Suyama 6 6 Robert King 7 7 Laura Callahan 8 8 Anne Dodsworth 9 9

USE northwind SELECT firstname, lastname, 'Identification number:', employeeid FROM employees GO USE northwind SELECT firstname, lastname, 'Identification number:', employeeid FROM employees GOfirstnamefirstnamelastnamelastnameemployeeidemployeeid Nancy Davolio Identification Number: 1 Andrew Fuller Janet Leverling Margaret Peacock Steven Buchanan Michael Suyama Robert King Laura Callahan Anne Dodsworth Identification Number: 2 Identification Number: 3 Identification Number: 4 Identification Number: 5 Identification Number: 6 Identification Number: 7 Identification Number: 8 Identification Number: 9