BD II (SI 587) Programação SQL. Prof. Josenildo Silva.

Documentos relacionados
IEC Banco de Dados I Aula 11 Técnicas de Programação SQL

Aula 1 Acesso a Banco de Dados

Banco de dados POO Márcio Delamaro. Programação Orientada a Objetos Prof Marcio Delamaro ICMC/USP

De forma simples, para a execução de comandos SQL com JDBC, precisa-se da instancia de três classes Java. São elas: Nome da classe Função

Arquiteturas para SGBD. Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

Laboratório de Banco de Dados Aula 1 Acesso a Banco de Dados. Prof. Josenildo Silva jcsilva@ifma.edu.br

PROGRAMAÇÃO ORIENTADA A OBJETOS. Aula 09a- Acessando os dados através JDBC

Desenvolvimento Web TCC Turma A-1

TECNOLOGIAS DE ACESSO A BASES DE DADOS. Profª Ana Paula Cação Maio de 2018

S Q L Asserções, Visões e Técnicas de Programação. Daniel Bordignon Cassanelli Fernando Luiz Grando Pedro Patitucci Finamore

JDBC JDBC. JDBC - Arquitetura. JDBC Arquitetura Pacote Java.sql. Java Database Connectivity JDBC PostgreSQL

PROGRAMAÇÃO ORIENTADA A OBJETOS. Aula 9- Introdução ao JDBC

Introdução. descrever os tipos de interfaces e linguagens oferecidas por um SGBD. mostrar o ambiente de programas dos SGBD s

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

PONTIFÍCIA UNIVERSIDADE CATÓLICA DE GOIÁS Departamento de Computação Curso de Análise e Desenvolvimento de Sistemas Modelagem Conceitual de Dados

Projeto Final Curso de Java Básico

BD II (SI 587) Procedimentos Armazenados

Leonardo Gresta Paulino Murta

Laboratório de Banco de Dados. Prof. Luiz Vivacqua.

SISTEMAS DE BANCOS DE DADOS: CONCEITOS E ARQUITETURA

SQL. Ambientes de programação O catálogo do sistema. Cristina C. Vieira Departamento de Engenharia Eletrónica e Informática

JDBC (Java Database Connectivity) Padrão de Projeto DAO (Data Access Object) Roteiro para instalação do banco de dados e do driver JDBC

Componentes ADO e o Acesso ao Banco de Dados

SISTEMAS DE GERENCIAMENTO DE BANCO DE DADOS

Programação com Acesso a Banco de Dados

Sistemas de Banco de Dados

f. Exemplo: verificar condição de aprovação de alunos

CONEXÃO JAVA - BANCO DE DADOS

PROGRAMAÇÃO SERVIDOR MIDDLEWARE JDBC: USANDO O JAVA DB EM SISTEMAS WEB. Prof. Dr. Daniel Caetano

SQL Básica. Andre Noel

Motivação. Aplicações precisam acessar o BD Linguagens BD X Linguagens Programação. paradigmas diferentes (impedance mismatch)

Conexão do Banco de Dados localhost

AULA SISTEMAS DE GERENCIAMENTO DE BANCO DE DADOS

Banco de Dados. Banco de Dados. Alcides Pamplona Alcides Pamplona Linguagem de Programação CESBD 2010

Algoritmos e Programação

Manipulação de Banco de Dados com Java. Ms. Bruno Crestani Calegaro Maio/ 2015

SISTEMA DE GERENCIAMENTO DE BANCO DE DADOS - SGBD

INTRODUÇÃO AO MYSQL. Eng. Computação

Controle de Transação

[versão para impressão] Link original: comp=24763 Conhecendo o PL/SQL

Programação Orientada a Objetos II

BANCO DE DADOS II Stored Procedure. COTEMIG Gerson Borges

Agenda. Instalação e configuração. Processamento de comandos SQL com JDBC. Driver JDBC Criação da classe de conexão

Integrando Java com Banco de Dados

Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri. Banco de Dados Processamento e Otimização de Consultas

Oracle Database: Fundamentos de SQL e PL/SQL

Lista de Exercícios da disciplina Aplicações de Linguagem de Programação Orientada a objetos

O modelo relacional encontra-se padronizado pela indústria de informática. Ele é chamado de

Programação Orientada a Objetos JDBC Java Database Connectivity

Algoritmos e Programação

Banco de Dados. -Aprendendo conceitos -Usando o SQL Conf para: -Conectar no banco de dados -Criar, alterar, excluir e consultar estruturas de tabelas

AULA 2 VISÃO BÁSICA DE CLASSES EM PHP

INE Banco de Dados II. Sumário

Capítulo 5. Nomes, Vinculações e Escopos

IFSC/Florianópolis - Programação Orientada a Objetos com Java - prof. Herval Daminelli

Olá pessoal, Hoje vamos entender os conceitos sobre linguagem de programação. Definição, tipos de linguagens e as linguagens mais utilizadas

JDBC - Java Data Base Connectivity

Java Básico JDBC. Razer Anthom Nizer Rojas Montaño Banco de Dados: JDBC

Java JDBC - I. Ex. 2: para o SQLServer da Microsoft, o driver JDBC pode ser obtido em

Linguagens de Domínio Específico

JDBC Java Database Connectivity

Acesso a Bancos de Dados em Java (JDBC)

Banco de Dados II. PL/SQL - Procedures -Cursor - Funções. Segurança: Introdução; Controle de Acesso; Criptografia; Recursos de SQL.

PCS Laboratório de Engenharia de Software I Tutorial de Modelagem de Dados no RSA v9.5 (por Michelet dal Carpio Chávez)

E N C A P S U L A M E N T O P R O F. M E. H É L I O E S P E R I D I Ã O

COBOL Query 1.0. Ferramenta para extração de dados em arquivos COBOL. Aluno: André Luiz Jacinto Orientador: Adilson Vahldick

Tratamento de Exceções

Introdução em Banco de Dados

Encapsulamento e Métodos (Construtores e Estáticos) João Paulo Q. dos Santos

Java - Conexão ao Banco de Dados usando JDBC

JDBC (Fundamentos) Sang Shin Java Technology Architect Sun Microsystems, Inc.

Conexão com Banco de Dados, Inserção, exclusão e atualização de registros

JAVA JDBC Java Database Connectivity

Oracle SQL Developer

BANCO DE DADOS ORIENTADO A OBJETOS

Banco de Dados. Banco de Dados Parte 2. Alcides Pamplona Alcides Pamplona Linguagem de Programação CESBD 2010

Transcrição:

BD II (SI 587) Programação SQL Prof. Josenildo Silva jcsilva@ifma.edu.br

Nota Estes slides são baseados nos slides disponibilizados pelos autores ELMASRI e NAVATHE, para o livro Sistemas de Banco de Dados, 6ª. Edição, Ed. Pearson Brasil Capítulo 13. Introdução às técnicas de programação SQL.

Como Acessar um BD a partir de uma Aplicação? Graphic Interface Command Line Client? Aplicação (Java, C++, PHP, VB, Delphi,COBOL, etc.) SGBD BD

Cenário Aplicações de banco de dados Linguagem hospedeira Java, C/C++/C#, COBOL ou alguma outra linguagem de programação Sublinguagem de dados SQL Padrões de SQL Continuamente evoluindo Cada vendedor de SGBD pode ter algumas variações do padrão

Cenário Interface interativa Comandos SQL digitados diretamente em uma interface em linha de comando. Executar arquivo de comandos (script) @<nomearquivo> Source <nome do arquivo> no mysql

Cenário Programas de aplicação ou aplicações de banco de dados Usados como transações programadas pelos usuários finais acessando um banco de dados Juros de poupança, Folha de pagamento, etc. Pode ter uma interface Web Consulta de Saldo

Alternativa 1: SQL embutida Embutir comandos SQL em uma LP geral SQL identificada por um prefixo especial Pré-compilador identifica os comandos de banco de dados e os extrai para o SGBD

Alternativa 2: Biblioteca de funções Usar uma biblioteca de funções de banco de dados Biblioteca + (API) Projetar uma linguagem de BD nova Duas primeiras técnicas são mais comuns

O Problema da Divergência de Impedância Diferenças entre o modelos de BD e da LP VARCHAR, DATE, SMALLINT, etc, correspondem a quais tipos em uma dada linguagem de programação? Vínculo para cada LP hospedeira Especifica, para cada tipo de atributo, os tipos de linguagem de programação compatíveis Cursor ou variável de iteração Usado para percorrer as tuplas em um resultado de consulta

Sequência de típica na programação de BD Abrir uma conexão com o SGBD Submeter consultas, atualizações e outros comandos do banco de dados Terminar ou fechar a conexão

SQL embutida, SQL dinâmica e SQLJ SQL embutida Linguagem C (anos 90) SQLJ Linguagem Java (anos 2000) Linguagem de programação é chamada de linguagem hospedeira

SQL EMBUTIDA

Recuperando tuplas isoladas com SQL embutida EXEC SQL Prefixo Pré-processador possa separar as instruções SQL embutidas do código da linguagem hospedeira Terminam com um END-EXEC Ou por um ponto e vírgula (;)

Recuperando tuplas isoladas com SQL embutida (cont.) Variáveis compartilhadas São usadas tanto no programa C quanto nas instruções SQL embutidas Iniciadas com um sinal de dois pontos (:) em uma instrução SQL

Recuperando tuplas isoladas com SQL embutida (cont.)

Recuperando tuplas isoladas com SQL embutida (cont.) Conectando ao banco de dados CONNECT TO <nome do servidor> AS <nome da conexão> AUTHORIZATION <nome de conta do usuário e senha> ; Conexão mudada SET CONNECTION <nome da conexão> ; Conexão terminada DISCONNECT <nome da conexão> ;

Recuperando tuplas isoladas com SQL embutida (cont.) Variáveis de comunicação SQLCODE e SQLSTATE Usadas pelo SGBD para comunicar condições de exceção ou erro Variável SQLCODE 0 = instrução foi executada com sucesso 100 = não há mais dados disponíveis em um resultado de consulta < 0 = indica que houve algum erro

Recuperando tuplas isoladas com SQL embutida (cont.) SQLSTATE String de cinco caracteres 00000 = nenhum erro ou exceção Outros valores indicam diversos erros ou exceções Por exemplo, 02000 indica sem mais dados quando se usa SQLSTATE

Recuperando tuplas isoladas com SQL embutida (cont.)

Recuperando múltiplas tuplas com SQL embutida usando cursores Cursor Ponteiro que aponta para uma única tupla (linha) do resultado de uma consulta Comando OPEN CURSOR Busca o resultado da consulta e define o cursor para uma posição antes da primeira linha no resultado Se torna a linha atual para o cursor

Recuperando múltiplas tuplas com SQL embutida usando cursores Comandos FETCH Move o cursor para a próxima linha no resultado da consulta

Recuperando múltiplas tuplas com SQL embutida usando cursores (cont.)

Recuperando múltiplas tuplas com SQL embutida usando cursores (cont.) FOR UPDATE OF Lista de nomes de quaisquer atributos que serão atualizados pelo programa Orientação fetch Acrescentar usando valor: NEXT, PRIOR, FIRST, LAST, ABSOLUTE i e RELATIVE i

SQL DINÂMICA

Especificando consultas em tempo de execução usando a SQL dinâmica SQL dinâmica Executa comandos SQL em tempo de execução Atualização dinâmica Consulta dinâmica

Especificando consultas em tempo de execução usando a SQL dinâmica

SQLJ

SQLJ: embutindo comandos SQL em Java Padrão adotado por diversos vendedores para embutir SQL em Java Importa várias bibliotecas de classe Contexto default Usa conceito de exceções para tratamento de erro SQLException é utilizada para retornar erros ou condições de exceção

SQLJ: embutindo comandos SQL em Java (cont.)

Recuperando múltiplas tuplas em SQLJ usando iteradores Iterador Objeto associado a uma coleção (conjunto ou multiconjunto) de registros em um resultado de consulta Iterador nomeado Associado a um resultado de consulta ao listar os nomes e tipos de atributo no resultado dela Iterador posicional Lista apenas os tipos de atributo no resultado dela

SQL/CLI

Programação de BD com chamadas de SQL/CLI O uso de chamadas de função Técnica mais dinâmica para programação de banco de dados Biblioteca de funções Também conhecida como uma interface de programação de aplicação (API) Usada para acessar o banco de dados SQL Call Level Interface (SQL/CLI) Parte do padrão SQL

SQL/CLI: usando C como linguagem hospedeira Registro de ambiente Registrar uma ou mais conexões de banco de dados Define informações de ambiente Registro de conexão Registra as informações necessárias para determinada conexão de banco de dados Registro de instrução Registra as informações necessárias para uma instrução SQL

SQL/CLI: usando C como linguagem hospedeira (cont.) Registro de descrição Registra as informações sobre tuplas ou parâmetros Identificador do registro Uma variável de ponteiro C torna o registro acessível ao programa

BIBLIOTECA JDBC

JDBC: chamadas de função SQL para programa em Java JDBC Bibliotecas de Java Um único programa Java pode conectar a vários bancos de dados diferentes, chamados fontes de dados acessadas pelo programa Java Class.forName( oracle.jdbc.driver.oracl edriver ) Carregar um driver JDBC de maneira explícita

JDBC: classes principais Classe Connection Classe Statement Subclasses: PreparedStatement e CallableStatement Classe ResultSet Resultado da consulta é retornado

Comparando as técnicas Técnica da SQL embutida Texto da consulta verifica erros de sintaxe e valida contra o esquema do banco de dados em tempo de compilação Para aplicações complexas em que as consultas precisam ser geradas em tempo de execução a técnica de chamada de função será mais adequada

Comparando as técnicas (cont.) Técnica da biblioteca de chamadas de função Mais flexibilidade Programação mais complexa Nenhuma verificação de sintaxe pode ser feita em tempo de compilação

Resumo Técnicas para acesso a banco de dados a partir de uma aplicação: SQL embutida SQLJ Padrão SQL/CLI Biblioteca de classes JDBC