GES013 - Sistema de Banco de Dados Funções e Gatilhos no PostgreSQL

Tamanho: px
Começar a partir da página:

Download "GES013 - Sistema de Banco de Dados Funções e Gatilhos no PostgreSQL"

Transcrição

1 GES013 - Sistema de Banco de Dados Funções e Gatilhos no PostgreSQL Ilmério Reis da Silva ilmerio arroba ufu.br UFU/FACOM/BCC

2 UFU/FACOM Página 2 SQL EM FUNÇÕES E GATILHOS Def. Funções e Gatilhos são procedimentos armazenados, interpretados e executados no servidor de BD, escritos em uma linguagem procedural que permite controle de fluxo e cálculos complexos, além de acesso ao BD via SQL. As funções são chamadas de forma explícita e os gatilhos por meio de eventos, implementando o conceito de BD Ativo

3 UFU/FACOM Página 3 OBJETIVOS DE FUNÇÕES E GATILHOS padronizar acesso por vários programas; orientar execuções para o servidor; controlar acesso via GRANT específico; adicionar estruturas de controle; implementar restrições de integridade; realizar cálculos complexos;

4 UFU/FACOM Página 4 FUNÇÕES E GATILHOS NO PostgreSQL 1. O SGBD armazena no catálogo comandos em linguagens procedurais com ou sem instruções SQL; 2. Há um interpretador da linguagem; 3. O interpretador também é uma função; 4. Linguagens: PL/PgSQL, PL/Tcl, PL/Perl, PL/Python Devem ser habilitadas pelo super-usuário, por exemplo: CREATE LANGUAGE plpgsql; 6. Outros interpretadores podem ser desenvolvidos pelo usuário;

5 Funções PlpgSql - Exemplo 0 CREATE OR REPLACE FUNCTION ehoras(employee.ssn%type) RETURNS DECIMAL(6,2) AS ' DECLARE myssn alias for $1; myhoras DECIMAL(6,2); BEGIN SELECT SUM(hours) FROM works_on INTO myhoras WHERE essn=myssn; RETURN myhoras; END; ' LANGUAGE 'plpgsql'; => SELECT * FROM ehoras(' '); UFU/FACOM Página 5

6 PlpgSql Bloco de sentença em Funções UM BLOCO DE SENTENÇA: [ << label >> ] [ DECLARE declarações de variáveis ] BEGIN sentenças END; OBS: - um bloco é uma senteça - tudo é convertido para caixa-baixa, exceto se "..." - variáveis de tipos semelhantes ao SQL com peculiaridades... UFU/FACOM Página 6

7 Plpgsql Definindo Variáveis nome [CONSTANT] tipo [NOT NULL] [ { DEFAULT := } expression ]; Exemplos: user_id INTEGER; quantity NUMERIC(5); url VARCHAR; myrow tablename%rowtype; myfield tablename.fieldname%type; arow RECORD; quantity INTEGER DEFAULT 32; url varchar := '' user_id CONSTANT INTEGER := 10; OBS: neste caso, myfield é uma variável associada a um atribuo específico e myrow.field é uma variável associada ao atributo field UFU/FACOM Página 7

8 Plpgsql Parâmetros $1, $2, etc Aliases: subtotal ALIAS FOR $1; UFU/FACOM Página 8

9 Plpgsql A variável FOUND CREATE OR REPLACE FUNCTION does_employee_exist (employee.ssn%type) RETURNS bool AS ' DECLARE key ALIAS FOR $1; myemployee employee%rowtype; BEGIN SELECT INTO myemployee * FROM employee WHERE ssn=key; IF NOT FOUND THEN RETURN false; END IF; RETURN true; END; 'LANGUAGE 'plpgsql'; UFU/FACOM Página 9

10 UFU/FACOM Página 10 Plpgsql ESTRUTURAS DE CONTROLE RETORNO CONDICIONAIS LAÇOS

11 Plpgsql RETURN RETURN expression; - - encerra a função Exemplos: RETURN mytext; RETURN myrecord; RETURN mynum; RETURN true; RETURN NEXT expression; - - retorna linha e não encerra a função some_func() RETURNS SETOF sometype => SELECT * FROM some_func(); (veremos um exemplo posteriormente, usando laços) UFU/FACOM Página 11

12 Plpgsql CONDIÇÕES CONDIÇÕES IF... THEN... END IF; IF... THEN... ELSE... END IF; IF... THEN... ELSE IF... END IF END IF; IF... THEN... ELSIF... THEN... ELSE... END IF; Exemplo: IF myrow.sex = ''F'' THEN mysexo := ''Feminino''; ELSE IF myrow.sex = ''M'' THEN mysexo := ''Masculino''; END IF; END IF; UFU/FACOM Página 12

13 Plpgsql LAÇOS LAÇOS: WHILE ou FOR usando expressão e conjunto de sentenças Executam repetidamente um conjunto de sentenças até: EXIT [ label ]; ou WHEN expression; ou RETURN. Conjunto de sentenças em Laços [<< label >>] LOOP sentenças END LOOP; UFU/FACOM Página 13

14 Plpgsql WHILE [<< label >>] WHILE expressão LOOP sentenças END LOOP; UFU/FACOM Página 14

15 Plpgsql FOR COM CONTADOR [<< label >>] FOR nome_var IN [ REVERSE ] exp_from..exp_to LOOP sentenças END LOOP; UFU/FACOM Página 15

16 Plpgsql FOR VARRENDO RESULTADO [<< label >>] FOR {record row} IN select_query LOOP sentenças END LOOP; Exemplo a seguir... UFU/FACOM Página 16

17 Plpgsql EXEMPLO VARRE RESULTADO CREATE OR REPLACE FUNCTION vemp() RETURNS SETOF employee AS ' DECLARE wrow employee%rowtype; BEGIN FOR wrow IN SELECT * FROM employee LOOP RETURN NEXT wrow; END LOOP; RETURN; END; ' LANGUAGE 'plpgsql' ; SELECT * FROM vemp(); UFU/FACOM Página 17

18 Plpgsql Consultas dinâmicas EXECUTE query-string; Exemplo: EXECUTE ''UPDATE tab SET '' quote_ident(fieldname) " = " quote_literal(newvalue) ''WHERE ''; resultados de consultas podem ser usados em FOR-IN-EXECUTE GET DIAGNOSTICS variable = ROW_COUNT; UFU/FACOM Página 18

19 Plpgsql Varrendo resultado de consulta dinâmica [<< label >>] FOR {record row} IN EXECUTE text exp LOOP sentenças END LOOP; UFU/FACOM Página 19

20 Plpgsql IGNORANDO RESULTADOS PERFORM * FROM works on WHERE essn=my ssn; IF NOT FOUND THEN RAISE NOTICE ''...'' END IF; UFU/FACOM Página 20

21 UFU/FACOM Página 21 Plpgsql FUNÇÕES Exemplo 1 CREATE OR REPLACE FUNCTION tgenero(company.employee.ssn%type) RETURNS TEXT AS ' DECLARE myssn alias for $1; myrow company.employee%rowtype; mysexo TEXT DEFAULT '' ''; BEGIN SELECT * INTO myrow FROM company.employee WHERE ssn=myssn; IF myrow.sex = ''F'' THEN mysexo := ''Feminino''; ELSE IF myrow.sex = ''M'' THEN mysexo := ''Masculino''; END IF; END IF; RETURN myrow.fname '' '' myrow.minit ''. '' myrow.lname '' - '' mysexo; END; ' LANGUAGE 'plpgsql'; SELECT * FROM tgenero(' ')

22 UFU/FACOM Página 22 Plpgsql FUNÇÕES Exemplo 2 - Problema Considere que um conjunto de comandos contendo junções e/ou funções de agregação têm uma frequência de execução muito alta. Então, por questões de desempenho, vc como projetista do BD optou por criar 'Visões Materializadas' para esses comandos. Como o PostgreSql não implementa este tipo de visão, vc usará uma tabela gerada por CREATE TABLE table_name AS SELECT... para cada comando. Para facilitar a atualização dos dados dessas tabelas, implemente uma função que atualize todas as tabelas. Para isso os nomes e comandos SELECT correspondentes serão armazenados em uma tabela chamada 'visoesmaterializadas' com o seguinte esquema: CREATE TABLE company.visoesmaterializadas ( mvname varchar(50), -- nome da tabela mvquery varchar(500), -- comando que obtem dados para inserção na tabela primary key (mvname) );

23 UFU/FACOM Página 23 Plpgsql FUNÇÕES Exemplo 2 Uma Tabela CREATE TABLE company.materializeddsummary AS SELECT dno as Dno, count(*) as NroEmp, sum(salary) as TotalS, avg(salary) as AverageS FROM company.employee GROUP BY dno; INSERT INTO company.visoesmaterializadas(mvname, mvquery) VALUES ('company.materializeddsummary', 'SELECT dno as Dno, count(*) as NroEmp, sum(salary) as TotalS, avg(salary) as AverageS FROM company.employee GROUP BY dno');

24 UFU/FACOM Página 24 Plpgsql FUNÇÕES Exemplo 2 Outra Tabela CREATE TABLE company.materializedpsummary1 AS SELECT pname AS PName, dname AS DName, COUNT(*) AS NroEmp, SUM(hours) AS SumHours FROM company.project, company.department, company.works_on WHERE pnumber=pno AND dnum=dnumber GROUP BY pname, dname; INSERT INTO company.visoesmaterializadas(mvname, mvquery) VALUES ('company.materializedpsummary1', 'SELECT pname AS PName, dname AS DName, COUNT(*) AS NroEmp, SUM(hours) AS SumHours FROM company.project, company.department, company.works_on WHERE pnumber=pno AND dnum=dnumber GROUP BY pname, dname');

25 UFU/FACOM Página 25 Plpgsql FUNÇÕES Exemplo 2 A Função CREATE OR REPLACE FUNCTION atualizavisoes() RETURNS TEXT AS ' DECLARE mviews RECORD; BEGIN FOR mviews IN SELECT * FROM company.visoesmaterializadas ORDER BY mvname LOOP RAISE NOTICE ''Limpando as tuplas de <%> '', mviews.mvname; EXECUTE ''DELETE FROM '' mviews.mvname; RAISE NOTICE ''Inserindo versao atualizada de <%> '', mviews.mvname; EXECUTE ''INSERT INTO '' mviews.mvname '' '' mviews.mvquery; END LOOP; RETURN ''As tabelas foram atualizadas!!''; END; ' LANGUAGE 'plpgsql'; SELECT * FROM atualizavisoes()

26 Plpgsql GATILHOS Def. GATILHOS ou TRIGGERS: implementam regras ativas IMPLEMENTAÇÃO Definindo o evento que acionará o gatilho: CREATE TRIGGER nome gatilho { BEFORE AFTER } { evento [OR...] } ON nome tabela FOR EACH { ROW STATEMENT } EXECUTE PROCEDURE nome função ( argumentos ) evento: INSERT, DELETE or UPDATE; FOR EACH: quantas vezes será acionado (só ROW funciona); argumentos: argumentos(literais) passados via TG_ARGV[] Função sem argumento com RETURNS TRIGGER; UFU/FACOM Página 26

27 UFU/FACOM Página 27 Plpgsql VARIÁVEIS ESPECIAIS EM GATILHOS VARIÁVEIS ESPECIAIS são criadas automaticamente NEW: tipo RECORD contendo nova linha em INSERT/UPDATE OLD: tipo RECORD contendo linha antiga em UPDATE/DELETE TG_NAME: o nome do gatilho TG_WHEN: BEFORE or AFTER TG_LEVEL: ROW or STATEMENT TG_OP: INSERT, UPDATE or DELETE TG_RELID: object ID da tabela TG_RELNAME: nome da tabela TG_NARGS: n umero de argumentos TG_ARGV[]: array contendo argumento

28 UFU/FACOM Página 28 Plpgsql RETORNOS EM GATILHOS RETORNO: deve ser NULL ou um RECORD/ROW NULL em BEFORE salta o restante das operações RECORD/ROW em BEFORE prossegue com o valor retornado Em AFTER o valor retornado é ignorado

29 Plpgsql Gatilho EXEMPLO 0- Salário ok? CREATE FUNCTION emp_stamp () RETURNS TRIGGER AS ' BEGIN IF NEW.salary ISNULL THEN RAISE EXCEPTION '' % : Informe Salario'', NEW.fname, NEW.lname; END IF; IF NEW.salary <= 0 THEN RAISE EXCEPTION ''% % : Informe Salario > 0'', NEW.fname, NEW.lname; END IF; RETURN NEW; correto END; ' LANGUAGE 'plpgsql'; CREATE TRIGGER emp stamp BEFORE INSERT OR UPDATE ON employee FOR EACH ROW EXECUTE PROCEDURE emp_stamp(); UFU/FACOM Página 29

30 Plpgsql Gatilho EXEMPLO 1- Uma esposa CREATE OR REPLACE FUNCTION spouse () RETURNS TRIGGER AS ' BEGIN END; IF NEW.relationship = ''SPOUSE'' THEN END IF; PERFORM * FROM dependent WHERE essn=new.essn AND dependent_name <> NEW.dependent_name AND relationship=''spouse''; IF FOUND THEN RAISE EXCEPTION ''Employee % still have a spouse'', NEW.essn; END IF; RETURN NEW; ' LANGUAGE 'plpgsql'; CREATE TRIGGER spouse BEFORE INSERT OR UPDATE ON dependent FOR EACH ROW EXECUTE PROCEDURE spouse(); UFU/FACOM Página 30

31 Plpgsql Gatilho EXEMPLO 2- dsummary1 CREATE OR REPLACE FUNCTION fnewemp () RETURNS TRIGGER AS ' DECLARE mycomand TEXT; mydsummary materializeddsummary%rowtype; mynroemp materializeddsummary.nroemp%type; mytotals materializeddsummary.totals%type; myaverages materializeddsummary.averages%type; BEGIN IF NEW.dno ISNULL THEN RAISE EXCEPTION ''dno cannot be NULL value''; END IF; IF NEW.salary ISNULL THEN RAISE EXCEPTION ''% cannot have NULL salary'', NEW.fname; END IF; IF NEW.salary <= 0 THEN RAISE EXCEPTION ''% cannot have a negative salary'', NEW.fname; END IF; - - continua UFU/FACOM Página 31

32 Plpgsql Gatilho EXEMPLO 2- dsummary1 - - continuação END; SELECT * FROM materializeddsummary INTO mydsummary WHERE dno=new.dno; mynroemp = mydsummary.nroemp + 1; mytotals = mydsummary.totals + NEW.salary; myaverages = ((mydsummary.averages * mydsummary.nroemp) + NEW.salary) / mynroemp; mycomand := ''UPDATE '' ''materializeddsummary '' ''SET nroemp = '' quote_literal(mynroemp) '', totals = '' quote_literal(mytotals) '', averages = '' quote_literal(myaverages) '' '' ''WHERE dno = '' quote_literal(new.dno); EXECUTE mycomand; RETURN NEW; ' LANGUAGE 'plpgsql'; CREATE TRIGGER tnewemp BEFORE INSERT ON employee FOR EACH ROW EXECUTE PROCEDURE fnewemp(); UFU/FACOM Página 32

33 UFU/FACOM Página 33 Plpgsql Exercícios EXERCÍCIOS DE IMPLEMENTAÇÃO => Lab Implementar os gatilhos que atualizam as tabelas anteriores para os comandos UPDATE e DELETE, mantendo as visões atualizadas Verificar a execução automática das funções quando os comandos INSERT, UPDATE e DELETE em employee forem executados Ver exercícios de funções e gatilhos para o BD DE TESTE: SAFIS ou SEE ou SEC ou OUTRO DEFINIDO PELO PROFESSOR.

34 UFU/FACOM Página 34 Bibliografia [EN] Capítulos 4,5,26 [SK] Capítulos [RG] Capítulos Manuais do PostgreSQL

35 UFU/FACOM Página 35 Plpgsql FIM Plpgsql

GBC043 - Sistemas de Banco de Dados Funções e Gatilhos no PostgreSQL

GBC043 - 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 mais

Linguagens Procedurais no PostgreSQL: Funcoes. Linguagens Procedurais no PostgreSQL: Funcoes

Linguagens 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 mais

Triggers no PostgreSQL

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 mais

PL/pgSQL por Diversão e Lucro

PL/pgSQL por Diversão e Lucro PL/pgSQL por Diversão e Lucro Roberto Mello 3a. Conferência Brasileira de PostgreSQL - PGCon-BR Campinas - 2009 1 Objetivos Apresentar as partes principais do PL/pgSQL Apresentar casos de uso comum do

Leia mais

GES013 - Sistema de Banco de Dados SQL/DML no PostgreSQL Parte 1 Introdução e Consultas Basicas

GES013 - Sistema de Banco de Dados SQL/DML no PostgreSQL Parte 1 Introdução e Consultas Basicas GES013 - Sistema de Banco de Dados SQL/DML no PostgreSQL Parte 1 Introdução e Consultas Basicas Ilmério Reis da Silva ilmerio arroba ufu.br www.facom.ufu.br/~ilmerio/sbd UFU/FACOM/BCC UFU/FACOM Página

Leia mais

PROGRAMAÇÃO EM BANCO DADOS Store Procedure e Trigger

PROGRAMAÇÃ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 mais

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

Programando 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 mais

PROGRAMAÇÃO EM BANCO DADOS Stored Procedure e Trigger

PROGRAMAÇÃ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 mais

Avisos. Sumário. Atividade em lab Aula 29. Atividade em lab Aula 29. Programando com SQL Triggers EXERCÍCIO LAB SP. Vista da segunda prova

Avisos. 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 mais

Sistemas de Informação

Sistemas 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 mais

Laborató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 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 mais

FUNCTION ) RETURNS INTEGER AS $$ DECLARE

FUNCTION ) 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 mais

L Q S m e g a u g n Li A

L Q S m e g a u g n Li A A Linguagem SQL Introdução Originalmente proposta para o System R desenvolvido nos laboratórios da IBM na década de 70 SEQUEL (Structured English QUEry Language) Objeto de um esforço de padronização coordenado

Leia mais

GES013 - Sistema de Banco de Dados SQL/DML no PostgreSQL Parte 3 Tabelas de Junção e Funções de Agregação

GES013 - Sistema de Banco de Dados SQL/DML no PostgreSQL Parte 3 Tabelas de Junção e Funções de Agregação GES013 - Sistema de Banco de Dados SQL/DML no PostgreSQL Parte 3 Tabelas de Junção e Funções de Agregação Ilmério Reis da Silva ilmerio arroba ufu.br www.facom.ufu.br/~ilmerio/sbd UFU/FACOM/BCC UFU/FACOM

Leia mais

PL/pgSQL. Introdução. Introdução. Introdução

PL/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 mais

Lista 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 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 mais

PCS3413. 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 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 mais

Aula 12 Revisão. Prof. Filipe Wall Mutz

Aula 12 Revisão. Prof. Filipe Wall Mutz Aula 12 Revisão Prof. Filipe Wall Mutz Tópicos Operadores para Consultas Consultas Aninhadas Restrições Views Controle de Acesso Stored Procedures Triggers Operadores Avançados: Consultas com Operadores

Leia mais

Bases 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. 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 mais

Triggers em PostgreSQL. Linguagem de Programação de Banco de Dados. Triggers em PostgreSQL. Triggers em PostgreSQL

Triggers 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 mais

BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com

BANCO 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 mais

BANCO DE DADOS DISTRIBUÍDOS e DATAWAREHOUSING

BANCO DE DADOS DISTRIBUÍDOS e DATAWAREHOUSING BANCO DE DADOS DISTRIBUÍDOS e DATAWAREHOUSING http://www.uniriotec.br/~tanaka/tin0036 tanaka@uniriotec.br Revisão de Arquitetura C/S BD Cliente-Servidor com função distribuída Cliente Servidor Aplicativo

Leia mais

Bancos de Dados I. Integridade semântica

Bancos 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 mais

SQL Procedural. Josino Rodrigues Neto josinon@gmail.com

SQL 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 mais

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

Introduçã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 mais

Triggers e Regras. Fernando Lobo. Base de Dados, Universidade do Algarve

Triggers e Regras. Fernando Lobo. Base de Dados, Universidade do Algarve Triggers e Regras Fernando Lobo Base de Dados, Universidade do Algarve 1 / 21 Triggers Um trigger permite que uma determinada sequência de comandos SQL seja accionada quando um determinado evento ocorre.

Leia mais

BD II (SI 587) Procedimentos Armazenados

BD II (SI 587) Procedimentos Armazenados BD II (SI 587) Procedimentos Armazenados Josenildo Silva jcsilva@ifma.edu.br MOTIVAÇÃO Contexto: Sistemas em 2 camadas Contexto: Sistemas em 3 camadas Problema 1: Alto volume de dados na rede Como reduzir

Leia mais

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

Introdução às funções e procedimentos. SQL suporta funções e procedimentos úteis com tipos de dados específicos Bases de Dados Funções e procedimentos 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 de

Leia mais

SQL Gatilhos (Triggers)

SQL 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 mais

Linguagem SQL Restrições, Triggers e Views

Linguagem SQL Restrições, Triggers e Views FACULDADE INGÁ Unidade de Ensino Superior Ingá Ltda Ciência da Computação Linguagem SQL Restrições, Triggers e Views Prof. Erinaldo Sanches Nascimento Objetivos Especificar restrições mais gerais sobre

Leia mais

Oracle 10g: SQL e PL/SQL

Oracle 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 mais

Aula 12 Revisão. Prof. Filipe Wall Mutz

Aula 12 Revisão. Prof. Filipe Wall Mutz Aula 12 Revisão Prof. Filipe Wall Mutz Operadores Avançados: Consultas com Operadores Aritméticos SQL permite o uso de operadores aritméticos (+, -, *, /) tanto na cláusula WHERE como nos resultados da

Leia mais

Banco de Dados PLPGSQL. Prof. Dr. Joel da Silva

Banco de Dados PLPGSQL. Prof. Dr. Joel da Silva Banco de Dados PLPGSQL Prof. Dr. Joel da Silva - Introdução 2 - Introdução A PLPGSQL ou PL/pgSQL é uma linguagem estendida da SQL que tem por objetivo auxiliar as tarefas de programação no PostgreSQL.

Leia mais

GES013 - Sistema de Banco de Dados SQL/DML no PostgreSQL Parte 2 Consultas Aninhaas

GES013 - Sistema de Banco de Dados SQL/DML no PostgreSQL Parte 2 Consultas Aninhaas GES013 - Sistema de Banco de Dados SQL/DML no PostgreSQL Parte 2 Consultas Aninhaas Ilmério Reis da Silva ilmerio arroba ufu.br www.facom.ufu.br/~ilmerio/sbd UFU/FACOM/BCC SQL/DML Parte 2 Consultas Aninhadas

Leia mais

Funções em PostgreSQL

Funções em PostgreSQL Funções em PostgreSQL traduzido e adaptado do manual oficial do PostgreSQL O SGBD PostgreSQL permite que sejam criadas funções pré-definidas pelo usuário sendo que as mesmas são armazenadas como objetos

Leia mais

SQL DDL Criando Tabelas e Restrições

SQL 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 mais

GBC043 - Sistemas de Banco de Dados Lab8 : Transações no PostgreSql

GBC043 - Sistemas de Banco de Dados Lab8 : Transações no PostgreSql GBC043 - Sistemas de Banco de Dados Lab8 : Transações no PostgreSql Ilmério Reis da Silva ilmerio@facom.ufu.br www.facom.ufu.br/~ilmerio/sbd UFU/FACOM/BCC Transações Ver conjunto de slides na opção Transações

Leia mais

Funções Definidas pelo Usuário

Funções Definidas pelo Usuário BD II (SI 587) Funções Definidas pelo Usuário Prof. Josenildo Silva jcsilva@ifma.edu.br Funções definidas pelo usuário Funções precisam obrigatoriamente retornar um valor Somente aceitam parâmetros do

Leia mais

Introdução Sintaxe Básica Retornos Múltiplos Junções em Funções Comando Case Atividade. de Banco de Dados (CREATE FUNCTION) Bruno Neiva Moreno

Introdução Sintaxe Básica Retornos Múltiplos Junções em Funções Comando Case Atividade. de Banco de Dados (CREATE FUNCTION) Bruno Neiva Moreno Programação e Administração de Banco de Dados Aula 1.7 - Funções (CREATE FUNCTION) Bruno Neiva Moreno Instituto Federal do Rio Grande do Norte Campus Nova Cruz bruno.moreno@ifrn.edu.br 1/20 Introdução

Leia mais

ACH2025. Laboratóriode Bases de Dados. SQL Oracle Asserçõese gatilhos. Professora: Fátima L. S. Nunes SISTEMAS DE INFORMAÇÃO

ACH2025. Laboratóriode Bases de Dados. SQL Oracle Asserçõese gatilhos. Professora: Fátima L. S. Nunes SISTEMAS DE INFORMAÇÃO ACH2025 Laboratóriode Bases de Dados Aula10 SQL Oracle Asserçõese gatilhos Professora: Fátima L. S. Nunes REGRAS DE INTEGRIDADE (RI) garantem que mudanças feitas no BD não resultem em inconsistência de

Leia mais

Triggers. 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. 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 mais

PostgreSQL 8.0. Diogo Biazus

PostgreSQL 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 mais

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

Banco de Dados II. PL/SQL - Procedures -Cursor - Funções. Segurança: Introdução; Controle de Acesso; Criptografia; Recursos de SQL. Banco de Dados II PL/SQL - Procedures -Cursor - Funções Prof. Rodrigo Rocha prof.rodrigorocha@yahoo.com http://www.bolinhabolinha.com Apresentação Prof. Rodrigo Rocha prof.rodrigorocha@yahoo.com Ementa

Leia mais

Triggers e Regras. Fernando Lobo. Base de Dados, Universidade do Algarve

Triggers 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 mais

Restrições de Integridade Semântica

Restrições de Integridade Semântica Restrições de Integridade Semântica Controle de valores válidos para os dados estados dos dados condizentes com os requisitos da aplicação transições de estados corretas O SGBD deve controlar esta integridade

Leia mais

Prof. Josenildo Silva

Prof. Josenildo Silva BD II (SI 587) Gatilhos (Triggers) Prof. Josenildo Silva jcsilva@ifma.edu.br Motivação Algumas rotinas precisam ser executadas antes ou depois de um determinado evento no banco de dados Motivação Regras

Leia mais

Uma solução possível para garantir, em ambiente APEX, a consistência duma estrutura ISA, total e disjuntiva.

Uma solução possível para garantir, em ambiente APEX, a consistência duma estrutura ISA, total e disjuntiva. Uma solução possível para garantir, em ambiente APEX, a consistência duma estrutura ISA, total e disjuntiva. Seja então o conjunto de entidades pessoa, com os atributos bi_pessoa, nome_pessoa e morada_pessoa,

Leia mais

Consultoria e Treinamento em Bancos de Dados Relacionais

Consultoria 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 mais

Triggers 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 mais

Triggers(Gatilhos) Tiago Alves de Oliveira

Triggers(Gatilhos) Tiago Alves de Oliveira Triggers(Gatilhos) Tiago Alves de Oliveira tiago.alves@uemg.br Triggers (Gatilhos) Um TRIGGER ou gatilho associado a uma tabela, definido para ser disparado, respondendo a um evento em particular; Comandos

Leia mais

PostgreSQL. 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 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 mais

Sistemas de Informação e Bases de Dados 2012/2013. Stored Procedures e Triggers

Sistemas de Informação e Bases de Dados 2012/2013. Stored Procedures e Triggers Sistemas de Informação e Bases de Dados 2012/2013 Stored Procedures e Triggers Alberto Sardinha Bibliografia MSDN http://msdn.microsoft.com 1 Funções e Procedimentos SQL suporta funções e procedimentos

Leia mais

Regras de Negócios é com o Elefante!

Regras 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 mais

Subsistema de Integridade Semântica

Subsistema de Integridade Semântica Restrições de Integridade Semântica Controle de valores válidos para os dados estados dos dados condizentes com os requisitos da aplicação transições de estados corretas O SGBD deve controlar esta integridade

Leia mais

BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com

BANCO 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 mais

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

f. Exemplo: verificar condição de aprovação de alunos Tecnologia em Análise e Desenvolvimento de Sistemas Disciplina: B1SGB - Sistemas Gerenciadores de Banco de Dados Memória de aula Semana 17 1) Expressões CASE a. Tem a mesma finalidade que nas linguagens

Leia mais

Banco de Dados. Diego Silveira Costa Nascimento. 20 de março de Instituto Federal do Rio Grande do Norte

Banco de Dados. Diego Silveira Costa Nascimento. 20 de março de Instituto Federal do Rio Grande do Norte Banco de Dados Diego Silveira Costa Nascimento Instituto Federal do Rio Grande do Norte diego.nascimento@ifrn.edu.br 20 de março de 2015 Ementa do Curso 1 Introdução 2 Abordagem Entidade-relacionamento

Leia mais

FACULDADE INGÁ Unidade de Ensino Superior Ingá Ltda Ciência da Computação TRIGGERS. Prof. Erinaldo Sanches Nascimento

FACULDADE INGÁ Unidade de Ensino Superior Ingá Ltda Ciência da Computação TRIGGERS. Prof. Erinaldo Sanches Nascimento FACULDADE INGÁ Unidade de Ensino Superior Ingá Ltda Ciência da Computação TRIGGERS Prof. Erinaldo Sanches Nascimento Objetivos Especificar restrições mais gerais sobre o banco de dados. Especificar regras

Leia mais

A Linguagem SQL. Introdução a Banco de Dados DCC 011

A Linguagem SQL. Introdução a Banco de Dados DCC 011 A Linguagem SQL Introdução Originalmente proposta para o System R desenvolvido nos laboratórios da IBM na década de 70 SEQUEL (Structured English QUEry Language) Objeto de um esforço de padronização coordenado

Leia mais

Logado no OracleXE vamos acessar a opção:

Logado 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 mais

GES013 - Sistema de Banco de Dados SQL DDL e Implementação no PostgreSQL

GES013 - Sistema de Banco de Dados SQL DDL e Implementação no PostgreSQL GES013 - Sistema de Banco de Dados SQL DDL e Implementação no PostgreSQL Ilmério Reis da Silva ilmerio arroba ufu.br www.facom.ufu.br/~ilmerio/sbd UFU/FACOM/BCC SQL Def. A SQL(Structured Query Language)

Leia mais

Curso de Ciência da Computação

Curso de Ciência da Computação Curso de Ciência da Computação MATÉRIA: Banco de Dados II ASSUNTO: Triggers (Gatilhos ou automatismos) PROFESSOR: Ricardo Rodrigues Barcelar Objetivos: Apresentar a linguagem Structured Query Language

Leia mais

Banco de Dados I Introdução SQL

Banco de Dados I Introdução SQL Banco de Dados I Introdução SQL Frederico Queiroga fredericoqueiroga@gmail.com https://sites.google.com/site/fredericoqueiroga/ Linguagem SQL Aspectos Gerais: Independência do fabricante: Está incorporada

Leia mais

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

PL/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 mais

Subsistema de Integridade Semântica

Subsistema de Integridade Semântica Restrições de Integridade Semântica Controle de valores válidos para os dados estados dos dados condizentes com os requisitos da aplicação transições de estados corretas O SGBD deve controlar esta integridade

Leia mais

Programação em SGDB s

Programação em SGDB s Stored Procedures Programação em SGDB s Functions, Procedures e Triggers Permite a programação de códigos em um SGBD. Por que programar no SGBD? Linguagens: plpgsql, Tcl, Perl, Pyton e C. Vantagens da

Leia mais

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

Sumário. Discussão Exercícios. Discussão Exercícios. Discussão Exercícios. Discussão Exercícios. Programando com SQL Stored Procedures Ciência da Computação GBC043 Sistemas de Banco de Dados Sumário Programando com SQL Stored Procedures Profa. Maria Camila Nardini Barioni camila.barioni@ufu.br Bloco B - sala 1B137 Discussão exercícios

Leia mais

Banco 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 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 mais

As restrições de integridade garantem a consistência da BD exemplos

As restrições de integridade garantem a consistência da BD exemplos Bases de Dados Restrições de integridade Restrições de integridade As restrições de integridade garantem a consistência da BD exemplos RI 1: os números de conta são únicos RI 2: a cidade de uma agência

Leia mais

SQL-99: Esquema de BD EMPRESA

SQL-99: Esquema de BD EMPRESA SQL-99: Esquema de BD EMPRESA SQL-99: Instâncias do esquema EMPRESA 1 Consultas externa, aninhada e correlacionada para cada tupla da consulta externa, a consulta aninhada devolve o atributo solicitado

Leia mais

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

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 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 mais

14/9/2009. Banco de Dados

14/9/2009. Banco de Dados Banco de Dados Fernando Fonseca & Ana Carolina Salgado Roteiro Analisar Minimundo Criar Esquema no SGBD Oracle Script criacaotabelas.sql em http://www.cin.ufpe.br/~fdfd/dinter/sql Inserir dados no banco

Leia mais

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

Fundamentos de Programação ORACLE: SQL. Prof. Walter Gima Fundamentos de Programação ORACLE: SQL. 1 Prof. Walter Gima walter_gima@yahoo.com.br ALIAS RELACIONAMENTOS TO_CHAR SYSDATE ROWNUM CONCATENAÇÃO PROCEDURES FUNCTIONS 2 ALIAS Utilizado para facilitar o uso

Leia mais

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

Material Teórico. Procedures, Functions, Exceptions e Triggers. Responsável pelo Conteúdo: Prof. Ms. Alexander Gobbato Albuquerque Banco de Dados Material Teórico Procedures, Functions, Exceptions e Triggers Responsável pelo Conteúdo: Prof. Ms. Alexander Gobbato Albuquerque Revisão Textual: Prof. Ms. Claudio Brites Procedures, Functions,

Leia mais

Introdução ao PostgreSQL

Introdução ao PostgreSQL Introdução ao PostgreSQL Fontes Karine Reis Ferreira karine@dpi.inpe.br Gilberto Câmara gilberto@dpi.inpe.br Gilberto Ribeiro de Queiroz gribeiro@dpi.inpe.br Marcos André Gonçalves - UFMG Parte 3 Aula

Leia mais

Oracle PL/SQL Overview

Oracle 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 mais

SQL Linguagem de Manipulação de Dados SQL DML SQL DML. Exemplo Modelo Relacional. Exemplo ME-R SQL DML CONTINUAÇÃO...

SQL Linguagem de Manipulação de Dados SQL DML SQL DML. Exemplo Modelo Relacional. Exemplo ME-R SQL DML CONTINUAÇÃO... Ciência da Computação GBC043 Sistemas de Banco de Dados SQL Linguagem de Manipulação de Dados Profa. Maria Camila Nardini Barioni camila.barioni@facom.ufu.br Bloco B - sala 1B137 SQL DML CONTINUAÇÃO...

Leia mais

FESURV UNIVERSIDADE DE RIO VERDE FACULDADE DE CIÊNCIA DA COMPUTAÇÃO. Stored Procedures e Triggers

FESURV UNIVERSIDADE DE RIO VERDE FACULDADE DE CIÊNCIA DA COMPUTAÇÃO. Stored Procedures e Triggers FESURV UNIVERSIDADE DE RIO VERDE FACULDADE DE CIÊNCIA DA COMPUTAÇÃO Stored Procedures e Triggers THIAGO BORGES DE OLIVEIRA Definição e implementação de stored procedures e triggers para SGBD's relacionais.

Leia mais

BCD29008 Banco de dados

BCD29008 Banco de dados BCD29008 Banco de dados Linguagem SQL Prof. Emerson Ribeiro de Mello Instituto Federal de Santa Catarina IFSC campus São José mello@ifsc.edu.br http://docente.ifsc.edu.br/mello/bcd 21 de agosto de 2017

Leia mais

IMPLEMENTAÇÃO DE BANCO DE DADOS

IMPLEMENTAÇÃO DE BANCO DE DADOS IMPLEMENTAÇÃO DE BANCO DE DADOS MODULO 2 LINGUAGEM SQL CONTEÚDO 2. LINGUAGEM SQL 2.1 Linguagens de Definição de Dados (DDL) 2.1.1 Criação de tabela: CREATE 2.1.2 Alteração de Tabela: ALTER 2.1.3 Exclusão

Leia mais

Stored Procedures e Triggers

Stored Procedures e Triggers e Triggers Professor: Ricardo Luis dos Santos IFSUL 2015 Agenda Rotinas Armazenadas Stored Procedures Exemplos Triggers Exemplos Exercícios 2 Rotinas Armazendas Rotinas Armazenadas são um conjunto de comandos

Leia mais

GBC043 - Sistemas de Banco de Dados SQL/DML no PostgreSQL. Ilmério Reis da Silva ilmerio@facom.ufu.br www.facom.ufu.br/~ilmerio/sbd UFU/FACOM/BCC

GBC043 - Sistemas de Banco de Dados SQL/DML no PostgreSQL. Ilmério Reis da Silva ilmerio@facom.ufu.br www.facom.ufu.br/~ilmerio/sbd UFU/FACOM/BCC GBC043 - Sistemas de Banco de Dados SQL/DML 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 SQL Comandos

Leia mais

Monitoria GDI. Aula Prática. OR (Aula 1)

Monitoria GDI. Aula Prática. OR (Aula 1) Monitoria GDI Aula Prática OR (Aula 1) Roteiro Tipos Tabela de Objetos Herança Métodos Referências 2 Tipos e Tabelas de Objetos Tipos de Objetos oobjetos são abstrações de entidades do mundo real, como

Leia mais

Bases de Dados. Restrições de integridade. Restrições de integridade. As restrições de integridade garantem a consistência da BD exemplos

Bases de Dados. Restrições de integridade. Restrições de integridade. As restrições de integridade garantem a consistência da BD exemplos Bases de Dados Restrições de integridade Restrições de integridade As restrições de integridade garantem a consistência da BD exemplos RI 1: o saldo de uma conta não pode ser null RI 2: nenhuma conta pode

Leia mais

António Rocha Nuno Melo e Castro

António Rocha Nuno Melo e Castro António Rocha Nuno Melo e Castro PL/SQL Extensão ao SQL Estruturada em blocos Permite controlo do fluxo de execução Permite integração entre diferentes ferramentas Oracle Não permite comandos DDL PL/SQL

Leia mais

ESTUDO DE CASO EM PL/SQL

ESTUDO DE CASO EM PL/SQL ESTUDO DE CASO EM PL/SQL O sistema de pedidos da XDK Esportes. Vamos criar um pequeno sistema de pedidos para uma loja de esportes, vamos implementar as regras de um negócio utilizando a linguagem PL/SQL

Leia mais

Monitoria GDI Aula Prática. DML + PL/SQL parte 1

Monitoria 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 mais

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

SQL Pacotes. Profa. Dra. Cristina Dutra de Aguiar Ciferri. Laboratório de Bases de Dados Pacotes SQL Pacotes Laboratório de Bases de Dados Características Pacotes objetos do banco de dados são equivalentes a bibliotecas Armazenam procedimentos funções definições de cursores declarações de variáveis

Leia mais

Administração de Banco de Dados

Administração de Banco de Dados Administração de Banco de Dados Aula 9 Prof. Marcos Alexandruk Aula 9 Visões (Views) Visões regulares Visões materializadas Visões de objeto Uma visão (view) é uma representação lógica de uma ou mais tabelas.

Leia mais

BANCO DE DADOS II SQL Básico. COTEMIG Gerson Borges

BANCO DE DADOS II SQL Básico. COTEMIG Gerson Borges BANCO DE DADOS II SQL Básico COTEMIG Gerson Borges gerson@cotemig.com.br Definição de Banco de Dados [Elmasri & Navathe, 2000] Um banco de dados é uma coleção de dados relacionados Representando algum

Leia mais

BANCO 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 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 mais

Uma solução possível para garantir, em ambiente APEX, a consistência duma estrutura ISA total e disjuntiva.

Uma solução possível para garantir, em ambiente APEX, a consistência duma estrutura ISA total e disjuntiva. Uma solução possível para garantir, em ambiente APEX, a consistência duma estrutura ISA total e disjuntiva. A possible solution to ensure, in APEX environment, the consistency of a total and disjunctive

Leia mais

Tarefa Orientada 17 Scripts

Tarefa Orientada 17 Scripts Tarefa Orientada 17 Scripts Objectivos: Declaração de variáveis escalares Declaração de variáveis do tipo tabela Tabelas temporárias Estruturas Condicionais Estruturas de Repetição Tratamento de erros

Leia mais

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

Acadêmica: Giselle Mafra Schlosser Orientador: Everaldo Artur Grahl AVALIAÇÃO DA QUALIDADE DO CÓDIGO FONTE ESCRITO EM PL/SQL Acadêmica: Giselle Mafra Schlosser Orientador: Everaldo Artur Grahl Roteiro Introdução Objetivos do trabalho Fundamentação teórica Desenvolvimento

Leia mais

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

Laboratório de Banco de Dados. Prof. Luiz Vivacqua. (la.vivacqua@gmail.com) Ementa Conceitos básicos Sistemas de banco de dados Relacional Visão Geral do PostGreSQL Álgebra Relacional Operadores básicos Operadores adicionais A Linguagem de Consulta Estruturada

Leia mais