RECUPERAÇÃO DE CONTEÚDO BANCO DE DADOS



Documentos relacionados
Bancos de Dados I. Integridade semântica

BANCO DE DADOS. info 3º ano. Prof. Diemesleno Souza Carvalho


Projeto de Banco de Dados

Banco de Dados II. Triggers e Functions. Prof. Moser Fagundes. Curso TSI Instituto Federal Sul-Rio-Grandense (IFSul) Campus Charqueadas

Triggers. um trigger permite que uma determinada sequência de comandos SQL seja accionada quando um determinado evento ocorre.

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

PL/pgSQL por Diversão e Lucro

Sistemas de Informação

Funções Definidas pelo Usuário

PROGRAMAÇÃO EM BANCO DADOS Stored Procedure e Trigger

trigger insert, delete, update

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

PROGRAMAÇÃO EM BANCO DADOS Store Procedure e Trigger

Laboratório de Banco de Dados Prof. Luiz Vivacqua. PL/pgSQL A Linguagem de programação do PostgreSQL

Oracle 10g: SQL e PL/SQL

Introdução à Banco de Dados. Nathalia Sautchuk Patrício

PostgreSQL. André Luiz Fortunato da Silva Analista de Sistemas CIRP / USP alf@cirp.usp.br

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

PHP INTEGRAÇÃO COM MYSQL PARTE 1

Auditoria de sistemas Deixe que seu banco de dados faça o trabalho por você

BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar

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

SQL Procedural. Josino Rodrigues Neto

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

SQL Gatilhos (Triggers)

PROCEDIMENTOS ARMAZENADOS (Stored Procedures)

8. Outros tipos de Transação (Modo de Transação de Autoconfirmação e Modo Implícito)

FUNCTION ) RETURNS INTEGER AS $$ DECLARE

Listando itens em ComboBox e gravando os dados no Banco de Dados MySQL.

Triggers no PostgreSQL

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

Procedimentos armazenados

Gatilhos (Triggers) Prof. Márcio Bueno Elaborado por Maria Lígia B. Perkusich

Oracle PL/SQL Overview

Bases de Dados 2007/2008. Aula 9

Tarefa Orientada 19 Triggers

SQL Server Triggers Aprenda a utilizar triggers em views e auditar as colunas atualizadas em uma tabela

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

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

Prof. Carlos Majer Aplicações Corporativas UNICID

BANCO DE DADOS: SQL. Edson Anibal de Macedo Reis Batista. 27 de janeiro de 2010

EXEMPLOS DE COMANDOS NO SQL SERVER

Uma expressão básica em SQL consiste em três cláusulas: select, from e where.

Banco de Dados Avançados Banco de Dados Ativo

PostgreSQL 8.0. Diogo Biazus

Transacções. Vitor Vaz da Silva

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

A linguagem SQL

Transações Seguras em Bancos de Dados (MySQL)

TRANSAÇÕES. Considerando que estes comandos fazem parte de uma TRANSAÇÃO (veremos como indicar isso):

BD II (SI 587) Procedimentos Armazenados

Histórico de revisões

Logado no OracleXE vamos acessar a opção:

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

CONCORRÊNCIA. 1. Introdução. Recursos exclusivos. Não necessita controle. Abundância de recursos compartilhados. Controle necessário mas mínimo

Bases de Dados 2007/2008. Aula 8

O que são Bancos de Dados?

Oracle Comandos para Processamento de Transações

Programação WEB II. PHP e Banco de Dados. progweb2@thiagomiranda.net. Thiago Miranda dos Santos Souza

SQL DDL Criando Tabelas e Restrições

2. Criar um bloco PL/SQL anônimo para imprimir as tabuadas abaixo: 5 X 10 = 50 5 X 2 = X 10 = X 2 = 2...

PHP INTEGRAÇÃO COM MYSQL PARTE 2

(1,n) venda. (1,1) realizacao. cliente. (0,n) (1,1) contem. produto. Laboratório de Banco de Dados Exercicios

SQL Server Ferramenta de administração. SQL Server Management Studio. 1º passo conectar ao banco de dados 2ª Query (consulta) usando SQL

Relatório. Projecto de Base de Dados Parte 2. Turno: quinta-feira, 11:30 Grupo 25: André Gonçalves Rui Barradas Hélton Miranda 68477

Triggers(Gatilhos) Tiago Alves de Oliveira

14/9/2009. Banco de Dados

Manual do Sistema de Notificação 1

Regras de Negócios é com o Elefante!

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

Linguagem de Consulta Estruturada SQL- DML

4.6. SQL - Structured Query Language

Oracle 10g Dicas de PL/SQL. Conteúdo

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

Trabalhando com conexão ao banco de dados MySQL no Lazarus. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011

MySQL. Prof. César Melo. com a ajuda de vários

Desenvolvimento de Sistemas Web Prof. Leandro Roberto. Aula 18 JavaScript: Eventos MySQL PHP (insert, update e delete)

Controle de transações em SQL

Create Sequence Cria uma sequence. Uma sequence é um objeto que permite vários usuários gerarem valores inteiros sem repetição.

CIÊNCIA E TECNOLOGIA DO RIO

Banco de Dados. Maurício Edgar Stivanello

Leonardo Gresta Paulino Murta


Autenticação e Controle de Acesso em Forms e Reports via Oracle Internet Directory. Daniel Murara Barcia danielbarcia@hotmail.com

Instituto Federal de Educação, Ciência e Tecnologia de São Paulo - IFSP

MANUAL INSTALAÇÃO WEB SERVICE

estiver abaixo ou igual ao mínimo, um novo pedido é acrescentado a uma relação pedidos.

Banco de Dados. Prof. Antonio

BD SQL Server. Licenciatura em Engenharia Informática e Computação. Bases de Dados 2003/04

Python Acessando o Banco de Dados MySQL

Banco de Dados. Marcio de Carvalho Victorino Exercícios SQL

Comandos de Manipulação

Persistência de Dados


Transcrição:

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: uma pessoa possuiu um privilégio (gerente, supervisou ou usuário) e trabalha em um ou mais projetos, esses por sua vez pertencem a apenas um departamento (pessoa, financeiro, jurídico). Existem na instituição privilégios e departamentos sem nenhum relacionamento e projetos relacionados a muitas pessoas. Modelo Conceitual Modelo Entidade Relacionamento

Inserts insert into Privilegio(descricao) values ("gerente"); insert into Privilegio(descricao) values ("supervisor"); insert into Privilegio(descricao) values ("usuário"); insert into Departamento(descricao) values ("pessoal") insert into Departamento(descricao) values ("financeiro") insert into Departamento(descricao) values ("juridico") insert into Pessoa(nome,cod_privilegio) values ("João",1); insert into Pessoa(nome,cod_privilegio) values ("Maria",2); insert into Pessoa(nome,cod_privilegio) values ("José",3); data_termino,data_termino_previsto) values ("Projeto1",1,500.00,"2014-01- 01","2014-12-12","2014-12-12"); data_termino_previsto) values ("Projeto2",2,600.00,"2014-01-01","2014-12-12"); data_termino_previsto) values ("Projeto3",3,700.00,"2014-01-01","2014-12-12"); data_termino_previsto) values ("Projeto4",2,600.00,"2013-01-01","2013-12-12"); insert into Trabalha(cod_pessoa,cod_projeto) values (1,1); insert into Trabalha(cod_pessoa,cod_projeto) values (2,2); insert into Trabalha(cod_pessoa,cod_projeto) values (3,3); Selects Selecionar as pessoas que estão relacionadas ao projeto 1 select p.nome from Pessoa p, Trabalha t where p.cod_pessoa=t.cod_pessoa and t.cod_projeto=1; Selecionar todos os projetos inacabados select p.nome from Projetos p where p.data_termino is null; Selecionar as pessoas que trabalham em projetos do departamento jurídico select p.nome from Pessoa p, Trabalha t, Departamento d, Projetos pr where p.cod_pessoa=t.cod_pessoa and t.cod_projeto=pr.cod_projetos and pr.cod_departamento=d.cod_departamento and d.descricao="juridico"; Contar o numero de gerentes que trabalham no departamento pessoal. SELECT COUNT(p.cod_pessoa) from Pessoa p, Projetos pr, Privilegio pri, Departamento d, Trabalha t where pri.descricao="gerente" and p.cod_privilegio=pri.cod_privilegio and p.cod_pessoa=t.cod_pessoa and t.cod_projeto=pr.cod_projetos and pr.cod_departamento=d.cod_departamento and d.descricao="pessoal"; Update UPDATE pessoa SET nome ='João Felipe' WHERE cod_pessoa=1;

Store Procedure drop procedure if exists SP_atraso$$ create procedure SP_atraso() Begin select p.nome, d.descricao from Projetos p, Departamento d WHERE p.data_termino is null and p.cod_departamento=d.cod_departamento and CURDATE()>p.data_termino_previsto group by d.descricao; end $$ call SP_atraso(); Event Schedule drop event Evento_custo; create event Evento_custo on schedule every 1 month STARTS CURRENT_DATE on completion preserve enable do begin update Projetos set custo=custo*1.1 where cod_projetos>0 and data_termino is null; end$$ Trigger drop trigger if exists controle_projetos$$ create trigger controle_projetos before insert on Trabalha for each row begin declare contador int; SELECT COUNT(t.cod_projeto) into contador FROM Pessoa p, Projetos pj, Trabalha t WHERE p.cod_pessoa=t.cod_pessoa AND pj.cod_projetos=t.cod_projeto AND p.cod_pessoa=new.cod_pessoa AND pj.data_termino is null; if (contador > 3) then SELECT 0 FROM `Pessoa cadastrada em mais de 3 projetos ativos` INTO @error; end if; end$$

Function CREATE FUNCTION media() RETURNS FLOAT DETERMINISTIC BEGIN DECLARE qtdd,a INT; DECLARE media,soma FLOAT; SELECT COUNT(cod_projetos) into qtdd from Projetos where 1; set a=1; set media=0; while(a<=qtdd) do SELECT custo into soma FROM Projetos WHERE cod_projetos=a; set media=media+soma; set a= a+1; end while; SET media = media/qtdd; RETURN media; END $$ delimiter; Cursor drop procedure if exists SP_pessoas$$ create procedure SP_pessoas(OUT soma_total INT) Begin declare contador int default 0; declare pessoa int default 0; declare soma int default 0; declare meucursor cursor for select cod_pessoa from Trabalha; declare continue handler for not found set contador=1; open meucursor; meuloop: LOOP fetch meucursor into pessoa; if contador = 1 then leave meuloop; end if; set soma=soma+pessoa; end loop meuloop; set soma_total=soma; end $$ call SP_pessoas(@variavel_temporaria); select @variavel_temporaria;

Transação Após conectar com o mysql através do terminal, e selecionar a database que se vai utilizar (comando use nome_database ), pode-se mexer com as tabelas da mesma. O exemplo a seguir mostra que em ambos os terminais a tabela Tb_alunos possui os mesmos dados. Agora com o comando start transaction a transação foi iniciada no 1 terminal, imediatamente um novo registro foi inserido na tabela Tb_alunos do mesmo. Mostrando novamente os registros da tabela nos dois terminais, vemos que o 6 registro só aparece no primeiro terminal, pois esse está no meio de uma transação. Através do comando commit a transação foi efetuada, e o 6 registro está realmente cadastrado no banco, e aparece na tabela nos dois terminais.

Com esses mesmos terminais, iniciamos novamente uma transação no 1 terminal, e como executado antes, um novo registro foi inserido no terminal com transação aberta. Agora através do comando rollback, pudemos desfazer o registro e esse não foi efetuado no banco de dados.