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