Banco de Dados Prof. MSc Wagner Siqueira Cavalcante.

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

Estudo de Caso, modelo Oracle 10g
Triggers Renata Viegas.
BANCO DE DADOS EM APLICATIVOS WEB Aula 13
Prof.: Bruno Rafael de Oliveira Rodrigues
Banco de Dados SQL TRIGGERS (Gatilhos)
Banco de Dados SQL Stored Procedures
SISTEMAS DE INFORMAÇÃO Sistemas de Bancos de Dados 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:
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:
Sistemas de Informação Redes de Computadores
Sistema Gerenciador de Banco de Dados SGBD
Sistema Gerenciador de Banco de Dados SGBD
Operadores Especiais da SQL
Introdução à Engenharia da Computação
SCC Bancos de Dados e Suas Aplicações
Material III-Bimestre Wagner Santos C. de Jesus
Operação de União “JOIN”
Linguagem de Banco de Dados - SQL
ESCOLA TÉCNICA ALBERT EINSTEIN.
Triggers e StoreProcedures
Banco de dados Profª Kelly Medeiros.
Programação I Caderno de Exercícios Nome.
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... =)
PL/SQL, Procedures e Funções
Tópicos de Sistemas de Informação A Carlos Oberdan Rolim Ciência da Computação.
Commit, Rollback, Storage procedure, Triggers
Tipos de Linguagens do Banco de Dados
Conceitos de Banco de Dados
Equipe de monitoria Aula prática 3.  Caso de estudo  Igualando situações  Cursor  Function  Procedure  Trigger  Package  Surpresa...
FTIN FORMAÇÃO TÉCNICA EM INFORMÁTICA Módulo de Programação Prof. Bruno Maciel.
Solicitação de Autorização de Procedimento Aquisitivo Central de Aquisições e Contratações V1.2.
FTIN FORMAÇÃO TÉCNICA EM INFORMÁTICA Módulo de Programação Prof. Flávio Dantas.
Primeira aula de PL/SQL Parte II
Especialização em Tecnologia da Informação
FTIN FORMAÇÃO TÉCNICA EM INFORMÁTICA Módulo de Programação Prof. Flávio Dantas.
III – O Modelo OR Estudo de Caso, modelo Oracle 10g.
SEQUENCE, PROCEDURE, FUNÇÃO, TRIGGER
Treinamento sobre SQL.
BANCOS DE DADOS ATIVOS Weyler M Lopes © Especialização em Banco de Dados.
Banco de dados.
IFNMG – Campus Araçuaí Banco de Dados Professor: Marcelo West
Conceitos Programas Programação Linguagens de Programação SQL.
PostGres: Um Banco de Dados Orientado a Objetos
Microsoft SQL Server 2008 SPARSE. Para que serve? –Otimiza o espaço de armazenamento de colunas com valores NULL.
Monitoria GDI Aula Prática Aula 2: PL 1. Estudo de caso - continuação Pegar arquivo GDI.zip em Descompactar arquivo: o criacaoTabelas.SQL.
1 15/4/ :36 FMU – 1. Semestre – Tecnologia – Analise e Desenvolvimento de Sistemas Professor: Eduardo Silvestri Aluno:Clóvis de Oliveira- RA
SQL- Structured Query Language  SQL é uma linguagem de comandos para interagir com uma BD relacional (não é case-sensitive).  A linguagem Java permite.
Treinamento SQL Server
Triggers (Gatilhos) Professor Esp. Diego André Sant’Ana
Exercícios Para começar a fazer os exercícios a seguir, restaure um banco de dados que já contenha dados: Informe os comandos das resposta com o mesmo.
SQL Server Comando PIVOT.
Fundamentos de Banco de Dados Fundamentos de Banco de Dados Prof. Gale 2º. Semestre 2008.
DELETE, UPDATE, COMMIT, ROLLBACK
©Silberschatz, Korth and Sudarshan (modificado)9.2.1Database System Concepts Capítulo 9: BDs Objecto-Relacional Relações imbricadas Tipos complexos e objectos.
7P/SI – 2010/01 Prof. Carlos Alberto Seixas. Agenda Visão Geral sobre os Conceitos e Implementação sobre SGBs MySQL Revisão das Práticas Práticas 1 e.
Prof. Rebecca Arambasic AGBD LPBD Pesquisa avançada UNION / INTERSECT / EXCEPT Aula 1 / 2010.
VBA – Visual Basic para Aplicativos
Monitoria GDI Aula Prática Aula 1: SQL + PL 1. Estudo de caso - continuação Pegar arquivo GDI.zip em Descompactar arquivo: o criacaoTabelas.SQL.
BD SQL (Insert, Update, Delete) e Select Hayslan Nicolas Colicheski Bucarth – IFRO / 2015 –
Banco de Dados -Aprendendo conceitos -Usando o SQL Conf para:
Banco de Dados II Prof: Márcio Soussa Curso de Sistemas de Informação Faculdades Jorge Amado.
2/6/2016 José Antônio da Cunha - CEFET - RN1 Programação de Banco de Dados Funções.
Banco de Dados Prof. MSc Wagner Siqueira Cavalcante.
Programação para Internet Aula 11 SQL (Introdução a linguagem, comandos de modificação: Create, Drop, Alter, Insert, Delete, Update)
José Antônio da Cunha 3/6/2016 José Antônio - CEFET-RN 1 Copyright © Dale Carnegie & Associates, Inc.
Banco de Dados Prof. MSc Wagner Siqueira Cavalcante
BANCO DE DADOS Araújo Lima Outubro / 2017 Araújo.
Banco de Dados Prof. MSc Wagner Siqueira Cavalcante
Transcrição da apresentação:

Banco de Dados Prof. MSc Wagner Siqueira Cavalcante

Banco de Dados: Stored Procedures e Triggers BD – Stored Procedures e Triggers Stored Procedure é um conjunto de instruções escrito numa linguagem própria para procedures (procedimentos) e triggers (gatilhos) do SGBD, e que é armazenado como parte do banco de dados. Stored Procedure é um conjunto de instruções escrito numa linguagem própria para procedures (procedimentos) e triggers (gatilhos) do SGBD, e que é armazenado como parte do banco de dados. Stored Procedures reduzem o tráfego na rede, pois são executadas pelo SGBD na máquina servidora de banco de dados. Stored Procedures reduzem o tráfego na rede, pois são executadas pelo SGBD na máquina servidora de banco de dados. Stored Procedures não permitem instruções DDL... Stored Procedures não permitem instruções DDL... Triggers são quase a mesma coisa que stored procedures, exceto pelo modo como são chamadas (e mais alguns pequenos detalhes): Triggers são quase a mesma coisa que stored procedures, exceto pelo modo como são chamadas (e mais alguns pequenos detalhes): –Stored procedures podem ser chamadas por aplicações cliente, outras stored procedures ou triggers. –Triggers são chamados automaticamente quando uma alteração em uma linha da tabela em questão ocorre.

Stored Procedures BD – Stored Procedures Sintaxe de Stored Procedures: Sintaxe de Stored Procedures: CREATE or ALTER PROCEDURE NomedaProcedure ( ) RETURNS AS BEGIN END Parâmetros de entrada:Valores iniciais, que servem para estabelecer o comportamento do procedimento (todos os tipos, exceto BLOB ou ARRAY). Parâmetros de saída:Valores que retornam os resultados desejados, executados pelo procedimento (idem ao acima). Comandos da procedure:Conjunto de instruções SQL...

Um livro é escrito por um ou mais escritores, e os registram em uma única Editora, que pode publicar nenhum, um ou vários livros. Porém, nem todos estes livros conseguem ser lançados, embora já estejam registrados. Cada livro está associado a um determinado assunto, e pode ser escrito por um ou vários autores, os quais, por sua vez, podem escrever tantos livros quantos queiram. Autor-Livro Editora Código Nome 0,N 1,N 0,1 é de um publica Lançamento Preço 0,N Livro Código Data de contrato 1,N Autor Matrícula Nome CPF Data de nascimento Endereço nacionalidade 1,1 Sigla Descrição Assunto BD – Stored Procedures

Tabela AUTOR MATR.NOMECPFENDERECONASCIMNACIONAL 501Rogério Luís de C. Costa Rua Dom Pedro I, 11101/01/1971brasileira 502Chris Gane Av La Rue, XV02/02/1952norte americana 503Trish Sarson th Ave, 33303/03/1963norte americana 505Rogério Matoso Capim Praça do Centro, banco 404/04/1974brasileira 507Roger Martin Duvalle Av Ces La Vue, 55505/05/1985francesa 510José Antônio da Silva Rua 6 de Outubro, 60606/06/1976brasileira 511Elmasri th Ave, 77707/07/1967norte americana 521Navathe th Ave, 88808/08/1958indiana 533Silberschatz nd Ave, 99909/09/1969norueguesa... Um livro é escrito por um ou mais escritores, e os registram em uma única Editora, que pode publicar nenhum, um ou vários livros. Porém, nem todos estes livros conseguem ser lançados, embora já estejam registrados. Cada livro está associado a um determinado assunto, e pode ser escrito por um ou vários autores, os quais, por sua vez, podem escrever tantos livros quantos queiram. Por enquanto, considere apenas a tabela Autor...

Tabela AUTOR MATR.NOMECPFENDERECONASCIMNACIONAL 501Rogério Luís de C. Costa Rua Dom Pedro I, 11101/01/1971brasileira 502Chris Gane Av La Rue, XV02/02/1952norte americana 503Trish Sarson th Ave, 33303/03/1963norte americana 505Rogério Matoso Capim Praça do Centro, banco 404/04/1974brasileira 507Roger Martin Duvalle Av Ces La Vue, 55505/05/1985francesa 510José Antônio da Silva Rua 6 de Outubro, 60606/06/1976brasileira 511Elmasri th Ave, 77707/07/1967norte americana 521Navathe th Ave, 88808/08/1958indiana 533Silberschatz nd Ave, 99909/09/1969norueguesa... Exemplo 01: Exemplo 01: –Projete o nome, nascimento e nacionalidade do autor, cujo código será digitado em uma caixa de diálogo: Select nome, nascim, nacional From Autor Where Matricula = :Código BD – Stored Procedures Experimente, por exemplo, com 505

Tabela AUTOR MATR.NOMECPFENDERECONASCIMNACIONAL 501Rogério Luís de C. Costa Rua Dom Pedro I, 11101/01/1971brasileira 502Chris Gane Av La Rue, XV02/02/1952norte americana 503Trish Sarson th Ave, 33303/03/1963norte americana 505Rogério Matoso Capim Praça do Centro, banco 404/04/1974brasileira 507Roger Martin Duvalle Av Ces La Vue, 55505/05/1985francesa 510José Antônio da Silva Rua 6 de Outubro, 60606/06/1976brasileira 511Elmasri th Ave, 77707/07/1967norte americana 521Navathe th Ave, 88808/08/1958indiana 533Silberschatz nd Ave, 99909/09/1969norueguesa... Exemplo 01 (continuação): Exemplo 01 (continuação): –Projete o nome, nascimento e nacionalidade do autor, cujo código será digitado em uma caixa de diálogo: Select nome, nascim, nacional From Autor Where Matricula = :Código BD – Stored Procedures

Resultado da Consulta: NOMENASCIMNACIONAL Rogério Matoso Capim04/04/1974brasileira Exemplo 01 (continuação): Exemplo 01 (continuação): –Projete o nome, nascimento e nacionalidade do autor, cujo código será digitado em uma caixa de diálogo: Select nome, nascim, nacional From Autor Where Matricula = :Código BD – Stored Procedures Há só UMA resposta!

Exemplo 01 (continuação): –A–A–A–A seguir, crie um procedimento para executar esta situação: Inicie o SQL Editor, digite as seguintes instruções SQL, salve-a com o nome SP_Dados_Autor. CREATE orALTERPROCEDURESP_Dados_Autor (entra_Codigosmallint) RETURNS (sai_Nomevarchar(80), sai_Nascimdate, sai_Nacionalvarchar(30) ) AS BEGIN Selectnome, nascim, nacional FromAutor WhereMatricula = :entra_Codigo INTO:sai_Nome, :sai_Nascim, :sai_Nacional; SUSPEND; END BD – Stored Procedures Select nome, nascim, nacional From Autor Where Matricula = :entra_Codigo

CREATE orALTERPROCEDURESP_Dados_Autor (entra_Codigo smallint) RETURNS (sai_Nome varchar(80), sai_Nascim date, sai_Nacional varchar(30) )ASBEGIN Select nome, nascim, nacional From Autor Where Matricula = :entra_Codigo INTO:sai_Nome, :sai_Nascim, :sai_Nacional; SUSPEND;END BD – Stored Procedures Exemplo 01 (final): Exemplo 01 (final): –E para usar o procedimento criado? SELECT * FROMSP_Dados_Autor ( 505 ); CREATE orALTERPROCEDURESP_Dados_Autor (entra_Codigo smallint) RETURNS (sai_Nome varchar(80), sai_Nascim date, sai_Nacional varchar(30) )ASBEGIN Select nome, nascim, nacional From Autor Where Matricula = :entra_Codigo INTO:sai_Nome, :sai_Nascim, :sai_Nacional; SUSPEND;END

Tabela AUTOR MATR.NOMECPFENDERECONASCIMNACIONAL 501Rogério Luís de C. Costa Rua Dom Pedro I, 11101/01/1971brasileira 502Chris Gane Av La Rue, XV02/02/1952norte americana 503Trish Sarson th Ave, 33303/03/1963norte americana 505Rogério Matoso Capim Praça do Centro, banco 404/04/1974brasileira 507Roger Martin Duvalle Av Ces La Vue, 55505/05/1985francesa 510José Antônio da Silva Rua 6 de Outubro, 60606/06/1976brasileira 511Elmasri th Ave, 77707/07/1967norte americana 521Navathe th Ave, 88808/08/1958indiana 533Silberschatz nd Ave, 99909/09/1969norueguesa... BD – Stored Procedures Experimente, por exemplo, com brasileira Exemplo 02: Exemplo 02: –Agora, experimente projetar os nomes, nascimento e nacionalidades do autores, cujas nacionalidades serão lidas na caixa de diálogo: Select nome, nascim, nacional From Autor Where nacional = :In_nacionalid

Resultado da Consulta NOMENASCIMNACIONAL Rogério Luís de C. Costa01/01/1971brasileira Rogério Matoso Capim04/04/1974brasileira José Antônio da Silva06/06/1976brasileira BD – Stored Procedures Exemplo 02 (continuação): Exemplo 02 (continuação): –Agora, experimente projetar os nomes, nascimento e nacionalidades do autores, cujas nacionalidades serão lidas na caixa de diálogo: Select nome, nascim, nacional From Autor Where nacional = :In_nacionalid Há MAIS QUE UMA resposta!

Exemplo 02 (continuação): Exemplo 02 (continuação): –Crie, então, o procedimento armazenado para executar esta situação: Inicie o SQL Editor, digite as seguintes instruções SQL, salve-a com o nome dadosproprietario2 e a execute. Inicie o SQL Editor, digite as seguintes instruções SQL, salve-a com o nome dadosproprietario2 e a execute. CREATE orALTERPROCEDURESP_Dados_Autor2 (In_nacionalidvarchar(30)) RETURNS (out_Nomevarchar(80), out_Nascimdate, out_Nacionalvarchar(30) ) AS BEGIN INTO:out_Nome, :out_Nascim, :out_Nacional; SUSPEND; END BD – Stored Procedures Select nome, nascim, nacional From Autor Where nacional = :In_nacionalid

Exemplo 02 (continuação): Exemplo 02 (continuação): –Crie, então, o procedimento armazenado para executar esta situação: Inicie o SQL Editor, digite as seguintes instruções SQL, salve-a com o nome dadosproprietario2 e a execute. Inicie o SQL Editor, digite as seguintes instruções SQL, salve-a com o nome dadosproprietario2 e a execute. CREATE orALTERPROCEDURESP_Dados_Autor2 (In_nacionalid varchar(30)) RETURNS (out_Nome varchar(80), out_Nascim date, out_Nacional varchar(30) )ASBEGIN Select nome, nascim, nacional From Autor Where nacional = :In_nacionalid INTO:out_Nome, :out_Nascim, :out_Nacional; SUSPEND;END BD – Stored Procedures Oops! Problemas, já que há mais que uma resposta! Usar:FOR SELECT... DOSUSPEND;

Exemplo 02 (continuação): Exemplo 02 (continuação): –Crie, então, o procedimento armazenado para executar esta situação: Inicie o SQL Editor, digite as seguintes instruções SQL, salve-a com o nome dadosproprietario2 e a execute. Inicie o SQL Editor, digite as seguintes instruções SQL, salve-a com o nome dadosproprietario2 e a execute. CREATE orALTERPROCEDURESP_Dados_Autor2 (In_nacionalid varchar(30)) RETURNS (out_Nome varchar(80), out_Nascim date, out_Nacional varchar(30) )ASBEGIN FORSelect nome, nascim, nacional From Autor Where nacional = :In_nacionalid INTO:out_Nome, :out_Nascim, :out_Nacional DOSUSPEND;END BD – Stored Procedures Agora, sem o ; aqui

Exemplo 02 (continuação): Exemplo 02 (continuação): –E para usar o procedimento criado? CREATE or ALTER PROCEDURESP_Dados_Autor2 (In_nacionalidvarchar(30)) RETURNS (Out_Nome varchar(80), Out_nascim date, Out_nacional varchar(30) )ASBEGIN FOR Select nome, nascim, nacional From Autor Where nacional =:In_nacionalid INTO:Out_nome, :Out_nascim, :Out_nacional DOSUSPEND;END BD – Stored Procedures SELECT * FROMSP_Dados_Autor2 ( brasileira ); CREATE or ALTER PROCEDURESP_Dados_Autor2 (In_nacionalidvarchar(30)) RETURNS (Out_Nome varchar(80), Out_nascim date, Out_nacional varchar(30) )ASBEGIN FOR Select nome, nascim, nacional From Autor Where nacional =:In_nacionalid INTO:Out_nome, :Out_nascim, :Out_nacional DOSUSPEND;ENDSP_Dados_Autor2 (In_nacionalid ) :In_nacionalid

Exemplo 02 (final): Exemplo 02 (final): –Experimente, também: BD – Stored Procedures SELECT * FROMSP_Dados_Autor2 ( :Nacion ); SELECT * FROMSP_Dados_Autor2 ( :Nacionalidade ); SELECT * FROMSP_Dados_Autor2 ( :Digite a nacionalidade ); SELECT nome as Nome do autor FROMSP_Dados_Autor2 ( :Digite a nacionalidade );

Exercício 01: Exercício 01: –Crie um procedimento para calcular o valor médio dos livros de uma determinada editora, lida como parâmetro. –Salve-o com o nome de avglivros –Compile-o e efetive (commit) –Chame-o, via SQL, com o parâmetro predefinido (Brasoft Editora, por exemplo) –Chame-o, via SQL, com o parâmetro digitado via diálogo BD – Stored Procedures Exercício 02: Exercício 02: –Projete os títulos, datas de lançamento e valores dos livros que têm o seu valor maior que o valor médio daquele digitado via diálogo, baseado no procedimento avglivros.