Integridade dos Dados



Documentos relacionados
A linguagem SQL


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

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

SQL. Autor: Renata Viegas

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

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

Structured Query Language (SQL) Ambiente Simplificado de um SGBD

Introdução ao SQL. Aécio Costa

PROGRAMAÇÃO EM BANCO DADOS Stored Procedure e Trigger

Programação SQL. Introdução

BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar

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

PROCEDIMENTOS ARMAZENADOS (Stored Procedures)

Prof.: Clayton Maciel Costa

Bancos de Dados I. Integridade semântica

Básico da Linguagem SQL. Definição de Esquemas em SQL. SQL(Structured Query Language)

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

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

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

LINGUAGEM DE BANCO DE DADOS

Disciplina de Banco de Dados Parte V

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

Banco de Dados. Aula 1 - Prof. Bruno Moreno 16/08/2011

UNIVERSIDADE FEDERAL DO MARANHÃO - UFMA. Banco de Dados II. Integridade. Carlos Eduardo Portela Serra de Castro

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

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

Structured Query Language (SQL)

Faculdade Lourenço Filho - ENADE

Roteiro. Modelo de Dados Relacional. Processo de Projeto de Banco de Dados. BCC321 - Banco de Dados I. Ementa. Posicionamento.

PROGRAMAÇÃO EM BANCO DADOS Store Procedure e Trigger

PHP INTEGRAÇÃO COM MYSQL PARTE 1

Tarefa Orientada 16 Vistas

Modelo de Dados. Modelos Conceituais

Comandos de Manipulação

Álgebra Relacional. Conjunto de operações que usa uma ou duas relações como entrada e gera uma relação de saída. Operações básicas:

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

Tarefa Orientada 19 Triggers

NOME SEXO CPF NASCIMENTO SALARIO

Banco de Dados I Módulo II: Modelagem Entidade- Relacionamento versus Relacional. (Aula 3) Clodis Boscarioli

CICLO DE VIDA DE UM BD

Junções e Índices em Tabelas

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

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

4.6. SQL - Structured Query Language

Curso de Aprendizado Industrial Desenvolvedor WEB. Disciplina: Banco de Dados Professora: Cheli Mendes Costa Modelo de Dados

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

Evolução. Tópicos. Bancos de Dados - Introdução. Melissa Lemos. Evolução dos Sistemas de Informação Esquemas Modelos. Características de SGBDs

SQL (Structured Query Language)

Persistência e Banco de Dados em Jogos Digitais

trigger insert, delete, update

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, MODELAGEM DE DADOS. Aula 2. Prof. Rafael Dias Ribeiro. M.Sc.

SQL (Structured Query Language)

BANCO DE DADOS. Fixação dos conteúdos Integridade Referencial Normalização Exercícios

SQL (Structured Query Language)

Projeto de Banco de Dados Distribuído Proj o e j to t o de d B a B nc n o o d e d Da D do d s o D i D str t ibu b í u do d s

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

Esquema da Relação. Modelo Relacional. Instância da Relação. Exemplo. Uma base de dados é uma colecção de uma ou mais relações com nomes distintos

Fundamentos do Sistema Gerenciador de Banco de Dados

Banco de Dados. Maurício Edgar Stivanello

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

AULA 6 INTEGRIDADOS DOS DADOS - CRIANDO RESTRIÇÕES

Programação com acesso a BD. Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br

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

Prof.: Clayton Maciel Costa

Sistemas de Informação

Consistem num conjunto de apontadores para instâncias especificas de cada relação.

Triggers no PostgreSQL

Linguagem SQL Sub-linguagem DDL

ADMINISTRAÇÃO DE BANCO DE DADOS

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

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

CIÊNCIA E TECNOLOGIA DO RIO

SQL Gatilhos (Triggers)

1. Domínio dos Atributos

Bancos de Dados Relacionais São bancos de dados formados por várias tabelas que estão relacionadas entre si por alguns campos comuns.

Oracle 10g: SQL e PL/SQL

SQL: Definição de tabelas, Modificações à Base de Dados

AULA 2 INTERAÇÃO COM O BANCO DE DADOS

MODELO RELACIONAL - UFMA

MODELAGEM DE DADOS MODELAGEM DE DADOS. rafaeldiasribeiro.com.br 04/08/2012. Aula 7. Prof. Rafael Dias Ribeiro.

Visões. Definição de Visões

Operação de União JOIN

IF685 Gerenciamento de Dados e Informação - Prof. Robson Fidalgo 1

Tarefa Orientada 15 Manipulação de dados

SQL DDL. Frederico D. Bortoloti

BANCO DE DADOS E BUSINESS INTELIGENCE. C/H: 20 horas (20/02, 25/02, 27/02, 04/03, 06/03)

Procedimentos armazenados

Correção da 1a Prova de GBD1 2010/1. Profa. Sandra de Amo

O que são Bancos de Dados?

SQL. SQL (Structured Query Language) Comando CREATE TABLE. SQL é uma linguagem de consulta que possibilita:

Prova de Fundamentos de Bancos de Dados 2 a Prova


Transcrição:

1 Integridade dos Dados Integridade dos Dados Melissa Lemos melissa@inf.puc-rio.br A integridade dos dados é feita através de restrições, que são condições obrigatórias impostas pelo modelo. Restrições de Integridade Domínio Chave Integridade de Entidade Integridade Referencial 2 Restrição de Domínio O valor de cada atributo deve ser um valor atômico dentro do domínio daquele atributo ou um valor nulo. Inteiro Caracter Data XMLType... Restrição de Chave Uma relação deve ter pelo menos uma chave. Em uma relação, uma chave é um atributo ou conjunto de atributos cujo valor ou combinação de valores deve ser distinto em qualquer instância da relação. Quando existir mais de uma chave em uma relação, é escolhida uma, chamada de chave primária. As demais são chamadas de chaves candidatas 3 4 Integridade de Entidade Nenhum valor de chave primária pode ser nulo. Integridade Referencial A restrição de integridade referencial é usada para manter a consistência entre tuplas de duas relações: uma tupla em uma relação que se refere a uma outra relação deve referenciar uma tupla existente naquela relação. O atributo (ou conjunto de atributos) de uma relação R1 que referencia uma outra relação R2 é chamado de chave estrangeira. Cuidado pois o atributo não é chave de R1, seria melhor que o nome fosse atributo de ligação O valor da chave estrangeira em uma tupla de R1 deve existir como o valor da chave primária de alguma tupla de R2, ou se não for obrigatório, pode ser nulo. 5 6

7 Integridade Semântica Restrições de integridade semântica ou regras do negócio também podem ser especificadas no SGBD! Estas restrições dependem da semântica do negócio ou da aplicação Exemplo: Uma pessoa não pode ter mais de três contas bancárias O total de limite de créditos não pode ultrapassar 10.000. Todo salário tem que ser maior ou igual ao salário mínimo. View, Stored Procedure, Trigger 8 O que é visão? Visão, View Tabela virtual definida através de uma consulta Não há um espaço em disco no qual seus registros estão armazenados Definição fica armazenada no catálogo A consulta SQL é previamente gravada no banco e nomeada 9 10 Abstração Não é desejável que todos os usuários vejam o modelo lógico como um todo. Mundo Real Funcionários Trabalha em Projetos Visões Nível Externo Visão Visões lógicas ( alto nível ) da informação Facilita a documentação do BD Permite segurança de acesso sensível aos dados Permite alterações no nível conceitual sem impacto nas aplicações clientes Alocação Tabelas Nível Conceitual 11 12

13 Visão Pode ser usada em consulta Inserção, atualização e remoção com restrições Embora seja possível usar uma visão para modificação, há algumas restrições. De modo geral, se a visão for baseada em uma única tabela, as atualizações são possíveis. Mas se houver uma junção, agrupamento ou perda do atributo chave, muito provavelmente não será permitida a atualização. Sintaxe da visão CREATE VIEW nome [col1, col2,] SELECT [WITH CHECK OPTION] 14 Exemplo CREATE VIEW AniversariantesAgosto as SELECT nome, nascimento FROM Emp WHERE month(nascimento) = 08 Aniversariantes de Agosto empno 2387 2234 nome Adilson Adriana SELECT * FROM AniverariantesAgosto WHERE nome LIKE A% aniversário 12/08/1970 23/08/1955 15 Manipulação dos Dados CREATE VIEW FuncionáriosRJ SELECT col1, col2,, coln FROM Funcionários WHERE base = RJ VALUES (., SP ) Após a inserção, o usuário consulta a visão, e verifica que o funcionário que acabou de inserir não aparece. Por quê? Como o funcionário inserido era de São Paulo, não satisfaz o critério de seleção da visão, e obviamente, não pode retornar. Porém, se o usuário puder consultar a tabela de empregados, verá que a linha foi realmente inserida. 16 Manipulação dos Dados CREATE VIEW FuncionáriosRJ SELECT col1, col2,, coln FROM Funcionários WHERE base = RJ WITH CHECK OPTION Procedimento Armazenado, Stored Procedure VALUES (., RJ ) OK! VALUES (., SP ) 17 18

19 O que é Stored Procedure? Procedimento armazenado no SGBD e que deve ser chamado por um usuário ou uma aplicação. Stored Procedures Objetivo assegurar as restrições de integridade melhorar a segurança no acesso aos dados melhorar o desempenho das aplicações reduzir o volume de dados trafegados na rede melhorar a manutenção do software 20 Stored Procedures x SQL embutido Passos para execução Consultas SQL Análise Validação de nomes Verificação de Proteção Tradução Otimização Execução Chamadas a SPs Alocação da SP Verificação de proteção Substituição de parâmetros Execução Problemas com o uso de Stored Procedures Falta de padronização entre SGBDs, o que acarreta na dificuldade de portabilidade do código Existem SGBDs que ainda não disponibilizam esta funcionalidade, inviabilizando a distribuição do processamento entre a aplicação e o SGBD 21 22 Exemplo - Stored Procedure CREATE PROCEDURE p_exclui_pessoa (x_cpf IN CHAR(11)) x_nome VARCHAR(50); x_end VARCHAR(50); BEGIN SELECT nome, endereco INTO x_nome, x_end FROM pessoa WHERE cpf = x_cpf; INSERT INTO EX_CLIENTE VALUES (x_cpf, x_nome, x_end); DELETE FROM PESSOA WHERE CPF = x_cpf; EXCEPTION... END p_exclui_pessoa; Gatilho, Trigger 23 24

25 O que é Trigger? Procedimento disparado automaticamente pelo SGBD em resposta a um evento específico do banco de dados Regras ECA Evento Condição Ação O que é Trigger? Semelhante a um procedimento armazenado mas tem a sua execução disparada pelo SGBD quando ocorre um evento préestabelecido O evento é associado à tentativa de execução de operações sobre uma tabela (inclusão, exclusão e alteração) 26 Trigger Objetivo assegurar as restrições de integridade melhorar a segurança no acesso aos dados melhorar o desempenho das aplicações reduzir o volume de dados trafegados na rede melhorar a manutenção do software. Exemplo - Stored Procedure CREATE TRIGGER t_exclui_pessoa BEFORE DELETE ON pessoa FOR EACH ROW BEGIN INSERT INTO EX_CLIENTE VALUES (:old.cpf, :old.nome, :old.end); END t_exclui_pessoa; 27 28 Stored Procedure vs Trigger Stored Procedures Aplicação conhece as SPs Uso pelas aplicações deve ser autorizado explicitamente Execução disparada pela aplicação Triggers Aplicação não conhece os triggers Existência restrita ao DBA Uso independente de autorização Execução disparada pelo SGBD quando as condições forem satisfeitas 29