PL/pgSQL por Diversão e Lucro
|
|
- Aurora Sintra de Almada
- 8 Há anos
- Visualizações:
Transcrição
1 PL/pgSQL por Diversão e Lucro Roberto Mello 3a. Conferência Brasileira de PostgreSQL - PGCon-BR Campinas
2 Objetivos Apresentar as partes principais do PL/pgSQL Apresentar casos de uso comum do PL/pgSQL Apresentar alguns casos do que NÃO fazer com PL/ pgsql Apresentar os diferentes tipos de gatilhos Como criar gatilhos com PL/pgSQL Exercícios para prática Resolver dúvidas (ou pelo menos tentar) 2
3 Como aproveitar melhor Tenha a documentação em mãos Tenha o PostgreSQL instalado no seu laptop Se não tiver, pode escrever no seu editor de texto favorito, ou mesmo em papel Estou usando exemplos simples, vários dos quais seriam melhor feitos direto em SQL, ao invés de PL 3
4 Modelo de Dados CREATE TABLE vendedores( vendedor_id SERIAL NOT NULL PRIMARY KEY, nome varchar(256)); INSERT INTO vendedores VALUES (DEFAULT, Fabio ), (DEFAULT, Joao ), (DEFAULT, Leonardo ); CREATE TABLE vendas( item_id integer, vendedor_id integer REFERENCES vendedores.vendedor_id, quantidade integer, preco numeric); INSERT INTO vendas VALUES (1, 1, 5, 142), (2, 3, 54, 45), (3, 2, 21, 467), (4, 2, 32, 343), (5, 1, 21, 235);; 4
5 PL/pgSQL É uma linguagem de procedimentos (mas não é a única aceita no PostgreSQL) Adiciona estrutura e controle ao SQL É parecida com outras linguagens da família C Roda dentro do servidor, evitando a viagem e conversões entre cliente e servidor Um dos seus principais usos é em gatilhos Acesso à todas as funcionalidades do SQL 5
6 Estrutura CREATE OR REPLACE FUNCTION uma_funcao(preco numeric) RETURNS integer AS $$ DECLARE -- declarações de variáveis quantidade integer := 30; BEGIN -- expressões, consultas, cálculos, etc RETURN quantidade * preco; END; $$ LANGUAGE plpgsql; 6
7 Parâmetros Podem ser de entrada (IN) ou saída (OUT) CREATE OR REPLACE FUNCTION calc_item(p_item_id int, OUT quantidade int, OUT total numeric) AS $$ BEGIN SELECT vendas.quantidade, vendas.quantidade * vendas.preco INTO quantidade, total FROM vendas WHERE item_id = p_item_id; END; $$ LANGUAGE plpgsql; Últimos valores atribuídos às variáveis de saída são os que valem Uso de RETURN seria redundante 7
8 Blocos CREATE OR REPLACE FUNCTION uma_funcao() RETURNS integer AS $$ << fora >> DECLARE quantidade integer := 30; BEGIN RAISE NOTICE 'Quantidade aqui %', quantidade; quantidade := 50; Criamos um sub-bloco -- DECLARE quantidade integer := 80; BEGIN RAISE NOTICE 'Quantidade aqui %', quantidade; RAISE NOTICE 'Quantidade de fora aqui %', fora.quantidade; END; RAISE NOTICE 'Quantidade aqui %', quantidade; RETURN quantidade; END; $$ LANGUAGE plpgsql; 8
9 Sobre transações Uma função PL/pgSQL e todos os seus blocos roda INTEIRAMENTE dentro de uma transação BEGIN e END dentro de uma função são para delinear os blocos, e não para controlar transações Dentro da função não há como alterar a transação da função (e.g. COMMIT/ROLLBACK) Pode-se criar sub-transações dentro da função usando controle de exceções (a ser visto mais adiante) 9
10 Operadores variavel := expressao expressao será avaliada como SQL e deve retornar um valor escalar *, +, -, / Qualquer outro operador permitido pelo mecanismo de SQL 10
11 Exercício 1 Crie uma função que aceite 2 números inteiros e retorne a soma dos dois números 11
12 Executando Consultas SQL que não retorna registros pode ser executado diretamente. CREATE FUNCTION remarca( p_item_id int, p_pct int) RETURNS NULL AS $$ DECLARE novo_preco numeric DEFAULT 0; BEGIN UPDATE vendas SET preco = preco + 1 WHERE item_id = p_item_id; -- Usando PERFORM ao invés de SELECT descartará todos -- os resultados que sejam retornados PERFORM remarca_todos(); -- Variável especial FOUND IF FOUND THEN raise notice resultados descartados ; END IF; END; $$ LANGUAGE plpgsql; 12
13 Executando Consultas Resultados de consultas precisam ser postos em variáveis CREATE FUNCTION remarca( p_item_id int, p_pct int) RETURNS numeric AS $$ DECLARE novo_preco numeric DEFAULT 0; BEGIN UPDATE vendas SET preco = preco + (preco * 1/p_pct) WHERE item_id = p_item_id RETURNING preco INTO novo_preco; RETURN novo_preco; END; $$ LANGUAGE plpgsql; 13
14 Executando Consultas Do mesmo jeito para SELECT, INSERT, DELETE SELECT expressões_select INTO [STRICT] alvo FROM...; INSERT... RETURNING expressões INTO [STRICT] alvo; UPDATE... RETURNING expressões INTO [STRICT] target; DELETE... RETURNING expressões INTO [STRICT] alvo; 14
15 Exercício 2 Crie uma função que: Receba um identificador de um vendedor Retorne a soma das vendas daquele vendedor 15
16 Registros Variáveis do tipo RECORD armazenam registros inteiros DECLARE uma_venda RECORD; BEGIN SELECT * INTO uma_venda FROM vendas WHERE item_id = p_item_id; RAISE NOTICE Preco: %,uma_venda.preco; 16
17 Estruturas de Controle IF var <> 0 THEN faça algo ELSIF var >= 2 THEN faça outra coisa ELSE trate casos extras END IF; FOR i IN LOOP --i irá de 0 a 10 --no laço END LOOP; WHILE preco > 410 LOOP RAISE NOTICE Bom Lucro ; END LOOP; CASE vendedor WHEN 1, 3 THEN faca algo aqui ELSE outros calculos END CASE; CASE WHEN vendedor = 1 THEN comissao := 100; WHEN vendedor = 2 THEN comissao := 60; ELSE comissao := 30; END CASE; 17
18 Passando pelos Resultados de Consultas DECLARE v_vendedores RECORD; BEGIN FOR v_vendedores IN SELECT * FROM vendedores ORDER BY vendedor_id LOOP RAISE NOTICE %, v_vendedores.nome; END LOOP; 18
19 Exercício 3 Crie uma função que receba um vendedor_id e imprima Parabens! para cada venda (tabela vendas) que o total (preco * quantidade) da venda tenha passado de
20 Retornando Múltiplos Registros CREATE OR REPLACE FUNCTION calc_item(p_item_id int) RETURNS TABLE (quantidade int, total numeric) AS $$ BEGIN RETURN QUERY SELECT vendas.quantidade, vendas.quantidade * vendas.preco FROM vendas WHERE item_id = p_item_id; END; $$ LANGUAGE plpgsql; RETURNS TABLE é o mesmo que declarar vários parâmetros OUT e especificar RETURNS SETOF umtipo 20
21 Retornando Múltiplos Registros CREATE OR REPLACE FUNCTION getallfoo() RETURNS SETOF foo AS $BODY$ DECLARE r foo%rowtype; BEGIN FOR r IN SELECT * FROM foo WHERE fooid > 0 LOOP -- pode-se fazer processamento aqui RETURN NEXT r; -- returna o registro corrente do SELECT END LOOP; RETURN; END $BODY$ LANGUAGE 'plpgsql'; 21
22 Retornando Múltiplos Registros CUIDADO!! RETURN NEXT e RETURN QUERY armazenam TODO o resultado na memória antes de retornar, o que causa uso exagerado de memória e disco se o resultado for de muitos registros 22
23 Cursores Cursores são resultados de consultas que se pode ir e voltar na lista dos resultados, ao invés de só adiante São eficientes no que diz respeito ao uso de memória Só podem ser usados dentro de uma transação Operações: FETCH [ direction { FROM IN } ] cursor INTO target; MOVE [ direction { FROM IN } ] cursor; UPDATE table SET... WHERE CURRENT OF cursor; DELETE FROM table WHERE CURRENT OF cursor; 23
24 Cursores CREATE FUNCTION myfunc(refcursor, refcursor) RETURNS SETOF refcursor AS $$ BEGIN OPEN $1 FOR SELECT * FROM table_1; RETURN NEXT $1; OPEN $2 FOR SELECT * FROM table_2; RETURN NEXT $2; END; $$ LANGUAGE plpgsql; -- precisa estar numa transação para usar cursores. BEGIN; SELECT * FROM myfunc('a', 'b'); FETCH ALL FROM a; FETCH ALL FROM b; COMMIT; 24
25 Gatilhos Funções que são chamadas automaticamente antes (before) ou depois (after) de Insert, Update, Delete, Truncate Função tem que ser declarada específicamente como de gatilho, e um CREATE TRIGGER tem que ser rodado por tabela sobre a qual o gatilho incidirá 25
26 Gatilhos - variáveis NEW - armazena o novo registro em insert/update OLD - armazena o registro velho em UPDATE/DELETE TG_NAME - nome do gatilho disparado TG_WHEN - string contendo BEFORE ou AFTER TG_LEVEL - string com ROW ou STATEMENT dependendo do gatilho TG_OP - string com INSERT, UPDATE, DELETE, or TRUNCATE indicando a operação TG_RELID - oid da tabela que chamou o gatilho TG_TABLE_NAME - nome da tabela que chaou o gatilho TG_TABLE_SCHEMA - nome do esquema da tabela que chamou o gatilho TG_NARGS - número de argumentos dados à função do gatilho no CREATE TRIGGER TG_ARGV[] - matriz com os argumentos dados no CREATE TRIGGER 26
27 Gatilhos CREATE FUNCTION emp_stamp() RETURNS trigger AS $emp_stamp$ BEGIN IF NEW.empname IS NULL THEN RAISE EXCEPTION 'empname não pode ser nulo'; END IF; IF NEW.salary IS NULL THEN RAISE EXCEPTION '% não pode ter salário nulo', NEW.empname; END IF; IF NEW.salary < 0 THEN RAISE EXCEPTION '% não pode ter salário negativo', NEW.empname; END IF; -- Lembre quem mudou a folha, e quando NEW.last_date := current_timestamp; NEW.last_user := current_user; RETURN NEW; END; $emp_stamp$ LANGUAGE plpgsql; CREATE TRIGGER emp_stamp BEFORE INSERT OR UPDATE ON emp FOR EACH ROW EXECUTE PROCEDURE emp_stamp(); 27
28 Exercício 4 Crie uma função de gatilho que insira um novo registro na tabela comissoes cada vez que um vendedor fizer uma nova venda (tabela vendas) cujo preço seja maior que 400 A comissão deverá ser de 15% do valor da venda Tabela comissoes tem colunas: comissao_id, vendedor_id, item_id, comissao 28
29 Armadilhas a serem evitadas Programadores inexperientes em SQL tentam fazer tudo em PL/pgSQL, ao invés de procurar a maneira idiomática (e geralmente muito mais rápida) de se fazer em SQL Consultas dentro de funções também precisam ser testadas e otimizadas, senão viram buraco negro Mudanças de dados em gatilhos não devem ser silenciosas: erros tem que ser notificados à aplicação para que ela seja corrigida 29
30 Ex: Gatilho errôneo BEGIN /* Don t allow date_created or created_by fields to be updated */ IF ( UPDATE = TG_OP) THEN bool_has_column := func_table_has_column(tg_relname::varchar, created_by ); IF bool_has_column THEN NEW.created_by = OLD.created_by; END IF; NEW.date_created = OLD.date_created; END IF; RETURN NEW; END; Dados são mudados slienciosamente, sem log 30
31 Perguntas? 31
Triggers no PostgreSQL
Triggers no PostgreSQL Traduzido do manual do PostgreSQL Pode-se utilizar PL/pqSQL para a definição de triggers (gatilhos). Um procedimento do tipo trigger é criado com o comando CREATE FUNCTION, declarando
Leia maisSistemas de Informação
Sistemas de Informação Rules and Triggers André Restivo Sistemas de Informação 2006/07 Rules e Triggers Nem todas as restrições podem ser definidas usando os mecanismos que estudamos anteriormente: - CHECK
Leia maisLaboratório de Banco de Dados Prof. Luiz Vivacqua. PL/pgSQL A Linguagem de programação do PostgreSQL
Laboratório de Banco de Dados Prof. Luiz Vivacqua PL/pgSQL A Linguagem de programação do PostgreSQL 1) Visão Geral A PL/pgSQL é uma linguagem de programação procedural para o Sistema Gerenciador de Banco
Leia maisPROGRAMAÇÃO EM BANCO DADOS Stored Procedure e Trigger
PROGRAMAÇÃO EM BANCO DADOS Stored Procedure e Trigger A tecnologia de banco de dados permite persistir dados de forma a compartilha-los com varias aplicações. Aplicação 1 aplicação 2 aplicação 3 SGDB Banco
Leia maisPROGRAMAÇÃO EM BANCO DADOS Store Procedure e Trigger
PROGRAMAÇÃO EM BANCO DADOS Store Procedure e Trigger a tecnologia de banco de dados permite persistir dados de forma a compartilha-los com varias aplicações. Aplicação 1 aplicação 2 aplicação 3 SGDB Banco
Leia maisBANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com
- Aula 11-1. INTRODUÇÃO TRIGGERS (GATILHOS OU AUTOMATISMOS) Desenvolver uma aplicação para gerenciar os dados significa criar uma aplicação que faça o controle sobre todo ambiente desde a interface, passando
Leia maisFUNCTION ) RETURNS INTEGER AS $$ DECLARE
PERFORM O comando PERFORM permite a execução de um comando SELECT desprezando o resultado do comando. PERFORM query; A variável especial FOUND é definida como verdadeiro se a instrução produzir pelo menos
Leia maisPL/pgSQL. Introdução. Introdução. Introdução
Introdução PL/pgSQL Banco de Dados II Prof. Guilherme Tavares de Assis PL/pgSQL (Procedural Language for the PostgreSQL) é uma linguagem procedural carregável desenvolvida para o SGBD PostgreSQL, que possui
Leia maisGBC043 - Sistemas de Banco de Dados Funções e Gatilhos no PostgreSQL
GBC043 - Sistemas de Banco de Dados Funções e Gatilhos no PostgreSQL Ilmério Reis da Silva ilmerio@facom.ufu.br www.facom.ufu.br/~ilmerio/sbd UFU/FACOM/BCC Página 2 Prgrama Teórico/Prático - SQL Linguagem
Leia maisBancos de Dados I. Integridade semântica
Bancos de Dados I PUC-Rio Departamento de Informática (DI) Eng./Ciência da Computação e Sist. Informação Contrôle de Integridade em SGBDs: procedimentos armazenados, gatilhos e funções Prof. sergio@inf.puc-rio.br
Leia maisTriggers em PostgreSQL. Linguagem de Programação de Banco de Dados. Triggers em PostgreSQL. Triggers em PostgreSQL
Prof. Ms. Luiz Alberto Contato: lasf.bel@gmail.com Linguagem de Programação de Banco de Dados Triggers em PostgreSQL Todos os bancos de dados comerciais possuem uma linguagem procedural auxiliar para a
Leia maisIntrodução às funções e procedimentos. SQL suporta funções e procedimentos úteis com tipos de dados específicos
Bases de Dados Stored procedures e triggers Introdução às funções e procedimentos SQL suporta funções e procedimentos úteis com tipos de dados específicos p.ex. objectos geométricos, imagens intersecção
Leia maisSQL Procedural. Josino Rodrigues Neto josinon@gmail.com
SQL Procedural Josino Rodrigues Neto josinon@gmail.com SQL Procedural Agregada em SQL-92 As ferramentas têm nomes para suas linguagens SQL procedurais/embutidas Oracle : PL/SQL Postgres PL/Pgsql SQL Server
Leia maisTriggers. um trigger permite que uma determinada sequência de comandos SQL seja accionada quando um determinado evento ocorre.
Triggers um trigger permite que uma determinada sequência de comandos SQL seja accionada quando um determinado evento ocorre. o evento pode ser INSERT, UPDATE, ou DELETE. o trigger pode ser accionado imediatamente
Leia maisOracle PL/SQL Overview
Faculdades Network Oracle PL/SQL Overview Prof. Edinelson PL/SQL Linguagem de Programação Procedural Language / Structured Query Language Une o estilo modular de linguagens de programação à versatilidade
Leia maisTriggers e Regras. Fernando Lobo. Base de Dados, Universidade do Algarve
Triggers e Regras Fernando Lobo Base de Dados, Universidade do Algarve 1 / 14 Triggers Um trigger permite que uma determinada sequência de comandos SQL seja accionada quando um determinado evento ocorre.
Leia maisLinguagens Procedurais no PostgreSQL: Funcoes. Linguagens Procedurais no PostgreSQL: Funcoes
Linguagens Procedurais no PostgreSQL: Funcoes Introdução à programação procedural no servidor e linguagem plpgsql para implementação de funções. ARQUITETURA/PROCESSOS postmaster: (Host, único, aguardando
Leia maisConsultoria e Treinamento em Bancos de Dados Relacionais
Tabela de conteúdos CREATE TABLE AS...1 CREATE DOMAIN...1 Funções de dados...2 Funções de data e hora...2 Funções de agregação...3 Expressões condicionais...4 CASE...4 COALESCE...4 NULLIF...4 Controle
Leia maisPostgreSQL. www.postgresql.org. André Luiz Fortunato da Silva Analista de Sistemas CIRP / USP alf@cirp.usp.br
PostgreSQL www.postgresql.org André Luiz Fortunato da Silva Analista de Sistemas CIRP / USP alf@cirp.usp.br Características Licença BSD (aberto, permite uso comercial) Multi-plataforma (Unix, GNU/Linux,
Leia maisTriggers e mais... Instituto Militar de Engenharia IME 1o. Semestre/2005 Triggers Propósito mais amplo que restrições Restrições onde se explicita o evento Regras event-condition-action (ECA) Eventos:
Leia maisLogado no OracleXE vamos acessar a opção:
Tutorial PL/SQL O PL/SQL é uma linguagem procedural que roda diretamente no núcleo do SGBD Oracle. O objetivo deste tutorial é mostrar a criação de funções e procedimentos em PL/SQL, interagindo com comandos
Leia maisOracle 10g: SQL e PL/SQL
Oracle 10g: SQL e PL/SQL PL/SQL: Visão Geral Enzo Seraphim Visão Geral Vantagens de PL/SQL Suporte total à linguagem SQL Total integração com o Oracle Performance Redução da comunicação entre a aplicação
Leia maisBanco de Dados II. Triggers e Functions. Prof. Moser Fagundes. Curso TSI Instituto Federal Sul-Rio-Grandense (IFSul) Campus Charqueadas
Banco de Dados II Triggers e Functions Prof. Moser Fagundes Curso TSI Instituto Federal Sul-Rio-Grandense (IFSul) Campus Charqueadas Sumário da aula Functions (funções) Triggers (gatilhos) Atividades Functions
Leia maisFAPLAN - Faculdade Anhanguera Passo Fundo Gestão da Tecnologia da Informação Banco de Dados II Prof. Eder Pazinatto Stored Procedures Procedimento armazenados dentro do banco de dados Um Stored Procedure
Leia maisBANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com
- Aula 10 - PROCEDIMENTOS ARMAZENADOS - STORED PROCEDURES 1. INTRODUÇÃO Em muitas situações será necessário armazenar procedimentos escritos com a finalidade de se utilizar recursos como loop, estruturas
Leia maisBases de Dados 2012/2013 Funções/procedimentos e triggers. Helena Galhardas 2012 IST. Bibliografia. Manual referência PostgreSQL
Bases de Dados 2012/2013 Funções/procedimentos e triggers em PostgreSQL Helena Galhardas Bibliografia Manual referência PostgreSQL http://www.postgresql.org/docs/9.2/static/ plpgsql.html http://www.postgresql.org/docs/9.2/static/
Leia maisSQL Gatilhos (Triggers)
SQL Gatilhos (Triggers) Laboratório de Bases de Dados Gatilho (trigger) Bloco PL/SQL que é disparado de forma automática e implícita sempre que ocorrer um evento associado a uma tabela INSERT UPDATE DELETE
Leia maisBANCO DE DADOS. info 3º ano. Prof. Diemesleno Souza Carvalho diemesleno@iftm.edu.br www.diemesleno.com.br
BANCO DE DADOS info 3º ano Prof. Diemesleno Souza Carvalho diemesleno@iftm.edu.br www.diemesleno.com.br Na última aula estudamos Unidade 4 - Projeto Lógico Normalização; Dicionário de Dados. Arquitetura
Leia maisUNINGÁ UNIDADE DE ENSINO SUPERIOR INGÁ FACULDADE INGÁ CIÊNCIA DA COMPUTAÇÃO CURSORS. Profº Erinaldo Sanches Nascimento
UNINGÁ UNIDADE DE ENSINO SUPERIOR INGÁ FACULDADE INGÁ CIÊNCIA DA COMPUTAÇÃO CURSORS Profº Erinaldo Sanches Nascimento Introdução Cursor é usado para percorrer um conjunto de linhas retornadas por uma consulta
Leia maisPostgreSQL 8.0. Diogo Biazus
PostgreSQL 8.0 Diogo Biazus PostgreSQL 7.X Totalmente ACID MVCC Tipos e operadores customizáveis Diversas linguagens procedurais Hot backup Código aberto (BSD) Facilidade de extensão PL/pgSQL, PL/Python,
Leia maisBases de Dados 2007/2008. Aula 9
Bases de Dados 2007/2008 Aula 9 1. T-SQL TRY CATCH 2. TRATAMENTO ERROS RAISERROR 3. TRIGGERS 4. EXERCÍCIOS Sumário Referências http://msdn2.microsoft.com/en-us/library/ms189826.aspx (linguagem t-sql) http://www.di.ubi.pt/~pprata/bd/bd0405-proc.sql
Leia maisSQL DDL Criando Tabelas e Restrições
SQL DDL Criando Tabelas e Restrições Fernanda Baião UNIRIO Material parcialmente extraído a partir das notas de aula de Maria Luiza M. Campos, Arnaldo Rocha e Maria Cláudia Cavalcanti Comandos de Definição
Leia maisRECUPERAÇÃO DE CONTEÚDO BANCO DE DADOS
RECUPERAÇÃO DE CONTEÚDO BANCO DE DADOS No Instituto Federal do Paraná tounou-se necessário o armazenamento de certas informações para controle de pessoal. Para armazenar tais dados é necessário saber que:
Leia maisRelatório. Projecto de Base de Dados Parte 2. Turno: quinta-feira, 11:30 Grupo 25: André Gonçalves 64027 Rui Barradas 68239 Hélton Miranda 68477
Relatório Projecto de Base de Dados Parte 2 Turno: quinta-feira, 11:30 Grupo 25: André Gonçalves 64027 Rui Barradas 68239 Hélton Miranda 68477 1. Criação da base de dados De seguida vem escrito um script
Leia maisProjeto de Banco de Dados
Projeto de Banco de Dados Prof. Marcelo Siedler Objetivos do documento: Apresentar os conceitos de stored procedutes e funções. Exercícios. Referência: http://dev.mysql.com/doc/refman/4.1/pt/stored-procedures.html
Leia maisGES013 - Sistema de Banco de Dados Funções e Gatilhos no PostgreSQL
GES013 - Sistema de Banco de Dados Funções e Gatilhos no PostgreSQL Ilmério Reis da Silva ilmerio arroba ufu.br www.facom.ufu.br/~ilmerio/sbd UFU/FACOM/BCC UFU/FACOM Página 2 SQL EM FUNÇÕES E GATILHOS
Leia mais2008.1. A linguagem SQL
SQL 2008.1 A linguagem SQL SQL - Structured Query Language. Foi definida nos laboratórios de pesquisa da IBM em San Jose, California, em 1974. Teve seus fundamentos no modelo relacional Sua primeira versão
Leia maisMonitoria GDI Aula Prática. DML + PL/SQL parte 1
Monitoria GDI Aula Prática DML + PL/SQL parte 1 DML linguagem de manipulação de dados SQL Estrutura básica de uma consulta SQL SELECT Coluna1[,Coluna2[,Coluna3[,...]]] FROM Tabela1[,Tabela2[,...]] WHERE
Leia maisUsando PostgreSQL na Regra de Negócio de um ERP. Fabiano Machado Dias Eduardo Wolak
Usando PostgreSQL na Regra de Negócio de um ERP Fabiano Machado Dias Eduardo Wolak Regra de negócio? São todas as regras existentes num sistema de informação, que ditam seu comportamento, suas restrições
Leia maisLista 02 Sistema de Banco de Dados CAP 241 Computação Aplicada I
Lista 02 Sistema de Banco de Dados CAP 241 Computação Aplicada I Considere o diagrama relacional da Figura 1 e escreva os comandos SQL para executar os exercícios abaixo. Figure 1 Diagrama relacional.
Leia maisIntrodução à Banco de Dados. Nathalia Sautchuk Patrício
Introdução à Banco de Dados Nathalia Sautchuk Patrício Histórico Início da computação: dados guardados em arquivos de texto Problemas nesse modelo: redundância não-controlada de dados aplicações devem
Leia maisRegras de Negócios é com o Elefante!
Regras de Negócios é com o Elefante! HARDWARE SOFTWARE Pesquisa Quantas camadas? Regras na Aplicação? Regras numa Camada Intermediária? Regras no Banco de Dados? Explain / Plano de Consulta? E as minhas
Leia maisAULA 2 INTERAÇÃO COM O BANCO DE DADOS
AULA 2 INTERAÇÃO COM O BANCO DE DADOS BANCO DE DADOS POSTGRESQL O PostgreSQL é um sistema gerenciador de banco de dados dos mais robustos e avançados do mundo. Seu código é aberto e é totalmente gratuito,
Leia maisRoteiro 9 - SQL Básico: chave estrangeira, operadores de comparação e operadores booleanos
Roteiro 9 - SQL Básico: chave estrangeira, operadores de comparação e operadores booleanos Objetivos: Criar restrições para atributos, chaves primárias e estrangeiras; Explorar consultas SQL com uso de
Leia maisOperação de União JOIN
Operação de União JOIN Professor Victor Sotero SGD 1 JOIN O join é uma operação de multi-tabelas Select: o nome da coluna deve ser precedido pelo nome da tabela, se mais de uma coluna na tabela especificada
Leia maisBanco de Dados Avançados Banco de Dados Ativo
Universidade Federal de Pernambuco Centro de Informática Banco de Dados Avançados Banco de Dados Ativo Equipe: Felipe Cavalcante Fernando Kakimoto Marcos Corrêa Sumário 1. Mini-Mundo... 3 1.1 Entidades...
Leia maisPL/SQL. Profa. Dra. Cristina Dutra de Aguiar Ciferri. Laboratório de Bases de Dados PL/SQL
PL/SQL Laboratório de Bases de Dados PL/SQL Program Language SQL linguagem de programação da Oracle que permite processar dados armazenados no banco de dados Exemplos de operações permitidas alterar, remover,
Leia mais8. Outros tipos de Transação (Modo de Transação de Autoconfirmação e Modo Implícito)
8. Outros tipos de Transação (Modo de Transação de Autoconfirmação e Modo Implícito) Nos itens anteriores vimos transações do tipo explícitas, ou seja, aquelas que iniciam com BEGIN TRANSACTION. As outras
Leia maisIntrodução ao SQL. Aécio Costa
Aécio Costa A linguagem SQL é um padrão de linguagem de consulta comercial e possui as seguintes partes: Linguagem de definição de dados (DDL) Linguagem interativa de manipulação de dados (DML) Definição
Leia maisIntrodução à Engenharia da Computação. Banco de Dados Professor Machado
Introdução à Engenharia da Computação Banco de Dados Professor Machado 1 Sistemas isolados Produção Vendas Compras Banco de Dados Produtos... Banco de Dados Produtos... Banco de Dados Produtos... Desvantagens:
Leia maisGatilhos (Triggers) Prof. Márcio Bueno {bd2tarde,bd2noited}@marciobueno.com. Elaborado por Maria Lígia B. Perkusich
Gatilhos (Triggers) Prof. Márcio Bueno {bd2tarde,bd2noited}@marciobueno.com Elaborado por Maria Lígia B. Perkusich O que é um gatilho (trigger)? Um gatilho é um tipo especial de procedimento armazenado
Leia maisComandos de Manipulação
SQL - Avançado Inserção de dados; Atualização de dados; Remoção de dados; Projeção; Seleção; Junções; Operadores: aritméticos, de comparação,de agregação e lógicos; Outros comandos relacionados. SQL SQL
Leia maisBanco de Dados I. Aula 12 - Prof. Bruno Moreno 04/10/2011
Banco de Dados I Aula 12 - Prof. Bruno Moreno 04/10/2011 Plano de Aula SQL Definição Histórico SQL e sublinguagens Definição de dados (DDL) CREATE Restrições básicas em SQL ALTER DROP 08:20 Definição de
Leia maisAULA 8 CRIANDO UMA CLASSE EM PHP INTERAGINDO COM BANCO DE DADOS - COM RELACIONAMENTO ENTRE TABELAS
AULA 8 CRIANDO UMA CLASSE EM PHP INTERAGINDO COM BANCO DE DADOS - COM RELACIONAMENTO ENTRE TABELAS Na grande maioria dos sistemas, faz-se necessário utilizar informações que estão armazenadas em uma determinada
Leia maisO dono de uma livraria cuja base de dados é administrada por si pediu-lhe para efectuar as seguintes alterações ao preço dos livros:
- Necessidade O dono de uma livraria cuja base de dados é administrada por si pediu-lhe para efectuar as seguintes alterações ao preço dos livros: Os livros que custarem mais de 10, devem ver o seu preço
Leia maistrigger insert, delete, update
1 Um trigger é um conjunto de instruções SQL armazenadas no catalogo da BD Pertence a um grupo de stored programs do MySQL Executado quando um evento associado com uma tabela acontece: insert, delete,
Leia maisPROCEDIMENTOS ARMAZENADOS (Stored Procedures)
PROCEDIMENTOS ARMAZENADOS (Stored Procedures) 1. Introdução Stored Procedure é um conjunto de comandos, ao qual é atribuído um nome. Este conjunto fica armazenado no Banco de Dados e pode ser chamado a
Leia maisBases de Dados 2007/2008. Aula 8
Bases de Dados 2007/2008 Aula 8 1. T-SQL 2. VARIÁVEIS 3. CURSORES 4. PROCEDIMENTOS 5. EXERCÍCIOS Sumário Referências http://msdn2.microsoft.com/en-us/library/ms189826.aspx (linguagem t-sql) http://www.di.ubi.pt/~pprata/bd/bd0405-proc.sql
Leia maisProgramando em SQL. Triggers, Stored Procedures e funções. Profa. Késsia Marchi
Programando em SQL Triggers, Stored Procedures e funções Objetivo Descrever as funcionalidades de triggers, store procedures e funções; Apresentar vantagens e benefícios; Criação e Gerenciamento de Store
Leia maisFaculdade Pitágoras 16/08/2011. Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet
Faculdade Pitágoras Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL A linguagem SQL é responsável por garantir um bom nível
Leia maisFaculdade Pitágoras. Curso Superior de Tecnologia: Banco de Dados. Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL
Faculdade Pitágoras Curso Superior de Tecnologia: Banco de Dados Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL A linguagem SQL é responsável por garantir um bom nível de independência do
Leia maisTarefa Orientada 19 Triggers
Tarefa Orientada 19 Triggers Objectivos: Criar triggers AFTER Criar triggers INSTEAD OF Exemplos de utilização Os triggers são um tipo especial de procedimento que são invocados, ou activados, de forma
Leia maisTransações Seguras em Bancos de Dados (MySQL)
Transações Seguras em Bancos de Dados (MySQL) Índice Entendendo os storage engines do MySQL 5 1 As ferramentas 1 Mais algumas coisas que você deve saber 1 Com a mão na massa 2 Mais ferramentas Usando o
Leia mais2 echo "PHP e outros.";
PHP (Hypertext Preprocessor) Antes de qualquer coisa, precisamos entender o que é o PHP: O PHP(Hypertext Preprocessor) é uma linguagem interpretada gratuita, usada originalmente apenas para o desenvolvimento
Leia maisAPOSTILA BANCO DE DADOS INTRODUÇÃO A LINGUAGEM SQL
1. O que é Linguagem SQL 2. Instrução CREATE 3. CONSTRAINT 4. ALTER TABLE 5. RENAME TABLE 6. TRUCANTE TABLE 7. DROP TABLE 8. DROP DATABASE 1 1. O que é Linguagem SQL 2. O SQL (Structured Query Language)
Leia maisTECNOLOGIA EM SISTEMAS PARA INTERNET PROJETO DE BANCO DE DADOS
Exemplos de Scripts SQL (PostgreSQL) Pizzaria 1 2 Criação de BANCO DE DADOS CREATE DATABASE nome_do_banco; CREATE DATABASE pizzaria; Criação de TABELAS SOMENTE COM CHAVE PRIMÁRIA CREATE TABLE nome_da_tabela
Leia maisFERRAMENTA DE APOIO A REESTRUTURAÇÃO DE CÓDIGO FONTE EM LINGUAGEM PL/SQL BASEADO EM PADRÕES DE LEGIBILIDADE
FERRAMENTA DE APOIO A REESTRUTURAÇÃO DE CÓDIGO FONTE EM LINGUAGEM PL/SQL BASEADO EM PADRÕES DE LEGIBILIDADE Formando: Dyckson Dyorgio Dolla Orientador: Prof. Everaldo Artur Grahl Julho / 2001 ROTEIRO DA
Leia maisCriação de Log de Ações Através do Banco de Dados. Marcos Thomaz da Silva
Criação de Log de Ações Através do Banco de Dados Marcos Thomaz da Silva Perfil do Instrutor Graduação em Sistemas de Informação Especialização em Bancos de Dados Analista de Tecnologia da Informação da
Leia maisSQL comando SELECT. SELECT [DISTINCT] <campos> FROM <tabela> [condição] [ ; ] Paulo Damico - MDK Informática Ltda.
SQL comando SELECT Uma das tarefas mais requisitadas em qualquer banco de dados é obter uma listagem de registros armazenados. Estas tarefas são executadas pelo comando SELECT Sintaxe: SELECT [DISTINCT]
Leia maisProgramação SQL. Introdução
Introdução Principais estruturas duma Base de Dados: Uma BD relacional é constituída por diversas estruturas (ou objectos ) de informação. Podemos destacar: Database: designa a própria BD; Table/Tabela:
Leia maisEXEMPLOS DE COMANDOS NO SQL SERVER
EXEMPLOS DE COMANDOS NO SQL SERVER Gerenciando Tabelas: DDL - DATA DEFINITION LANGUAG Criando uma tabela: CREATE TABLE CLIENTES ID VARCHAR4 NOT NULL, NOME VARCHAR30 NOT NULL, PAGAMENTO DECIMAL4,2 NOT NULL;
Leia maisPHP INTEGRAÇÃO COM MYSQL PARTE 1
INTRODUÇÃO PHP INTEGRAÇÃO COM MYSQL PARTE 1 Leonardo Pereira leonardo@estudandoti.com.br Facebook: leongamerti http://www.estudandoti.com.br Informações que precisam ser manipuladas com mais segurança
Leia maisBANCO DE DADOS: SQL. Edson Anibal de Macedo Reis Batista. 27 de janeiro de 2010
BANCO DE DADOS: SQL UERN - Universidade do Estado do Rio Grande do Norte. Departamento de Ciências da Computação. 27 de janeiro de 2010 índice 1 Introdução 2 3 Introdução SQL - Structured Query Language
Leia maisPCS3413. Engenharia de So-ware e Banco de Dados. Aula 20. Escola Politécnica da Universidade de São Paulo
PCS3413 Engenharia de So-ware e Banco de Dados Aula 20 Escola Politécnica da Universidade de São Paulo 1 PROCEDIMENTOS TRIGGER STORED PROCEDURE Regras de Negócio controladas pelo SGBD SGDB Relacional dispoõe
Leia maisAdministração de Banco de Dados
Administração de Banco de Dados Adriano J. Holanda http://holanda.xyz 28/8/2015 Índices Para os testes com os índices criaremos uma tabela chamada tteste com o comando teste=> CREATE TABLE tteste (id int4);
Leia maisArmazenamento organizado facilitando SCRUD; Agiliza processo de desenvolvimento de sistemas;
Conjunto de informações relacionadas entre si; Armazenamento organizado facilitando SCRUD; Agiliza processo de desenvolvimento de sistemas; Conjunto de Tabelas onde cada linha é um vetor de dados específico;
Leia mais4.6. SQL - Structured Query Language
4.6. SQL - Structured Query Language SQL é um conjunto de declarações que é utilizado para acessar os dados utilizando gerenciadores de banco de dados. Nem todos os gerenciadores utilizam SQL. SQL não
Leia maisAuditoria de sistemas Deixe que seu banco de dados faça o trabalho por você
Auditoria de sistemas Deixe que seu banco de dados faça o trabalho por você por Cristóferson Guimarães Magalhães Bueno e Odilon Corrêa da Silva 1 O objetivo deste artigo é demonstrar como criar um sistema
Leia maisCreate Sequence Cria uma sequence. Uma sequence é um objeto que permite vários usuários gerarem valores inteiros sem repetição.
Conceitos PL/Sql Create Sequence Cria uma sequence. Uma sequence é um objeto que permite vários usuários gerarem valores inteiros sem repetição. Sintaxe CREATE SEQUENCE [schema.]sequence [INCREMENT BY
Leia maisListando itens em ComboBox e gravando os dados no Banco de Dados MySQL.
Listando itens em ComboBox e gravando os dados no Banco de Dados MySQL. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2012 Edição 7 Listando e Gravando Listando itens em ComboBox e gravando os dados no
Leia maisO que são Bancos de Dados?
SQL Básico Liojes de Oliveira Carneiro professor.liojes@gmail.com www.professor-liojes.blogspot.com O que são Bancos de Dados? É o software que armazena, organiza, controla, trata e distribui os dados
Leia maisSQL TGD/JMB 1. Projecto de Bases de Dados. Linguagem SQL
SQL TGD/JMB 1 Projecto de Bases de Dados Linguagem SQL SQL TGD/JMB 2 O que é o SQL? SQL ("ess-que-el") significa Structured Query Language. É uma linguagem standard (universal) para comunicação com sistemas
Leia mais2. Criar um bloco PL/SQL anônimo para imprimir as tabuadas abaixo: 5 X 10 = 50 5 X 2 = 10... 10 X 10 = 100 1 X 2 = 2...
1. Criar um bloco PLSQL anônimo para imprimir a tabuada abaixo: 5 X 1 = 5 5 X 2 = 10... 5 X 10 = 50 V_N CONSTANT NUMBER(2) := 5; FOR I IN 1..10 LOOP DBMS_OUTPUT.PUT_LINE(V_N ' X ' I ' = ' V_N*I); 2. Criar
Leia maisLeonardo Gresta Paulino Murta leomurta@gmail.com
Leonardo Gresta Paulino Murta leomurta@gmail.com O Que é JDBC? API de acesso a banco de dados relacional do Java Faz uso do driver provido pelo banco de dados Roda SQL (create, insert, update, etc.) no
Leia maisIntegridade dos Dados
1 Integridade dos Dados Integridade dos Dados Melissa Lemos melissa@inf.puc-rio.br A integridade dos dados é feita através de restrições, que são condições obrigatórias impostas pelo modelo. Restrições
Leia maisTarefa Orientada 15 Manipulação de dados
Tarefa Orientada 15 Manipulação de dados Objectivos: Criação de tabelas teste Comando INSERT INTO Inserção de dados Comando INSERT Actualização de dados Comando UPDATE Eliminação de dados Comando DELETE
Leia maisNeste artigo, serão apresentados os principais conceitos sobre os TRIGGERS e sua aplicabilidade.
www.devm edia.com.br [versão para im pressão] MySQL TRIGGERS Neste artigo, serão apresentados os principais conceitos sobre os TRIGGERS e sua aplicabilidade. MySQL TRIGGERS Neste artigo, serão apresentados
Leia maisAULA 2 INTERAÇÃO COM O BANCO DE DADOS
AULA 2 INTERAÇÃO COM O BANCO DE DADOS BANCO DE DADOS POSTGRESQL O PostgreSQL é um sistema gerenciador de banco de dados dos mais robustos e avançados do mundo. Seu código é aberto e é totalmente gratuito,
Leia maisAvisos. Sumário. Atividade em lab Aula 29. Atividade em lab Aula 29. Programando com SQL Triggers EXERCÍCIO LAB SP. Vista da segunda prova
Ciência da Computação GBC043 Sistemas de Banco de Dados Programando com SQL s Avisos Vista da segunda prova Data: 03/06 das 13:40 às 15:00h Local: sala 1B137 Profa. Maria Camila Nardini Barioni camila.barioni@ufu.br
Leia maisSQL - Criação de Tabelas
SQL - Criação de Tabelas André Restivo Faculdade de Engenharia da Universidade do Porto February 24, 2012 André Restivo (FEUP) SQL - Criação de Tabelas February 24, 2012 1 / 25 Sumário 1 Introdução 2 Tabelas
Leia maisSQL (Structured Query Language)
(Structured Query Language) I DDL (Definição de Esquemas Relacionais)... 2 I.2 Domínios... 2 I.3 Criação de Tabelas... 2 I.4 Triggers... 4 II DML Linguagem para manipulação de dados... 5 II.2 Comando SELECT...
Leia maisAcesso a Bancos de Dados em Java (JDBC)
Acesso a Bancos de Dados em Java (JDBC) Jomi Fred Hübner Universidade Regional de Blumenau Departamento de Sistemas e Computação Roteiro Introdução Objetivo da JDBC Vantagens Visão geral do acesso a SGBDs
Leia maisHugo Pedro Proença, 2007
Stored Procedures À medida que a complexidade dos sistemas aumenta, torna-se cada vez mais difícil a tarefa de integrar o SQL com as aplicações cliente. Além disto, é necessário que todas as aplicações
Leia maisProcedimentos armazenados
Procedimentos armazenados Prof. Márcio Bueno {bd2tarde,bd2noited}@marciobueno.com Material da Profª Maria Lígia B. Perkusich Procedimentos armazenados (i) Definição Um procedimento armazenado (stored procedure)
Leia maisControle de transações em SQL
Transações Controle de transações em SQL Uma transação é implicitamente iniciada quando ocorre uma operação que modifica o banco de dados (INSERT, UPDATE ou DELETE). Uma transação pode terminar normalmente
Leia mais