7p/si – 2010/01 prof. carlos alberto seixas. agenda visão geral sobre os conceitos e...
TRANSCRIPT
![Page 1: 7P/SI – 2010/01 Prof. Carlos Alberto Seixas. Agenda Visão Geral sobre os Conceitos e Implementação sobre SGBs MySQL Revisão das Práticas Práticas 1 e](https://reader030.vdocuments.net/reader030/viewer/2022033107/570638481a28abb8238f4233/html5/thumbnails/1.jpg)
7P/SI – 2010/01
Prof. Carlos Alberto Seixas
![Page 2: 7P/SI – 2010/01 Prof. Carlos Alberto Seixas. Agenda Visão Geral sobre os Conceitos e Implementação sobre SGBs MySQL Revisão das Práticas Práticas 1 e](https://reader030.vdocuments.net/reader030/viewer/2022033107/570638481a28abb8238f4233/html5/thumbnails/2.jpg)
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
![Page 3: 7P/SI – 2010/01 Prof. Carlos Alberto Seixas. Agenda Visão Geral sobre os Conceitos e Implementação sobre SGBs MySQL Revisão das Práticas Práticas 1 e](https://reader030.vdocuments.net/reader030/viewer/2022033107/570638481a28abb8238f4233/html5/thumbnails/3.jpg)
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;
![Page 4: 7P/SI – 2010/01 Prof. Carlos Alberto Seixas. Agenda Visão Geral sobre os Conceitos e Implementação sobre SGBs MySQL Revisão das Práticas Práticas 1 e](https://reader030.vdocuments.net/reader030/viewer/2022033107/570638481a28abb8238f4233/html5/thumbnails/4.jpg)
ViewResultado:CREATE VIEW loja.VIEW_PRODUTOS AS
SELECT cod_produto, dsc_produto FROM produtos;
![Page 5: 7P/SI – 2010/01 Prof. Carlos Alberto Seixas. Agenda Visão Geral sobre os Conceitos e Implementação sobre SGBs MySQL Revisão das Práticas Práticas 1 e](https://reader030.vdocuments.net/reader030/viewer/2022033107/570638481a28abb8238f4233/html5/thumbnails/5.jpg)
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.
![Page 6: 7P/SI – 2010/01 Prof. Carlos Alberto Seixas. Agenda Visão Geral sobre os Conceitos e Implementação sobre SGBs MySQL Revisão das Práticas Práticas 1 e](https://reader030.vdocuments.net/reader030/viewer/2022033107/570638481a28abb8238f4233/html5/thumbnails/6.jpg)
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 $$
![Page 7: 7P/SI – 2010/01 Prof. Carlos Alberto Seixas. Agenda Visão Geral sobre os Conceitos e Implementação sobre SGBs MySQL Revisão das Práticas Práticas 1 e](https://reader030.vdocuments.net/reader030/viewer/2022033107/570638481a28abb8238f4233/html5/thumbnails/7.jpg)
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.)
![Page 8: 7P/SI – 2010/01 Prof. Carlos Alberto Seixas. Agenda Visão Geral sobre os Conceitos e Implementação sobre SGBs MySQL Revisão das Práticas Práticas 1 e](https://reader030.vdocuments.net/reader030/viewer/2022033107/570638481a28abb8238f4233/html5/thumbnails/8.jpg)
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.
![Page 9: 7P/SI – 2010/01 Prof. Carlos Alberto Seixas. Agenda Visão Geral sobre os Conceitos e Implementação sobre SGBs MySQL Revisão das Práticas Práticas 1 e](https://reader030.vdocuments.net/reader030/viewer/2022033107/570638481a28abb8238f4233/html5/thumbnails/9.jpg)
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;
![Page 10: 7P/SI – 2010/01 Prof. Carlos Alberto Seixas. Agenda Visão Geral sobre os Conceitos e Implementação sobre SGBs MySQL Revisão das Práticas Práticas 1 e](https://reader030.vdocuments.net/reader030/viewer/2022033107/570638481a28abb8238f4233/html5/thumbnails/10.jpg)
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 $$
![Page 11: 7P/SI – 2010/01 Prof. Carlos Alberto Seixas. Agenda Visão Geral sobre os Conceitos e Implementação sobre SGBs MySQL Revisão das Práticas Práticas 1 e](https://reader030.vdocuments.net/reader030/viewer/2022033107/570638481a28abb8238f4233/html5/thumbnails/11.jpg)
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;
![Page 12: 7P/SI – 2010/01 Prof. Carlos Alberto Seixas. Agenda Visão Geral sobre os Conceitos e Implementação sobre SGBs MySQL Revisão das Práticas Práticas 1 e](https://reader030.vdocuments.net/reader030/viewer/2022033107/570638481a28abb8238f4233/html5/thumbnails/12.jpg)
TriggersApós a atualização, se dermos um SELECT na
tabela HISTÓRICO teremos como resultado:SELECT * FROM historico;
![Page 13: 7P/SI – 2010/01 Prof. Carlos Alberto Seixas. Agenda Visão Geral sobre os Conceitos e Implementação sobre SGBs MySQL Revisão das Práticas Práticas 1 e](https://reader030.vdocuments.net/reader030/viewer/2022033107/570638481a28abb8238f4233/html5/thumbnails/13.jpg)
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
![Page 14: 7P/SI – 2010/01 Prof. Carlos Alberto Seixas. Agenda Visão Geral sobre os Conceitos e Implementação sobre SGBs MySQL Revisão das Práticas Práticas 1 e](https://reader030.vdocuments.net/reader030/viewer/2022033107/570638481a28abb8238f4233/html5/thumbnails/14.jpg)
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;
![Page 15: 7P/SI – 2010/01 Prof. Carlos Alberto Seixas. Agenda Visão Geral sobre os Conceitos e Implementação sobre SGBs MySQL Revisão das Práticas Práticas 1 e](https://reader030.vdocuments.net/reader030/viewer/2022033107/570638481a28abb8238f4233/html5/thumbnails/15.jpg)
BibliografiaGuia de referencia MySql 5.0, disponível em
Mysql.comJulio César Martini ,Imasters.com, Mysql 5.