Prévia do material em texto
1.20 Operações sobre o Modelo Relacional Operações São categorizadas em: Recuperações: operações de consulta que especificam dados de interesse e uma nova relação é formada como resultado. Atualizações: operações básicas que mudam os estados das relações. Operações: atualização Inserir: inserem novos dados. Excluir: excluem novos dados. Alterar: modificam registros de dados existentes. IMPORTANTE Não devem violar as restrições da integridade especificadas. Esquema de BD relacional Descrição: Esquema em que se tem várias tabelas, com colunas de uma linha só. Na primeira, chamada FUNCIONARIO (em negrito), tem-se [Pnome], [Minicial], [Unome], [Cpf] (chave primária), [Datanasc], [Endereco], [Sexo], [Salario], [Cpf_supervisor] e [Dnr]. Na segunda, chamada DEPARTAMENTO (em negrito) tem-se [Dnome], [Dnumero] (chave primária), [Cpf_gerente] e [Data_inicio_gerente]. Na terceira, chamada LOCALIZACOES_DEP (em negrito), tem-se [Dnumero] e [Dlocal] (chave primária composta). Na quarta, chamada PROJETO, tem- se [Projnome], [Projnumero] (chave primária), [Projlocal] e [Dnum]. Na quinta, chamada TRABALHA_EM, tem-se [Fcpf], [ Pnr] (chave primária composta) e [Horas]. Na sexta e 03/07/2024, 10:48 ABD2023B: 1.20 Operações sobre o Modelo Relacional https://moodle.ifrs.edu.br/mod/page/view.php?id=289038&forceview=1 1/8 última, chamada DEPENDENTE (em negrito), tem-se [Fcpf] (chave primária), [Nome_dependente] (chave primária), [Sexo], [Datanasc] e [Parentesco]. Na primeira tabela, [Cpf] (chave primária) está sendo apontado por quatro flechas, partindo de [Cpf_supervisor] e itens de outras tabelas, são eles: [Cpf_gerente], [Pnr] (chave primária) e [Fcpf] (chave primária). Na quarta tabela, [Projnumero] (chave primária) está sendo apontado por uma flecha, que vem de [Pnr] (chave primária). Na segunda tabela, [Dnumero] (chave primária) está sendo apontado por três flechas que vem de ítens de outras tabelas, são eles: [Dnr], [Dnumero] (chave primária) e [Dnum]. Este esquema faz chaves estrangeiras utilizando setas, sendo que o valor que aponta é a chave primária e o valor que se inicia a seta é a chave estrangeira. FUNCIONARIO Pnome Minicial Unome Cpf Datanasc Endereco Sexo Salario Cpf_supervisor Dn João B Silva 12345678966 09-01- 1965 Rua das Flores, 751, São Paulo, SP M 30.000 33344555587 5 Fernando T Wong 33344555587 08-12- 1955 Rua da Lapa, 34, São Paulo, SP M 40.000 88866555576 5 Alice J Zelaya 99988777767 19-01- 1968 Rua Souza Lima, 35, Curitiba, PR F 25.000 98765432168 4 Jennifer S Souza 98765432168 20-06- 1941 Av. Arthur de Lima, 54, Santo André, SP F 43.000 88866555576 4 Ronaldo K Lima 66688444476 15-09- 1962 Rua Rebouças, 65, Piracicaba, SP M 38.000 33344555587 5 Joice A Leite 45345345376 31-07- 1972 Av. Lucas Obes, 74, São Paulo, SP F 25.000 33344555587 5 André V Pereira 98798798733 29-03- 1969 Rua Timbira, 35, São Paulo, SP M 25.000 98765432168 4 Jorge E Brito 88866555576 10-11- 1937 Rua do Horto, 35, São Paulo, SP M 55.000 NULL 1 Descrição da tabela: 03/07/2024, 10:48 ABD2023B: 1.20 Operações sobre o Modelo Relacional https://moodle.ifrs.edu.br/mod/page/view.php?id=289038&forceview=1 2/8 Cpf está sublinhado e portanto, é uma chave primária. Pnome: João; Minicial: B; Unome: Silva; Cpf: 12345678966; Datanasc: 09-01-1965; Endereço: Rua das Flores, 751, São Paulo, SP; Sexo: M; Salario: 30.000 Cpf_supervisor: 33344555587; Dnr: 5. Pnome: Fernando; Minicial: T; Unome: Wong; Cpf: 33344555587; Datanasc: 08-12-1955; Endereco: Rua da Lapa, 34, São Paulo, Sp; Sexo: M; Salario: 40.000; Cpf_supervisor: 88866555576; Dnr: 5. Pnome: Alice; Minicial: J; Unome: Zelaya; Cpf: 99988777767; Datanasc: 19-01-1968; Endereco: Rua Souza Lima, 35, Curitiba, PR; Sexo: F; Salario: 25.000; Cpf_supervisor: 98765432168; Dnr: 4. Pnome: Jennifer; Minicial: S; Unome: Souza; Cpf: 98765432168; Datanasc: 20-06-1941; Endereco: Av. Arthur de Lima, 54, Santo André, SP; Sexo: F; Salario: 43.000; Cpf_supervisor: 88866555576; Dnr: 4. Pnome: Ronaldo; Minicial: K; Unome: Lima; Cpf: 66688444476; Datanasc: 15-09-1962; Endereco: Rua Rebouças, 65, Piracicaba, SP; Sexo: M; Salario: 38.000; Cpf_supervisor: 33344555587; Dnr: 5. Pnome: Joice; Minicial: A; Unome: Leite; Cpf: 45345345376; Datanasc: 31-07-1972; Endereco: Av. Lucas Obes, 74, São Paulo, SP; Sexo: F; Salario: 25.000; Cpf_supervisor: 33344555587; Dnr: 5. Pnome: André; Minicial: V; Unome: Pereira; Cpf: 98798798733; Datanasc: 29-03-1969; Endereco: Rua Timbira, 35, São Paulo, SP; Sexo: M; Salario: 25.000; Cpf_supervisor: 98765432168; Dnr: 4. Pnome: Jorge; Minicial: E; Unome: Brito; Cpf: 88866555576; Datanasc: 10-11-1937; Endereco: Rua do Horto, 35, São Paulo, SP; Sexo: M; Salario: 55.000; Cpf_supervisor: NULL; Dnr: 1. DEPARTAMENTO Dnome Dnumero Cpf_gerente Data_inicio_gerente Pesquisa 5 33344555587 22-05-1988 Administração 4 98765432168 01-01-1995 Matriz 1 88866555576 19-06-1981 Descrição da tabela: Dnumero está sublinhado e portanto, é uma chave primária. Dnome: Pesquisa; Dnumero: 5; Cpf_gerente: 33344555587; Data_inicio_gerente: 22-05-1988 Dnome: Administração; Dnumero: 4; Cpf_gerente: 98765432168; Data_inicio_gerente: 01-01-1995 Dnome: Matriz; Dnumero: 1; Cpf_gerente: 88866555576; Data_inicio_gerente: 19-06-1981 TRABALHA_EM Fcpf Pnr Horas 12345678966 1 32,5 12345678966 2 7,5 66688444476 3 40,0 45345345376 1 20,0 03/07/2024, 10:48 ABD2023B: 1.20 Operações sobre o Modelo Relacional https://moodle.ifrs.edu.br/mod/page/view.php?id=289038&forceview=1 3/8 Fcpf Pnr Horas 45345345376 2 20,0 33344555587 2 10,0 33344555587 3 10,0 33344555587 10 10,0 33344555587 20 10,0 99988777767 30 30,0 99988777767 10 10,0 98798798733 10 35,0 98798798733 30 5,0 98798798733 30 20,0 98798798733 20 15,0 88866555576 20 NULL Descrição da tabela Fcpf e Pnr estão sublinhados e portanto, compõem uma chave primária composta. Fcpf: 12345678966; Pnr: 1; Horas: 32,5. Fcpf: 12345678966; Pnr: 2; Horas: 7,5. Fcpf: 66688444476; Pnr: 3; Horas: 40,0. Fcpf: 45345345376; Pnr: 1; Horas: 20,0. Fcpf: 45345345376; Pnr: 2; Horas: 20,0. Fcpf: 33344555587; Pnr: 2; Horas: 10,0. Fcpf: 33344555587; Pnr: 3; Horas: 10,0. Fcpf: 33344555587; Pnr: 10; Horas: 10,0. Fcpf: 33344555587; Pnr: 20; Horas: 10,0. Fcpf: 99988777767; Pnr: 30; Horas: 30,0. Fcpf: 99988777767; Pnr: 10; Horas: 10,0. Fcpf: 98798798733; Pnr: 10; Horas: 35,0. Fcpf: 98798798733; Pnr: 30; Horas: 5,0. Fcpf: 98798798733; Pnr: 30; Horas: 20,0. Fcpf: 98798798733; Pnr: 20; Horas: 15,0. Fcpf: 88866555576; Pnr: 20; Horas: NULL. LOCALIZACAO_DEP 03/07/2024, 10:48 ABD2023B: 1.20 Operações sobre o Modelo Relacional https://moodle.ifrs.edu.br/mod/page/view.php?id=289038&forceview=1 4/8 Dnumero Dlocal 1 São Paulo 4 Mauá 5 Santo André 5 Itu 5 São Paulo Descrição da tabela: Dnumero e Dlocal estão sublinhados e portanto, compõem uma chave primária composta. Dnumero: 1; Dlocal: São Paulo. Dnumero: 4; Dlocal: Mauá. Dnumero: 5; Dlocal: Santo André. Dnumero: 5; Dlocal: Itu. Dnumero: 5; Dlocal: São Paulo. PROJETO Projnome Projnumero Projlocal Dnum ProdutoX 1 Santo André 5 ProdutoY 2 Itu 5 ProdutoZ 3 São Paulo 5 Informatização 10 Mauá 4 Reorganização 20 São Paulo 1 Novosbenefícios 30 Mauá 4 Descrição da tabela: Projnumero está sublinhado e portanto, é uma chave primária. Projnome: ProdutoX; Projnumero: 1; Projlocal: Santo André; Dnum: 5. Projnome: ProdutoY; Projnumero: 2; Projlocal: Itu; Dnum: 5. Projnome: ProdutoZ; Projnumero: 3; Projlocal: São Paulo; Dnum: 5. Projnome: Informatização; Projnumero: 10; Projlocal: Mauá; Dnum: 4. Projnome: Reorganização; Projnumero: 20; Projlocal: São Paulo; Dnum: 1. Projnome: Novosbenefícios; Projnumero: 30; Projlocal: Mauá; Dnum: 4. DEPENDENTE Fcpf Nome_dependente Sexo Datanasc Parentesco 03/07/2024, 10:48 ABD2023B: 1.20 Operações sobre o Modelo Relacional https://moodle.ifrs.edu.br/mod/page/view.php?id=289038&forceview=1 5/8 Fcpf Nome_dependente Sexo Datanasc Parentesco 33344555587 Alicia F 05-04-1986 Filha 33344555587 Tiago M 25-10-1983 Filho 33344555587 Janaína F 03-05-1958Esposa 98765432168 Antonio M 28-02-1942 Marido 12345678966 Michael M 04-01-1988 Filho 12345678966 Alicia F 30-12-1988 Filha 12345678966 Elizabeth F 05-05-1967 Esposa Descrição da tabela: Fcpf e Nome_dependente estão sublinhados e portanto, compõem uma chave primária composta. Fcpf: 33344555587; Nome_dependente: Alicia; Sexo: F; Datanasc: 05-04-1986; Parentesco: Filha. Fcpf: 33344555587; Nome_dependente: Tiago; Sexo: M; Datanasc: 25-10-1983; Parentesco: Filho. Fcpf: 33344555587; Nome_dependente: Janaína; Sexo: F; Datanasc: 03-05-1958; Parentesco: Esposa. Fcpf: 98765432168; Nome_dependente: Antonio; Sexo: M; Datanasc: 28-02-1942; Parentesco: Marido. Fcpf: 12345678966; Nome_dependente: Michael; Sexo: M; Datanasc: 04-01-1988; Parentesco: Filho. Fcpf: 12345678966; Nome_dependente: Alicia; Sexo: F; Datanasc: 30-12-1988; Parentesco: Filha. Fcpf: 12345678966; Nome_dependente: Elizabeth; Sexo: F; Datanasc: 05-05-1967; Parentesco: Esposa. Partindo dessas tabelas, iremos executar algumas operações. Operações: inserir Oferece uma lista de valores de atributos para que uma nova tupla t possa ser inserida em uma relação R. Inserir <valor1, valor2, valor3, valorn> em R. Inserir <’Cecília’, ‘F’, ‘Ribeiro’, NULL, ‘05-04-1960’, ‘Rua Esmeralda, 35, Bueno Brandão, MG’, F, 28.000, NULL, 4> em FUNCIONARIO. Resultado: rejeitada. Viola a restrição de integridade de entidade: NULL para a chave primária CPF. Inserir<’Alice’, ‘J’, ‘Zelaya’, ‘99988777767’, ‘05-04-1960’, ‘Rua Souza Lima, 35, Curitiba, PR’, F, 28.000, ‘98765432168’, 4> em FUNCIONARIO. Resultado: rejeitada. 03/07/2024, 10:48 ABD2023B: 1.20 Operações sobre o Modelo Relacional https://moodle.ifrs.edu.br/mod/page/view.php?id=289038&forceview=1 6/8 Viola a restrição de chave porque outra tupla com mesmo CPF já existe na relação. Tratamento das violações de restrição: Opção padrão: rejeitar a inserção. Outra opção: corrigir o motivo da rejeição (geralmente não utilizado na inserção). Operações: excluir Específica uma condição sobre os atributos da relação que seleciona as tuplas a serem excluídas. Excluir a tupla em R com atributo1 = valor1 e atributo2 = valor2 … Excluir a tupla em TRABALHA_EM com Fcpf = ‘99988777767’ e Pnr = 10. Resultado: aceitável. Exclui corretamente a tupla. Excluir a tupla em FUNCIONARIO com Cpf = ‘99988777767’. Resultado: não é aceitável. Viola a restrição de integridade referencial, pois existem tuplas em TRABALHA_EM que se referenciam a esta tupla. Tratamento das violações de restrição Restrict: rejeitar a exclusão. Cascade: tentar propagar a exclusão, excluindo tuplas que a referenciam. Set null/set default: modificar os valores de atributo que referenciam a causa da violação. Combinações das 3 opções. Operações: alterar Usada para alterar os valores de um ou mais atributos de uma tupla (ou tuplas) de alguma relação R. Alterar o atributoalvo da tupla em R com atributocond = valorcond para valoralvo. Alterar o Dnr da tupla em FUNCIONARIO com Cpf = ‘99988777767’ para 7. Resultado: não é aceitável. Viola a restrição de integridade de referencial. Alterar o Cpf da tupla em FUNCIONARIO com Cpf = ‘99988777767’ para ‘98765432168’ Resultado: não é aceitável. 03/07/2024, 10:48 ABD2023B: 1.20 Operações sobre o Modelo Relacional https://moodle.ifrs.edu.br/mod/page/view.php?id=289038&forceview=1 7/8 Viola a restrição de chave primária, repetindo o valor que já existe como chave primária em outra tupla. Atualizar um atributo que nem faz parte de uma chave primária/chave estrangeira não causa problemas. Tratamento das violações de restrição. Recai sobre os casos do Inserir ou Excluir. Abaixo, segue a aula que fala sobre o que vimos até agora. Transcrição do vídeo Referências: DATE, C. J. Introdução aos sistemas de Banco de Dados. 8. Ed. Rio de Janeiro: Campus, 2004. ELMASRI, R. e NAVATHE, S. Sistemas de Banco de Dados. São Paulo: Pearson/Addison Wesley, 2011. SILBERSCHATZ, Abraham; KORTH, Henry F.; SUDARSHAN, S. Sistema de banco de dados. São Paulo: Elsevier, 2012. HEUSER, C.A. Projeto de Banco de Dados. 4a. Ed. Porto Alegre: Sagra Luzzato, 2004. Última atualização: quinta, 6 jul 2023, 15:46 03/07/2024, 10:48 ABD2023B: 1.20 Operações sobre o Modelo Relacional https://moodle.ifrs.edu.br/mod/page/view.php?id=289038&forceview=1 8/8