Centro Universitário Franciscano



Documentos relacionados
Triggers em PostgreSQL. Linguagem de Programação de Banco de Dados. Triggers em PostgreSQL. Triggers em PostgreSQL

Banco de Dados. Marcio de Carvalho Victorino Exercícios SQL

Banco de Dados II. Triggers e Functions. Prof. Moser Fagundes. Curso TSI Instituto Federal Sul-Rio-Grandense (IFSul) Campus Charqueadas

Prova de Fundamentos de Bancos de Dados 2 a Prova

Triggers. um trigger permite que uma determinada sequência de comandos SQL seja accionada quando um determinado evento ocorre.

Triggers e Regras. Fernando Lobo. Base de Dados, Universidade do Algarve

Banco de Dados Avançados Banco de Dados Ativo

Integridade dos Dados

Bancos de Dados I. Integridade semântica

SQL Gatilhos (Triggers)

Bases de Dados 2012/2013 Restrições de Integridade em SQL. Helena Galhardas 2012 IST. Bibliografia

trigger insert, delete, update

BANCO DE DADOS. info 3º ano. Prof. Diemesleno Souza Carvalho

Neste artigo, serão apresentados os principais conceitos sobre os TRIGGERS e sua aplicabilidade.

BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar

Restrições de Integridade Semântica

Tarefa Orientada 19 Triggers


Sistemas de Informação

Prova de Fundamentos de Bancos de Dados 2 a Prova

LINGUAGEM SQL. DML - Linguagem de Manipulação de Dados

PROGRAMAÇÃO EM BANCO DADOS Stored Procedure e Trigger

Modelo de Dados Relacional Restrições de um Banco de Dados Relacional

Uma expressão básica em SQL consiste em três cláusulas: select, from e where.

PROGRAMAÇÃO EM BANCO DADOS Store Procedure e Trigger

Gatilhos (Triggers) Prof. Márcio Bueno Elaborado por Maria Lígia B. Perkusich

Comandos de Manipulação

Triggers no PostgreSQL

Banco de Dados. Profª. Ana Leda


Prova de Fundamentos de Bancos de Dados 2 a Prova

Roteiro 9 - SQL Básico: chave estrangeira, operadores de comparação e operadores booleanos

Faculdade Pitágoras 16/08/2011. Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet

Faculdade Pitágoras. Curso Superior de Tecnologia: Banco de Dados. Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL

Banco de Dados I. Aula 12 - Prof. Bruno Moreno 04/10/2011

Banco de Dados. Um momento crucial na organização dos dados é a forma com que cadastramos estes dados, a estrutura de armazenamento que criamos.

SQL Linguagem de Manipulação de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

Banco de Dados I Módulo V: Indexação em Banco de Dados. (Aulas 4) Clodis Boscarioli

Agenda. Banco de Dados Temporais. Banco de Dados Temporais. Introdução. Banco de Dados Temporais PRINCIPAIS CONCEITOS DE REPRESENTAÇÃO TEMPORAL

ROTEIRO. A Linguagem SQL (I parte) CEFET.PHB - PI Prof. Jefferson Silva. As partes da linguagem SQL. A Linguagem de Definição de Dados (SQL-DDL)

Oracle 10g: SQL e PL/SQL

DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E OTIMIZAÇÃO DE DADOS. Fábio Roberto Octaviano

UNIVERSIDADE FEDERAL FLUMINENSE PÓLO UNIVERSITÁRIO DE RIO DAS OSTRAS FACULDADE FEDERAL DE RIO DAS OSTRAS CURSO DE CIÊNCIA DA COMPUTAÇÃO

Banco de Dados. Prof. Antonio

SQL Linguagem de Definição de Dados. Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

AULA 2 INTERAÇÃO COM O BANCO DE DADOS

Laboratório de Banco de Dados Prof. Luiz Vivacqua. PL/pgSQL A Linguagem de programação do PostgreSQL

Introdução ao SQL. Aécio Costa

BANCO DE DADOS BANCO DE DADOS. Prof. Patrícia Lucas 3º Trimestre

Prova de pré-requisito

Subsistema de Integridade Semântica

Linguagem de Consulta - SQL

SQL Linguagem de Definição de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

Introdução às funções e procedimentos. SQL suporta funções e procedimentos úteis com tipos de dados específicos

CEFET.PHB - PI. Plano de Ensino. Banco de Dados. Plano de Ensino. Plano de Ensino. Plano de Ensino - Conteúdo. Plano de Ensino - Conteúdo

PHP INTEGRAÇÃO COM MYSQL PARTE 1

LINGUAGEM SQL. SQL Server 2008 Comandos iniciais

SQL comando SELECT. SELECT [DISTINCT] <campos> FROM <tabela> [condição] [ ; ] Paulo Damico - MDK Informática Ltda.

UNIVERSIDADE FEDERAL DE SANTA MARIA - UFSM COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN BANCO DE DADOS II

Linguagem de Consulta - SQL

DESENVOLVIMENTO DE SOFTWARE

Bases de Dados 2007/2008. Aula 9

Regras de Integridade. Profa. Késsia Marchi

Structured Query Language (SQL)

estiver abaixo ou igual ao mínimo, um novo pedido é acrescentado a uma relação pedidos.

Índice. Introdução Tutorial 1: O Microsoft Access como Sistema de Gestão de Bases de Dados Relacionais... 35

ACH2025. Laboratóriode Bases de Dados. SQL Oracle Asserçõese gatilhos. Professora: Fátima L. S. Nunes SISTEMAS DE INFORMAÇÃO

Introdução à Banco de Dados. Nathalia Sautchuk Patrício

Faculdade Lourenço Filho - ENADE

Formação em Banco de Dados

BD Oracle. Licenciatura em Engenharia Informática e Computação. Bases de Dados 2003/04

SQL CREATE MATERIALIZED VIEW. Processamento Analítico de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri. OLAP: Modelagem Multidimensional

Programando em SQL. Triggers, Stored Procedures e funções. Profa. Késsia Marchi

EXEMPLOS DE COMANDOS NO SQL SERVER

SQL Server Triggers Aprenda a utilizar triggers em views e auditar as colunas atualizadas em uma tabela

17/10/2008. Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet Redes de Computadores

Capitulo 2. Prof.º Espc. Fábio Margarito Martins de Barros - Tecnologia de banco de dados

Incluindo, atualizando e excluindo linhas nas tabelas

Laboratório de Banco de Dados II Aula 1. Stored Procedures

Um Framework de Regras Ativas para Sistemas de Gerência de Banco de Dados Distribuído

Exercícios de Lógica Exercícios de Fixação 08

Ensino Técnico Integrado ao Médio FORMAÇÃO PROFISSIONAL. Plano de Trabalho Docente 2014

4.6. SQL - Structured Query Language

AUDITORIA EM BANCO DE DADOS COM UTILIZAÇÃO DE REGRAS

PROCEDIMENTOS ARMAZENADOS (Stored Procedures)

Linguagem de Consulta Estruturada SQL- DML

MANIPULANDO BANCO DE DADOS NO POSTGRESQL SEM FAZER USO DE COMANDOS SQL

Modelagem de Banco de Dados através do ERwin

Regras de Negócios é com o Elefante!

Leonardo Gresta Paulino Murta

Subsistema de Integridade Semântica

14/08/2008. Curso Superior de Tecnologia em Banco de Dados Disciplina: Projeto de Banco de Dados Relacional 1 Prof.: Fernando Hadad Zaidan

PL/pgSQL por Diversão e Lucro

TRIGGER e SEGURANÇA. Prof. Edson Thizon

Manipulação de Dados com SQL

Transcrição:

Centro Universitário Franciscano Banco de Dados II Prof a.: Walkiria Cordenonzi descrevem condições lógicas que podem ser válidas para um banco de dados ou para uma seqüência de transição de estados do banco de dados no sentido de este estar de acordo com o mini-mundo, representando-o fielmente. 2 devem representar regras válidas do mundo real no contexto de banco de dados. violações de integridade podem ocorrer se partes do mini-mundo forem observadas de uma forma errônea, antes de serem representadas no banco de dados, (b) se estas observações não forem suficientes para descrever a porção a ser modelada ou (c) se não for feita a comunicação correta do mini-mundo para o SGBD. Logo, o banco de dados não corresponderá ao mundo real. 3 4 parte da integridade do banco de dados deve ser garantida pelos usuários ou pelos programas de aplicação conceito de integridade X segurança Relação ao Modelo de Dados implícitas explícitas inerentes 5 6 1

Simples e Múltiplos Estados do Banco de Dados estática transição temporal Escopo atributos simples (restrições de domínio), múltiplos atributos de uma simples tupla múltiplas tuplas da uma ou de diferentes relações ou todas as tuplas de uma relação. 7 8 Causa da Verificação Usualmente, uma operação de DML (inserção, exclusão ou atualização) outros eventos Por exemplo, restrições temporais ou dinâmicas, eventos sensíveis ao tempo (time-related events) Tempo de Verificação imediatas postergadas 9 10 Reação na Violação das Restrições de Integridade restritiva, corretiva, restrições obrigadas (deontic constraints), Forçar as Restrições Forçar as restrições com método baseado na aplicação Forçar as restrições com método baseado no SGBD A manutenção é de responsabilidade do SGBD. 11 12 2

Forçar as Restrições Forçar as Restrições o SGBD verifica a validade das restrições quando for realizada uma operação de atualização no banco de dados, subsistema de integridade (integrity subsystem) ou monitor de integridade (integrity monitor), que é responsável pela verificação das restrições o SGBD analisa o código da transação em fase de pré-compilação e insere dentro da própria transação, operações que verificam e reagem a uma possível violação de uma restrição 13 14 Estratégia Estratégia Todos os eventos que podem causar violação nas restrições devem ser verificados (operações de atualização, tentativa de commit da transação, ) e são sinalizados para o monitor de integridade; as restrições que necessitam ser verificadas são selecionadas, e a condição de cada uma é usada para consultar, no banco de dados, se houve violação à restrição; em cada ocorrência de violação, a ação apropriada de reação é executada. 15 16 Reforçar as Restrições Reforçar as Restrições Detectar eventos de atualização Detectar o esforço no tempo Determinar as restrições a serem verificadas Generalizar ou refinar as condições de teste Verificar as restrições Determinar as ações relevantes Executar as ações 17 18 3

Raciocinando sobre Restrições Restrições de Modelo-Relatado satisfatoriedade: o conjunto de restrições de integridade devem ser livres de contradição, ou seja, não se pode permitir conflitos (contrariedade) entre duas ou mais restrições; redundância: quando uma restrição de integridade não adiciona nova semântica ou novas restrições ao modelo, é porque, estas já estão subentendidas em outras restrições. 19 Relacional domínios dos atributos integridade da entidade( chave primária ) restrição de valores nulos integridade referencial 20 Assertivas de Integridade Assertivas de Integridade uma parte da assertiva que descreve a condição de restrição; outra parte que especifica o momento do teste, isto é, imediata ou postergada 21 <SQL3 assertion> :: = CREATE ASSERTION <constraint name> {BEFORE COMMIT AFTER <assertion events>} CHECK (<condition>) [FOR [EACH ROW OF] <table name>] <constraint evaluation> <assertion event> :: = {INSERT DELETE UPDATE [OF <column names>]} ON <table name> <constraint evaluation> :: = [NOT] DEFERRABLE [{INITIALLY DEFERRED INITIALLY IMMEDIATE}] 22 Regras ECA consistem de eventos, de condições e de ações. Um evento é um fato que ocorre em um determinado momento e, teoricamente, não tem duração, é instantâneo Regras ECA as regras, em SGBD relacional, que atualizam somente uma tupla ou registro são as regras orientadas à instância; as regras que atualizam um conjunto de instâncias são chamadas de regras orientadas a conjunto 23 24 4

Regras ECA - Eventos Regras ECA - Condição modificações de dados: insert, delete ou update recuperação de dados: um operação select tempo: absoluto (por exemplo, 12 Fev 98 at 1:00), cíclico (every day at 18:00) ou ainda a intervalos de tempo (every 30 minutes). definidos pela aplicação por exemplo, o user-login predicados no banco de dados: Por exemplo, nos sistemas de banco de dados relacional, a cláusula WHERE de SQL. consultas ao banco de dados: Por exemplo, consultas que possuem o resultado verdadeiro ou não vazio. procedimentos: a condição pode ser uma chamada a um procedimento escrito na linguagem da aplicação. É indiferente o acesso ou não ao banco de dados do procedimento. 25 26 Regras ECA - Ação operações de modificações de dados: operações de recuperação de dados: outros comandos: comandos de controle de transação, como commit ou rollback. procedimentos: a ação pode invocar procedimentos escritos na linguagem da aplicação. Não há necessidade do procedimento acessar o banco de dados. Os triggers seguem o paradigma das regras ECA. O evento é monitorado por uma operação no banco de dados, a condição é um predicado SQL arbitrário e 27 28 a ação é uma seqüência de comandos SQL. Porém, comandos que referenciam a transação e a seção do usuário não são permitidos. Porém, comandos que referenciam a transação e a seção do usuário não são permitidos. <SQL trigger> ::= CREATE TRIGGER < trigger name> { BEFORE AFTER INSTEAD OF} <trigger event> ON <table name > [ORDER <order value>] [REFERENCING <references>] WHEN (<condition>) <SQL procedure statementes> [FOR EACH {ROW STATEMENT} ] 29 30 5

<trigger event> ::= INSERT DELETE UPDATE [OF <columns names>] <reference>::= OLD AS <old value tuple name> NEW AS <new value tuple name > OLD_TABLE AS <old value table name > NEW_TABLE AS <new value table name > 31 A diferença entre assertivas e triggers é que o comando ASSERT deve proibir uma atualização que viola a condição da assertiva, tornando o valor falso. Um trigger permite que a atualização aconteça e depois executa um procedimento de ação quando ocorre uma violação, pois o valor da condição é verdadeiro. 32 6