SISTEMAS DE INFORMAÇÃO Sistemas de Bancos de Dados II 1º Semestre – 2010 Pedro Antonio Galvão Junior Fone: 9531-7555.

Slides:



Advertisements
Apresentações semelhantes
O Comando DROP INDEX Para eliminar um índice definido sobre uma tabela, utilize: Drop Index on ; Ex: No Access: Drop Index X on.
Advertisements

Gerenciamento de Dados e Informação Estudo de caso – PL/SQL
Banco de Dados Prof. Antonio.
Triggers Renata Viegas.
BANCO DE DADOS EM APLICATIVOS WEB Aula 13
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:
SISTEMAS DE INFORMAÇÃO Sistemas de Bancos de Dados 2º Semestre – 2010 Pedro Antonio Galvão Junior Fone:
SISTEMAS DE INFORMAÇÃO Sistemas de Bancos de Dados 2º Semestre – 2010 Pedro Antonio Galvão Junior Fone:
SISTEMAS DE INFORMAÇÃO Sistemas de Bancos de Dados I 2º Semestre – 2010 Pedro Antonio Galvão Junior Fone:
SISTEMAS DE INFORMAÇÃO Sistemas de Bancos de Dados 2º Semestre – 2010 Pedro Antonio Galvão Junior Fone:
SISTEMAS DE INFORMAÇÃO Sistemas de Bancos de Dados 2º Semestre – 2010 Pedro Antonio Galvão Junior Fone: 9531 – 7555.
Sistemas de Informação Redes de Computadores
Visões Marilde Santos.
Maurício Edgar Stivanello
Sistema Gerenciador de Banco de Dados SGBD
Restrições de Integridade
Sumário 1 Processamento de Consultas 2 Introdução a Transações
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”
SQL Structured Query Language
Linguagem de Banco de Dados - SQL
Linguagem de Banco de Dados - SQL
Triggers e StoreProcedures
Banco de dados Profª Kelly Medeiros.
Equipe de monitoria Aula prática 4.  Tipos  Tabela de Objetos  Herança  Métodos  Referências  Coleções  Composição de coleções  Conectividade.
SQL Server 2012 Tipos de Dados e Tabelas
Bancos de Dados SQL Server 2012 SQL DML - Data Manipulation Language)
PL/SQL, Procedures e Funções
Design Patterns / Acesso ao banco de dados (java.sql)
Tipos de Linguagens do Banco de Dados
(Linguagem de Consulta Estruturada)
Equipe de monitoria Aula prática 3.  Caso de estudo  Igualando situações  Cursor  Function  Procedure  Trigger  Package  Surpresa...
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
VIEW - VISÕES Professor Esp. Diego André Sant’Ana
BANCOS DE DADOS ATIVOS Weyler M Lopes © Especialização em Banco de Dados.
Banco de dados.
Linguagem de Definição de Dados
©Silberschatz, Korth and Sudarshan (modificado)4.1.1Database System Concepts Capítulo 4: SQL Estrutura básica Operações com conjuntos Funções de agregação.
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
SCC Bancos de Dados e Suas Aplicações
Banco de Dados I I Comandos SQL
Linguagem SQL Prof. Juliano.
Fundamentos de Banco de Dados Fundamentos de Banco de Dados Prof. Gale 2º. Semestre 2008.
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
Programação em Bancos de Dados Relacionais
Daniel Paulo Introdução Neste capítulo trataremos a relação entre tabelas e FILEGROUPS, bem como a alocação interna de dados.
Daniel Paulo SQL Módulo I Daniel Paulo
Daniel Paulo SQL Server 2014 Módulo II Daniel Paulo
VBA – Visual Basic para Aplicativos
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:
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.
1 Programação de Banco de Dados José Antônio da Cunha George Azevedo da Silva.
Banco de Dados II Prof: Márcio Soussa Curso de Sistemas de Informação Faculdades Jorge Amado.
2/6/2016 José Antônio da Cunha - CEFET - RN1 Programação de Banco de Dados Funções.
Programação para Internet Aula 11 SQL (Introdução a linguagem, comandos de modificação: Create, Drop, Alter, Insert, Delete, Update)
José Antônio da Cunha 3/6/2016 José Antônio - CEFET-RN 1 Copyright © Dale Carnegie & Associates, Inc.
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:

SISTEMAS DE INFORMAÇÃO Sistemas de Bancos de Dados II 1º Semestre – 2010 Pedro Antonio Galvão Junior Fone: Versão – Abril/2010.

Comandos Transact SQL (T-SQL) SubConsultas

SUBCONSULTAS Mais conhecidas, como subquery, ou seja, query dentro de query. –Exemplo: Select * from Produtos Where Produto IN (SELECT CODIGO FROM PRODUTOS) Select Codigo, Descricao=(Select Descricao From Produto), Marca from Produtos Where Codigo = 1

Comandos Transact SQL (T-SQL) Views(Visões)

Views Mais conhecida, como uma consulta armazenada que encapsula a complexidade de uma consulta e apresenta os dados desejados para usuários ou aplicativos. Ao criar uma visão, o SQL Server 2005 só armazena a definição da visão, os dados não são armazenadas a que esta view seja indexada. Uma visão é basicamente uma instrução armazenada SELECT em um banco de dados para posterior utilização. Uma vez criada, você pode obter resultados da instrução SELECT consultando a visão em vez de executar a instrução SELECT complexa em tabelas de existentes no banco de dados.

Views e suas informações Consultando a relação de views existentes em um banco de dados: –Select * from Sys.Views Visualizando o código de uma view existente: –Use Estoques Go; Select Name, Definition From Sys.SQL_Modules Inner Join Sys.Views On Sys.SQL_Modules.object_id = sys.views.object_id

Trabalhando com Views Criando uma nova view: –CREATE VIEW V_NovaView AS Select * from Tabela Alterando a view: –Alter View V_NovaView AS Select * from Tabela1 Excluíndo a view: –Drop View V_NovaView

Criando uma Views Complexa Criando a View: Create View V_VisualizarDados As Select Convert(VarChar(3),P.Codigo)+' - '+P.Descricao As 'Produto', Convert(VarChar(3),A.Codigo)+' - '+A.Descricao As 'Armazem', Case E.Movimentacao When 'E' Then 'Entrada' When 'S' Then 'Saida' End Movimentacao, E.Quantidade, E.DataControle As 'Data Movimentação' From Produtos P Inner Join Estocagem E On P.Codigo = E.CodProduto Inner Join Armazem A On A.Codigo = E.CodArmazem Consultando os dados através da View: Select * from V_VisualizarDados

PRÁTICA - I

Comandos Transact SQL (T-SQL) Stored Procedure(Procedimentos Armazenados)

Stored Procedure Stored Procedure é um conjunto de comandos, ao qual é atribuído um nome. Este conjunto fica armazenado no Banco de Dados e pode ser chamado a qualquer momento tanto pelo SGBD (sistema Gerenciador de Banco de Dados) quanto por um sistema que faz interface com o mesmo.Dadossistema A utilização de Stored Procedures é uma técnica eficiente de executarmos operações reetitivas. Ao invés de digitar os comandos cada vez que determinada operação necessite ser executada, criamos um Stored Procedure e o chamamos. Em um Stored Procedure também podemos ter estruturas de controle e decisão, típicas das linguagens de programação. Em termos de desenvolvimento de aplicações, também temos vantagnes com a utilização de Stored Procedures.eficiente A diferença entre a Stored Procedure e a Function, esta relacionada a obrigatoriedade que a function tem em retornar valores.

Conhecendo os Tipos de Stored Procedure 1. System: Localizada no Banco Master, criada pelo próprio SQL Server; 2. Local: Criada pelo próprio usuário, localizada dentro do banco de dados definido pelo usuário; 3. Temporária Local: Criada temporáriamente pelo usuário, seu tempo de vida e utilização esta relacionado com a sessão que o usuário esta trabalhando; 4. Temporário Global: Criada temporáriamente pelo usuário, seu tempo de vida e utilização esta relacionado com a conexão que o usuário esta trabalhando; 5. Remota: Executada em outra máquina; 6. Extendida: Localizada fora do banco de dados, possuim uma código fonte(linguagem), capaz de executar comando para retornar informações de outras fontes de dados;

Stored Procedure Nomenclatura e definição: Banco de Dados Caracter Inicial Tipo MasterSPSistema Definido pelo Usuário SP ou PLocal Definido pelo Usuário #Temporária Local Definido pelo Usuário ##Temporário Global Definido pelo Usuário SP ou PRemota MasterXPExtendida(Extended)

Trabalhando com Stored Procedure CREATE PROCEDURE nome_do_stored_procedure [ tipo_de_dados_parametro}[=valor_default] [output] ] [,...n] AS comando1, comando2, comando3,..., comando2 GO

Trabalhando com Stored Procedure ALTER PROCEDURE nome_do_stored_procedure [ tipo_de_dados_parametro}[=valor_default] [output] ] [,...n] AS comando1, comando2, comando3,..., comando2 GO

Trabalhando com Stored Procedure Excluíndo a Stored Procedure: – Drop Procedure NomedaSuaProcedure; Executando a Stored Procedure: – Execute NomedaSuaProcedure; – Exec NomedaSuaProcedure; – SP_ExecuteSQL NNomedaSuaProcedure. Recompilar as alterações na Stored Procedure: – SP_RECOMPILE NomedaSuaProcedure;

PRÁTICA - II

Comandos Transact SQL (T-SQL) Trigger(Gatilho)

Trigger O comando CREATE TRIGGER cria um gatilho. O gatilho fica associado à tabela especificada e executa a função especificada nome_da_função quando ocorrem determinados eventos. O gatilho pode ser especificado para disparar antes de tentar realizar a operação na linha (antes das restrições serem verificadas e o comando INSERT, UPDATE ou DELETE ser tentado), ou após a operação estar completa (após as restrições serem verificadas e o comando INSERT, UPDATE ou DELETE ter completado). Se o gatilho for disparado antes do evento, o gatilho pode fazer com que a operação não seja realizada para a linha corrente, ou pode modificar a linha sendo inserida (para as operações de INSERT e UPDATE somente). Se o gatilho for disparado após o evento, todas as mudanças, incluindo a última inserção, atualização ou exclusão, estarão "visíveis" para o gatilho. Um gatilho que está marcado FOR EACH ROW é chamado uma vez para cada linha que a operação modifica. Por exemplo, um comando DELETE afetando 10 linhas faz com que todos os gatilhos ON DELETE da relação de destino sejam chamados 10 vezes, uma vez para cada linha excluída.

Trigger Diferentemente, um gatilho que está marcado FOR EACH STATEMENT somente executa uma vez para uma determinada operação, não importando quantas linhas sejam modificadas; em particular, uma operação que não modifica nenhuma linha ainda assim resulta na execução de todos os gatilhos FOR EACH STATEMENT aplicáveis. Se existirem vários gatilhos do mesmo tipo definidos para o mesmo evento, estes serão disparados na ordem alfabética de seus nomes. Considerações Importantes: –O Trigger não pode ser chamado diretamente; –O Trigger faz parte de um bloco transacional; –Obrigatório associar um trigger a uma table; –Quando a tabela é excluída o trigger também é excluído; –O Trigger depende exclusivamente dele e da tabela que esta associado.

Triggers e suas informações Consultando a relação de triggers existentes em um banco de dados: –Select * from Sys.Triggers Visualizando o código de um trigger existente: –Use Estoques Go; Select Name, Definition From Sys.SQL_Modules Inner Join Sys.Triggers On Sys.SQL_Modules.object_id = sys.triggers.object_id

Trabalhando com Triggers Criando um novo trigger: USE AdventureWorks GO; IF OBJECT_ID ('Sales.reminder1', 'TR') IS NOT NULL DROP TRIGGER Sales.reminder1 GO; CREATE TRIGGER reminder1 ON Sales.Customer AFTER INSERT, UPDATE AS RAISERROR ('Notify Customer Relations', 16, 10) GO

Trabalhando com Triggers Alterando um trigger existente: USE AdventureWorks GO; ALTER TRIGGER reminder1 ON Sales.Customer AFTER INSERT, UPDATE AS RAISERROR ('Notify Customer Relations!!!!', 16, 10) GO

Trabalhando com Triggers Excluíndo a Table e removendo o trigger existente: –Drop Table Sales.Customer; Excluíndo somente o trigger existente: –Drop Trigger reminder1;

PRÁTICA - III

Comandos Transact SQL (T-SQL) Functions(Funções)

Funções User-Defined Functions, são funções definidas pelo próprio usuário, que não fazem parte do conjunto de funções do SQL Server, essas funções podem retornar valores comuns ou mesmo um valor no formato de uma tabela, com múltiplas ocorrências, existentes no mesmo banco de dados. Uma função pode ser definida com a utilização de múltiplos comandos em Transact-SQL, retornando valores de acordo com o princípio para o qual foi desenvolvida. Dependendo da maneira como as instruções são colocadas no corpo de uma função, a função poderá ser classificada como sendo ESCALAR, INLINE ou MULTI-STATEMENT. Se o retorno da função for uma tabela que não corresponde à lista de colunas especificada, a função é considerada INLINE. Uma função INLINE é uma função que retorna uma tabela, contendo em seu corpo de definição apenas uma instrução SELECT. As colunas, incluindo os tipos de dados, da tabela a ser retornada pela função, são derivadas da lista de campos da cláusula SELECT definida no corpo da função. Se existe uma definição sobre a estrutura da tabela, bem como os seus campos com os respectivos tipos de dados, a função será considerada como MULTI-STATEMENT. Dentro de uma function, não é possível utilizar uma stored procedure.

Funções As instruções a seguir, correspondem as operações que podemos realizar no corpo de definição de uma função MULTI-STATEMENT, o que não estiver nessa lista, não pode ser utilizado dentro de uma função definida pelo usuário: Operações de atribuição: - Instruções de controle de fluxo(WHILE,CASE,IF). - Instruções de DECLARE para variáveis e cursores locais no escopo da função. - Instruções de SELECT para fazer operações de atribuição em variáveis locais do escopo da função. - Operações para manipulação de cursores locais na função, como abrir, fechar e etc. - Apenas instruções FETCH que fazem atribuições em variáveis locais na função serão permitidas usando a cláusula INTO; FETCH que retorne dados diretamente para um cliente não é possível. INSERT, UPDATE, e DELETE que modifique uma variável local do tipo table. - Além disso, não é possível utilizar nondeterministec functions no corpo de uma função. Nondeterministec Functions são funções que sempre retornam valores diferentes cada vez que você faz uma chamada, independente dos valores de entrada.

Funções Veja alguns exêmplos na tabela a seguir: GETDATE; GETUTCDATE; NEWID; RAND; TEXTPTR;

Trabalhando com Functions Toda função deve ser criada e utilizada com o objetivo de retornar informações para o SQL Server, aplicativo ou usuário. Existem algumas considerações que devemos tomar para definir, o deverá ser retornando e de que forma este valor será retornado e apresentado. Onde: RETURNS Esta claúsula indica qual o tipo de dados ou conjunto de dados será retornado. RETURN Finaliza a function e devolve o valor e o controle da transação para a claúsula RETURNS.

Trabalhando com Functions Criando Function - InLine - Table Value: Create Function F_Produtos VarChar(100)) Returns Table As Return( Select * from MRP.Produtos Where Descricao Go Executando: Select * from F_Produtos ('Luvas') Go 1.Funções InLine não utilizando o comandos BEGIN/END; 2.Funções InLine não podem utilizar o comando ORDER BY; 3.Utilizar funções InLine como parâmetros para as views; 4.Utilizar Funções InLine em conjunto com view indexadas.

Trabalhando com Functions Criando Function – Scalar: Create Function F_SomarValores Int), Int) Returns Int As Begin Int Set Return End Go Executando: Select dbo.F_SomarValores (10) Go 1.A função Escalar(Scalar), não retorna valores para os tipos de dados: TEXT, NTEXT, IMAGE e TIMESTAMP; 2.Além disso, não trabalha com cursores; 3.Declarar o nome da função em duas partes.

Trabalhando com Functions Criando Function - Multi - Statament - Table – Value: Create Function F_ConsultarProdutos Int) Table (codigo int, descricao varchar(10)) As Begin Select Codigo, Descricao from Produtos Where Codigo Return End Go Executando: Select * from F_ConsultarProdutos (1) Go

PRÁTICA - IV

SubConsultas. SubConsultas. Views. Views. Stored Procedures. Stored Procedures. Triggers. Triggers. Functions. Functions. Revisão