Restrições de Chaves

Propaganda
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
Download