Baixe o app para aproveitar ainda mais
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
Compartilhar