15
7P/SI – 2010/01 Prof. Carlos Alberto Seixas

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

Embed Size (px)

Citation preview

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

BibliografiaGuia de referencia MySql 5.0, disponível em

Mysql.comJulio César Martini ,Imasters.com, Mysql 5.