Modelo Relacional
Introduzido por Ted Codd, da IBM Research, em 1970.
Utiliza o conceito de relação matemática.
Possui base teórica na teoria dos conjuntos e na lógica de predicados.
Primeiras implementações comercias modelo relacional:
- SGBD Oracle
- SQL/DS da IBM
O modelo relacional representa o banco de dados como uma coleção
de Relações (Tabelas).
Exemplo de Modelo
Relacional
type empregado = record
cpf
nome
sexo
idade
cod_dept
end;
char(11);
char(50);
char(1);
numeric;
numeric;
Figura 1. Domínio dos atributos da Relação (Tabela)
EMPREGADO.
type trabalha_em = record
cod_empregado numeric;
cod_projeto
numeric;
end;
Figura 3. Domínio dos atributos da Relação (Tabela)
TRABALHA_EM.
type departamento = record
codigo
nome
end;
numeric;
char(50);
Figura 2. Domínio dos atributos da Relação (Tabela)
DEPARTAMENTO.
type projeto = record
codigo numeric;
nome char(20);
end;
Figura 4. Domínio dos atributos da Relação (Tabela)
PROJETO.
Conceitos do Modelo
Relacional
Domínio (Tipo de Dado)
Atributo (Coluna)
Tupla (Linha ou Registro)
Relação (Tabela)
Modelo Relacional
EMPREGADO
RELAÇÃO
ATRIBUTO
DOMÍNIO
TUPLA
EMPREGADO
CPF
NOME
SEXO
IDADE
132131231345
Fábio Silvestre
M
15
567567567567
Daniala Mercury
F
25
678678678686
Galvão Bueno
M
35
786786786788
Renato Aragão
M
28
234534534453
Daiane Santos
F
12
143646758698
Giba
M
50
Identificação e Associação
Entre Relações (Tabelas)
Chave Primária
Chave Estrangeira
Identificação em uma Relação
(Tabela) - Chave Primária
CHAVE PRIMÁRIA
EMPREGADO
CPF
NOME
SEXO
IDADE
132131231345
Fábio Silvestre
M
15
567567567567
Daniala Mercury
F
25
678678678686
Galvão Bueno
M
35
786786786788
Renato Aragão
M
28
234534534453
Daiane Santos
F
12
143646758698
Giba
M
50
Associação entre Relações
(Tabelas) - Chave Estrangeira
CHAVE PRIMÁRIA
CHAVE ESTRANGEIRA
EMPREGADO
CPF
NOME
SEXO
IDADE
COD_DEPT
132131231345
Fábio Silvestre
M
15
5
567567567567
Daniala Mercury
F
25
1
678678678686
Galvão Bueno
M
35
3
786786786788
Renato Aragão
M
28
6
234534534453
Daiane Santos
F
12
2
143646758698
Giba
M
50
3
DEPARTAMENTO
CODIGO
NOME
1
Financeiro
2
Recursos Humanos
3
Atendimento
4
Suporte de TI
5
Contabilidade
6
Diretoria
Associação entre Relações
(Tabelas) - Chave Estrangeira
CHAVE PRIMÁRIA
CHAVE ESTRANGEIRA
EMPREGADO
CPF
NOME
SEXO
IDADE
132131231345
Fábio Silvestre
M
15
567567567567
Daniala Mercury
F
25
678678678686
Galvão Bueno
M
35
786786786788
Renato Aragão
M
28
234534534453
Daiane Santos
F
12
143646758698
Giba
M
50
TRABALHA_EM
PROJETO
COD_EMPREGADO
COD_PROJETO
CODIGO
NOME
143646758698
3
1
SAC
786786786788
1
2
Tribunal de Justiça
678678678686
6
3
TRE
786786786788
4
4
TRT
132131231345
2
5
SEFAZ
234534534453
5
6
SAEB
Esquema Completo do Banco
de Dados Relacional de Exemplo
CHAVE PRIMÁRIA
CHAVE ESTRANGEIRA
EMPREGADO
CPF
NOME
SEXO
IDADE
COD_DEPT
132131231345
Fábio Silvestre
M
15
5
567567567567
Daniala Mercury
F
25
1
DEPARTAMENTO
CODIGO
NOME
1
Financeiro
5
Recursos Humanos
TRABALHA_EM
PROJETO
COD_EMPREGADO
COD_PROJETO
CODIGO
NOME
143646758698
3
1
SAC
786786786788
1
2
Tribunal de Justiça
678678678686
6
3
TRE
786786786788
4
4
TRT
132131231345
2
5
SEFAZ
234534534453
5
6
SAEB
Características das Relações
(Tabelas)
Ordenação de tuplas em uma relação.
Ordenação de valores dentro de uma tupla.
Valores e NULLs nas tuplas.
Interpretação (Sentido) de uma relação (Tipo Entidade ou Tipo
Relacionamento).
Restrições do Modelo
Relacional
Restrições inerentes baseadas em modelo.
Restrições baseadas em esquema.
Restrições baseadas em aplicações.
Restrições Baseadas em
Esquema
Restrições de domínio.
Restrições de chave primária.
Restriçõe de chave candidata.
Restrições de valores NULL.
Restrições de integridade de entidade.
Restrições de integridade referencial (chave estrangeira).
Restrições através de gatilhos.
Restrições através de asserções.
Inserção sem Violação de
Restrições
INSERIR em EMPREGADO (CPF, NOME, SEXO, IDADE) os VALORES
(942342342342, 'Maria Helena', 'F', 54)
CHAVE PRIMÁRIA
EMPREGADO
CPF
NOME
SEXO
IDADE
132131231345
Fábio Silvestre
M
15
567567567567
Daniala Mercury
F
25
678678678686
Galvão Bueno
M
35
786786786788
Renato Aragão
M
28
234534534453
Daiane Santos
F
12
143646758698
Giba
M
50
Restrição de Domínio Violada
INSERIR em EMPREGADO (CPF, NOME, SEXO, IDADE) os VALORES
('Pituba', 'Maria Helena', 'F', 54)
CHAVE PRIMÁRIA
EMPREGADO
CPF
NOME
SEXO
IDADE
132131231345
Fábio Silvestre
M
15
567567567567
Daniala Mercury
F
25
678678678686
Galvão Bueno
M
35
786786786788
Renato Aragão
M
28
234534534453
Daiane Santos
F
12
143646758698
Giba
M
50
Restrição de Integridade de
Entidade Violada
INSERIR em EMPREGADO (CPF, NOME, SEXO, IDADE) os VALORES
(NULL, 'Maria Helena', 'F', 54)
CHAVE PRIMÁRIA
EMPREGADO
CPF
NOME
SEXO
IDADE
132131231345
Fábio Silvestre
M
15
567567567567
Daniala Mercury
F
25
678678678686
Galvão Bueno
M
35
786786786788
Renato Aragão
M
28
234534534453
Daiane Santos
F
12
143646758698
Giba
M
50
Restrição de Chave Primária
Violada
INSERIR em EMPREGADO (CPF, NOME, SEXO, IDADE) os VALORES
(678678678686, 'João Henrique', 'M', 76)
CHAVE PRIMÁRIA
EMPREGADO
CPF
NOME
SEXO
IDADE
132131231345
Fábio Silvestre
M
15
567567567567
Daniala Mercury
F
25
678678678686
Galvão Bueno
M
35
786786786788
Renato Aragão
M
28
234534534453
Daiane Santos
F
12
143646758698
Giba
M
50
Restrição de Integridade
Referencial Violada
INSERIR em EMPREGADO (CPF, NOME, SEXO, IDADE, COD_DEPT)
os VALORES (678678678686, 'Ivete Sangalo', 'F', 25, 2)
CHAVE PRIMÁRIA
CHAVE ESTRANGEIRA
EMPREGADO
CPF
NOME
SEXO
IDADE
COD_DEPT
132131231345
Fábio Silvestre
M
15
5
567567567567
Daniala Mercury
F
25
1
DEPARTAMENTO
CODIGO
NOME
1
Financeiro
5
Recursos Humanos
Inserção sem Violação de
Restrições
INSERIR em EMPREGADO (CPF, NOME, SEXO, IDADE, COD_DEPT)
os VALORES (678678678686, 'Ivete Sangalo', 'F', 25, NULL)
CHAVE PRIMÁRIA
CHAVE ESTRANGEIRA
EMPREGADO
CPF
NOME
SEXO
IDADE
COD_DEPT
132131231345
Fábio Silvestre
M
15
5
567567567567
Daniala Mercury
F
25
1
DEPARTAMENTO
CODIGO
NOME
1
Financeiro
5
Recursos Humanos
Alteração sem Violação de
Restrições
MODIFICAR o CPF da tupla de EMPREGADO onde o CPF = 567567567567 para 423645645645
CHAVE PRIMÁRIA
EMPREGADO
CPF
NOME
SEXO
IDADE
132131231345
Fábio Silvestre
M
15
567567567567
Daniala Mercury
F
25
678678678686
Galvão Bueno
M
35
786786786788
Renato Aragão
M
28
234534534453
Daiane Santos
F
12
143646758698
Giba
M
50
Restrição de Domínio Violada
MODIFICAR o CPF da tupla de EMPREGADO onde o CPF = 567567567567 para 'Masculino'
CHAVE PRIMÁRIA
EMPREGADO
CPF
NOME
SEXO
IDADE
132131231345
Fábio Silvestre
M
15
567567567567
Daniala Mercury
F
25
678678678686
Galvão Bueno
M
35
786786786788
Renato Aragão
M
28
234534534453
Daiane Santos
F
12
143646758698
Giba
M
50
Restrição de Integridade de
Entidade Violada
MODIFICAR o CPF da tupla de EMPREGADO onde o CPF = 567567567567 para NULL
CHAVE PRIMÁRIA
EMPREGADO
CPF
NOME
SEXO
IDADE
132131231345
Fábio Silvestre
M
15
567567567567
Daniala Mercury
F
25
678678678686
Galvão Bueno
M
35
786786786788
Renato Aragão
M
28
234534534453
Daiane Santos
F
12
143646758698
Giba
M
50
Restrição de Chave Primária
Violada
MODIFICAR o CPF da tupla de EMPREGADO onde o CPF = 567567567567 para 143646758698
CHAVE PRIMÁRIA
EMPREGADO
CPF
NOME
SEXO
IDADE
132131231345
Fábio Silvestre
M
15
567567567567
Daniala Mercury
F
25
678678678686
Galvão Bueno
M
35
786786786788
Renato Aragão
M
28
234534534453
Daiane Santos
F
12
143646758698
Giba
M
50
Restrição de Integridade
Referencial Violada
MODIFICAR o CODIGO da tupla de DEPARTAMENTO onde o CODIGO = 5 para 7
CHAVE PRIMÁRIA
CHAVE ESTRANGEIRA
EMPREGADO
CPF
NOME
SEXO
IDADE
COD_DEPT
132131231345
Fábio Silvestre
M
15
5
567567567567
Daniala Mercury
F
25
1
DEPARTAMENTO
CODIGO
NOME
1
Financeiro
5
Recursos Humanos
Alteração sem Violação de
Restrições
MODIFICAR o COD_DEPT da tupla de EMPREGADO onde o COD_DEPT = 5 para NULL
CHAVE PRIMÁRIA
CHAVE ESTRANGEIRA
EMPREGADO
CPF
NOME
SEXO
IDADE
COD_DEPT
132131231345
Fábio Silvestre
M
15
5
567567567567
Daniala Mercury
F
25
1
DEPARTAMENTO
CODIGO
NOME
1
Financeiro
5
Recursos Humanos
Remoção sem Violação de
Restrições
REMOVER a tupla EMPREGADO onde CPF = 786786786788
CHAVE PRIMÁRIA
EMPREGADO
CPF
NOME
SEXO
IDADE
132131231345
Fábio Silvestre
M
15
567567567567
Daniala Mercury
F
25
678678678686
Galvão Bueno
M
35
786786786788
Renato Aragão
M
28
234534534453
Daiane Santos
F
12
143646758698
Giba
M
50
Restrição de Integridade
Referencial Violada
REMOVER a tupla DEPARTAMENTO onde CODIGO = 5
CHAVE PRIMÁRIA
CHAVE ESTRANGEIRA
EMPREGADO
CPF
NOME
SEXO
IDADE
COD_DEPT
132131231345
Fábio Silvestre
M
15
5
567567567567
Daniala Mercury
F
25
1
DEPARTAMENTO
CODIGO
NOME
1
Financeiro
5
Recursos Humanos
Download

LÓGICA DE PROGRAMAÇÃO