7P/SI – 2010/01 Prof. Carlos Alberto Seixas. Agenda Visão Geral sobre os Conceitos e...
-
Upload
nathalie-menor -
Category
Documents
-
view
218 -
download
0
Transcript of 7P/SI – 2010/01 Prof. Carlos Alberto Seixas. Agenda Visão Geral sobre os Conceitos e...
7P/SI – 2010/01
Prof. Carlos Alberto Seixas
AgendaVisão Geral sobre os Conceitos e
Implementação sobre SGBs MySQL Revisão das Práticas
Práticas 1 e 2 (aula 3). Prática 3 – Permissões no MySQL Prática 4 – Definição de chaves
Novas Práticas:Prática 5Prática 6
Pontos de discussão: Bancos de DadosTrabalho em grupo para preparação do seminário
Conceitos e Implementação sobre MySQLViewsUma view(visão) é uma tabela virtual na qual os
dados não estão fisicamente armazenados. Ela é apenas uma visão de um grupo de colunas de uma ou mais tabelas do banco de dados. No exemplo abaixo, criaremos uma view que terá apenas as colunas COD_PRODUTO, DSC_PRODUTO.
CREATE VIEW loja.VIEW_PRODUTOS AS SELECT cod_produto, dsc_produto FROM produtos;
ViewResultado:CREATE VIEW loja.VIEW_PRODUTOS AS
SELECT cod_produto, dsc_produto FROM produtos;
Stored ProceduresConjunto de comandos SQL armazendos no
servidor que realizam tarefas específicas e são ativadas como comandos. Podem receber parâmetros de entrada, saída ou entrada e saída.
Stored ProceduresExemplo:DELIMITER $$
DROP PROCEDURE IF EXISTS escola.pr_total $$CREATE PROCEDURE escola.pr_total ( OUT total INT)BEGINSELECT count(0) INTO totalFROM produtos;END $$
Stored ProceduresExecutando a procedure via linha de comandoC:\ mysql -u root -p
(após teclar ENTER informe a senha do usuário root)
mysql> use loja (Informamos o database que iremos utilizar)
mysql> call pr_total(@teste); (Chamamos a procedure pr_total e armazenamos o resultado em teste.)
mysql> select @teste; (Exibimos o resultado. No exemplo acima, trazemos a quantidade de produtos cadastrados.)
Triggers
É um bloco PL/SQL armazendo em um banco de dados e executado sempre que o evento ocorrer.
Esse evento pode ser um DML (update, insert, delete) , um DDL (create, alter, drop, truncate table) ou mesmo um evento ocorrido do banco, como uma conexão, por exemplo.
TriggersExemplo:Criaremos a tabela HISTÓRICO que armazenará todas as
alterações de valores efetuadas na tabela de PRODUTOS.CREATE TABLE loja.historico (
COD_HIST INTEGER NOT NULL AUTO_INCREMENT , COD_PRODUTO INTEGER NOT NULL , DT_ALTERACAO DATE NOT NULL , VLR_ANTIGO DOUBLE(4,2) NOT NULL , VLR_NOVO DOUBLE(4,2) NOT NULL , FOREIGN KEY(COD_PRODUTO) REFERENCESprodutos(COD_PRODUTO) , PRIMARY KEY(COD_HIST) )ENGINE = INNODB;
TriggersA trigger TR_PRODUP que será acionada quando ocorrer
um UPDATE na tabela de PRODUTOS.DELIMITER $$
DROP TRIGGER loja.tr_produp $$CREATE TRIGGER tr_produp BEFORE UPDATE ON produtosFOR EACH ROWBEGIN DECLARE TESTE VARCHAR(30); DECLARE DATA DATE; SET DATA = NOW();INSERT INTO HISTORICO SET COD_PRODUTO = OLD.cod_produto , VLR_ANTIGO = OLD.vlr_produto , VLR_NOVO = NEW.vlr_produto , DT_ALTERACAO = DATA;END $$
TriggersApós alterarmos algum dado na tabela
produtos é disparado a trigger tr_produp que fará automaticamente uma inserção na tabela de histórico.
Para testarmos, pode-se alterar o valor de um produto de R$ 22,00 para R$ 25,00.
UPDATE produtos SET vlr_produto = 25.00 WHERE cod_produto = 1;
TriggersApós a atualização, se dermos um SELECT na
tabela HISTÓRICO teremos como resultado:SELECT * FROM historico;
ExercícioPrática 1 – Manipulação de objetos no
MySQL, via SQLYog ,Verificação do serviço MySQL, conexão com MySQL através do MySQL Yog, criação Banco de Dados: Escola, criação tabela alunos, verificação do tipo de tabela criada
Pontos de discussão - SeminárioDefinição dos pontos propostos na aula
passada;Apresentação de textos da pesquisa
realizada;Construção de argumentação para os novos
pontos apresentados;
BibliografiaGuia de referencia MySql 5.0, disponível em
Mysql.comJulio César Martini ,Imasters.com, Mysql 5.