Upload
internet
View
102
Download
0
Embed Size (px)
Citation preview
11/04/23 1
BANCO DE DADOS EM APLICATIVOS WEB Aula 13
Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
11/04/23 2Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
Agenda
Procedimentos (Procedures)Gatilhos (Triggers)Conexão do Banco de Dados com a Linguagem de Programação.
11/04/23 3Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
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.
11/04/23 4Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
Procedimentos (Procedures)•Modelos de acesso
11/04/23 5Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
Procedimentos (Procedures)•Modelos de acesso - continuação
11/04/23 6Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
Procedimentos (Procedures)•Manipulação
•Criação – Sem Parametros.
DELIMITER //CREATE PROCEDURE <NOME PROCEDURE>ASBEGIN SELECT * FROM EMPREGADO ORDER BY NOME DESCEND //
11/04/23 7Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
Procedimentos (Procedures)•ManipulaçãoCriação – Com Parametros.
DELIMITER //CREATE PROCEDURE <NOME PROCEDURE>( IN NOMEVARIAVEL INT)ASBEGIN SELECT * FROM EMPREGADO ORDER BY NOME DESCEND //
11/04/23 8Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
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.
11/04/23 9Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
Procedimentos (Procedures)•Manipulação – Continuação
• Execução sem parametros - • CALL < NOME PROCEDURE>;
• Execução com parametros - • CALL < NOME PROCEDURE>(<par 1>, <par 2>);
11/04/23 10Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
Procedimentos (Procedures)• Manipulação - Continuação
•Alteração – ALTER PROCEDURE <NOME PROCEDURE>ASBEGIN
SELECT * FROM EMPREGADOORDER BY CPF ASC
END
•Exclusão - •DROP PROCEDURE <SCHEMA>.<NOME PROCEUDRE>;
11/04/23 11Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
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.
11/04/23 12Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
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.
11/04/23 13Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
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
11/04/23 14Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
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.
11/04/23 15Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
Gatilhos (Triggers)
Exemplo :
11/04/23 16Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
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
11/04/23 17Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
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 />'; } ?>
11/04/23 18Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
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 />'; } ?>
11/04/23 19Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
Exercícios
TRIGGERS:
Criar uma tabela com nome tbl_cliente com os seguintes atributos:cliente_id intcliente_nome char(80) not nullcliente_email char(40) not nulldt_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
11/04/23 20Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
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.
11/04/23 21Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com
BIBLIOGRAFIA BÁSICA
1DATE, C.J. Introdução a Sistemas de Bancos de Dados. 8ª Ed. Rio de Janeiro: Campus, 2004.
2NAVATHE, S. B.; ELMASRI, R. E. Sistemas de Banco de Dados, 4ª edição, Editora Pearson Addison Wesley, 2005.
3SETZER, V. W., SILVA, F.S.C. Banco de Dados. 1ª Ed. São Paulo: Edgard Blucher, 2005.
BIBLIOGRAFIA COMPLEMENTAR
4COUGO, P. Modelagem Conceitual e Projeto de Banco de Dados, Editora Campus.
5KORTH, H. F.; SILBERSCHATZ, A.; SUDARSHAN, S., Sistemas de Banco de Dados, Editora Makron Books, 1999.
6MACHADO, Felipe Nery Rodrigues: Análise Relacional de Sistemas; São Paulo: Editora Érica, 2001.
7SETZER, V.W., NASSU, E.A. Banco de Dados Orientados a Objetos. São Paulo: Ed. Edgard Blucher, 1999.
BIBLIOGRAFIA