Baixe o app para aproveitar ainda mais
Prévia do material em texto
Intersecção de conjuntos em SQL APRESENTAÇÃO Atualmente, o bem mais precioso que todas as empresas possuem são as informações que elas têm armazenadas em seus servidores. Esse grande volume de dados fica gravado em um banco de dados (BD), o qual é manipulado por um sistema gerenciador de banco de dados (SGBD). As informações gravadas em um banco de dados subsidiam o processo de tomada de decisão das empresas. Para isso, necessita-se consultar as informações armazenadas por meio de consultas em BD. Dada a complexidade dessas consultas, faz-se necessário compreender como elas operam e podem apresentar uma melhor performance. Neste Unidade de Aprendizagem, você verá o conceito de intersecção aplicada à álgebra relacional em bancos de dados e como realizar a construção de consultas SQL para aplicar na prática a função Intersect no PostgreSQL. Bons estudos. Ao final desta Unidade de Aprendizagem, você deve apresentar os seguintes aprendizados: Explicar a operação de intersecção em álgebra relacional.• Exemplificar a operação de intersecção em banco de dados relacional.• Reconhecer a implementação da operação de intersecção em SQL.• DESAFIO No cotidiano, é muito comum deparar-se com situações que envolvem longas consultas em bases de dados. Isso ocorre devido à importância que os bancos de dados têm dentro da empresa, já que neles ficam armazenadas informações relacionadas à sua operação. Suponha que a empresa na qual você trabalha preste serviços para uma grande empresa do ramo tecnológico. O gerente sugeriu que, por meio do PostgreSQL, você construísse um código para: a) Criar as tabelas supracitadas. b) Inserir os dados nas duas tabelas. c) Montar uma consulta em SQL para mostrar somente as tuplas que constam como beneficiário e como beneficiado. INFOGRÁFICO O papel principal que as consultas em banco de dados têm é de trazer o máximo de informação possível para auxiliar na análise de dados e na tomada de decisão. Veja, neste Infográfico, como realizar a intersecção entre dados de duas tabelas e ainda recuperar o conteúdo específico a que cada tupla está associada. CONTEÚDO DO LIVRO Os bancos de dados são os locais principais dentro da área da tecnologia no que se refere a armazenamento de informações. Esse papel fundamental está diretamente relacionado à possibilidade de geração de informações que essa ferramenta oferece. Nos últimos anos, tem-se gerado um volume muito grande de informações. As empresas encontram-se desafiadas para descobrir como manipular e abstrair as informações necessárias desses dados. Por essa razão, entender e saber aplicar os conceitos envolvidos em uma consulta em base de dados impactará diretamente na performance das consultas. No capítulo Intersecção de conjuntos em SQL do livro Consultas em banco de dados, veja o conceito de intersecção em álgebra relacional, a operação de intersecção em banco de dados relacional e como ocorre a implementação da operação de intersecção em SQL. Boa leitura. CONSULTAS EM BANCO DE DADOS Anderson Sene Gonçalves Intersecção de conjuntos em SQL Objetivos de aprendizagem Ao final deste texto, você deve apresentar os seguintes aprendizados: � Explicar a operação de intersecção em álgebra relacional. � Exemplificar a operação de intersecção em banco de dados relacional. � Reconhecer a implementação da operação de intersecção em SQL. Introdução A operação de grandes bases de dados requer o conhecimento de boas técnicas para obter um bom desempenho e, principalmente, o resultado esperado em cada operação. Para isso, torna-se necessário compreender maneiras de elaborar determinadas funções para construção consultas bem estruturadas, como a partir dos conceitos de álgebra relacional. Neste capítulo, você observará os conceitos de intersecção aplicados a partir de uma consulta em banco de dados, além da importância de conhecer e saber aplicar essa operação binária da álgebra relacional, o que contribuirá diretamente na construção de grandes consultas em banco de dados a fim de obter as informações desejadas com o melhor tempo e desempenho possíveis. Em suma, você verá tanto as questões teóricas quanto as práticas em relação à construção de consultas em banco de dados por meio do operador de intersecção. 1 Intersecção em álgebra relacional A álgebra relacional refere-se a uma linguagem formal de consulta, cujos conceitos teóricos estão relacionados diretamente às linguagens de consulta em bancos de dados. Os operadores de álgebra relacional possibilitam realizar a projeção, a seleção, a diferença e a intersecção, a última justamente o objeto de estudo deste capítulo. A aplicação de um operador de álgebra relacional requer a existência de um conjunto de operações, em que se tem a “entrada” como um ou mais conjuntos de valores e, quando aplicado um dos operadores lógicos, apresentará uma “saída” composta de um novo resultado proveniente do operador aplicado. Existem diversas formas de aplicar os operadores para alcançar um novo conjunto de dados. Para Ramakrishnan e Gehrke (2008), a álgebra relacional é mais uma linguagem de consulta formal com base em um grupo de operadores para a manipulação relações, que pode ser tão poderosa quanto o cálculo. Neste capítulo, você estudará como o operador de intersecção está associado à álgebra relacional, como pode ser visto na Figura 1, na qual há a representação do diagrama de Venn, o que representa e como ocorre a intersecção em um conjunto de dados. Figura 1. Diagramas de Venn para uma operação de intersecção. Fonte: Adaptada de Mannino (2008). Intersecção De acordo com Mannino (2008), um exemplo prático da operação de inter- secção é a listagem de alunos que estão matriculados em duas instituições de ensino. Assim, a intersecção entre dois conjuntos de dados gerará um terceiro conjunto de dados com as linhas de ambos os conjuntos de dados. Intersecção de conjuntos em SQL2 Sua representação gráfica é dada por: � simbologia: ∩; � sintaxe: (Relação 1) ∩ (Relação 2). Para Ramakrishnan e Gehrke (2008), uma propriedade fundamental dos operadores de algébricos é a de aceitar uma ou duas instâncias de relação como seu argumento e retornar uma instância de relação como seu resultado. A operação de intersecção em uma base de dados relacional é representada por r1 ∩ r2, onde: � r1: representa um conjunto de tuplas; � ∩: é o símbolo da operação de intersecção; � r2: representa outro conjunto de tuplas. Ainda conforme Ramakrishnan e Gehrke (2008), a intersecção: R ∩ M tem como retorno uma instância de relação que contém todas as tuplas que ocorrem em ambas, R e M. As relações R e M devem ser compatíveis à união, e o esquema do resultado é definido de forma idêntica ao esquema de R. Para ilustrar a operação de intersecção em álgebra relacional, considere os dois conjuntos de dados ilustrados na Figura 2, denominados “R” e “M”. Figura 2. Conjunto de dados “R” e “M”. Uno Palio Gol Fiesta Corsa Celta Fiesta Verona Celta Gol Fusca R M 3Intersecção de conjuntos em SQL Observe que, nos dois conjuntos de dados, existem valores presentes em ambos os conjuntos “R” e “M”, enquanto outros existem somente no conjunto “R” ou “M”. Diante disso, ao se realizar a operação “R ∩ M”, somente serão exibidos os valores presentes em ambos os conjuntos, como pode ser visto na Figura 3. Figura 3. Resultado da operação R ∩ M. Uno Palio Gol Fiesta Corsa Celta Fiesta Verona Celta Gol Fusca R M Fiesta Celta Gol Portanto, podemos afirmar que conhecer os operadores da álgebra relacional contribuirá diretamente na construção de consultas em bancos de dados, bem como a função desempenhada pelo operador de intersecção, que, como visto, consiste em retornar os valores existentes em ambos os conjuntos de dados. Você sabia que a operação de intersecção, além de compreender um conceito de álgebra relacional e ser aplicada a bancos de dados relacionais, tem um emprego semelhante em bancosde dados geográficos? Para saber mais, leia o livro Banco de Dados Geográficos, organizado pelos pesquisa- dores Marco Antonio Casanova, Gilberto Câmara, Clodoveu A. Davis Jr., Lúbia Vinhas e Gilberto Ribeiro de Queiroz, disponível livremente na internet. Intersecção de conjuntos em SQL4 2 Intersecção em banco de dados relacional Para o armazenamento de informações, as empresas fazem uso de um programa intitulado Sistema Gerenciador de Banco de Dados (SGBD), ferramenta que tem como funções armazenar, gerenciar e manipular os dados gravados. Atualmente, existem diversos pacotes de software que realizam a função de um SGBD, como os software proprietários (aqueles cujo uso depende de aquisição de licença), como Microsoft SQL Server e Oracle, e os open source (aqueles sob licença pública, como a GNU), como PostgreSQL, MariaDB e MySQL. Além disso, os SGBD citados operam sob um modelo de bancos de dados chamado modelo relacional, que diz respeito à existência de relações entre as tabelas, as quais permitem a criação de restrições de dados de uma tabela em relação à outra. Com a criação de diversos SGBD, definiu-se uma linguagem específica para a criação e a manipulação desses dados: a SQL (acrônimo de Structured Query Language — Linguagem de Consulta Estruturada), que torna possível criar tabelas, inserir e atualizar valores e remover tuplas, além de manipular os dados por meio das consultas na base de dados. De acordo com Elmasri e Navathe (2011), a definição de banco de dados tem as seguintes propriedades implícitas: � representação de aspectos do mundo real; � coleção lógica e coerente de dados com algum significado inerente; � projeto, construção e povoamento por dados, atendendo a uma proposta específica. Um banco de dados é composto por um conjunto de tabelas, as quais têm por objetivo definir a estrutura dos dados que serão armazenados. As tabe- las, por sua vez, são formadas por atributos que especificam informações a respeito das primeiras, e os atributos dispõem de tipos de dados, associados diretamente ao tipo de informação que será armazenada naquele atributo. Quando se aplica a operação de intersecção em uma base de dados, o SGBD busca comparar todas as tuplas dos conjuntos de dados envolvidos, para localizar as correspondências existentes simultaneamente nos dois con- juntos de dados. 5Intersecção de conjuntos em SQL Com base nisso, considere o banco de dados de uma universidade. Nesse modelo, há uma tabela denominada professor, que será responsável por armazenar as informações relacionadas a todos os docentes da instituição, enquanto a tabela coordenador terá a função de armazenar os dados de todos os professores que, além da docência, exercem a função de coordenador de curso. A seguir, há a representação da tabela professor, que tem cinco atributos (ID, nome, dataNascimento, curso e dataInicio) e um total de 10 tuplas ou registros (as linhas da tabela). Nessa tabela, consta a representação de informações relacionadas aos professores: � ID: atributo único e usado para identificar cada tupla; � nome: nome do professor; � dataNascimento: data de nascimento do professor; � curso: curso a que o professor está associado; � dataInicio: data em que o professor começou a lecionar na instituição. Tabela professor ID nome dataNascimento curso dataInicio 990 Nanni Demchen 13/06/1973 Administração 04/11/2015 991 Dagny Canner 09/09/1985 Ciências Contábeis 14/06/2018 992 Rhea Farlam 05/10/1990 Análise e Desenvolvimento de Sistemas 23/05/2016 993 Rheta Brik 13/09/1983 Direito 05/03/2019 994 Caz Bracken 10/08/1982 Análise e Desenvolvimento de Sistemas 11/10/2015 995 Larissa Di Claudio 14/02/1989 Análise e Desenvolvimento de Sistemas 01/05/2018 996 Jinny Heady 08/03/1987 Direito 09/11/2018 Intersecção de conjuntos em SQL6 ID nome dataNascimento curso dataInicio 997 Alysia Klimas 10/03/1979 Análise e Desenvolvimento de Sistemas 02/06/2015 998 Dalenna Verbeek 29/08/1973 Marketing 02/12/2017 999 Lorianna Aisthorpe 09/03/1969 Ciências Contábeis 18/07/2018 Já na tabela coordenador, a seguir, estão representados cinco atributos (ID, nome, dataNascimento, curso e dataInicio) e um total de quatro tuplas ou registros (linhas da tabela). Essa tabela visa a armazenar as informações dos professores que também são coordenadores, cujos atributos dizem respeito a: � ID: atributo único e usado para identificar cada tupla; � nome: nome do professor; � dataNascimento: data de nascimento do professor; � curso: curso que o professor coordena; � dataInicio: data em que o professor começou a coordenar o curso. Tabela coordenador ID nome dataNascimento curso dataInicio 990 Nanni Demchen 13/06/1973 Administração 04/11/2015 997 Alysia Klimas 10/03/1979 Análise e Desenvolvimento de Sistemas 02/06/2015 998 Dalenna Verbeek 29/08/1973 Marketing 02/12/2017 999 Lorianna Aisthorpe 09/03/1969 Ciências Contábeis 18/07/2018 7Intersecção de conjuntos em SQL Ao reproduzirmos a intersecção de professor ∩ coordenador, o resultado será uma representação das tuplas existentes tanto na tabela pro- fessor quanto na tabela coordenador, conforme visto na tabela a seguir. ID nome dataNascimento curso dataInicio 990 Nanni Demchen 13/06/1973 Administração 04/11/2015 997 Alysia Klimas 10/03/1979 Análise e Desenvolvi- mento de Sistemas 02/06/2015 998 Dalenna Verbeek 29/08/1973 Marketing 02/12/2017 999 Lorianna Aisthorpe 09/03/1969 Ciências Contábeis 18/07/2018 Na Figura 4, apresenta-se um exemplo abordado por Mannino (2008), em que são exibidas duas tabelas de alunos, chamadas aluno1 e aluno2, com as mesmas quantidades de atributos e com os respectivos tipos de dados. Vale ressaltar que, para a realização de intersecção em dois conjuntos de dados, os dois conjuntos de dados devem ter a mesma representação referente à quantidade de atributos e aos seus respectivos tipos de dados. Essa teoria também é defendida por Mannino (2008), que aponta, apesar da possibilidade de determinar se duas linhas são idênticas apenas comparando cada CPFAluno, todas as colunas são comparadas em virtude da maneira como os operadores são projetados. Figura 4. Tabelas aluno1 e aluno2. Fonte: Adaptada de Mannino (2008). Intersecção de conjuntos em SQL8 Com base nas duas tabelas da Figura 4, Mannino (2008) expõe que a operação de intersecção recupera apenas as linhas em comum, cujo resultado é dado na Figura 5. A linha exibida na tabela da Figura 5 diz respeito à única tupla que constava tanto na tabela aluno1 quanto na tabela aluno2. Por isso, ao realizar r1 ∩ r2, obtém-se essa tabela com apenas uma tupla. Figura 5. Resultado da operação aluno1 INTERSECT aluno2. Fonte: Adaptada de Mannino (2008). 3 Implementação da operação de intersecção em SQL Agora, você verá como realizar a aplicação do comando de intersecção em uma consulta de banco de dados. Para tanto, será necessário fazer uso do comando SELECT para consultar todos ou partes dos atributos de uma tabela. De acordo com Barbosa e Freitas (2018), a partir do comando SELECT, pode-se realizar consultas ao banco de dados, retornando registros, parâmetros, composições, bem como muitos outros tipos de consultas. Além desse comando, veremos como trabalhar em conjunto o comando INTERSECT com consultas usando também a cláusula WHERE. Para tanto, considere as tabelas professor e coordenador citadas anteriormente, nas quais temos, respectivamente, os registros dos docentes e as informações dos professores que também exercem a coordenação de curso. A informação que precisamos levantar é a relação de todos os professores que também são coordenadores. Para isso, pode-se partir da representação r1 ∩ r2 para alcançar o resultado desejado. Tem-se, portanto, a seguinte query (consulta): SELECT * FROM professor INTERSECT SELECT * FROM coordenador; 9Intersecção de conjuntos em SQL Devemos salientar que: � SELECT: é o comando responsável por consultaras tuplas de uma tabela; � * (asterisco): indica que todos os atributos da tabela serão apresentados na consulta; � FROM: aponta qual será a tabela consultada; � professor/coordenador: são as tabelas consultadas; � INTERSECT: comando responsável por realizar justamente a intersec- ção das tuplas das duas tabelas. Para o funcionamento do INTERSECT, os atributos da tabela devem apresentar as mesmas especificações, tanto da quantidade de atributos quanto da definição dos respectivos tipos de dados. Além disso, podemos combinar as demais especificações de um comando SELECT em uma query usando o INTERSECT, como exibido no exemplo a seguir. Dessa maneira, somente as tuplas da tabela professor com o ID maior que 995 serão avaliadas na hora de realizar a intersecção com a tabela coordenador. SELECT * FROM professor WHERE ID > 995 INTERSECT SELECT * FROM coordenador; Na tabela a seguir, ilustra-se o resultado apresentado pela consulta citada. Ao compararmos a tabela professor com a tabela coordenador, pode- mos perceber que somente a tupla de ID igual a 990 deixou de aparecer no resultado da intersecção das duas tabelas. Isso ocorreu justamente pela adição da cláusula WHERE ID > 995 ao primeiro SELECT, ou seja, essa condição invalida o retorno da tupla 990, já que 990 é inferior a 995. Intersecção de conjuntos em SQL10 ID nome dataNascimento curso dataInicio 997 Alysia Klimas 10/03/1979 Análise e Desenvolvimento de Sistemas 02/06/2015 998 Dalenna Verbeek 29/08/1973 Marketing 02/12/2017 999 Lorianna Aisthorpe 09/03/1969 Ciências Contábeis 18/07/2018 A cláusula WHERE pode também estar disposta tanto no primeiro quanto no segundo SELECT: SELECT * FROM professor WHERE ID > 995 INTERSECT SELECT * FROM coordenador WHERE ID <= 998; Essa consulta apresenta tanto a cláusula do WHERE tanto no primeiro quanto no segundo SELECT, caso em que as tuplas consideradas na intersecção dessas duas tabelas serão somente as que atendem às condições do WHERE de ambos os SELECT e que estiverem nas duas tabelas. A tabela a seguir ilustra a execução da consulta apresentada, que apresenta duas cláusulas WHERE. Como pode ser visto, com a adição da condição de ID menor ou igual a 998, uma das tuplas deixou de ser exibida no resultado da intersecção das duas tabelas. ID nome dataNascimento curso dataInicio 997 Alysia Klimas 10/03/1979 Análise e Desenvolvimento de Sistemas 02/06/2015 998 Dalenna Verbeek 29/08/1973 Marketing 02/12/2017 Por fim, e não menos importante, também podemos adicionar a ordenação baseada no resultado da intersecção de duas query, o que permite ordenar de modo crescente ou decrescente as tuplas resultadas de uma consulta. 11Intersecção de conjuntos em SQL Na consulta exibida a seguir, foi adicionada, após a última condição do WHERE, a função de ordenação ORDER BY 3, o que significa dizer que as tuplas exibidas após a intersecção das duas tabelas serão ordenadas em ordem crescente a partir da terceira coluna da tabela resultante. SELECT * FROM professor WHERE ID > 995 INTERSECT SELECT * FROM coordenador WHERE ID <= 998 ORDER BY 3; ID nome dataNascimento curso dataInicio 998 Dalenna Verbeek 29/08/1973 Marketing 02/12/2017 997 Alysia Klimas 10/03/1979 Análise e Desenvolvimento de Sistemas 02/06/2015 O resultado da consulta fez com que as tuplas sofressem alteração na ordem de exibição. Afinal, na coluna 3 (dataNascimento), a tupla de ID igual a 998 nasceu em 29/08/1973, enquanto a tupla de ID 997 nasceu em 10/03/1979, ou seja, ao ordenarmos de forma crescente (do menor para o maior), a tupla ID 998 assumiu a posição antes da tupla ID 997. Para inverter a ordem de ordenação de um ORDER BY, basta adicionar o modificador DESC logo após o número de índice do atributo que você deseja ordenar. SELECT * FROM professor WHERE ID > 995 INTERSECT SELECT * FROM coordenador WHERE ID <= 998 ORDER BY 3 DESC; Intersecção de conjuntos em SQL12 Ramakrishnan e Gehrke (2008) abordam um exemplo, representado na Figura 6, sobre o uso do comando INTERSECT, em que se pede para encontrar os nomes dos marinheiros que reservaram um barco vermelho e um barco verde. O exemplo demonstra como e para que se deve utilizar o comando INTERSECT. Figura 6. Representação das instâncias M1 e M2 de marinheiros, e R1 de reservas. Fonte: Adaptada de Ramakrishnan e Gehrke (2008). Para obtermos as informações referentes aos marinheiros, há uma alternativa para desenvolver essa consulta usando as tabelas envolvidas com o operador lógico AND, conforme visto no exemplo de consulta elaborado por Ramakrishnan e Gehrke (2008). SELECT M.nome-marin FROM Marinheiros M , Reservas R1 , Barcos B1 , Reservas R2 , Barcos B2 WHERE M.id-marin = R1.id-marin AND R1.id-barco = B1.id-barco AND M.id-marin = R2.id-marin AND R2.id-barco = B2.id-barco AND B1.cor = 'vermelho' AND B2.cor = 'verde'; Essa consulta representa uma alternativa para as tuplas das mesmas tabelas que usam condições distintas no WHERE, ou seja, nessa query, existe a duplicação na inclusão das tabelas que estão sendo usadas para elaborar a consulta na base de dados. Observe que as tabelas reservas e barcos estão duplicadas duas vezes cada uma e, nas condições do WHERE, há a replicação dos filtros alterando para cada uma das duas tabelas duplicadas. 13Intersecção de conjuntos em SQL BARBOSA, F. F. M.; FREITAS, P. H. C. Modelagem e desenvolvimento de banco de dados. Porto Alegre: SAGAH, 2018. 188 p. ELMASRI, R.; NAVATHE, S. B. Sistemas de bancos de dados. 6. ed. São Paulo: Pearson Education do Brasil, 2011. 788 p. MANNINO, M. V. Projeto, desenvolvimento de aplicações e administração de banco de dados. 3. ed. Porto Alegre: AMGH; 2008. 717 p. RAMAKRISHNAN, R..; GEHRKE, J. Sistemas de gerenciamento de banco de dados. 3. ed. Porto Alegre: AMGH; Bookman, 2008. 905 p. Leituras recomendadas CASANOVA, M. A. et al. (org.). Bancos de dados geográficos. Curitiba: EspaçoGEO, 2005. 504 p. Disponível em: http://www.dpi.inpe.br/livros/bdados/. Acesso em: 9 maio 2020. CIFERRI, C. D. A. Álgebra relacional e SQL. São Carlos: Instituto de Ciências Matemáticas e de Computação, 2013. 57 p. (Notas de aula). Disponível em: http://wiki.icmc.usp.br/ images/2/2c/SCC578920131-algebraSQL.pdf. Acesso em: 9 maio 2020. DATE, C. J. SQL e teoria relacional: como escrever códigos SQL precisos. São Paulo: Novatec, 2015. 536 p. SILBERSCHATZ, A.; KORTH, H. F.; SUDARSHAN, S. Sistema de banco de dados. 3. ed. São Paulo: Makron Books, 1999. 778 p. Essa forma de escrever a consulta acaba tornando a sua interpretação confusa e mais difícil de compreender (RAMAKRISHNAN; GEHRKE, 2008). Por isso, há justamente a alternativa de desmembrá-la em duas e realizar a INTERSECT dos dois conjuntos, embora isso ainda fará com que sejam retornados apenas os valores existentes em ambas as consultas. Para resolver essa questão, basta adicionar a cláusula ALL logo depois do INTERSECT para que as linhas duplicadas nas duas tabelas também sejam exibidas no terceiro conjunto de valores gerado a partir da intersecção. Intersecção de conjuntos em SQL14 Os links para sites da web fornecidos neste capítulo foram todos testados, e seu fun- cionamento foi comprovado no momento da publicação do material. No entanto, a rede é extremamente dinâmica; suas páginas estão constantemente mudando de local e conteúdo. Assim, os editores declaram não ter qualquer responsabilidade sobre qualidade, precisão ou integralidade das informações referidas em tais links. 15Intersecção de conjuntos em SQL DICA DO PROFESSOR Nos últimos anos, o volume de dados gerado é superior ao de décadas atrás. Esses dados se tornam informações valiosas para as empresas e sustentam o processo de tomada de decisão. Por isso, compreender e saber aplicar cada uma das técnicas envolvidas nessa área impacta diretamente no seu futuro e na sua atuação profissional.Nesta Dica do Professor, veja um pouco mais sobre o uso do comando Intersect. Conteúdo interativo disponível na plataforma de ensino! EXERCÍCIOS 1) A intersecção é um dos operadores relacionados à álgebra relacional. Diante disso, pode-se afirmar que o conceito de intersecção tem o objetivo de: A) a partir de um conjunto de dados, gerar um segundo conjunto de dados a partir de todos os valores existentes nos conjuntos de dados. B) a partir de dois conjuntos de dados, gerar um segundo conjunto de dados a partir dos valores existentes em ambos os conjuntos. C) a partir de dois conjuntos de dados, gerar um terceiro conjunto de dados a partir dos valores existentes em ambos os conjuntos. D) a partir de dois conjuntos de dados, gerar um terceiro conjunto de dados a partir dos valores que não estão em ambos os conjuntos. E) a partir de dois conjuntos de dados, gerar um terceiro conjunto de dados a partir de todos os valores existentes nos dois conjuntos. 2) Na álgebra relacional, a representação de conjuntos se dá por meio do uso de operadores específicos. Sendo assim, dada a relação r1 ∩ r2, em que r1 equivale à tabela de funcionários e r2 à tabela de alunos, considere as tabelas abaixo: Qual das alternativas a seguir ilustra a intersecção das duas tabelas para apontar todos os alunos que também estão na tabela Funcionários? A) B) C) D) E) 3) A intersecção relacionada à álgebra relacional apresenta o mesmo propósito quando aplicada em consultas a banco de dados. Por isso, considerando as tabelas Alunos e Funcionários exibidas a seguir, qual é a consulta SQL responsável por trazer exatamente os alunos que também são funcionários? A) Confira a alternativa A: Conteúdo interativo disponível na plataforma de ensino! B) Confira a alternativa B: Conteúdo interativo disponível na plataforma de ensino! C) Confira a alternativa C: Conteúdo interativo disponível na plataforma de ensino! D) Confira a alternativa D: Conteúdo interativo disponível na plataforma de ensino! Confira a alternativa E: E) Conteúdo interativo disponível na plataforma de ensino! 4) As consultas a banco de dados apresentam papel destacável diante da variedade de motivos que levam à necessidade de uma informação. Dito isso, ao elaborar uma consulta SQL para combinar o resultado de duas tabelas a partir do comando Intersect, podem-se combinar alguns outros comandos ao Select. Avalie as alternativas a seguir e selecione a correta. A) Não é possível adicionar outros comandos nessa consulta. B) A adição se limita apenas à condição Where. C) É possível adicionar a condição Where, mas não se pode adicionar ordenação nessa consulta. D) Podem-se adicionar filtros a partir do Where usando os operadores And, Or e Not. E) É possível adicionar a condição Where, mas não é possível utilizar os operadores And, Or e Not. As consultas em banco de dados podem ser combinadas a diversos outros comandos de SQL, como a uma própria consulta. Considerando as tabelas Alunos e Funcionários e r1 ∩ r2 exibidas a seguir, qual é a consulta SQL responsável por trazer exatamente os alunos que também são funcionários? 5) A) Confira a alternativa A: Conteúdo interativo disponível na plataforma de ensino! B) Confira a alternativa B: Conteúdo interativo disponível na plataforma de ensino! C) Confira a alternativa C: Conteúdo interativo disponível na plataforma de ensino! D) Confira a alternativa D: Conteúdo interativo disponível na plataforma de ensino! E) Confira a alternativa E: Conteúdo interativo disponível na plataforma de ensino! NA PRÁTICA Atualmente, devido ao grande volume de informações trafegadas diariamente, um dos maiores desafios que se tem dentro da área tecnológica está associado ao armazenamento e à manipulação de dados. Por isso, profissionais de tecnologia são uma das posições mais requisitadas no mercado de trabalho atual. Acompanhe, Na Prática, uma situação comum em diversas empresas: o uso de uma consulta com o comando Intersect na busca de uma informação. SAIBA MAIS Para ampliar o seu conhecimento a respeito desse assunto, veja abaixo as sugestões do professor: Projeto, desenvolvimento de aplicações e administração de banco de dados Nesta obra, a partir do Capítulo 3, item 3.4.5 Operadores de união, intersecção e diferença, são abordados os conceitos relacionados à intersecção em álgebra relacional. Sistemas de gerenciamento de bancos de dados Neste livro, a partir da Parte IV - Avaliação de consultas, o autor discorre sobre a intersecção em álgebra relacional: dois conjuntos gerando um terceiro conjunto a partir dos valores existentes em ambos. Álgebra relacional Este material, construído a partir de notas de aulas de Karine Reis Ferreira, Gilberto Câmara e Gilberto Ribeiro de Queiroz, do Instituto Nacional de Pesquisas Espaciais (INPE), apresenta conceitos de álgebra relacional. Conteúdo interativo disponível na plataforma de ensino! Álgebra relacional - banco de dados Neste vídeo, você acompanha uma aula sobre álgebra relacional ministrada pelo Prof. Dr. André Santanchè, da Universidade de São Paulo (USP). Conteúdo interativo disponível na plataforma de ensino!
Compartilhar