Beruflich Dokumente
Kultur Dokumente
Regras de Integridade
Murilo S. de Camargo
(Modificações M.A R. Dantas)
1
Restrições de Integridade
Restrições de Domínio
Integridade Referencial
Asserções
Gatilhos (Triggers)
Dependências Funcionais
2
Observações Gerais
3
Restrições de Integridade
Restrições de Domínio H
Integridade Referencial
Asserções
Gatilhos (Triggers)
Dependências Funcionais
4
Restrições de Domínio
5
Restrições de Domínio
6
Restrições de Domínio
7
Restrições de Domínio
8
Observações Gerais
=Considere os seguintes atributos :
- Nome_cliente
- Nome_empregado
- Saldo
- Nome_agência
9
Observações Gerais
=Considerando ainda os atributos :
- Nome_cliente
- Nome_empregado
- Saldo
- Nome_agência
10
Observações Gerais
=Considerando ainda os atributos :
- Nome_cliente
- Nome_empregado
- Saldo
- Nome_agência
11
Restrições de Domínio
A cláusula check em SQL-92 permite restringir
domínios:
– Exemplo1 :
12
Restrições de Domínio
13
Restrições de Domínio
14
Restrições de Domínio
A cláusula check usada para restringir os valores
nulos em um domínio
– Exemplo 2 :
15
Restrições de Domínio
A cláusula check usada para restringir um
determinado conjunto de valores por meio do
uso da cláusula in
– Exemplo 3 :
16
Restrições de Integridade
Restrições de Domínio
Integridade Referencial H
Asserções
Gatilhos (Triggers)
Dependências Funcionais
17
Integridade Referencial
• Exemplo:
18
Observações Gerais
❖ Como as tabelas em essência são relações, utiliza-se os
termos matemáticos relação e tupla, no lugar de tabela e
linhas. Assim :
tabela - relação
linha - tupla
19
Integridade Referencial
Definição Formal:
20
Restrições de Integridade
Aluno Disciplina
Matricula Cod_Disciplina
Nome_aluno K1 e r1 Nome_Disciplina
.... .....
Matricula
Cod_Disciplina α e r2
Πα(r2) ⊆ ΠK1(r1)
21
Integridade Referencial no
Modelo E-R
22
Restrições de Integridade
Aluno Disciplina
Matricula Cod_Disciplina
Nome_aluno K1 e E1 Nome_Disciplina
.... .....
K2 e E2
Matricula
Cod_Disciplina α e r2
R
Πα(r2) ⊆ ΠK1(r1)
23
Integridade Referencial no
Modelo E-R
Entidades fracas também são uma fonte de
restrições de integridade referencial. O esquema de
relação para uma entidade fraca deve incluir a chave
primária da entidade da qual ela depende.
24
Modificações no
Banco de Dados
•Inserção
•Remoção
•Atualização
25
Modificações no
Banco de Dados
Πα(r2) ⊆ ΠK(r1)
26
Modificações no
Banco de Dados
Insert. Se uma tupla (linha) t2 é inserida em r2 (tabela),o
sistema precisa assegurar que existe uma tupla (linha) t1
em r1 (na tabela )tal que t1[K]=t2[α]. Isto é:
α] ∈ ΠK(r1)
t2[α
27
Modificações no
Banco de Dados
Delete. Se uma tupla (linha) t1 é removida de r1 (tabela) o
sistema precisa computar o conjunto de tuplas (linhas)em r2
(na tabela) que referencia t1 :
σα=t1[K] (r2)
28
Modificações no
Banco de Dados
❖ Update - Existem dois casos:
29
Modificações no
Banco de Dados
– Se uma tupla t1 é atualizada em r1, e a atualização
modifica valores da chave primária (K), então um teste
similar ao caso de delete deve ser feito. O sistema
precisa computar :
30
Integridade Referencial
em SQL
31
Integridade Referencial
em SQL
32
Integridade Referencial
em SQL
33
Integridade Referencial
em SQL - Exemplo
create table cliente
(nome-cliente char(20) not null,
rua char(30),
cidade char(30),
primary key (nome-cliente))
34
Integridade Referencial
em SQL - Exemplo
35
Integridade Referencial
em SQL - Exemplo
create table conta
(nome-agencia char(15),
numero-conta char(10) not null,
saldo integer,
primary key (numero-conta),
foreign key (nome-agencia) references agencia)
36
Integridade Referencial
em SQL - Exemplo
create table depositante
(nome-cliente char(20) not null,
numero-conta char(10) not null,
primary key (nome-cliente, numero-conta),
foreign key (numero-conta) references conta,
foreign key (nome-cliente) references cliente)
37
Ações em Cascata em SQL
38
Ações em Cascata em SQL
39
Ações em Cascata em
SQL
on delete cascade
40
Ações em Cascata em
SQL
41
Restrições de Integridade
Restrições de Domínio
Integridade Referencial
Asserções H
Gatilhos (Triggers)
Dependências Funcionais
42
Asserções
Asserções ?
43
Asserções
44
Asserções
Uma asserção em SQL-92 tem a forma
create assertion <nome-asserção> check <predicado>
45
Asserções - Exemplo
46
Asserções - Exemplo
47
Asserções Exemplo
48
Asserções Exemplo
49
Restrições de Integridade
Restrições de Domínio
Integridade Referencial
Asserções
Gatilhos (Triggers) H
Dependências Funcionais
50
Gatilhos (Triggers)
Gatilhos (Triggers)
51
Gatilhos (Triggers)
52
Gatilhos (Triggers)
53
Exemplo Gatilhos
54
Exemplo Gatilhos
55
Exemplo Gatilhos
56
Exemplo Gatilhos
57
Restrições de Integridade
Restrições de Domínio
Integridade Referencial
Asserções
Gatilhos (Triggers)
Dependências Funcionais H
58
Dependências
Funcionais
59
Dependências Funcionais
Restrições ao conjunto de relações válidas.
60
Dependências Funcionais
A dependência funcional
α→β
realiza-se em R se, e somente se em qualquer relação válida
r(R), sempre que duas tuplas t1 e t2 de r combinam nos
atributos α, eles também combinam nos atributos β. Isto é,
t1[α]=t2[α] ⇒ t1[β]=t2[β]
61
Dependências Funcionais
• K → R, and
• Para nenhum α ⊂ K, α → R
62
Dependências Funcionais
Considere o esquema:
63
Dependências Funcionais
O conjunto de dependências funcionais que
queremos garantir para esse esquema de
relação é:
numero_emprestimo → total
numero_emprestimo → nome_agencia
numero_emprestimo → nome_cliente
64
Uso de Dependências
Funcionais
Usamos dependência funcional para:
65
Uso de Dependências
Funcionais
Usamos dependência funcional para:
– especificar restrições no conjunto de relações válidas; diz-se
que F vale em R se todas as operações em R satisfazem o
conjunto de dependências funcionais F.
66
Uso de Dependências
Funcionais
Nota:
67