Banco de Dados Prof. Célio R. Castelano Página 1 de 9. Álgebra Relacional

Documentos relacionados
ÁLGEBRA E CÁLCULO RELACIONAL

ALGEBRA RELACIONAL. Álgebra Relacional Conjunto básico de operações para o Modelo Relacional O resultado é uma relação

Banco de Dados. Aula 8 - Prof. Bruno Moreno 16/09/2011

Banco de Dados. Álgebra Relacional. João Eduardo Ferreira Osvaldo Kotaro Takai Marcelo Finger

Unipar Universidade Paranaense Disciplina: Banco de Dados II 3ª Série Profª: Késsia Marchi Profa. Késsia Marchi

Álgebra Relacional. Linguagem de consultas procedural Conjunto de operações que usam uma ou duas relações como entrada e geram uma relação de saída

Banco de Dados I Módulo III: Linguagens de Consulta. (Aula 1) Clodis Boscarioli

Um modelo de dados, além de definir estruturas e restrições, deve definir um conjunto de operações para manipular os dados.

IEC Banco de Dados I Aula 06 Álgebra Relacional

Bancos de Dados Notas de Aula Álgebra Relacional Introdução Prof. Dr. Daniel A. Furtado

ANÁLISE E PROJETO DE BANCO DE DADOS

Banco de Dados. Álgebra Relacional. João Eduardo Ferreira Osvaldo Kotaro Takai

Álgebra e cálculo relacional. Andre Noel

Banco de Dados I Álgebra Relacional

Roteiro. Álgebra Relacional e Cálculo Relacional. BCC321 - Banco de Dados I. Introdução. Ementa. Posicionamento. Introdução

Álgebra Relacional e SQL operações de interesse

Álgebra Relacional. Programa. Modelos de Dados. LCs relacionais formais. Introdução

Faculdade Pitágoras Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet

Modelo de Dados Relacional

Modelo de Dados Relacional

António Rocha Nuno Melo e Castro

Álgebra Relacional e SQL

- SQL Linguagem de Manipulação de Dados

Introdução. Introdução. Álgebra Relacional. Linguagens formais de Consulta Modelo Relacional. O que foi visto até agora...

Aula 8 BD1 Álgebra Relacional. Profa. Elaine Faria UFU

Álgebra Relacional. Introdução. Introdução. Álgebra Relacional

Bancos (Bases) de Dados Aula #7 Álgebra Relacional

Bases de Dados. Parte IV: Álgebra e Cálculo Relacional

Bases de Dados. Parte IV

Tornou-se um padrão de fato para aplicações comerciais, devido a sua simplicidade e performance.

Modelo Relacional: Banco de Dados: coleção de relações cada relação tem um nome único.

O Modelo e a Álgebra Relacional

Bases de Dados. Parte IV: Álgebra e Cálculo Relacional

TECNOLOGIA EM SISTEMAS PARA INTERNET. Banco de dados em aplicativos WEB. Aula 5

Banco de Dados I. Aula 9 - Prof. Bruno Moreno 20/09/2011

Sumário SELECT + FROM

Bases de Dados. Parte IV. Álgebra e Cálculo Relacional

SQL - Perguntas. André Restivo. Faculdade de Engenharia da Universidade do Porto. February 24, 2012

Bases de Dados. Álgebra Relacional. Selecção (σ) Seleccionar os registos que satisfazem uma condição exemplo: empréstimos da agência de Perryridge

Processamento e Otimização de Consultas

Universidade Veiga de Almeida

Rápida revisão do Modelo Relacional

Banco de Dados Capítulo 2: Modelo Relacional. Bach. em Ciência da Computação UFPB/CCT Cláudio Baptista, PhD

Banco de Dados. Cálculo Relacional de Tuplas. João Eduardo Ferreira Osvaldo Kotaro Takai

Universidade Federal de São Carlos Departamento de Computação. Bancos de Dados

Laboratóriode Bases de Dados Aula12. ÁlgebraRelacional-Revisão. Professora: Fátima L. S. Nunes

Bases de Dados. Álgebra Relacional. Selecção (σ) Seleccionar os tuplos que satisfazem uma condição. exemplo: empréstimos da agência de Perryridge

GBC043 Sistemas de Banco de Dados Álgebra e Cálculo Relacional. Ilmério Reis da Silva UFU/FACOM

Operações da Álgebra Relacional Operadores Especiais da Álgebra Relacional Renomeação

Banco de dados. Aula 19 Algebra Relacional Continuação. 1 Wedson Quintanilha da Silva -

Álgebra Relacional: Prod. Cartesiano. Álgebra Relacional: Projeção. Álgebra Relacional: Junção Natural. Álgebra Relacional: Junção. 1.

Modelo Relacional - Manipulação

Álgebra Relacional e Cálculo Relacional

Teoria Ingênua dos Conjuntos (naive set theory)

Curso EFA Tecnológico Técnico de Informática e Sistemas. - Álgebra Relacional - João Leitão

ROTEIRO Introdução Álgebra e Cálculo Relacional Operações da Álgebra Relacional Classificação de Operadores da Álgebra Relacional Mapeamento AR -> SQL

SISTEMAS DE BANCO DE DADOS. Prof. Adriano Pereira Maranhão

Modelo Relacional. Modelo Relacional. Modelo Relacional. Banco de Dados. Modelo Relacional. Modelo Relacional. Fernando Fonseca Ana Carolina

Banco de Dados Notas de Aula Consultas em SQL Prof. Dr. Daniel A. Furtado

1ª Prova 23/10/17. Tópicos estudados (todos os assuntos até agora, 12 aulas):

Aulas 10 e 11 / 18 e 20 de abril

BANCO DE DADOS. SQL Select. Engenharia da Computação. Aula 20. Vamos considerar a tabela EMP para os exemplos a seguir. SELECT colunas FROM tabelas;

4. Projecto de Bases de Dados

Um modelo por si próprio não pode realizar qualquer unidade de trabalho útil. É apenas uma representação da realidade.

Um toque de álgebra relacional: UNION e outras operações

SQL-99: Esquema de BD EMPRESA

GES013 - Sistema de Banco de Dados SQL/DML no PostgreSQL Parte 2 Consultas Aninhaas

ANEXO B Manual básico de SQL

TABELA ENTIDADE LINHA OCORRÊNCIA DA ENTIDADE COLUNA ATRIBUTO DA ENTIDADE

Sintaxe do comando SELECT

Modelo Relacional. Banco de Dados 2º trimestre Prof. Patrícia Lucas

1. E 1 R 1 X R 2 (equi-join) C = D

Bases de Dados 2013/2014 Álgebra Relacional. Helena Galhardas 2013 IST. Bibliografia. Raghu Ramakrishnan, Database Management Systems, Cap.

Bancos (Bases) de Dados Aula #4 Modelo Relacional

Álgebra Relacional. Linguagens de consultas relacionais

Banco de dados. Conteúdo: Modelo relacional Prof. Patrícia Lucas

Principais Conceitos. Modelo Relacional representa o banco de dados como uma coleção de relações Tupla Atributos Relação Domínio

GES013 - Sistema de Banco de Dados SQL/DML no PostgreSQL Parte 1 Introdução e Consultas Basicas

Operações fundamentais são suficientes para expressar qualquer consulta. Problema: consultas muito longas. Solução: definição de operações adicionais

Banco de Dados I. Aula 14 - Prof. Bruno Moreno 11/10/2011

UTFPR - Universidade Tecnológica Federal do Paraná. Processamento e otimização de consultas

Universidade da Beira Interior Cursos: Engenharia Informática, Ensino da Informática, Matemática Aplicada e Matemática /Informática

Teoria Elementar dos Conjuntos

Banco de Dados I. Prof. Diego Buchinger. Profa. Rebeca Schroeder Freitas Prof. Fabiano Baldo.

Álgebra Relacional. Índice. Sistemas de Bases de Dados. Orlando Belo

Modelo Lógico de Dados. Modelo Relacional

Uma consulta em CRT é especificada da seguinte forma:

23/05/12. Agenda. Introdução. Introdução. Introdução. Álgebra. Relacional. Cálculo. Relacional

Teoria Elementar dos Conjuntos

Aula 9 BD 1 SQL Parte 1. Profa. Elaine Faria UFU

Roteiro 10: Consultas com várias tabelas/operadores de busca

Usando Subconsultas para Solucionar Consultas

MATA60 BANCO DE DADOS Aula: Otimização. Prof. Daniela Barreiro Claro

Aula 11 SBD SQL Parte 3. Profa. Elaine Faria UFU

PCS3413. Engenharia de So-ware e Banco de Dados. Aula 17. Escola Politécnica da Universidade de São Paulo

SISTEMAS DE BANCO DE DADOS. Prof. Adriano Pereira Maranhão

Transcrição:

Banco de Dados Prof. Célio R. Castelano Página 1 de 9 Álgebra Relacional A álgebra relacional é uma linguagem procedural, que possui uma coleção de operações que são utilizadas para manipular relações (tabelas) inteiras. O resultado de cada operação é uma nova relação, que pode ser manipulada posteriormente. As operações de álgebra relacional são, usualmente, divididas em dois grupos: Operações da teoria de conjuntos da matemática: UNIÃO, INTERSEÇÃO, DIFERENÇA e PRODUTO. O outro grupo consiste de operações desenvolvidas especificamente para banco de dados relacionais, que inclui SELEÇÃO, PROJEÇÃO, JUNÇÃO, entre outras. A tabela a seguir será usada para exemplificar as operações: Nome Sobren RG DataNas Endereço Sex Salario RGSuper NroDepto João Silva 123456789 09/01/55 Rua 15 de M 3.000 333445555 5 Novembro, 731, São Carlos Francisco Souza 333445555 08/12/45 Rua Jorge Assef, M 4.000 888665555 5 100, São Paulo Alice Fernandes 999887777 18/03/75 Rua 9 de Julho, 535, São Carlos F 2.500 987654321 4 Joana Pereira 987654321 20/06/31 Rua Tiradentes, F 4.300 888665555 4 291, Ri. Preto Rodolfo Nogueira 666884444 15/09/52 Av. Brasil, 1005, Fernandópolis M 3.800 333445555 5 1. A OPERAÇÃO SELEÇÃO(SELECT) É utilizada para selecionar um subconjunto de tuplas (registros) numa relação (tabela) que satisfaça uma condição de seleção. Por exemplo, para selecionar o subconjunto de registros de EMPREGADO que trabalha no departamento 4 ou cujo salário é maior do que R$ 3.000,00, pode-se especificar cada uma dessas duas condições com a operação SELECT, como segue: NroDepto = 4 (EMPREGADO) Salario > 3000 (EMPREGADO) Em geral, a operação SELECT é denotada por: <condição da seleção> (Nome da Relação) Página 1 de 9

Banco de Dados Prof. Célio R. Castelano Página 2 de 9 onde o símbolo (sigma) é usado para denotar o operador SELECT e a condição de seleção é uma expressão booleana especificada nos atributos da relação. A relação resultante da operação SELECT tem os mesmos atributos da relação especificada em <Nome da Relação>. A expressão booleana especificada em <condição da seleção> tem a forma: <Nome do Atributo> <operador de comparação> <valor constante>, ou <Nome do Atributo> <operador de comparação> <Nome do Atributo> onde <Nome do Atributo> é o nome de um atributo de <Nome da Relação>, <operador de comparação> é normalmente um dos seguintes operadores {=, <, >,,, } e <valor constante> é um valor constante do domínio do atributo. As cláusulas podem ser arbitrariamente conectadas pelos operadores booleanos, AND, OR e NOT, para formar uma condição de seleção geral. Por exemplo, para selecionar as tuplas de todos os empregados que trabalham no departamento 4 e recebem mais de R$ 4.000,00, ou trabalham no departamento 5 e recebem mais de R$ 3.000,00, podemos especificar a seguinte operação. (NroDepto = 4 AND Salario > 4000) OR (NroDepto = 5 AND Salario > 3000) (EMPREGADO) O resultado está exibido na tabela a seguir. Nome Sobren RG DataNas Endereço Sex Salario RGSuper NroDepto Francisco Souza 333445555 08/12/45 Rua Jorge Assef, 100, São Paulo M 4.000 888665555 5 Joana Pereira 987654321 20/06/31 Rua Tiradentes, F 4.300 888665555 4 291, Ri. Preto Rodolfo Nogueira 666884444 15/09/52 Av. Brasil, 1005, Fernandópolis M 3.800 333445555 5 Note que os operadores de comparação {=, <, >,,, } aplicam-se a atributos cujos domínios são valores ordenados, tais como domínios de números ou datas. Se o domínio de um atributo é um conjunto de valores desordenados, então somente os operadores de comparação {=, } podem ser aplicados ao atributo. Um exemplo de um domínio desordenado é o domínio Cor = {vermelho, azul, verde, branco, amarelo,...}. O grau de uma relação resultante de uma operação SELECT é o mesmo da relação R original na qual a operação é aplicada, pois possui os mesmos atributos de R. O número de tuplas na relação resultante é sempre menor ou igual ao número de tuplas da relação original R. A operação SELECT é comutativa, isto é, <cond1> ( <cond2> ) (R) = <cond2> ( <cond1> ) (R). Assim, uma seqüência de SELECT's pode ser aplicada em qualquer ordem. Além disso, podemos sempre combinar uma cascata de operações SELECT em uma única operação SELECT com uma condição conjuntiva (AND), isto é: <cond1> ( <cond2> (... (( <condn> (R))...)) = <cond1> ^ <cond2> ^ <condn> (R) Página 2 de 9

Banco de Dados Prof. Célio R. Castelano Página 3 de 9 2. A OPERAÇÃO PROJEÇÃO(PROJECT) A operação PROJECT seleciona certas colunas da tabela e descarta as outras colunas. Exemplo: listar o nome, sobrenome e o salário de cada empregado. Pode-se usar a operação PROJECT da seguinte forma: Nome, Sobren, Salario (EMPREGADO) A tabela a seguir mostra o resultado da operação Nome, Sobren, Salario (EMPREGADO): Nome Sobren Salario João Silva 3.000 Francisco Souza 4.000 Alice Fernandes 2.500 Joana Pereira 4.300 Rodolfo Nogueira 3.800 A forma geral da operação PROJECT é: <lista de atributos> (Nome da Relação) onde (pi) é o símbolo usado para representar a operação PROJECT e <lista de atributos> é uma lista de atributos da relação especificada por <Nome da Relação>. A relação resultante tem somente os atributos especificados em <lista de atributos> e na mesma ordem que aparecem na lista. Assim, seu grau é igual ao número de atributos em <lista de atributos>. O número de tuplas em uma relação resultante de uma operação PROJECT é sempre menor ou igual ao número de tuplas da relação original. A propriedade comutativa não é mantida em PROJECT. 3. SEQÜÊNCIAS DE OPERAÇÕES E RENOMEAÇÃO DE ATRIBUTOS As operações podem ser aplicadas de forma aninhada, usando uma única expressão da álgebra relacional, como a seguir, cuja expressão recupera o primeiro nome, o último nome e o salário de todos os empregados que trabalham no departamento cujo código é 5: Nome, Sobren, Salario ( NroDepto = 5 (EMPREGADO)) A tabela a seguir mostra o resultado da operação anterior: Nome Sobren Salario João Silva 3.000 Francisco Souza 4.000 Rodolfo Nogueira 3.800 Podemos ainda criar relações resultantes intermediárias, dando um nome para cada relação intermediária: R1 NroDepto = 5 (EMPREGADO) RESULT Nome, Sobren, Salario (R1) Página 3 de 9

Banco de Dados Prof. Célio R. Castelano Página 4 de 9 Podemos também utilizar esta técnica para renomear os atributos nas relações intermediárias e resultantes, como a seguir. Isso pode ser útil na conexão com operações mais complexas, tais como UNION e JOIN. TEMP NroDepto = 5 (EMPREGADO) R(FirstName, LastName, Salary) Nome, Sobren, Salario (TEMP) A tabela a seguir mostra o resultado da operação TEMP NroDepto = 5 (EMPREGADO) TEMP Nome Sobren RG DataNas Endereço Sex Salario RGSuper NroDepto João Silva 123456789 09/01/55 Rua 15 de M 3.000 333445555 5 Novembro, 731, São Carlos Francisco Souza 333445555 08/12/45 Rua Jorge Assef, 100, São Paulo Rodolfo Nogueira 666884444 15/09/52 Av. Brasil, 1005, Fernandópolis M 4.000 888665555 5 M 3.800 333445555 5 A tabela a seguir mostra o resultado da operação R(FirstName, LastName, Salary) Nome, Sobren, Salario (TEMP) R FirstName LastName Salary João Silva 3.000 Francisco Souza 4.000 Rodolfo Nogueira 3.800 4. OPERAÇÕES DA TEORIA DOS CONJUNTOS O próximo grupo de operações da álgebra relacional são operações matemáticas, padrões em conjuntos. Elas se aplicam ao modelo relacional, pois uma relação é definida como um conjunto de tuplas e pode ser usada para processar as tuplas em duas relações como conjuntos. Por exemplo, para recuperar os RG's de todos os empregados que trabalham no departamento 5 ou supervisione diretamente um empregado que trabalhe no departamento 5, podemos utilizar a operação UNION: DEP 5 EMPS NroDepto = 5 (EMPREGADO) RESULT RG (DEP 5 EMPS) RESULT1 (rg) RGSuper (DEP 5 EMPS) RESULT2 RESULT1 RESULT2 A relação RESULT1 tem os RG's de todos os empregados que trabalham no departamento 5, enquanto que RESULT2 tem os RG's de todos os empregados que supervisionam diretamente um empregado que trabalha no departamento 5. A operação UNION produz as tuplas que ou estão em RESULT1 ou estão em RESULT2 ou estão em ambas. O resultado da operação RESULT RESULT1 RESULT2 está apresentado a seguir: RESULT RG RESULT1 RG RESULT2 RG 123456789 333445555 123456789 333445555 888665555 333445555 666884444 333445555 666884444 888665555 Página 4 de 9

Banco de Dados Prof. Célio R. Castelano Página 5 de 9 Para a utilização dessas operações em banco de dados relacionais devemos garantir que o resultado da aplicação dessas operações em duas relações gere uma terceira relação também válida. Para isso, as duas relações envolvidas devem possuir o mesmo tipo de tuplas. Essa condição é chamada de compatibilidade de união. Duas relações R(A 1, A 2, A 3,..., A n ) e S (B 1, B 2, B 3,..., B n ) são ditas união-compatíveis se possuem o mesmo grau n, e se dom(a i ) = dom(b i ) para 1 i n. Isto significa que as duas relações possuem o mesmo número de atributos e que cada par de atributos correspondentes possuem o mesmo domínio. Obs: alguns autores consideram ser necessário também que, as colunas das duas relações tenham os mesmos nomes. As duas relações a seguir são união-compatíveis. Estudante Instrutor N S Nome Sobrenome Susan Yao John Smith Ramesh Shah Ricardo Browne Johnny Kohler Susan Yao Barbara Jones Francis Johnson Amy Ford Ramesh Shah Jimmy Wang Ernest Gilbert Podemos definir as operações UNION, INTERSECTION e DIFFERENCE em duas relações uniãocompatíveis R e S, como se segue: 4.1) UNION: O resultado desta operação, denotada por R S, é uma relação que inclui todas as tuplas que estão em R ou em S ou em ambas R e S. Tuplas duplicadas são eliminadas. A tabela a seguir mostra o resultado da operação ESTUDANTE INSTRUTOR. União Exclusiva N Susan Ramesh Johnny Barbara Amy Jimmy Ernest John Ricardo Francis S Yao Shah Kohler Jones Ford Wang Gilbert Smith Browne Johnson A união exclusiva de duas relações R e S, resulta em uma relação que contém as tuplas que estão em S ou em R, mas não as tuplas que estão em ambas. A representação utilizada para a operação União Exclusiva é: R S Página 5 de 9

Banco de Dados Prof. Célio R. Castelano Página 6 de 9 4.2) INTERSECTION: O resultado desta operação, denotada por R S, é uma relação que inclui todas as tuplas que estão em ambas R e S. A tabela a seguir mostra o resultado da operação ESTUDANTE INSTRUTOR. N Susan Ramesh S Yao Shah Obs: Ambas as operações UNION e INTERSECTION: são comutativas, ou seja, R S = S R e R S = S R são aplicadas a qualquer número de relações são associativas, ou seja, R (S T) = (R S) T e R (S T) = (R S) T 4.3) DIFFERENCE: O resultado dessa operação, denotada por R - S, é uma relação que inclui todas as tuplas que estão em R, mas não estão em S. A tabela (a) mostra o resultado da operação ESTUDANTE - INSTRUTOR e a tabela (b) mostra o resultado da operação INSTRUTOR - ESTUDANTE (a) (b) N S Nome Sobrenome Johnny Kohler John Smith Barbara Jones Ricardo Browne Amy Ford Francis Johnson Jimmy Wang Ernest Gilbert A operação DIFFERENCE não é comutativa pois em geral, R - S S - R. Note que a convenção adotada é que a relação resultante tem os mesmos nomes de atributos da primeira relação R. 4.4) PRODUTO CARTESIANO (X) Combina tuplas de duas relações R e S, resultando em uma relação que tem uma tupla para cada combinação de tuplas - uma de R e outra de S: Q (A 1, A 2, A 3,..., A n, B 1, B 2, B 3,..., B m ) R (A 1, A 2, A 3,..., A n ) X S(B 1, B 2, B 3,..., B m ) Exemplo: R1 R2 Nome Sobren NroDepto NomeDepto João Silva 1 Administração Francisco Souza 2 Finanças R1 X R2 Nome Sobren NroDepto NomeDepto João Silva 1 Administração João Silva 2 Finanças Francisco Souza 1 Administração Francisco Souza 2 Finanças Página 6 de 9

Banco de Dados Prof. Célio R. Castelano Página 7 de 9 4.5) JOIN - Operação Junção ( X ) Denotada por X, é utilizada para combinar tuplas de duas relações através de um ou mais atributos comuns às duas relações. A tabela resultante contém as colunas das duas tabelas que participaram da junção: Q (A 1, A 2, A 3,..., A n, B 1, B 2, B 3,..., B m ) R (A 1, A 2, A 3,..., A n ) X S(B 1, B 2, B 3,..., B m ) Esta operação é muito importante para qualquer banco de dados relacional com mais do que uma relação, pois nos permite processar relacionamento entre relações. A forma geral de uma operação JOIN em 2 relações R (A 1, A 2,..., A n ) e S (B 1, B 2,..., B m ) é: R X <condição de junção> S Uma condição de junção é da forma: <condição> AND <condição> AND... AND <condição>, onde a condição é da forma Ai Bj, A e B são atributos com o mesmo domínio e é um dos operadores de comparação {=, <,, >,, }. A operação de junção mais comumente usada envolve, na condição JOIN, somente comparações de igualdade. Nesse caso ela é chamada EQUIJOIN. Essa operação conserva pares de atributos com valores idênticos em cada tupla. A operação Natural Join (notação *) conserva apenas uma das colunas de valores repetidos, mas para que seja possível, é necessário que os atributos da condição tenham o mesmo nome em ambas as relações. No exemplo a seguir é utilizada a EQUIJOIN: EMPREGADO DEPARTAMENTO Nome Sobren RG NroDepto NroDepto NomeDepto RGGerente João Silva 123456789 1 1 Pesquisa 333445555 Francisco Souza 333445555 1 2 Administração 987654321 Alice Fernandes 999887777 4 3 Finanças 666884444 Joana Pereira 987654321 2 4 Pessoal 999887777 Rodolfo Nogueira 666884444 3 Suponha que se queira recuperar o nome do gerente de cada departamento. Para obter o nome do gerente, precisamos combinar cada tupla de Departamento com a tupla de Empregado cujo valor do RG seja igual ao valor de RGGerente na tupla de Departamento. DEPT_GER DEPARTAMENTO X RGGerente = RG (EMPREGADO) RESULT NroDepto, Nome, Sobren (DEPT_GER) DEPT_GER NroDepto NomeDepto RGGerente Nome Sobren RG NroDepto 1 Pesquisa 333445555 Francisco Souza 333445555 1 2 Administração 987654321 Joana Pereira 987654321 2 3 Finanças 666884444 Rodolfo Nogueira 666884444 3 4 Pessoal 999887777 Alice Fernandes 999887777 4 RESULT NroDepto Nome Sobren 1 Francisco Souza 2 Joana Pereira 3 Rodolfo Nogueira 4 Alice Fernandes Página 7 de 9

Banco de Dados Prof. Célio R. Castelano Página 8 de 9 Exercício: Formule a seguinte consulta na álgebra relacional: Recupere o nome e o endereço de todos os empregados que trabalham para o departamento "Pesquisa" 4.6) OPERAÇÃO DIVISÃO (DIVISION) A operação DIVISION é útil para um tipo especial de consulta que algumas vezes ocorrem em aplicações de banco de dados. Esta operação aplicada sobre duas relações R e S, produz uma relação Q que inclui todas as tuplas que aparecem em R combinadas com todas as tuplas de S. A representação utilizada por esta operação é: R S Como exemplo, tem-se: "Recupere os números dos empregados que trabalham em todos os projetos". PROJETO TRABALHA NomeProj NroProj NroDepto NroEmp NroProj Horas PROJETO A P1 1 1 P1 10 PROJETO B P2 3 1 P3 15 PROJETO c P3 1 2 P1 10 2 P2 20 2 P3 15 3 P2 30 4 P1 10 4 P2 10 4 P3 20 Para expressar essa consulta utilizando DIVISION, realizamos as seguintes operações: R NroProj (PROJETO) S NroEmp, NroProj (TRABALHA) RESULT R S NroProj P1 P2 P3 NroEmp NroProj 1 P1 1 P3 2 P1 2 P2 2 P3 3 P2 4 P1 4 P2 4 P3 NroEmp 2 4 Página 8 de 9

Banco de Dados Prof. Célio R. Castelano Página 9 de 9 Exercícios: 1- Faça a expressão algébrica na Álgebra Relacional das seguintes consultas: OBS: Instancie a relação DEPENDENTE cujo esquema da relação é: DEPENDENTE (RG, Nome_Depend, Sexo, DtaNasc, Grau_Parent) A - Consulte os nomes dos empregados que trabalham em todos os projetos controlados pelo departamento 5. B - Faça uma lista de número de projetos para projetos que envolvem um empregado cujo sobrenome é 'Silva' como trabalhador ou como gerente do departamento que controla o projeto. C - Liste o nome de todos os empregados que não possuam dependentes. D - Liste os nomes dos gerentes que possuem no mínimo um dependente. 2- Dado o seguinte esquema de Banco de Dados: Empregado (nome_empregado, rua, cidade); Trabalha (#nome_empregado, #nome_companhia, salário); Companhia (nome_companhia, cidade); Ger_Emp (#nome_empregado, #nome_gerente) Resolva as consultas abaixo utilizando álgebra Relacional: A- Encontre os nomes de todos os empregados que trabalham para a companhia UNIP ; B- Liste todos os nomes das cidades dos empregados que trabalham na companhia UNIP ; C- Recupere o nome, cidade e rua da residência de todos os empregados da companhia UNIP que ganham mais de vinte mil reais por ano 13º e 1/3 de férias; D- Encontre os nomes de todos os empregados que moram na mesma cidade da companhia que trabalham; E- Encontre os nomes de todos os empregados que moram na mesma rua e cidade de seu gerente; F- Liste os nomes de todos os empregados que não trabalham para a companhia SBD ; G- Assuma que as companhias possam estar localizadas em diversas cidades. Encontre todas as companhias localizadas em todas as cidades onde haja unidades da companhia SBD. Página 9 de 9