View
219
Download
0
Category
Preview:
Citation preview
Restrições de chave
• Chave candidata
– É uma superchave com uma propriedade adicional
21:24
Uma chave tem que ser
mínima!
Restrições de chave
• Chave candidata
21:24
Jogo
Time1 Time2 Dia Horário Placar
Botafogo-PB Treze 10/10/10 20:00 2x0
Botafogo-PB Treze 10/10/11 20:00 2x2
SK1 = {Time1, Time2, Dia, Horário, Placar}
SK2 = {Time1, Time2, Dia, Horário}
SK3 = {Time1, Dia, Horário, Placar}
SK4= {Time2, Dia, Horário, Placar}
SK5= {Time1, Dia, Horário}
SK6= {Time2, Dia, Horário}
Restrições de chave
• Chave candidata
21:24
Jogo
Time1 Time2 Dia Horário Placar
Botafogo-PB Treze 10/10/10 20:00 2x0
Botafogo-PB Treze 10/10/11 20:00 2x2
SK1 = {Time1, Time2, Dia, Horário, Placar}
SK2 = {Time1, Time2, Dia, Horário}
SK3 = {Time1, Dia, Horário, Placar}
SK4= {Time2, Dia, Horário, Placar}
SK5= {Time1, Dia, Horário}
SK6= {Time2, Dia, Horário}
Chaves candidatas
Restrições de chave
• Propriedades de uma chave candidata
(1) Duas tuplas distintas, em qualquer estado da relação, não podem ter valores idênticos para todos os atributos chave
(2) Ela é uma superchave mínima
21:24
Propriedade das superchaves
Restrições de chave
• O esquema de uma relação pode ter mais do que uma chave candidata
21:24 Placa e Numero_chasse são chaves candidatas de CARRO
Restrições de chave
• Deve-se escolher uma chave candidata como a chave que será utilizada para identificartuplas na relação
21:25
Chave Primária
Chave Alternativa
Revisando: chaves
• Conjunto de um os mais atributos de uma relação
– Chave Primária (primary key) – PK
– Chave Candidata
– Chave Alternativa
– Chave Estrangeira (foreign key) - FK
21:25
Chave Primária (PK)
• Conjunto de atributos que identifica unicamente uma tupla em uma relação
• Unicidade de valores na coluna que compõe a chave
21:25
Chave Primária (PK)
21:25
20/02/1985São Diego 310/3401427Maria
03/07/1976Capote Valente, 3502467Vânia
Rua das Flores, 210
Endereço
12/11/198001035Renata
DataNascCPFNome
Aluno
Qual(is) atributo(s) representam unicamente uma tupla?
Chave Primária (PK)
21:25
20/02/1985São Diego 310/3401427Maria
03/07/1976Capote Valente, 3502467Vânia
Rua das Flores, 210
Endereço
12/11/198001035Renata
DataNascCPFNome
Aluno
Qual(is) atributo(s) representam unicamente uma tupla?
Aluno(CPF, Nome, Endereço, DataNasc)
Chave Primária (PK)
• PK Composta
• Exemplo
– Minimundo: “Um funcionário pode estar em mais de um projeto”
Alocação (Cod_Projeto, Cod_Func, DataIni, Tempo)
21:25
Chave Primária (PK)
• PK Composta
• Exemplo
– Minimundo: “Um funcionário pode estar em mais de um projeto”
Alocação (Cod_Projeto, Cod_Func, DataIni, Tempo)
21:25
Chave Candidata
• Possui as mesmas propriedades que a chaveprimária
21:25
347685784432
693529876987
701034263890
CPF
20/02/198501427Maria
03/07/197602467Vânia
12/11/198001035Renata
DataNascMatrículaNome
Aluno
Chave Candidata
• Possui as mesmas propriedades que a chaveprimária
21:25
347685784432
693529876987
701034263890
CPF
20/02/198501427Maria
03/07/197602467Vânia
12/11/198001035Renata
DataNascMatrículaNome
Aluno
Chaves candidatas
Chave Primária
• Escolhe-se aquela candidata com o menor número de caracteres ou que esteja mais de acordo com as regras de negócio
21:25
347685784432
693529876987
701034263890
CPF
20/02/198501427Maria
03/07/197602467Vânia
12/11/198001035Renata
DataNascMatrículaNome
Aluno
Chave Primária Chave Alternativa
Chave Estrangeira
• Foreign Key (FK)
• Atributo(s) de uma relação, cujos valores devem obrigatoriamente aparecer na chave primária de outra relação
– A relação pode se auto-referenciar
• Implementa o relacionamento em um BD relacional
21:25
Chave Estrangeira
21:25
1
2
1
Curso
347685784432
693529876987
701034263890
CPF
01427Maria
02467Vânia
01035Renata
MatrículaNome
Chave Estrangeira
21:25
1
2
1
Curso
347685784432
693529876987
701034263890
CPF
01427Maria
02467Vânia
01035Renata
MatrículaNome
Chave Estrangeira
Aluno
Ciências Jurídicas e Sociais
Administração de Empresas
Ciência da Computação
Descrição
3
2
1
Codigo
1
2
1
Curso
347685784432
693529876987
701034263890
CPF
01427Maria
02467Vânia
01035Renata
MatrículaNome
Chave Estrangeira
21:25
Aluno
Curso
Chave Estrangeira
21:25
Funcionário (CodFunc, Nome, Endereço, #Cod_Chefe)
2Carlos Gomes, 50Carla4
1
3
4
Cod_Chefe
Anita Garibaldi, 12
Oscar Freire, 10
Av. Joaquim 2
Endereço
Pedro3
João2
Maria1
NomeCodFun
Restrições sobre valores NULL
• Especifica se valores NULL são permitidos
21:25
NOT NULL PERMITE NULL!
Operações de atualização
• Operações do modelo relacional são categorizadas em recuperações e atualizações
• Operações básicas que podem mudar os estados das relações no banco de dados:
– Inserir
– Excluir
– Alterar (ou Modificar)
21:25
Operação INSERIR
• Oferece uma lista de valores de atributo para que uma nova tupla t possa ser inserida em uma relação R
• Pode violar quatro tipos de restrições– Domínio: valor não é do domínio
– Chave: valor já existe
– Entidade: chave primária é nula
– Referencial: valor de FK refere-se a tupla inexistente
• Se uma inserção violar uma ou mais restrições– A opção padrão é rejeitar a inserção
21:25
Operação EXCLUIR
• Pode violar apenas a integridade referencial
– Se a tupla que está sendo excluída for referenciada por chaves estrangeiras de outras tuplas
21:25
Nome Matrícula CPF Curso
João 123456 11222333443 1
José 654321 44383799092 1
Maria 123123’ 73248762347 2
Curso Nome
1 Ciência da Computação
2 Ecologia
3 Contabilidade
Se excluir o curso 1, o que o SGBD deve fazer?
Operação EXCLUIR
• RESTRICT: rejeita exclusão
• CASCADE: propaga a exclusão para referências
• SET NULL: Modifica valores para NULL
• SET DEFAULT: Modifica para valor específico
21:25
Nome Matrícula CPF Curso
João 123456 11222333443 1
José 654321 44383799092 1
Maria 123123’ 73248762347 2Curso Nome
1 Ciência da Computação
2 Ecologia
3 Contabilidade
Operação EXCLUIR
• RESTRICT: rejeita exclusão
• CASCADE: propaga a exclusão para referências
• SET NULL: Modifica valores para NULL
• SET DEFAULT: Modifica para valor específico
21:25
Nome Matrícula CPF Curso
João 123456 11222333443 1
José 654321 44383799092 1
Maria 123123’ 73248762347 2Curso Nome
1 Ciência da Computação
2 Ecologia
3 Contabilidade
Ao tentar excluir o curso 1...
A exclusão não é aceita porque ainda existem tuplas em ALUNO
que referenciam CURSO
Operação EXCLUIR
• RESTRICT: rejeita exclusão
• CASCADE: propaga a exclusão para referências
• SET NULL: Modifica valores para NULL
• SET DEFAULT: Modifica para valor específico
21:25
Nome Matrícula CPF Curso
João 123456 11222333443 1
José 654321 44383799092 1
Maria 123123’ 73248762347 2Curso Nome
1 Ciência da Computação
2 Ecologia
3 Contabilidade
Ao tentar excluir o curso 1...
Operação EXCLUIR
• RESTRICT: rejeita exclusão
• CASCADE: propaga a exclusão para referências
• SET NULL: Modifica valores para NULL
• SET DEFAULT: Modifica para valor específico
21:25
Nome Matrícula CPF Curso
João 123456 11222333443 1
José 654321 44383799092 1
Maria 123123’ 73248762347 2Curso Nome
1 Ciência da Computação
2 Ecologia
3 Contabilidade
Ao tentar excluir o curso 1...
As tuplas que refereciam CURSO com id = 1 são excluídas
Operação EXCLUIR
• RESTRICT: rejeita exclusão
• CASCADE: propaga a exclusão para referências
• SET NULL: Modifica valores para NULL
• SET DEFAULT: Modifica para valor específico
21:25
Nome Matrícula CPF Curso
João 123456 11222333443 1
José 654321 44383799092 1
Maria 123123’ 73248762347 2Curso Nome
1 Ciência da Computação
2 Ecologia
3 Contabilidade
Ao tentar excluir o curso 1...
Operação EXCLUIR
• RESTRICT: rejeita exclusão
• CASCADE: propaga a exclusão para referências
• SET NULL: Modifica valores para NULL
• SET DEFAULT: Modifica para valor específico
21:25
Nome Matrícula CPF Curso
João 123456 11222333443 NULL
José 654321 44383799092 NULL
Maria 123123’ 73248762347 2Curso Nome
1 Ciência da Computação
2 Ecologia
3 Contabilidade
Ao tentar excluir o curso 1...
Valor é modificado para NULL
Operação EXCLUIR
• RESTRICT: rejeita exclusão
• CASCADE: propaga a exclusão para referências
• SET NULL: Modifica valores para NULL
• SET DEFAULT: Modifica para valor específico
21:25
Nome Matrícula CPF Curso
João 123456 11222333443 1
José 654321 44383799092 1
Maria 123123’ 73248762347 2Curso Nome
1 Ciência da Computação
2 Ecologia
3 Contabilidade
Ao tentar excluir o curso 1...
Operação EXCLUIR
• RESTRICT: rejeita exclusão
• CASCADE: propaga a exclusão para referências
• SET NULL: Modifica valores para NULL
• SET DEFAULT: Modifica para valor específico
21:25
Nome Matrícula CPF Curso
João 123456 11222333443 3
José 654321 44383799092 3
Maria 123123’ 73248762347 2Curso Nome
1 Ciência da Computação
2 Ecologia
3 Contabilidade
Ao tentar excluir o curso 1...
Valor é modificado para 3, por exemplo
Operação ALTERAR
• Seleciona-se a tupla (ou tuplas) a ser modificada
• Se o atributo alterado não faz parte de uma chave primária nem de uma chave estrangeira
– Em geral não causa problemas
• Alterando uma chave primária/estrangeira
– Questões semelhantes ao Inserir/Excluir
– Definir operações: SET NULL, SET CASCADE...
21:25
Exercício
• Considere o seguinte esquema relacional:
– Categoria(CodCategoria, Descrição)
– Cliente (CodCli, Nome, Endereco, CPF, CodCategoria)
– Funcionário (CodFunc, Nome, CT, CPF, End, Fone)
– Fornecedor (CodFornec, Nome, Cidade)
– Produto (CodProd, CodFornec, Nome, Peso, Valor)
21:25
Exercício
1) Identificar as chaves primárias e chavesestrangeiras
2) Explique o que deve ser feito pelo SGBD paragarantir a integridade referencial nasseguintes situações:
a) Uma tupla é excluída na tabela Categoria
b) Uma tupla é alterada na tabela Fornecedor
21:25
Recommended