Buscar

aula_18-19_bd_IESB_2013_1_sul_6

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 8 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 8 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

1
11
Disciplina Banco de Dados (BD)Disciplina Banco de Dados (BD)
1818ªª -- 1919ªª Aulas Aulas -- Integridade II Integridade II -- Integridade referencialIntegridade referencial2013/1 2013/1 -- CCON4A CCON4A -- ENGN6CENGN6C
IESB SulIESB Sul
2
Planejamento - BD I - 2013/1 - (previsão)
D S T Q Q S S D S T Q Q S S
1 2 1
3 4 5 6 7 8 9 2 3 4 5 6 7 8
10 11 12 13 14 15 16 9 10 11 12 13 14 15
17 18 19 20 21 22 23 16 17 18 19 20 21 22
24 25 26 27 28 23 24 25 26 27 28 29
30
D S T Q Q S S D S T Q Q S S
1 2 1 2 3 4 5 6
3 4 5 6 7 8 9 7 8 9 10 11 12 13
10 11 12 13 14 15 16 14 15 16 17 18 19 20
17 18 19 20 21 22 23 21 22 23 24 25 26 27
24 25 26 27 28 29 30 28 29 30 31
31
D S T Q Q S S
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
D S T Q Q S S
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
FEVEREIRO
MARÇO
ABRIL
MAIO
JUNHO
JULHO
LEGENDA
Feriado / Recesso
Aula
Lançamento (P1, P2 e Subst)
Início / Término Aulas
Avaliação (P1, P2 e Subst)
Edad
3
Banco de Dados (BD)
Para assistir a aula: Para assistir a aula: 
éé necessnecessáário estar que o aluno esteja rio estar que o aluno esteja 
matriculado na disciplina matriculado na disciplina 
(deve estar na lista de chamada)(deve estar na lista de chamada)
procurar a Coordenaprocurar a Coordenaçção do Curso ão do Curso 
para a solupara a soluçção de problemasão de problemas
4
LeiamLeiam
CCóódigo de digo de ÉÉticatica
ResoluResoluçção Conselho Superior não Conselho Superior nºº 02/201002/2010
de 12 de agosto de 2010de 12 de agosto de 2010
(dispon(disponíível na plataforma "vel na plataforma "BlackboardBlackboard")")
Banco de Dados
5
BD
Banco de Dados
EE--mail para receber o material enquanto não mail para receber o material enquanto não 
estestáá dispondisponíível o site da disciplinavel o site da disciplina
wpereira@cpovo.net
BD - Enviar material
6
�� BIBLIOGRAFIABIBLIOGRAFIA
�� Bibliografia bBibliografia báásica (ordem alfabsica (ordem alfabéética):tica):
�� DATE, CHRISTOPHER JDATE, CHRISTOPHER J. . IntroduIntroduçção a Sistemas de Bancos ão a Sistemas de Bancos 
de Dadosde Dados. Rio de Janeiro: Campus, 2000. . Rio de Janeiro: Campus, 2000. 
�� HEUSER, Carlos AlbertoHEUSER, Carlos Alberto. . Projeto de banco de DadosProjeto de banco de Dados. 6.ed. . 6.ed. 
Porto Alegre: Porto Alegre: BookmanBookman, 2010, 2010 ..
�� SILBERSCHATZ, Korth; SUDARSHANSILBERSCHATZ, Korth; SUDARSHAN. . Sistema de Banco Sistema de Banco 
de Dadosde Dados. 3. ed. São Paulo: Makron Books, 2005.. 3. ed. São Paulo: Makron Books, 2005.
Banco de Dados (BD)
2
7
�� BIBLIOGRAFIABIBLIOGRAFIA
�� Bibliografia complementar (ordem alfabBibliografia complementar (ordem alfabéética):tica):
�� ELMASRI, R.; NAVATHE, S. BELMASRI, R.; NAVATHE, S. B. . Sistemas de Banco de DadosSistemas de Banco de Dados. 4. ed. São . 4. ed. São 
Paulo: Pearson Education do Brasil, 2005.Paulo: Pearson Education do Brasil, 2005.
�� KROENKE, David MKROENKE, David M. . Banco de Dados: fundamentos, projeto e Banco de Dados: fundamentos, projeto e 
implementaimplementaççãoão. 6. ed. Rio de Janeiro: LTC, 1999.. 6. ed. Rio de Janeiro: LTC, 1999.
�� MACHADO, Felipe Nery; ABREU, MauricioMACHADO, Felipe Nery; ABREU, Mauricio. . Projeto de Banco de Dados: Projeto de Banco de Dados: 
uma visão pruma visão prááticatica. 16. ed. São Paulo: . 16. ed. São Paulo: ÉÉrica, 2009.rica, 2009.
�� MELO, Rubens NMELO, Rubens N. . Banco de Dados em AplicaBanco de Dados em Aplicaçções Clienteões Cliente--ServidorServidor. Rio . Rio 
de Janeiro: Infobook, 1997.de Janeiro: Infobook, 1997.
�� SETZER, Valdemar W; SILVA, FlSETZER, Valdemar W; SILVA, Fláávio Soares Correavio Soares Correa. . Bancos de Dados: Bancos de Dados: 
aprenda o que são, melhore seu conhecimento, construa o seuaprenda o que são, melhore seu conhecimento, construa o seu. São Paulo: . São Paulo: 
Edgard BlEdgard Blüücher Ltda, 2005.cher Ltda, 2005.
Banco de Dados (BD)
8
�� SITES PARA APROFUNDAMENTO E FERRAMENTAS:SITES PARA APROFUNDAMENTO E FERRAMENTAS:
�� brModelo 2.0brModelo 2.0. . Ferramenta de modelagem de banco de dadosFerramenta de modelagem de banco de dados. Dispon. Disponíível vel 
em: <http://www.sis4.com/brmodelo>. Acesso em 29 jul. 2012.em: <http://www.sis4.com/brmodelo>. Acesso em 29 jul. 2012.
�� DBDesigner 4DBDesigner 4. . Ferramenta de modelagem de banco de dadosFerramenta de modelagem de banco de dados. Dispon. Disponíível vel 
em: <http://fabforce.net/dbdesigner4/>. Acesso em 29 jul. 2012. em: <http://fabforce.net/dbdesigner4/>. Acesso em 29 jul. 2012. 
�� MySQLMySQL. . Sistema Gerenciador de Banco de Dados MySQLSistema Gerenciador de Banco de Dados MySQL. Dispon. Disponíível vel 
em: <http://www.mysql.com/>. Acesso em 29 jul. 2012. em: <http://www.mysql.com/>. Acesso em 29 jul. 2012. 
�� OracleOracle. . Sistema Gerenciador de Banco de Dados OracleSistema Gerenciador de Banco de Dados Oracle. Dispon. Disponíível em: vel em: 
<http://www.oracle.com/br/index.html/>. Acesso em 29 jul. 2012. <http://www.oracle.com/br/index.html/>. Acesso em 29 jul. 2012. 
�� Power DesignerPower Designer. . Ferramenta de modelagem de banco de dadosFerramenta de modelagem de banco de dados. dispon. disponíível vel 
em: em: 
<http://www.sybase.com/products/modelingdevelopment/powerdesigne<http://www.sybase.com/products/modelingdevelopment/powerdesigner>. r>. 
Acesso em Acesso em 29 jul. 2012.Acesso em Acesso em 29 jul. 2012.
Banco de Dados (BD)
9
FIES
10
Plano de Ensino
11
Plano de Ensino
12
Banco de Dados
Formem as equipes para o 2Formem as equipes para o 2°° TrabalhoTrabalho
Equipes de Equipes de 0303 ou ou 0404 integrantesintegrantes
3
13
Roteiro da Apresentação
� Introdução
� Modelo Relacional
� Restrições de integridade
� Integridade de identidade
� Modelos de dados
� Modelo Relacional
� Restrições de integridade
� Integridade referencial
14
Roteiro da Apresentação
� Introdução
� Modelo Relacional
� Restrições de integridade
� Integridade de identidade
� Modelos de dados
� Modelo Relacional
� Restrições de integridade
� Integridade referencial
15
�� consiste em uma consiste em uma colecoleçção de tabelasão de tabelas, cada qual com nome , cada qual com nome úúniconico
�� a base de dados vista pelos usua base de dados vista pelos usuáários como um rios como um conjunto de tabelasconjunto de tabelas
�� conjunto de tabelas conjunto de tabelas que representa os dados e a relaque representa os dados e a relaçção entre elesão entre eles
Modelo relacional
cod nome codEmp
A1 XXXX 1111
A2 YYYYY 3333
B2 TTTT 4444
B1 KKKK 1111
Empresa
Empregado
Empresa
Mundo real: Empresa
Empregado
Empresa
Empregado
Empresa
Mundo real: EmpresaMundo real: Empresa
codigo nome cpf
1111 JOSE 2113232
2222 MANUEL 3678912
3333 CARLOS 998750
4444 PEDRO 6754309
Empregado
16
�� Propriedades:Propriedades:
�� cada linha cada linha éé uma uma tuplatupla
�� não existe ordenamento de não existe ordenamento de tuplastuplas
�� não existe ordenamento de colunasnão existe ordenamento de colunas
�� não existem linhas duplicadasnão existem linhas duplicadas
Modelo relacional
Relação (R)
Tabela
Tupla
Linha
atributoscodigo nome cpf
1111 JOSE 2113232
2222 MANOEL 3678912
3333 CARLOS 998750
4444 PEDRO 6754309
EMPREGADO
c1 c2 c3
16
17
�� Integridade de identidadeIntegridade de identidade
�� Chaves: Chaves: 
�� superchavesuperchave
�� chave candidatachave candidata
�� chave primchave primááriaria
�� chave alternativachave alternativa
Modelo relacional
codigo nome cpf
1111 JOSE 2113232
2222 MANOEL 3678912
3333 CARLOS 998750
4444 PEDRO 6754309
EMPREGADO
18
Roteiro da Apresentação
� Introdução
� Modelo Relacional� Restrições de integridade
� Integridade de identidade
� Modelos de dados
� Modelo Relacional
� Restrições de integridade
� Integridade referencial
4
19
Integridade referencial
�� Chave estrangeira (externa):Chave estrangeira (externa):
�� conjunto de atributos em um esquema de relaconjunto de atributos em um esquema de relaçção (ão (SS) que ) que 
constitui a chave primconstitui a chave primáária de outro esquema (ria de outro esquema (RR))
R S
R S
20
Integridade referencial
�� Chave estrangeira (externa):Chave estrangeira (externa):
�� conjunto de atributos em um esquema de relaconjunto de atributos em um esquema de relaçção (ão (SS) que ) que 
constitui a chave primconstitui a chave primáária de outro esquema (ria de outro esquema (RR))
�� RR : Esquema_Empregado (: Esquema_Empregado (codigocodigo, nome, cpf), nome, cpf)
�� SS : Esquema_Equipamento (: Esquema_Equipamento (codigocodigo, nome, , nome, codempcodemp))
==
R S R S
21
�� Chave estrangeira (externa):Chave estrangeira (externa):
�� um ou mais atributos de uma relaum ou mais atributos de uma relaçção ão SS, cujos valores são necess, cujos valores são necessáários rios 
para equivaler para equivaler àà chave primchave primáária de uma relaria de uma relaçção ão RR ((RR e e SS não precisam não precisam 
necessariamente ser distintos)necessariamente ser distintos)
Integridade referencial
codigo nome cpf
1111 JOSE 2113232
2222 MANUEL 3678912
3333 CARLOS 998750
4444 PEDRO 6754309
Empregado
codigo nome codEmp
A1 XXXX 1111
A2 YYYYY 3333
B2 TTTT
B1 KKKK 5555
Equipamento
R S
Chave 1ª Chave Estrangeira
=
22
�� Chave estrangeira (externa):Chave estrangeira (externa):
�� a chave estrangeira (a chave estrangeira (FKFK) do esquema de rela) do esquema de relaçção ão SS, não , não 
participa, obrigatoriamente, da participa, obrigatoriamente, da chave primchave primááriaria ((PKPK) do ) do 
esquema de relaesquema de relaçção ão SS
�� se uma relase uma relaçção ão SS inclui uma chave estrangeira (inclui uma chave estrangeira (FKFK) ) 
equivalendo equivalendo àà chave primchave primáária (ria (PKPK) de uma rela) de uma relaçção ão RR, então , então 
todo valor de todo valor de FKFK, em , em SS, deve ser:, deve ser:
�� igual ao valor de igual ao valor de PKPK em alguma em alguma tuplatupla de de RR
�� totalmente totalmente nulo nulo ((se permitido na declarase permitido na declaraçção DDLão DDL))
RR : Esquema_Empregado (: Esquema_Empregado (codigocodigo, nome, cpf, nome, cpf))
SS : Esquema_Equipamento (: Esquema_Equipamento (codigocodigo, nome, , nome, codempcodemp))
Integridade referencial
=
nulo
PK
FK
22
23
�� Chave estrangeira (externa):Chave estrangeira (externa):
�� Se uma relaSe uma relaçção ão SS inclui uma chave estrangeira (inclui uma chave estrangeira (FKFK) equivalendo ) equivalendo àà chave chave 
primprimáária (ria (PKPK) de uma rela) de uma relaçção ão RR, então todo valor de , então todo valor de FKFK, em , em SS deve ser:deve ser:
�� igual ao valor de igual ao valor de PKPK em alguma em alguma tuplatupla de de RR
�� totalmente totalmente nulo nulo ((se permitido na declarase permitido na declaraçção DDLão DDL))
Integridade referencial
codigo nome cpf
1111 JOSE 2113232
2222 MANUEL 3678912
3333 CARLOS 998750
4444 PEDRO 6754309
Empregado
cod nome codEmp
A1 XXXX 1111
A2 YYYYY 3333
B2 TTTT 1111
B1 KKKK
Equipamento
R S
Chave 1ª
(PK)
Chave 
Estrangeira
(FK)
=
24
�� Anomalias de atualizaAnomalias de atualizaççãoão
�� as atualizaas atualizaçções na base de dados podem causar ões na base de dados podem causar 
violaviolaçções da integridade referencialões da integridade referencial
�� Considere os esquemas a seguir:Considere os esquemas a seguir:
Integridade referencial
RR : Esquema_R (: Esquema_R (RR--PKPK, xx, , xx, yyyy))
SS : Esquema_S (: Esquema_S (SS--PKPK, aa, bb, , aa, bb, SS--FKFK))
=
5
25
Integridade referencial
RR : Esquema_R (: Esquema_R (RR--PKPK, xx, , xx, yyyy))
SS : Esquema_S (: Esquema_S (SS--PKPK, aa, bb, , aa, bb, SS--FKFK))
=
�� Anomalias de atualizaAnomalias de atualizaççãoão
�� Inclusão:Inclusão:
�� se uma se uma tuplatupla éé inseridainserida em em SS, o sistema precisa, o sistema precisa--se se 
assegurar que:assegurar que:
�� ou existe uma ou existe uma tuplatupla em em RR tal quetal que SS--FK = RFK = R--PKPK
�� ou o campo da ou o campo da tuplatupla SS--FK = nulo FK = nulo ((depende da depende da 
definidefiniçção DDL deão DDL de SS))
26
codigo nome cpf
1111 JOSE 2113232
2222 MANUEL 3678912
3333 CARLOS 998750
5555 PEDRO 6754309
Empregado
RR
�� Anomalias de atualizaAnomalias de atualizaççãoão
�� Inclusão:Inclusão:
�� se uma se uma tuplatupla éé inseridainserida em em SS, o sistema deve assegurar que:, o sistema deve assegurar que:
�� ou existe uma ou existe uma tuplatupla em em RR tal quetal que
SS--FK = RFK = R--PKPK
�� ou o campo da ou o campo da tuplatupla SS--FK = nulo FK = nulo ((depende da definidepende da definiçção DDL de ão DDL de SS))
Integridade referencial
Nulo
ou
cod nome codEmp
A1 XXXX 1111
A2 YYYYY 3333
B2 TTTT 3333
B3 KKKK
Equipamento
SS
26
5555
=
27
�� Anomalias de atualizaAnomalias de atualizaççãoão
�� RemoRemoçção (exclusão):ão (exclusão):
�� se uma se uma tuplatupla éé removidaremovida de de RR, sendo que h, sendo que háá tuplastuplas em em SS, , 
tal que onde tal que onde RR--PK = SPK = S--FKFK, o sistema deve assegurar que:, o sistema deve assegurar que:
�� ou a supressão da ou a supressão da tuplatupla de de RR éé proibidaproibida
�� ou excluiou exclui--se todas as se todas as tuplastuplas de de SS onde existe uma onde existe uma 
tuplatupla em em RR tal quetal que SS--FK = RFK = R--PK (efeito cascata)PK (efeito cascata)
�� ou substituiou substitui--se o valor do campo da se o valor do campo da tuplatupla
SS--FK FK porpor nulo nulo ((depende da definidepende da definiçção DDL deão DDL de SS))
Integridade referencial
RR : Esquema_R (: Esquema_R (RR--PKPK, xx, , xx, yyyy))
SS : Esquema_S (: Esquema_S (SS--PKPK, aa, bb, , aa, bb, SS--FKFK))
==
28
cod nome codEmp
A2 YYYYY 3333
Equipamento
SS
�� Anomalias de atualizaAnomalias de atualizaççãoão
�� RemoRemoçção (exclusão):ão (exclusão):
Integridade referencial
codigo nome cpf
1111 JOSE 2113232
2222 MANUEL 3678912
3333 CARLOS 998750
4444 PEDRO 6754309
Empregado
RR
cod nome codEmp
A1 XXXX 4444
A2 YYYYY 3333
B2 TTTT 4444
Equipamento
SS
28
29
cod nome codEmp
A2 YYYYY 3333
Equipamento
SS
�� Anomalias de atualizaAnomalias de atualizaççãoão
�� RemoRemoçção (exclusão):ão (exclusão):
�� se uma se uma tuplatupla éé removidaremovida de de RR, sendo que h, sendo que háá tuplastuplas em em SS, tal que , tal que 
onde onde RR--PK = SPK = S--FKFK, o sistema deve assegurar que:, o sistema deve assegurar que:
�� ou a supressão da ou a supressão da tuplatupla de de RR éé proibidaproibida
�� ou excluiou exclui--se todas as se todas as tuplastuplas de de SS onde existe uma onde existe uma tuplatupla em em RR
tal quetal que SS--FK = RFK = R--PK (efeito cascata)PK (efeito cascata)
�� ou substituiou substitui--se o valor do campo da se o valor do campo da tuplatupla
SS--FK FK porpor nulo nulo ((depende da definidepende da definiçção DDL deão DDL de SS))
Integridade referencial
codigo nome cpf
1111 JOSE 2113232
2222 MANUEL 3678912
3333 CARLOS 998750
Empregado
RR
29
1º2º
30
cod nome codEmp
A1 XXXX 4444
A2 YYYYY 3333
B2 TTTT 4444
Equipamento
SS
�� Anomalias de atualizaAnomalias de atualizaççãoão
�� RemoRemoçção (exclusão):ão (exclusão):
�� se uma se uma tuplatupla éé removidaremovida de de RR, sendo que h, sendo que háá tuplastuplas em em SS, tal que , tal que 
onde onde RR--PK = SPK = S--FKFK, o sistema deve assegurar que:, o sistema deve assegurarque:
�� ou a supressão da ou a supressão da tuplatupla de de RR éé proibidaproibida
�� ou excluiou exclui--se todas as se todas as tuplastuplas de de SS onde existe uma onde existe uma tuplatupla em em RR
tal quetal que SS--FK = RFK = R--PK (efeito cascata)PK (efeito cascata)
�� ou substituiou substitui--se o valor do campo da se o valor do campo da tuplatupla
SS--FK FK porpor nulo nulo ((depende da definidepende da definiçção DDL deão DDL de SS))
Integridade referencial
codigo nome cpf
1111 JOSE 2113232
2222 MANUEL 3678912
3333 CARLOS 998750
4444 PEDRO 6754309
Empregado
RR
NuloNulo
NuloNulo
30
1º2º
6
31
�� Anomalias de atualizaAnomalias de atualizaççãoão
�� AlteraAlteraçção da relaão da relaçção referenciadora (S)ão referenciadora (S)
�� se a se a alteraalteraççãoão de uma de uma tuplatupla de de SS envolver atributos da envolver atributos da 
chave estrangeira chave estrangeira SS--FKFK. Neste caso os mesmos teste feitos . Neste caso os mesmos teste feitos 
para a para a inserinserççãoão devem ser feitos para devem ser feitos para alteraalteraççãoão, ou seja, o , ou seja, o 
sistema deve assegurar, sobre a sistema deve assegurar, sobre a tuplatupla de de SS, que :, que :
�� ou existe uma ou existe uma tuplatupla em em RR tal quetal que SS--FK = RFK = R--PKPK
�� ou o campo da ou o campo da tuplatupla SS--FK = nulo FK = nulo ((depende da depende da 
definidefiniçção DDL deão DDL de SS))
Integridade referencial
RR : Esquema_R (: Esquema_R (RR--PKPK, xx, , xx, yyyy))
SS : Esquema_S (: Esquema_S (SS--PKPK, aa, bb, , aa, bb, SS--FKFK))
==
32
Integridade referencial
�� Anomalias de atualizaAnomalias de atualizaççãoão
�� AlteraAlteraçção da relaão da relaçção referenciada (R):ão referenciada (R):
�� se uma se uma tuplatupla de de RR éé alteradaalterada, havendo , havendo tuplastuplas em em SS, tal , tal 
que onde que onde RR--PK = SPK = S--FKFK, o sistema deve assegurar que:, o sistema deve assegurar que:
�� ou a alteraou a alteraçção da ão da tuplatupla de de RR éé proibidaproibida
�� ou alteraou altera--se o valor dese o valor de SS--FKFK em todas as em todas as tuplastuplas de de SS
de modo a garantir que exista uma de modo a garantir que exista uma tuplatupla em em RR, tal , tal 
que que SS--FK = RFK = R--PKPK ((efeito cascataefeito cascata))
�� ou substituiou substitui--se o valor do campo da se o valor do campo da tuplatupla
SS--FKFK por nulo (depende da definipor nulo (depende da definiçção DDL de ão DDL de SS))
RR : Esquema_R (: Esquema_R (RR--PKPK, xx, , xx, yyyy))
SS : Esquema_S (: Esquema_S (SS--PKPK, aa, bb, , aa, bb, SS--FKFK))
==
33
�� Anomalias de atualizaAnomalias de atualizaççãoão
�� AlteraAlteraçção da relaão da relaçção referenciada (R):ão referenciada (R):
�� se uma se uma tuplatupla de de RR éé alteradaalterada, havendo , havendo tuplastuplas em em SS, tal que onde , tal que onde 
RR--PK = SPK = S--FKFK, o sistema deve assegurar que:, o sistema deve assegurar que:
�� ou a alteraou a alteraçção da ão da tuplatupla de de RR éé proibidaproibida
�� ou alteraou altera--se o valor dese o valor de SS--FKFK em todas as em todas as tuplastuplas de de SS de modo de modo 
a garantir que exista uma a garantir que exista uma tuplatupla em em RR, tal que , tal que SS--FK = RFK = R--PKPK
((efeito cascataefeito cascata))
�� ou substituiou substitui--se o valor do campo da se o valor do campo da tuplatupla
SS--FKFK por nulo (depende da definipor nulo (depende da definiçção DDL de ão DDL de SS))
Integridade referencial
codigo nome cpf
1111 JOSE 2113232
2222 MANUEL 3678912
3333 CARLOS 998750
4444 PEDRO 6754309
Empregado
RR
cod nome codEmp
A1 XXXX 4444
A2 YYYYY 3333
B2 TTTT 4444
Equipamento
SS
5555 5555
33
5555
5555
NuloNulo
ouou
NuloNulo
34
codigo nome cpf
1111 JOSE 2113232
2222 MANUEL 3678912
3333 CARLOS 998750
4444 PEDRO 6754309
Empregado
cod nome codEmp
A1 XXXX 1111
A2 YYYYY 3333
B2 TTTT 1111
B1 KKKK
Equipamento
R S
Chave 1ª
(PK)
Chave 
Estrangeira
(FK)
=
�� RevisãoRevisão
Integridade referencial
O que O que éé chave primchave primáária ?ria ?
O que O que éé chave estrangeira ?chave estrangeira ?
O que O que éé integridade referencial ?integridade referencial ?
Quais as condiQuais as condiçções para uma chave ser primões para uma chave ser primáária ?ria ?
Quais as condiQuais as condiçções para uma chave ser estrangeira ?ões para uma chave ser estrangeira ?
35
�� RevisãoRevisão
Integridade referencial
Qual (is) a(s) condiQual (is) a(s) condiçção(ão(õesões) para ) para inserinserççãoão em em SS ??
Qual (is) a(s) condiQual (is) a(s) condiçção(ão(õesões) para ) para exclusãoexclusão em em RR ??
Qual (is) a(s) condiQual (is) a(s) condiçção(ão(õesões) para ) para alteraalteraççãoão em em SS ??
Qual (is) a(s) condiQual (is) a(s) condiçção(ão(õesões) para ) para alteraalteraççãoão em em RR ??
codigo nome cpf
1111 JOSE 2113232
2222 MANUEL 3678912
3333 CARLOS 998750
4444 PEDRO 6754309
Empregado
cod nome codEmp
A1 XXXX 1111
A2 YYYYY 3333
B2 TTTT 1111
B1 KKKK
Equipamento
R S
Chave 1ª
(PK)
Chave 
Estrangeira
(FK)
=
36
�� ManutenManutençção das restrião das restriçções de integridade:ões de integridade:
�� As restriAs restriçções de integridade devem garantir que as ões de integridade devem garantir que as 
operaoperaçções realizadasões realizadas deixem sempre o deixem sempre o BDBD em em estado estado 
consistenteconsistente
Integridade referencial
Estado 1 Estado 2
operação
rejeitar compensar
7
37
�� ManutenManutençção das restrião das restriçções de integridade:ões de integridade:
�� As restriAs restriçções de integridade devem garantir que as ões de integridade devem garantir que as 
operaoperaçções realizadasões realizadas deixem sempre o deixem sempre o BDBD em em estado estado 
consistenteconsistente
Integridade referencial
Estado 1 Estado 2
operação
rejeitar compensar
38
�� ManutenManutençção das restrião das restriçções de integridade: ões de integridade: 
�� rejeitarrejeitar
�� a operaa operaçção de exclusão de ão de exclusão de tuplatupla, linha ou registro de , linha ou registro de RR
somente somente éé aceitaaceita se não existirem se não existirem tuplastuplas na relana relaçção ão SS
contendo chave estrangeira (contendo chave estrangeira (SS--FKFK), fazendo referência a ), fazendo referência a 
uma chave primuma chave primáária de ria de RR ((RR--PKPK), ou seja, somente ser), ou seja, somente seráá
aceita se aceita se RR--PK PK ≠≠≠≠≠≠≠≠ SS--FKFK
Integridade referencial
RR : Esquema_R (: Esquema_R (RR--PKPK, xx, , xx, yyyy))
SS : Esquema_S (: Esquema_S (SS--PKPK, aa, bb, , aa, bb, SS--FKFK))
==
39
�� ManutenManutençção das restrião das restriçções de integridade: ões de integridade: 
�� rejeitarrejeitar
�� a operaa operaçção de exclusão de ão de exclusão de tuplatupla, linha ou registro de , linha ou registro de RR
somente somente éé aceitaaceita se não existirem se não existirem tuplastuplas na relana relaçção ão SS
contendo chave estrangeira (contendo chave estrangeira (SS--FKFK), fazendo referência a ), fazendo referência a 
uma chave primuma chave primáária de ria de RR ((RR--PKPK), tal que ), tal que RR--PK PK ≠≠≠≠≠≠≠≠ SS--FKFK
Integridade referencial
codigo nome telefone
1111 JOSE 2113232
2222 MANUEL 3678912
3333 CARLOS 998750
4444 PEDRO 6754309
Empregado
R
cod nome codEmp
A1 XXXX 4444
A2 YYYYY 3333
B2 TTTT 4444
Equipamento
S
rejeitar
aceitar
40
�� ManutenManutençção das restrião das restriçções de integridade:ões de integridade:
�� As restriAs restriçções de integridade devem garantir que as ões de integridade devem garantir que as 
operaoperaçções realizadasões realizadas deixem sempre o deixem sempre o BDBD em em estado estado 
consistenteconsistente
Integridade referencial
Estado 1 Estado2
operação
rejeitar compensar
41
�� ManutenManutençção das restrião das restriçções de integridade: ões de integridade: 
�� compensar (declaradas explicitamente)compensar (declaradas explicitamente)
�� cascadescascades:: propaga a alterapropaga a alteraçção / remoão / remoçção de ão de tuplastuplas
�� set set nullnull:: o valor da chave estrangeira o valor da chave estrangeira éé ajustada para o ajustada para o 
valor nulovalor nulo
Integridade referencial
codigo nome cpf
1111 JOSE 2113232
2222 MANUEL 3678912
3333 CARLOS 998750
4444 PEDRO 6754309
EmpregadoCREATE TABLE CREATE TABLE EMPREGADOEMPREGADO
( ( codigocodigo NUMBER (4) NOT NULLNUMBER (4) NOT NULL
, nome VARCHAR2 (20) NOT NULL, nome VARCHAR2 (20) NOT NULL
, cpf VARCHAR2 (11) NOT NULL, cpf VARCHAR2 (11) NOT NULL
, PRIMARY KEY (, PRIMARY KEY (codigocodigo))
, UNIQUE (cpf) );, UNIQUE (cpf) );
cod nome codEmp
A1 XXXX 4444
A2 YYYYY 3333
B2 TTTT 4444
Equipamento
CREATE TABLE CREATE TABLE EQUIPAMENTOEQUIPAMENTO
( ( codcod VARCHAR2 (2) NOT NULLVARCHAR2 (2) NOT NULL
, nome VARCHAR2 (20) NOT NULL, nome VARCHAR2 (20) NOT NULL
, , codempcodemp NUMBER (4)NUMBER (4)
, PRIMARY KEY (, PRIMARY KEY (codcod))
, FOREIGN KEY , FOREIGN KEY codempcodemp REFERENCESREFERENCES
EMPREGADO (EMPREGADO (codigocodigo))
, , ON UPDATE CASCADEON UPDATE CASCADE
, , ON DELETE SET NULL );ON DELETE SET NULL ); 41 42
�� ManutenManutençção das restrião das restriçções de integridade: ões de integridade: 
�� compensar (declaradas explicitamente)compensar (declaradas explicitamente)
�� cascadescascades:: propaga a alterapropaga a alteraçção / remoão / remoçção de ão de tuplastuplas
�� set set nullnull:: o valor da chave estrangeira o valor da chave estrangeira éé ajustada para o ajustada para o 
valor nulovalor nulo
Integridade referencial
codigo nome cpf
1111 JOSE 2113232
2222 MANUEL 3678912
3333 CARLOS 998750
4444 PEDRO 6754309
Empregado
cod nome codEmp
A1 XXXX 4444
A2 YYYYY 3333
B2 TTTT 4444
Equipamento
codigo nome cpf
1111 JOSE 2113232
2222 MANUEL 3678912
3333 CARLOS 998750
5555 PEDRO 6754309
Empregado
cod nome codEmp
A1 XXXX 5555
A2 YYYYY 3333
B2 TTTT 5555
Equipamento
CREATE TABLE CREATE TABLE EMPREGADOEMPREGADO
( ( codigocodigo NUMBER (4) NOT NULLNUMBER (4) NOT NULL
, nome VARCHAR2 (20) NOT NULL, nome VARCHAR2 (20) NOT NULL
, cpf VARCHAR2 (11) NOT NULL, cpf VARCHAR2 (11) NOT NULL
, PRIMARY KEY (, PRIMARY KEY (codigocodigo))
, UNIQUE (cpf) );, UNIQUE (cpf) );
CREATE TABLE CREATE TABLE EQUIPAMENTOEQUIPAMENTO
( ( codcod VARCHAR2 (2) NOT NULLVARCHAR2 (2) NOT NULL
, nome VARCHAR2 (20) NOT NULL, nome VARCHAR2 (20) NOT NULL
, , codempcodemp NUMBER (4)NUMBER (4)
, PRIMARY KEY (, PRIMARY KEY (codcod))
, FOREIGN KEY , FOREIGN KEY codempcodemp REFERENCESREFERENCES
EMPREGADO (EMPREGADO (codigocodigo))
, , ON UPDATE CASCADEON UPDATE CASCADE
, , ON DELETE SET NULL );ON DELETE SET NULL );
update
cascade
42
8
43
�� ManutenManutençção das restrião das restriçções de integridade: ões de integridade: 
�� compensar (declaradas explicitamente)compensar (declaradas explicitamente)
�� cascadescascades:: propaga a alterapropaga a alteraçção / remoão / remoçção de ão de tuplastuplas
�� set set nullnull:: o valor da chave estrangeira o valor da chave estrangeira éé ajustada para o ajustada para o 
valor nulovalor nulo
Integridade referencial
codigo nome cpf
1111 JOSE 2113232
2222 MANUEL 3678912
3333 CARLOS 998750
4444 PEDRO 6754309
Empregado
cod nome codEmp
A1 XXXX 4444
A2 YYYYY 3333
B2 TTTT 4444
Equipamento
codigo nome cpf
1111 JOSE 2113232
2222 MANUEL 3678912
3333 CARLOS 998750
Empregado
cod nome codEmp
A1 XXXX
A2 YYYYY 3333
B2 TTTT
Equipamento
delete
set null
CREATE TABLE CREATE TABLE EMPREGADOEMPREGADO
( ( codigocodigo NUMBER (4) NOT NULLNUMBER (4) NOT NULL
, nome VARCHAR2 (20) NOT NULL, nome VARCHAR2 (20) NOT NULL
, cpf VARCHAR2 (11) NOT NULL, cpf VARCHAR2 (11) NOT NULL
, PRIMARY KEY (, PRIMARY KEY (codigocodigo))
, UNIQUE (cpf) );, UNIQUE (cpf) );
CREATE TABLE CREATE TABLE EQUIPAMENTOEQUIPAMENTO
( ( codcod VARCHAR2 (2) NOT NULLVARCHAR2 (2) NOT NULL
, nome VARCHAR2 (20) NOT NULL, nome VARCHAR2 (20) NOT NULL
, , codempcodemp NUMBER (4)NUMBER (4)
, PRIMARY KEY (, PRIMARY KEY (codcod))
, FOREIGN KEY , FOREIGN KEY codempcodemp REFERENCESREFERENCES
EMPREGADO (EMPREGADO (codigocodigo))
, , ON UPDATE CASCADEON UPDATE CASCADE
, , ON DELETE SET NULL );ON DELETE SET NULL ); 43

Outros materiais