BANCO DE DADOS EM APLICATIVOS WEB Aula 13

Slides:



Advertisements
Apresentações semelhantes
01/08/2011 Professor Leomir J. Borba- –
Advertisements

09/05/2011 Professor Leomir J. Borba- –
O Comando DROP INDEX Para eliminar um índice definido sobre uma tabela, utilize: Drop Index on ; Ex: No Access: Drop Index X on.
Triggers Renata Viegas.
01/08/2011 Professor Leomir J. Borba- –
TECNOLOGIA EM SISTEMAS PARA INTERNET Banco de dados em aplicativos WEB Aula /08/2011 Professor Leomir J. Borba- –
TECNOLOGIA EM SISTEMAS PARA INTERNET Banco de dados em aplicativos WEB Aula /08/2011 Professor Leomir J. Borba- –
CIÊNCIA DA COMPUTAÇÃO DESENVOLVIMENTO DE SISTEMAS Aula 11
CIÊNCIA DA COMPUTAÇÃO DESENVOLVIMENTO DE SISTEMAS Aula 10
BANCO DE DADOS EM APLICATIVOS WEB Aula 14
BANCO DE DADOS EM APLICATIVOS WEB Aula 15
TECNOLOGIA EM REDES DE COMPUTADORES Algoritmos e programação de computadores Aula /08/2011 Professor Leomir J. Borba-
TECNOLOGIA EM REDES DE COMPUTADORES Algoritmos e programação de computadores Aula /08/2011 Professor Leomir J. Borba-
03/08/2011 Professor Leomir J. Borba- –
Prof.: Bruno Rafael de Oliveira Rodrigues
Banco de Dados SQL TRIGGERS (Gatilhos)
Banco de Dados SQL Stored Procedures
SISTEMAS DE INFORMAÇÃO Sistemas de Bancos de Dados 2º Semestre – 2010 Pedro Antonio Galvão Junior Fone:
Maurício Edgar Stivanello
Sistema Gerenciador de Banco de Dados SGBD
Restrições de Integridade
Introdução à Engenharia da Computação
Oficina sobre banco de dados
SCC Bancos de Dados e Suas Aplicações
Material III-Bimestre Wagner Santos C. de Jesus
Operação de União “JOIN”
Linguagem de Banco de Dados - SQL
Trabalho de Conclusão de Curso Moisés Alves Carneiro Filho
MySQL Gerdson de Araújo Silva Universidade Federal de Alagoas Maceió-AL, 21 de maio de 2009.
Bancos de Dados I Renata Viegas
Triggers e StoreProcedures
Banco de dados Profª Kelly Medeiros.
SISTEMAS DE INFORMAÇÃO – UNIESP/2010
Aula R Prof. Naércio Filho Técnico em Informática
Equipe de monitoria Aula prática 3.  Caso de estudo  Igualando situações  Cursor  Function  Procedure  Trigger  Package  Surpresa...
TECNOLOGIA EM SISTEMAS PARA INTERNET Banco de dados em aplicativos WEB Aula /08/2011 Professor Leomir J. Borba- –
Primeira aula de PL/SQL Parte II
SEGUNDA FASE / S2B MIC PERNAMBUCO SEGUNDA FASE / S2B MIC PERNAMBUCO
Oracle 9i: SQL e PL/SQL Bruno Celso Cunha de Freitas
Sistemas de Informação Prof. Carlos Alberto Seixas Banco de Dados II /01 UNIESP
Desenvolvendo um script SQL
Rafael Lucio, Desenvolvedor Jr Padrão Informática e Assessor de TI Secretaria Municipal da Saúde;
Banco de Dados Parte 04 Ceça. Ceça Moraes 2 Conteúdo  Os três níveis da arquitetura  Mapeamentos  Arquitetura cliente-servidor.
Banco de dados.
A Linguagem PHP Instituto Vianna Júnior Desenvolvimento para Web Prof. Lúcia Helena de Magalhães 2008.
Projeto de Banco de Dados Profa. Ceça
Campus de Caraguatatuba Aula 2: Introdução a Tecnologia de BD
Monitoria GDI Aula Prática Aula 2: PL 1. Estudo de caso - continuação Pegar arquivo GDI.zip em Descompactar arquivo: o criacaoTabelas.SQL.
1 15/4/ :36 FMU – 1. Semestre – Tecnologia – Analise e Desenvolvimento de Sistemas Professor: Eduardo Silvestri Aluno:Clóvis de Oliveira- RA
Triggers (Gatilhos) Professor Esp. Diego André Sant’Ana
Prof. Alessandro Gonçalves
Banco de Dados I I Comandos SQL
Linguagem SQL Prof. Juliano.
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.
IEC Banco de Dados I Aula 04 – SQL (II) Turmas: Sistemas de Informação Professora: André Luiz da Costa Carvalho
Fundamento de Banco de Dados
Daniel Paulo SQL Server 2014 Módulo II Daniel Paulo
VBA – Visual Basic para Aplicativos
Linguagem de definição de dados - SQL
BD SQL (Insert, Update, Delete) e Select Hayslan Nicolas Colicheski Bucarth – IFRO / 2015 –
Fundamentos de Banco de Dados Prof. André Cypriano M. Costa
Banco de Dados -Aprendendo conceitos -Usando o SQL Conf para:
Fundamentos de Banco de Dados Prof. André Cypriano M. Costa
Aula 13 - Triggers. Triggers no SGBD Postgres  Os Triggers (Gatilhos) são funções preparadas para serem disparadas no caso de alguma alteração ocorrer.
Banco de Dados II Prof: Márcio Soussa Curso de Sistemas de Informação Faculdades Jorge Amado.
Persistência de dados e padrão DAO
Banco de Dados Prof. MSc Wagner Siqueira Cavalcante.
Prática de Banco de Dados Créditos: Prof. Jefferson Silva Adaptações: Prof. Nécio de Lima Veras.
Programação para Internet Aula 11 SQL (Introdução a linguagem, comandos de modificação: Create, Drop, Alter, Insert, Delete, Update)
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Capítulo 5 Mais SQL: Consultas Complexas, Triggers e Views.
Transcrição da apresentação:

BANCO DE DADOS EM APLICATIVOS WEB Aula 13 25/03/2017 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com 25/04/2011 Professor Leomir J. Borba- professor.leomir@gmail.com –http:professorleomir.wordpress.com 1

Agenda Procedimentos (Procedures) Gatilhos (Triggers) Conexão do Banco de Dados com a Linguagem de Programação. 25/03/2017 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com 25/04/2011 Professor Leomir J. Borba- professor.leomir@gmail.com –http:professorleomir.wordpress.com 2

Procedimentos (Procedures) Também chamados de procedimentos armazenados (stored procedures), representam porções de código SQL e não SQL que ficam armazenados de forma compilada no catálogo do SGBD e são ativados explicitamente por aplicações, triggers ou outras rotinas. Como nas linguagens tradicionais de programação, um procedimento realiza um processamento qualquer e não devolve valor algum em seu final. Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com 25/03/2017 25/04/2011 Professor Leomir J. Borba- professor.leomir@gmail.com –http:professorleomir.wordpress.com 3

Procedimentos (Procedures) Modelos de acesso 25/03/2017 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com 25/04/2011 Professor Leomir J. Borba- professor.leomir@gmail.com –http:professorleomir.wordpress.com 4

Procedimentos (Procedures) Modelos de acesso - continuação Explicar compilação na primeira execuação e execução em cache a partir da segunda execução para otimização. 25/03/2017 5 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com 25/04/2011 Professor Leomir J. Borba- professor.leomir@gmail.com –http:professorleomir.wordpress.com 5 5

Procedimentos (Procedures) Manipulação Criação – Sem Parametros. DELIMITER // CREATE PROCEDURE <NOME PROCEDURE> AS BEGIN SELECT * FROM EMPREGADO ORDER BY NOME DESC END // Explicar compilação na primeira execuação e execução em cache a partir da segunda execução para otimização. 25/03/2017 6 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com 25/04/2011 Professor Leomir J. Borba- professor.leomir@gmail.com –http:professorleomir.wordpress.com 6 6

Procedimentos (Procedures) Manipulação Criação – Com Parametros. DELIMITER // CREATE PROCEDURE <NOME PROCEDURE>( IN NOMEVARIAVEL INT) AS BEGIN SELECT * FROM EMPREGADO ORDER BY NOME DESC END // Explicar compilação na primeira execuação e execução em cache a partir da segunda execução para otimização. Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com 25/03/2017 7 25/04/2011 Professor Leomir J. Borba- professor.leomir@gmail.com –http:professorleomir.wordpress.com 7 7

Procedimentos (Procedures) Parâmetros dos Stored Procedures Quase todos os stored procedure a desenvolver requerem parâmetros. Parâmetros fazem o stored procedure mais flexível e útil. No MySQL, um parâmetro adquire um dos seguintes tmodos - IN, OUT e INOUT IN indica que um parâmetro pode ser passado, mas qualquer alteração dentro do stored procedure não altera o parâmetro. Suponha que você quer passaro parâmetro ID, que é igual a 10, para o stored procedure getAll (Id), após executar o stored procedure o valor do Id ainda é 10 mesmo que o stored procedure getAll altere o valor do mesmo. OUT este modo indica que o stored procedure pode alterar o parâmetro e devolve-lo ao programa de chamada. INOUT, É a combinação do modo IN e OUT, você pode passar parâmetros para o stored procedure e recuperá-los com um novo valor a partir do programa de chamada. Explicar compilação na primeira execuação e execução em cache a partir da segunda execução para otimização. Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com 25/03/2017 8 25/04/2011 Professor Leomir J. Borba- professor.leomir@gmail.com –http:professorleomir.wordpress.com 8 8

Procedimentos (Procedures) Manipulação – Continuação Execução sem parametros - CALL < NOME PROCEDURE>; Execução com parametros - CALL < NOME PROCEDURE>(<par 1>, <par 2>); Explicar compilação na primeira execuação e execução em cache a partir da segunda execução para otimização. 25/03/2017 9 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com 25/04/2011 Professor Leomir J. Borba- professor.leomir@gmail.com –http:professorleomir.wordpress.com 9 9

Procedimentos (Procedures) Manipulação - Continuação Alteração – ALTER PROCEDURE <NOME PROCEDURE> AS BEGIN SELECT * FROM EMPREGADO ORDER BY CPF ASC END Exclusão - DROP PROCEDURE <SCHEMA>.<NOME PROCEUDRE>; Ativação pode ser feita com exec ou call, depende da versao Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com 25/03/2017 10 25/04/2011 Professor Leomir J. Borba- professor.leomir@gmail.com –http:professorleomir.wordpress.com 10 10

Gatilhos (Triggers) Um gatilho (ou TRIGGER) é uma porção de código composto por instruções SQL e não-SQL que ficam armazenados no catálogo do SGBD e que são ativados automaticamente pelo gerenciador de banco de dados quando um determinado evento ocorre. Os TRIGGERS poderão ser disparados para trabalharem antes ou depois do evento Apenas 1 TRIGGER por evento. 25/03/2017 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com 25/04/2011 Professor Leomir J. Borba- professor.leomir@gmail.com –http:professorleomir.wordpress.com 11

Gatilhos (Triggers) Eventos que podem acionar um TRIGGER: INSERT, UPDATE, REPLACE, DELETE OU UPDATE Pode-se definir vários TRIGGER em um banco de dados. As clausulas que definem quando o TRIGGER será disparado são : BEFORE - Antes de um evento. AFTER - Depois de um evento. 25/03/2017 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com 25/04/2011 Professor Leomir J. Borba- professor.leomir@gmail.com –http:professorleomir.wordpress.com 12

Gatilhos (Triggers) Operadores necessários para acessar atributo/valor para definição na criação de um TRIGGER: NEW.nome_coluna – Disponivel quando ao inserir o uma nova linha ou tupla na tabela. OLD.nome_coluna – Disponivel ao excluir uma linha ou tupla NEW e OLD estão disponiveis para UPDATE e REPLACE 25/03/2017 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com 25/04/2011 Professor Leomir J. Borba- professor.leomir@gmail.com –http:professorleomir.wordpress.com 13

Gatilhos (Triggers) Diretrizes para uso de TRIGGERS: INSERT: o operador NEW.nome_coluna, nos permite verificar o valor enviado para ser inserido em uma coluna de uma tabela. OLD.nome_coluna não está disponível. DELETE: o operador OLD.nome_coluna nos permite verificar o valor excluído ou a ser excluído. NEW.nome_coluna não está disponível. - UPDATE: tanto OLD.nome_coluna quanto NEW.nome_coluna estão disponíveis, antes (BEFORE) ou depois (AFTER) da atualização de uma linha. 25/03/2017 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com 25/04/2011 Professor Leomir J. Borba- professor.leomir@gmail.com –http:professorleomir.wordpress.com 14

Gatilhos (Triggers) Exemplo : 25/03/2017 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com 25/04/2011 Professor Leomir J. Borba- professor.leomir@gmail.com –http:professorleomir.wordpress.com 15

Conexão de BD com Linguagem de programação O SQL Server pode ser utilizado com varias linguagens, entre elas o PHP, e há duas formas distintas de conexão ao banco de dados utilizando a linguagem de programação interpretada. Uma das formas e a mais usada é a conexão nativa do PHP mssql_connect(), a outra forma é a conexão ODBC 25/03/2017 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com 25/04/2011 Professor Leomir J. Borba- professor.leomir@gmail.com –http:professorleomir.wordpress.com 16

Conexão de BD com Linguagem de programação Conexão nativa com mssql_connect(): A conexão mssql_connect() do PHP é realizada através da extensão do PHP chamada php_pdo_mssql, o código: <? $con = mssql_connect("servidor", "usuario", "senha"); mssql_select_db("bancodedados",$con); ?> Um exemplo de select com esta conexão: <? $SQL = "SELECT * FROM bancodedados.dbo.tabela"; $res = mssql_query($SQL,$con); while($RFP = mssql_fetch_array($res)) { echo $RFP['campo'].'<br />'; } ?> 25/03/2017 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com 25/04/2011 Professor Leomir J. Borba- professor.leomir@gmail.com –http:professorleomir.wordpress.com 17

Conexão de BD com Linguagem de programação Conexão através de ODBC: A conexão ODBC é a mais utilizada em casos onde a linguagem não tem conexão nativa, porém pode ser utilizada para qualquer conexão a banco de dados. <? $con = odbc_connect("DRIVER={SQL Server}; SERVER=servidor; DATABASE=bancodedados;", "usuario","senha"); ?> Um exemplo de select com esta conexão: <? $SQL = "SELECT * FROM bancodedados.dbo.tabela"; $res = odbc_exec($con, $SQL) while($RFP = odbc _fetch_array($res)) { echo $RFP['campo'].'<br />'; } ?> 25/03/2017 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com 25/04/2011 Professor Leomir J. Borba- professor.leomir@gmail.com –http:professorleomir.wordpress.com 18

Exercícios TRIGGERS: Criar uma tabela com nome tbl_cliente com os seguintes atributos: cliente_id int cliente_nome char(80) not null cliente_email char(40) not null dt_cadastro time not null Criar um trigger que valide se os dados foram passados em uma declaração INSERT antes (BEFORE) que sejam cadastrados na tabela de exemplo. Validar o nome com quantidade de caracteres maior ou igual a 4 (quatro), dica, usar a função CHAR_LENTH() . Criar um TRIGGER para gravar o histórico de exclusão de registros, contendo data da exclusão, nome do usuário e nome do cliente Exercícios arquivo word. Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com 25/03/2017 25/04/2011 Professor Leomir J. Borba- professor.leomir@gmail.com –http:professorleomir.wordpress.com 19

Exercícios Procedures: Criar um stored procedure para efetuar consulta de pedidos, incluindo os itens, passando-se o numero do pedido como parametro (usar tabelas criadas em laboratório nas aulas anteriores). Todos os scripts de exercicios, funcionando ou nao devem ser enviados para o email do professor. Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com 25/03/2017 20 25/04/2011 Professor Leomir J. Borba- professor.leomir@gmail.com –http:professorleomir.wordpress.com 20 20

BIBLIOGRAFIA 25/03/2017 BIBLIOGRAFIA BÁSICA 1 2 DATE, C.J. Introdução a Sistemas de Bancos de Dados. 8ª Ed. Rio de Janeiro: Campus, 2004. 2 NAVATHE, S. B.; ELMASRI, R. E. Sistemas de Banco de Dados, 4ª edição, Editora Pearson Addison Wesley, 2005. 3 SETZER, V. W., SILVA, F.S.C. Banco de Dados. 1ª Ed. São Paulo: Edgard Blucher, 2005. BIBLIOGRAFIA COMPLEMENTAR 4 COUGO, P. Modelagem Conceitual e Projeto de Banco de Dados, Editora Campus. 5 KORTH, H. F.; SILBERSCHATZ, A.; SUDARSHAN, S., Sistemas de Banco de Dados, Editora Makron Books, 1999. 6 MACHADO, Felipe Nery Rodrigues: Análise Relacional de Sistemas; São Paulo: Editora Érica, 2001. 7 SETZER, V.W., NASSU, E.A. Banco de Dados Orientados a Objetos. São Paulo: Ed. Edgard Blucher, 1999. 25/03/2017 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com 25/04/2011 Professor Leomir J. Borba- professor.leomir@gmail.com –http:professorleomir.wordpress.com 21