1.264 Aula 8. SQL (continuação) ODBC



Documentos relacionados
1.264 Aula 7. Introdução ao SQL

GBC043 Sistemas de Banco de Dados. Introdução. Ilmério Reis da Silva UFU/FACOM

Banco de Dados. Aula 1 - Prof. Bruno Moreno 16/08/2011

Tarefa Orientada 16 Vistas

? O SQL SERVER é um sistema de gerenciamento de banco de dados relacional que foi desenvolvido inicialmente pela Microsoft em parceria com a Sybase.

Fundamentos dos Sistemas de Informação Organização de Dados e Informações

Noções de. Microsoft SQL Server. Microsoft SQL Server

Conceitos de Banco de Dados

ORACLE 11 G INTRODUÇÃO AO ORACLE, SQL,PL/SQL. Carga horária: 32 Horas

Sistemas de Banco de Dados Aspectos Gerais de Banco de Dados

Fundamentos de Banco de Dados

Arquitetura de Banco de Dados

Banco de Dados Oracle. Faculdade Pernambucana - FAPE

Desenvolvendo Websites com PHP

Banco de Dados. Marcio de Carvalho Victorino Exercícios SQL

Procedimentos para Reinstalação do Sisloc

CAPÍTULO 8 Conexões de banco de dados para programadores ASP.NET

Banco de Dados I. Introdução. Fabricio Breve

EDITORA FERREIRA MP/RJ_EXERCÍCIOS 01

Faculdade Lourenço Filho - ENADE

Prof. Marcelo Machado Cunha

Análise de Ponto de Função

Introdução a listas - Windows SharePoint Services - Microsoft Office Online

Tópicos. Atualizações e segurança do sistema. Manutenção Preventiva e Corretiva de Software (utilizando o MS Windows XP)

Segurança de Acesso a Banco de Dados no MS SQL Server

Aplicativo da Manifestação do Destinatário. Manual

PROCEDIMENTOS PARA ATUALIZAÇÃO DE VERSÃO DO APLICATIVO

ADMINISTRAÇÃO DE SISTEMAS OPERACIONAIS SERVIÇOS IMPRESSÃO. Professor Carlos Muniz

Banco de Dados. Um momento crucial na organização dos dados é a forma com que cadastramos estes dados, a estrutura de armazenamento que criamos.

Programação com Acesso a Banco de Dados

MODELO DE DADOS VS ESQUEMA

Exemplo da Solução 1 da Lição de Casa Exemplo de distribuição de peças da aeronave

SQL comando SELECT. SELECT [DISTINCT] <campos> FROM <tabela> [condição] [ ; ] Paulo Damico - MDK Informática Ltda.

Crash recovery é similar ao instance recovery, onde o primeiro referencia ambientes de instância exclusiva e o segundo ambientes parallel server.

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, MODELAGEM DE DADOS. Aula 1. Prof. Rafael Dias Ribeiro. M.Sc.

Administração do Windows Server 2003

Prof.: Clayton Maciel Costa

SISTEMAS OPERACIONAIS LIVRES. Professor Carlos Muniz

Bancos de dados distribuídos Prof. Tiago Eugenio de Melo

SQL Structured Query Language

IF685 Gerenciamento de Dados e Informação - Prof. Robson Fidalgo 1

Structured Query Language (SQL) Ambiente Simplificado de um SGBD

MySQL: Controle de Acesso

Evolução. Tópicos. Bancos de Dados - Introdução. Melissa Lemos. Evolução dos Sistemas de Informação Esquemas Modelos. Características de SGBDs

Outlook Apresentação

Tarefa Orientada 15 Manipulação de dados

Arquitetura de Computadores. Introdução aos Sistemas Operacionais

Agendamento para Importação de Notas Fiscais

FTIN Formação Técnica em Informática Módulo Sistema Proprietário Windows AULA 04. Prof. André Lucio

CONTEÚDOS PROGRAMÁTICOS DA ACADEMIA

LOGs e ALERTAS de DESEMPENHO

Dado: Fatos conhecidos que podem ser registrados e têm um significado implícito. Banco de Dados:

ArpPrintServer. Sistema de Gerenciamento de Impressão By Netsource Rev: 02

Manual do Visualizador NF e KEY BEST

Prof. Luiz Fernando. Unidade III ADMINISTRAÇÃO DE

Modelos. Comunicação com clientes

AULA 5 Sistemas Operacionais

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, MODELAGEM DE DADOS. Aula 2. Prof. Rafael Dias Ribeiro. M.Sc.

Software de gerenciamento de impressoras

BANCO DE DADOS WEB AULA 4. linguagem SQL: subconjuntos DCL, DDL e DML. professor Luciano Roberto Rocha.

Banco de Dados Oracle 10g: Introdução à Linguagem SQL

Conteúdo Programático

Banco de Dados. Introdução. João Eduardo Ferreira Osvaldo Kotaro Takai. DCC-IME-USP

Sumário 1. SOBRE O NFGoiana DESKTOP Apresentação Informações do sistema Acessando o NFGoiana Desktop

Programação com acesso a BD. Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br

Instruções de Instalação do IBM SPSS Modeler (Licença Simultânea)

Registro e Acompanhamento de Chamados

Arquitetura de BDs Distribuídos. Victor Amorim - vhca Pedro Melo pam2

Android e Bancos de Dados

Roteiro. Conceitos e Arquitetura de Sistemas de Banco de Dados. Conceitos e Arquiteturas de Sistemas de Banco de Dados. BCC321 - Banco de Dados I

Controle de transações em SQL

INSTALAÇÃO DO SISTEMA CONTROLGÁS

CONTRA CONTROLE DE ACESSOS E MODULARIZADOR DE SISTEMAS

ESTRUTURA DE SERVER Lílian Simão Oliveira

As principais características da abordagem de um banco de dados versus a abordagem de processamento de arquivos são as seguintes:

Procedimentos para Instalação do Sisloc

Prevayler. Perola. André Luís Sales de Moraes Juliana Keiko Yamaguchi Tatiana Yuka Takaki

Comandos de Manipulação

Comparativo de desempenho do Pervasive PSQL v11

Centro de Computação - Unicamp Gerência de Atendimento ao Cliente ( apoio@turing.unicamp.br) Sumário

Sistemas Operacionais. Prof. André Y. Kusumoto

*O RDBMS Oracle é um sistema de gerenciamento de banco de dados relacional.

ÍNDICE 1 INTRODUÇÃO ACESSO AOS SISTEMAS DOCUMENTOS MANUTENÇÃO OCR REGISTRO DE DOCUMENTOS GERANDO DOCUMENTOS

MANUAL DE CONFIGURAÇÃO DO BACKUP

Anexo IV PLANILHA DESCRITIVA DE ESPECIFICAÇÕES TÉCNICAS

Manual do PolicyKit-kde. Daniel Nicoletti Tradução: Luiz Fernando Ranghetti

4 Implementação e Resultados Experimentais

MÓDULO 7 Modelo OSI. 7.1 Serviços Versus Protocolos

CA Nimsoft Monitor. Guia do Probe Monitoramento de resposta de JDBC. jdbc_response série 1.1

SQL Linguagem de Definição de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

Manipulação de Dados em PHP (Visualizar, Inserir, Atualizar e Excluir) Parte 2

Exercícios de Lógica Exercícios de Fixação 08

Procedimentos para Instalação do SISLOC

MANUAL DE UTILIZAÇÃO

EXEMPLO DE COMO FAZER UMA MALA DIRETA

Transcrição:

1.264 Aula 8 SQL (continuação) ODBC

Subconsultas As subconsultas SQL permitem a utilização dos resultados de uma consulta como parte de outra consulta. Elas Com freqüência, são formas naturais de escrever um comando Permitem a quebra de uma consulta em partes e sua montagem Permitem algumas consultas, as quais não poderiam ser construídas de outra forma

Subconsultas Liste os escritórios nos quais as quotas de vendas excedem a soma das quotas individuais dos vendedores SELECT City FROM Offices WHERE Target >?????? é a soma das quotas dos vendedores ou SELECT SUM(Quota) FROM SalesReps WHERE RepOffice = OfficeNbr Essas características são combinadas para obter SELECT City FROM Offices WHERE Target > (SELECT SUM(Quota) FROM SalesReps WHERE RepOffice = OfficeNbr);

Subconjuntos As subconsultas sempre aparecem como parte da cláusula WHERE (ou HAVING) A subconsulta somente pode produzir uma única coluna de dados como seu resultado Somente um campo pode estar presente na subconsulta SELECT ORDER BY não é permitido; ele não faria sentido UNION não é suportado; somente um SELECT é permitido Normalmente, referimos ao nome de uma coluna da tabela principal na consulta Isso define a linha atual da tabela principal para a qual a subconsulta está sendo executada. Essa definição é chamada de referência externa Em nosso exemplo, ela é RepOffice = OfficeNbr da tabela Offices

Visões Tabelas virtuais que apresentam os dados em forma não normalizada para os usuários Elas NÃO são cópias separadas dos dados; elas fazem referência aos dados nas tabelas subjacentes O banco de dados armazena a definição da visão; os dados são atualizados quando essas tabelas subjacentes forem atualizadas Vantagens: Projetadas para atender necessidades específicas dos usuários Consultas muito mais simples para os usuários sobre visões construídas para eles Segurança: fornecem acesso somente as dados nas visões Independência: separam o usuário ou o programa das alterações nas tabelas subjacentes

Visões CREATE VIEW CustomerOrders AS SELECT CustNbr, Company, Name, OrderNbr, Prod, Qty, Amt FROM Customers, SalesReps, Orders WHERE CustRep = RepNbr AND CustNbr = Cust (Standard SQL)

Sutilezas das visões É possível alterar as visões para invalidá-las Por exemplo, Visão dos livros com preço abaixo de $5 O que acontece se você efetuar uma atualização do preço de um livro para $5,99 através da visão. Ele desaparece! Evite isso, adicionando: WITH CHECK OPTION Nem todas as visões podem ser atualizadas. A visão é para leitura somente (read-only) se: DISTINCT estiver presente no comando SELECT Expressões (médias, totais, etc.) Referências a visões que não podem ser atualizadas Cláusulas GROUP BY ou HAVING Algumas vezes: Referências a mais de uma tabela (elimina o objetivo)

Visões no MS Access As visões são construídas e armazenadas como consultas Construa o comando SELECT, incluindo JOINS das tabelas, se necessário Salve a Consulta, fornecendo-lhe um nome A seguir, você poderá efetuar a consulta da consulta (visão), bem como utilizá-la como a fonte de dados para páginas da Web, como se ela fosse uma tabela Você utilizará as visões (consultas) em FrontPage, pois ele tinha erros ao referenciar JOINs.

Exercícios de revisão Exibir todos os clientes com pedidos ou limites de crédito > $50.000 É possível listar o cliente somente uma vez? Excluir vendedores nos escritórios de vendas em Nova York (NY) com quotas acima de $40.000 Sugestão: Lembre-se de excluir de (FROM) uma única tabela. Utilize uma subconsulta.

Exercícios de revisão Exibir todos os clientes com pedidos ou limites de crédito > $50.000 É possível listar o cliente somente uma vez? Sim, mas é difícil. SELECT DISTINCT CustNbr FROM Customers, Orders WHERE CustNbr = Cust AND (CreditLimit>50000 OR Amt>50000); Excluir vendedores nos escritórios de vendas em Nova York (NY) com quotas acima de $40.000 Sugestão: Lembre-se de excluir de (FROM) uma única tabela. Utilize uma subconsulta DELETE * FROM SalesReps WHERE RepNbr IN (SELECT RepNbr FROM SalesReps, Offices WHERE OfficeNbr = RepOffice AND Quota>40000 AND State = NY ;

Índices O índice é um objeto de dados separado no banco de dados que lista as linhas da tabela de forma a permitir consulta rápida. Cada índice para cada tabela é um objeto separado As chaves primárias e estrangeiras são automaticamente indexadas Acesso rápido a colunas indexadas. Cada índice pode ser atualizado quando uma linha é atualizada; portanto, os índices tornam mais lentas as atualizações, inserções e exclusões O limite máximo prático é de 3 ou 4 índices por tabela. Se outros forem necessários ocasionalmente, adicione e descarte-os conforme a necessidade Se o banco de dados é lido com freqüência, utilize muitos índices para agilizar o desempenho Se o banco de dados é atualizado com freqüência, utilize o menor número de índices possível Índices agrupados. Rearranje fisicamente as colunas pelo índice único para maximizar a velocidade de acesso ao disco

Exemplo de índices Banco de dados de Clientes A identificação do cliente é a chave primária Nome do cliente (sobrenome, nome) Cidade, estado CEP Endereço Indexe nome, cidade/estado, CEP e endereço Quatro índices: inserção, atualização e exclusão lentas, mas pesquisa rápida Se o banco de dados do cliente é razoavelmente estável, isso é bom Lógica similar para catálogo de peças, lista de materiais, etc As máquinas de busca da Internet utilizam máquinas de recuperação de texto Indexam cada palavra no banco de dados inteiro; contam as ocorrências e classificam as coincidências. Avanços recentes (freqüência de links, utilização...) aprimoram esse processo

Segurança Opções de Segurança: Utilização do logon/senha do sistema operacional (fraco) para identificar o usuário O usuário obtém acesso a todos os bancos de dados e todas as tabelas Utilização do logon/senha do banco de dados (mais forte) Acesso restrito a bancos de dados e tabelas, mas ainda pode utilizar as aplicações Segurança em nível de aplicação (mais forte ainda, mas difícil de administrar) Cada aplicação deve pesquisar em um banco de dados comum para verificar se o usuário está autorizado; isso é mais centralizado do que BD a BD Segurança em nível de rede (a mais forte, pouco viável no momento) Utiliza infra-estrutura de diretório e chave pública (PKI), criptografia Essa é a tecnologia de ponta atual: onerosa e difícil Classes de usuários: superusuário (DBA), proprietário dos dados, usuário dos dados Atribuição de privilégios (permissões) de banco de dados GRANT e REVOKE: Por exemplo, GRANT ALL ON TableName TO PUBLIC WITH GRANT OPTION A ordem importa para GRANTs e REVOKEs. O último é que rege. O MS Access não suporta esses recursos

Transações Com freqüência, grupos de transações devem ser tratados como unidades atômicas Transação de início Inserir OrderHeader Enquanto existir mais OrderDetails (itens de linha): Selecionar Peça Atualizar inventário de Peças Inserir linha OrderDetail Resultado: Transação de compromisso Propriedades das transações (ACID) A - atômica - tudo ou nada (recuperação) C - consistência - de um estado consistente a outro (integridade) I - isolamento - não permite outra transação para visualizar alterações não compromissadas (concorrência) D - durável - uma vez comprometidas, as transações são permanentes

Transações Bancos de dados multiusuário têm outros problemas de transações Duas ações de banco de dados entram em conflito se uma ou ambas forem operações de gravação Atualizações perdidas: 7 peças no inventário As transações 1 e 2 lêem simultaneamente 7 como a quantidade atual A transação 1 termina primeiro, adiciona 3 peças, e grava 10 como quantidade A transação 2 termina depois, exclui 5 peças, e grava 2 como quantidade! Alterações não comprometidas: A transação 1 adiciona 3 peças, e grava 10 como quantidade A transação 2 lê 10 como quantidade A transação 1 é cancelada (roll back), deixando a transação 2 com dados incorretos

Transações Os bancos de dados utilizam bloqueios (locks) para concorrência. Um esquema simples é: Os comandos de gravação obtêm um bloqueio exclusivo sobre um registro, evitando leituras ou gravações Os comandos de leitura obtêm bloqueios não-exclusivos, permitindo outras leituras, mas impedindo que uma transação de gravação obtenha um bloqueio exclusivo Os bancos de dados utilizam logs para recuperação. O arquivo de log é gravado com todas as alterações efetuadas no banco de dados (isso é um gargalo importante na arquitetura) A alteração não pode ser compromissada até que o log seja gravado em memória permanente. Normalmente, as alterações são comprometidas antes de as tabelas serem realmente atualizadas no disco Se uma alteração for cancelada, o log é lido para reverter as transações. Se houver queda do sistema ou quebra de disco, o log é reexecutado a partir do último checkpoint para restaurar o banco de dados. Desligue os logs ao efetuar a carga ou recuperação de dados em lote (batch)

Desempenho Benchmarks (TPC-A a H...) www.tpc.org Caches: discos são lentos! Coloca páginas (normalmente, porções de dados com 8 kb) na memória para acesso rápido Otimizadores de consulta Muitas formas de efetuar junções; depende do tamanho da tabela, características das chaves (comprimento, 'univocidade'), etc. Estatísticas de índices UPDATE STATISTICS

API de Conectividade de Bancos de Dados Abertos (ODBC) Estágio inicial: SQL incorporada (ESQL) em cada servidor de banco de dados (início dos anos 1990) Compilada na aplicação do servidor, não pode ser alterada pelo usuário final Poderia não executar de forma razoável entre vários bancos de dados Segundo estágio: Quando as aplicações cliente-servidor surgiram (final dos anos 1990) Cada fornecedor de banco de dados forneceu uma interface de programação de aplicações (API) para permitir que os clientes consultem o banco de dados Obviamente, cada API dos fornecedores era diferente Estágio atual: ODBC (final dos anos 1990 até hoje) API comum do Windows, capaz de acessar os bancos de dados mais importantes Oracle, SQL Server, Sybase, DB2, Informix JDBC é muito similar para o ambiente Java

API de ODBC Biblioteca de chamadas de funções ODBC para a conexão de uma aplicação (Web, Windows, outras) ao DBMS, executa comandos SQL e recupera resultados Sintaxe SQL baseada no padrão SQL-92 Conjunto padrão de códigos de erro Forma padrão de conexão e logon no DBMS Representação padrão dos tipos de dados Métodos padrão para conversões de tipos de dados A ODBC contém funções core, de camada 1 e camada 2 para tratar interfaces simples e sofisticadas Esses recursos resolvem muitos problemas da SQL nãopadrão, indicados na última aula.

Arquitetura ODBC Aplicação Gerenciador do Driver ODBC Servidor Web Driver Oracle Driver SQL Server Driver Dbase Dados Servidor Oracle (fonte de dados) Dados SQL Server (fonte de dados) Dados Servidor de banco de dados

Arquitetura ODBC Aplicação (Windows, Web) Executa o processamento Chama funções ODBC para enviar comandos SQL e recuperar resultados Gerenciador de drivers Efetua a carga e descarga dos drivers solicitados pela aplicação Processa algumas chamadas de funções ODBC (supervisão) Driver ODBC Processa a maioria das chamadas de funções ODBC Envia solicitações SQL para fontes de dados específicas Modifica a solicitação da aplicação para compatibilidade com a sintaxe SQL da fonte de dados Retorna os resultados à aplicação Fonte de dados

Aplicação Solicita conexão ou sessão com a fonte de dados Envia solicitações SQL para a fonte de dados Aloca áreas de memória e define formatos para os resultados das solicitações SQL Solicita resultados Processa dados e erros Se a aplicação requer processamento das transações, ela solicita comprometimento ou cancelamento (roll back) para aceitar ou rejeitar os resultados da transação Quando concluída, encerra a conexão com a fonte de dados

Gerenciador de drivers O gerenciador de drivers é uma biblioteca dinâmica de links (DLL) fornecida pela Microsoft Ela carrega e descarrega drivers ODBC Quando a aplicação solicita uma lista dos nomes das fontes de dados instaladas, o Gerenciador de Drivers recupera as informações do registro e devolve essa lista. Processa chamadas de inicialização, validação de parâmetros e validação de seqüência para chamadas de função ODBC Liste o nome e telefone de cada representante

Driver O driver é a DLL (biblioteca) que implementa as chamadas de funções ODBC, escritas pela Microsoft ou pelo fornecedor de BD Conversão de dados para os padrões ODBC Conversão de códigos de erros para os padrões ODBC Tratamento de transações Acesso a arquivos não-dbms, como Excel, texto Suporte limitado da SQL: somente SELECT, INSERT, CREATE, DROP Ampla faixa de funções em diferentes drivers Verifique os níveis de conformidade: ODBC e SQL (não são os mesmos!) A API de ODBC oferece funções para determinar as capacidades