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

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

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

BD II (SI 587) Procedimentos Armazenados

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

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

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

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

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

SQL Procedural. Josino Rodrigues Neto

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

JDBC - Java Data Base Connectivity

Acadêmica: Giselle Mafra Schlosser Orientador: Everaldo Artur Grahl

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

Desenvolvimento Web TCC Turma A-1

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

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

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

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

INE Banco de Dados II. Sumário

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

Aula 1 Acesso a Banco de Dados

Programando em SQL. Triggers, Stored Procedures e funções. Profa. Késsia Marchi

Oracle Database: Fundamentos de SQL e PL/SQL

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

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

Tratamento de Exceções


Leonardo Gresta Paulino Murta

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

Introdução às funções e procedimentos. SQL suporta funções e procedimentos úteis com tipos de dados específicos

Oracle Database 10g: Fundamentos de SQL e PL/SQL

Programação com Acesso a Banco de Dados

UNINGÁ UNIDADE DE ENSINO SUPERIOR INGÁ FACULDADE INGÁ CIÊNCIA DA COMPUTAÇÃO CURSORS. Profº Erinaldo Sanches Nascimento

Integrando Java com Banco de Dados

Oracle Database 12c: Programando com PL/SQL Ed. 2

SQL Pacotes. Profa. Dra. Cristina Dutra de Aguiar Ciferri. Laboratório de Bases de Dados Pacotes

Programação Orientada a Objetos JDBC Java Database Connectivity

PHP Básico Módulo I. Carga Horária: 32 horas. Conteúdo: Conceitos Básicos Introdução; Características; Scripts;

Oracle PL/SQL Overview

Linguagens de Programação

PadrãoIX. Módulo II JAVA. Marcio de Carvalho Victorino. JDBC - Java Database Connectivity A,L,F,M

Funções Definidas pelo Usuário

Sumário. Introdução 1

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

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

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

PROCEDIMENTOS ARMAZENADOS (Stored Procedures)

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

Acesso a Bancos de Dados em Java (JDBC)

Fundamentos de Programação ORACLE: SQL. Prof. Walter Gima

Material Teórico. Procedures, Functions, Exceptions e Triggers. Responsável pelo Conteúdo: Prof. Ms. Alexander Gobbato Albuquerque

Conexão do Banco de Dados localhost

Bases de Dados 2012/2013 Funções/procedimentos e triggers. Helena Galhardas 2012 IST. Bibliografia. Manual referência PostgreSQL

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

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

Logado no OracleXE vamos acessar a opção:

Desenvolvendo Aplicações de Banco de Dados

JAVA JDBC Java Database Connectivity

Componentes ADO e o Acesso ao Banco de Dados

António Rocha Nuno Melo e Castro

Android e Bancos de Dados

AULA 8. Ambientes Visuais 8.1. OBJETIVO DA AULA SQL (Structured Query Language)

Programação Orientada a Objetos (DPADF 0063)

Sumário. Discussão Exercícios. Discussão Exercícios. Discussão Exercícios. Discussão Exercícios. Programando com SQL Stored Procedures

BANCO DE DADOS II Stored Procedure. COTEMIG Gerson Borges

CONEXÃO JAVA - BANCO DE DADOS

INTRODUÇÃO. No entanto, o que pode ser considerado um produto (resultado) da criação de BDs?

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

Programação Orientada a Objetos II

Benvindo ao Curso de Introdução ao Firebird com Ferramenta de Relatórios!

Python para quem sabe Python

Transcrição:

IEC Banco de Dados I Aula 11 Técnicas de Programação SQL Turmas: Sistemas de Informação Professora: André Luiz da Costa Carvalho E- mail: andre@icomp.ufam.edu.br Site: hjp://bdufam.wordpress.com

Sumário Técnicas de programação SQL Embedded SQL, SQL dinâmico, e SQLJ Programando BD com funções: SQL/CLI e JDBC Stored Procedures e SQL/PSM Comparação

Programando com SQL Aplicações de Banco de Dados Linguagem hospedeira Java, C/C++/C#, PHP, etc Sublinguagem de Dados SQL Padrões SQL Evoluem constantemente Cada SGBD possui as suas variações

Técnicas e problemas Interface Interativa SQL direto em uma janela Arquivo de comandos @<filename> Aplicativos Transações enlatadas Web interface

Abordagens para Programar BDs Embutir comandos SQL em liguagens de programação Comandos são colocados na lata, usando um prefixo especial como EXEC SQL Precompilador ou preprocessador lê o código fonte Identifica comandos SQL e extrai-os para rodar no SGBD. Viram chamadas de função Chamados de embedded SQL

Abordagens para Programar BDs Biblioteca de acesso a Banco Biblioteca de funções disponíveis na linguagem. Application programming interface (API) Linguagens próprias Database programming language PL/SQL

Impedance Mismatch Diferenças entre o modelo de BD e da linguagem Binding (ligação) com cada linguagem específica Especifica para cada tipo de atributo no BD tipos compatíveis na linguagem. Cursor ou iterador Resultado de um Select é uma tabela Cursor ou iterador navegam pelo resultado

Interação típica em um programa que acessa um SGBD Abrir uma conexão com o servidor do BD. Interagir através da submissão de consultas, atualizações e outros comandos. Fechar a conexão

Embedded SQL, Dynamic SQL, e SQLJ Embedded SQL C SQLJ Java

Recuperando tuplas individuais com Embedded SQL EXEC SQL Prefixo Preprocessador separa os comandos SQL dos da linguagem hospedeira Finalizar com END-EXEC Ou ponto-e-vírgula (;) Variáveis compartilhadas Usadas tanto no programa em C quanto nos comandos SQL Prefixadas por dois pontos (:) nos comandos SQL

Embedded SQL: Exemplo

Recuperando tuplas individuais com Embedded SQL Conectando com o SGBD CONNECT TO <server name>as <connection name> AUTHORIZATION <user account name and password> ; Várias conexões, só uma ativa por vez Mudando de conexão SET CONNECTION <connection name> ; Finalizar DISCONNECT <connection name> ;

Recuperando tuplas individuais com Embedded SQL SQLCODE e SQLSTATE Variáveis de comunicação Usadas pelo SGBD para comunicar erros e exceções. SQLCODE 0 = sucesso 100 = nenhum registro sobrando no resultado < 0 = erro

Recuperando tuplas individuais com Embedded SQL SQLSTATE String de cinco caracteres 00000 = sem erro Outros valores representam vários tipos de erro e exceções Exemplo: 02000 indica no more data no SQLSTATE

Recuperando tuplas individuais com Embedded SQL

Recuperando múltiplas tuplas em Embedded SQL com cursores Cursor Ponteiro para uma túpla (linha) única do resultado de uma consulta OPEN CURSOR Pega o resultado da consulta e põe o cursor antes do primeiro resultado FETCH Move o cursor para o próximo resultado de uma consulta.

Recuperando múltiplas tuplas em Embedded SQL com cursores FOR UPDATE OF Lista o nome de atributos que serão modificados pelo programa Fetch orientado Adicionando palavras: NEXT, PRIOR, FIRST, LAST, ABSOLUTE i, e RELATIVE i

SQL Dinâmico SQL Dinâmico Executar consultas SQL dinamicamente em tempo de programa Dynamic update Dynamic query

SQLJ: Embedded SQL em Java Padrão para embedded SQL em Java Deve-se importar diversas bibliotecas para usar Default context Exceptions cuidam dos erros SQLException

SQLJ: Embedded SQL em Java

Recuperando múltiplas tuplas em SQLJ com iteradores Iterator Objeto associado a uma collecion (set ou multiset) de registros do resultado de uma consulta Named iterator Associado com uma resposta de consulta com uma lista de nomes de atributos e tipos de atributos Positional iterator Lista apenas tipos de atributos, pela ordem.

Recuperando múltiplas tuplas em SQLJ com iteradores

Pragramndo com DB por funções: SQL/CLI & JDBC Chamadas de função Abordagem Dinâmica para programação de Bancos de Dados Bibliotecas de funções Também conhecidas como application programming interface (API) Usadas para acessar o SGBD SQL Call Level Interface (SQL/CLI) Parte do padrão SQL

SQL/CLI: Usando C como linguagem Registro de Ambiente Coordena uma ou mais conexões Define informações do ambiente Registro de Conexão Guarda informações necessárias para uma conexão específica Registro de Comando Guarda informações necessárias para um comando SQL

SQL/CLI: Usando C como linguagem Registro de Descrição Guarda informações sobre tuplas ou parametros Handle para um registro Ponteiro que torna o registro acessível ao programa

JDBC: Funções SQL para programar em Java JDBC Um único programa java pode conectar com vários Bancos Chamados de fontes de dados Class.forName("oracle.jdbc.driver.OracleDriver") Carrega um JDBC driver explicitamente

JDBC: Funções SQL para programar em Java Objeto Connection Objeto Statement tem duas subclasses: PreparedStatement e CallableStatement Interrogação (?) Representa um parametro do comando Determinado em tempo de execução Objeto ResultSet Guarda o resultado da consulta

Stored Procedures e SQL/PSM Stored procedures Programas salvos no próprio SGBD Podem ser funções ou procedimentos SQL/PSM (SQL/Persistent Stored Modules) Extensões de SQL Incluem construtos de propósito geral em SQL

Stored Procedures e Functions Modulos persistentes Salvos no SGBD persistentemente Úteis para: Quando programa de banco é usado por várias aplicações. Reduzir transferência de dados e custos de comunicação. Aumentar poder de modelagem de visões.

Stored Procedures e Functions Declarando stored procedures: CREATE PROCEDURE <procedure name> (<parameters>) <local declarations> <procedure body> ; Ao declarar uma função, um tipo de retorno é necessário. CREATE FUNCTION <function name> (<parameters>) RETURNS <return type> <local declarations> <function body> ;

Stored Procedures e Functions Cada parâmetro tem: Tipo de Parâmetro: Um dos Opos padrões de SQL Modo do Parâmetro: IN, OUT, ou INOUT Chamando stored procedure: CALL <procedure or function name> (<argument list>) ;

SQL/PSM Comandos adicionais a SQL Condição: IF <condition> THEN <statement list> ELSEIF <condition> THEN <statement list>... ELSEIF <condition> THEN <statement list> ELSE <statement list> END IF ;

SQL/PSM Repetição

SQL/PSM

Comparando as três abordagens Embedded SQL Checagem da consulta para erros de sintaxe e esquema do BD feitos em tempo de compilação Em aplicações complexas onde consultas são geradas em tempo de execução pode não ser a melhor opção.

Comparando as três abordagens APIs Mais flexibilidade Programação mais complexa Sem checagem de sintaxe durante a compilação Programação no BD Não tem impedance mismatch Programadores tem que aprender uma linguagem nova