1
24/3/2010
Princípio básico:
“As informações em uma base de dados podem ser
consideradas como relações matemáticas e estão
representadas de maneira uniforme, informalmente,
através do uso de TABELAS”
Definição Clássica:
“São conjuntos de dados vistos segundo um conjunto
de RELAÇÕES/TABELAS e as operações sobre
elas são feitas por linguagens que manipulam a
álgebra relacional, manipulando conjuntos de uma
só vez”
2
24/3/2010
Tabela
coluna TABELA 1
linha
Tuplas
3
24/3/2010
Exemplo
Atributo/Domínio
4
24/3/2010
Domínio
Exemplos - Tabelas
Tabela: CARGO
CodCargo Descrição Salário Base
01 Técnico Administrativo 700,00
03 Vigilante 300,00
02 Secretária 1000,00
5
24/3/2010
(1,’Julia Roberts’,’23/09/66’,’Boston’,’USA’)
6
24/3/2010
(1,’Julia Roberts’,’23/09/66’,’Boston’,’USA’)
(2,’Tom Hanks’, null, null, ‘USA’)
7
24/3/2010
Esquema
Esquema Geral
8
24/3/2010
Chaves
° Primária
° Candidata/Alternativa
° Estrangeira
Chave Primária
9
24/3/2010
Chaves Candidatas
10
24/3/2010
Exemplo
Exemplo
Tabela: ELEITOR
° Chaves Candidatas:
• Número do Título de Eleitor
• Número de Identidade
• Número de CPF
° Chave Primária Escolhida:
• Número do Título de Eleitor
11
24/3/2010
Chave Estrangeira
Exemplo
N 1 UNIDADE
ELEITOR vota FEDERACÃO
Tabela ELEITOR
Chave Primária: NUM-TITULO-ELEITOR
Atributos Descritivos: CPF,RG, Nome, Estado-Civil
Chave Estrangeira: SIGLA-UF
12
24/3/2010
Tabela: FUNCIONÁRIO
Matrícula Nome Data de Admissão Cargo
3478 José Carlos 29/04/95 01
6754 Maria Célia 23/07/99 02
1256 Pedro Góes 21/09/02 03
4568 Ana Dias 01/02/03 01
Tabela: CARGO
CodCargo Descrição Salário Base
01 Técnico Administrativo 700,00
03 Vigilante 300,00
02 Secretária 1000,00
Chave Estrangeira
12 Carlos Santana 01 23
24 Carla Soares 01 23
13
24/3/2010
14
24/3/2010
Restrições de Integridade
Restrição de Integridade
15
24/3/2010
Restrição de Integridade
Restrição de Integridade
I. Integridade de Domínio
II. Integridade de Nulo
III. Integridade de Chave
IV. Integridade Referencial
Integridade Semântica
16
24/3/2010
Restrições de Integridade
I. Integridade de Domínio:
° O valor de um campo deve obedecer à definição de valores
admitidos para o domínio da coluna
° Domínios: número inteiro, número real, alfanumérico, data,
etc.
Restrições de Integridade
17
24/3/2010
Restrições de Integridade
Integridade Semântica
° Exemplos:
• “Nenhum empregado pode ganhar mais do que
seu gerente”
• “o número máximo de horas que um
empregado pode trabalhar por semana é 44
horas”
° Pode ser implementada através de mecanismos
como regras e triggers
Integridade Referencial
18
24/3/2010
Integridade Referencial
Regras Básicas:
° Ou seja: não se pode entrar com valor de FK sem este
existir como PK
° Pode-se entrar com null para FK, especificando que as
tuplas não estão relacionadas
° Não se pode remover/modificar uma tupla de uma
tabela cuja PK seja referenciada como FK por outra
tabela
=>operações de manipulação devem ser feitas com
cuidado, de acordo com definições de restrições!!!
Tabela: FUNCIONÁRIO
Matrícula Nome Data de Admissão Cargo
3478 José Carlos 29/04/95 01
6754 Maria Célia 23/07/99 02
1256 Pedro Góes 21/09/02 03
4568 Ana Dias 01/02/03 01
Tabela: CARGO
CodCargo Descrição Salário Base
01 Técnico Administrativo 700,00
03 Vigilante 300,00
02 Secretária 1000,00
19
24/3/2010
Operações versus
Restrições de Integridade
Operação Insert
1. Inserir (null, ‘Ana Paula’, ’19/07/2004’,02)
° Viola a restrição de nulo na PK => rejeitada
2. Inserir (3478, ‘Ana Paula’, ’19/07/2004’,02)
° Viola a unicidade da PK => rejeitada
3. Inserir (3477, ‘Ana Paula’, ’19/07/2004’,07)
° Viola a integridade referencial =>rejeitada
4. Inserir (3378, ‘Ana Paula’, ’19/07/2004’,02)
° Satisfaz as restrições => inserida
Operações versus
Restrições de Integridade
Operação Delete
1. Remover funcionário cuja matrícula = 3478
° aceita
2. Remover tupla da tabela Cargo cujo código é 01
° Viola a integridade referencial
Opções:
° rejeitar a remoção
° propagar a remoção em “cascata” das tuplas que
referenciam aquela sendo removida
° modificar o valor do atributo de referência para “null”
ou outro específico
20
24/3/2010
Operações versus
Restrições de Integridade
Operação Update
1. Atualizar data de admissão do funcionário cuja
matrícula = 3478
° aceita
2. Atualizar registro de Cargo cujo código é 01 para 10
° Viola a integridade referencial
Opções:
° rejeitar a atualização
° propagar a atualização em “cascata” das tuplas que
referenciam aquela sendo removida
° modificar o valor do atributo de referência para “null”
ou outro específico
Consultas
21
24/3/2010
° Consulta interativa
° Múltiplas visões dos dados
SELECT nome
FROM cliente
WHERE saldo > 1.000,00;
22
24/3/2010
Instruções SQL
Comando Descrição
Select Realiza consultas ao BD
Insert Realizam a Manipulação de Dados – DML
Update
Delete
Create Promovem a definição de dados – DDL
Alter
Drop
Rename
Truncate
Commit Gerenciam as mudanças feitas pelas instruções DML
Rollback
Savepoint
Grant Permitem o controle dos dados e estruturas - DCL
Revoke
Exemplos - SQL
23
24/3/2010
SGBDs Relacionais
Oracle
PostGreSQL
DB2
Informix
MySQL
SQLServer
As 12 Regras de Codd
24
24/3/2010
As 12 Regras de Codd
Fragmento de um Estado de um BD
Relacional
25
24/3/2010
Entidade: ATLETA
Atributo Tipo Chave
Número_atleta Atributo de identificação ??
Número_CPF_atleta Atributo de Identificação ??
alternativo
Nome_atleta Atributo de Qualificação ??
(descritor)
Sexo_atleta Atributo de Qualificação ??
(descritor)
Olimpíada_participada Atributo de Ligação com ??
tabela Olimpíadas
26