Universidade de Passo Fundo Tecnologia em Sistemas de Informação TSI109- Fundamentos de Banco de Dados (Restrições de Integridade) Prof. Alexandre Tagliari Lazzaretti [email protected] vitoria.upf.tche.br/~lazzaretti Restrições de Integridade Alguns conceitos ... O termo “integridade” refere-se à precisão ou correção de dados no banco de dados (Date, 2000) Dizer que os dados em um banco de dados estão íntegros significa dizer que eles refletem a realidade representada pelo banco de dados e que são consistentes entre si. (Heuser, 2001) Um dos principais objetivos do SGBD é garantir a integridade dos dados 2 Restrições de Integridade Como garantir a integridade dos dados no banco de dados? Através de regras que estabelecem a integridade dos dados, essas regras são chamadas “RESTRIÇÕES DE INTEGRIDADE” O que acontece se essas regras não sejam garantidas? Tem-se no banco de dados, valores indesejados, valores desconhecidos ou nulos e relacionamentos perdidos ou incorretos 3 Restrições de Integridade Quando uma restrição de integridade é declarada o banco de dados deve efetuar a validação e aceitar ou não a restrição de integridade Caso ela seja aceita, o SGBD irá verificar a RI toda a vez que uma modificação é feita nos dados aos quais ela se refere Autores na literatura (Date, Elmasri & Navathe, Silberchatz,...) classificam as RI’s de várias formas, mas pode-se enquadrá-las nas seguintes categorias ... 4 Restrições de Integridade Classificação de RI’s: Restrições de domínio Restrições de chaves Restrições de integridade referencial Restrições quanto ao momento de verificação Restrições baseadas em eventos 5 Restrições de Integridade Classificação de RI’s: Restrições de domínio Restrições de chaves Restrições de integridade referencial Restrições quanto ao momento de verificação Restrições baseadas em eventos 6 Restrições de Integridade Restrições de domínio São as mais elementares formas de restrições São testadas toda a vez que um item é incorporado ou modificado no banco de dados Não somente verificam os valores inseridos ou modificados no banco de dados, mas também testam as consultas para garantir que as comparações feitas tenham sentido. Podem classificar-se em: Restrições Restrições Restrições Restrições Restrições de de de de de atributo tipo tuplas banco de dados transição de estados 7 Restrições de Integridade Restrições de domínio de atributo: é (ou é logicamente equivalente) a uma enumeração dos valores válidos para um determinado atributo. Ex: o atributo PESO na tabela PACIENTES deve ser maior ou igual a ZERO de tipo:o atributo especificado deve ser do tipo especificado. Ex: DATA_ALTA (Data/Hora) de tuplas: Restrição sobre uma tupla individual. Ex: DATA_ALTA>=DATA_BAIXA de banco de dados: relaciona entre si duas ou mai tuplas. Ex. a quantidade de internações de um paciente deve ser igual ao valor do atributo NRO_INTERNAÇÕES da entidade PACIENTES de transição de estados: relacionado aos estados corretos dos valores dos atributos no banco de dados. Ex: a passagem do ESTADO_CIVIL CASADO para SOLTEIRO 8 Restrições de Integridade Restrições de Chaves Chave é o conceito básico para identificar linhas e estabelecer as suas relações em bancos de dados relacionais (Heuser, 2001) Classificam-se em: Chaves Candidatas: Chaves Primárias ou alternativas: Seja X um conjunto de atributos de uma tupla Y. X é uma chave candidata se obedecer as regras de unicidade e irredutibilidade. Unicidade: nenhum valor válido de Y contém duas tuplas com o mesmo valor de X Irredutibilidade: as chaves candidatas não devem incluir nenhum valor irrelevante para fins de identificação única. No caso de existir mais de uma chave candidata, uma deverá ser definida como primária, as restantes são chamadas de alternativas. Ex: Cadastro de clientes, campos: código e CPF Chaves estrangeiras: 9 Restrições de Integridade Restrições de Chaves Chaves estrangeiras: conjunto de atributos de uma tupla cujos valores devem, obrigatoriamente, corresponder a uma chave primária, da mesma ou de outra tupla. Observações: O valor de uma chave estrangeira tem de corresponder ao valor de uma chave primária; o contrário não é verdadeiro Uma chave estrangeira é simples ou composta se a chave primária é simples ou composta Cada atributo da chave estrangeira deve possuir o mesmo tipo de dados da chave primária 10 Restrições de Integridade Restrições de integridade referencial Objetivo: garantir que o banco de dados não inclua valores inválidos como chave estrangeira Princípio básico: A integridade referencial garante que o banco de dados não deve conter quaisquer valores de chaves estrangeiras não associados a uma chave primária, ou seja se B faz relação a A, então A tem de existir. 11 Restrições de Integridade Quanto ao momento de verificação 2 categorias: imediata e postergada Imediata: a verificação é feita no momento da ocorrência de uma operação. Ex. Verificação da quantidade de estoque de um produto. Postergada: O verificação é feita no momento do COMMIT. Caso a restrição seja violada um ROLLBACK é executado. Ex: alteração de um código. Observação: COMMIT: indica o término de uma transação bem-sucedida ROLLBACK: indica o término de uma transação malsucedida 12 Restrições de Integridade Baseadas em eventos São instruções programadas pelo usuário e a sua verificação é independente das operações do banco de dados. Exemplo: geração de um código automaticamente 13 Restrições de Integridade Exercício (para entregar) Definir as restrições de integridade do projeto 14