Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


EXERCICIOS ALGEBRA RELACIONAL, Exercícios de Bancos de Dados Relacionais

A álgebra relacional é uma linguagem de consulta procedural. Ela consiste em um conjunto de operações que tomam uma ou duas tabelas como entrada e produzem uma nova tabela como resultado. Essas operações baseiam-se na teoria dos conjuntos (as tabelas correspondem a conjuntos).

Tipologia: Exercícios

2024

Compartilhado em 19/11/2023

es943964
es943964 🇧🇷

1 documento

1 / 7

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
UNIP – SBD – Álgebra Relacional – Prof.Antonio A.Palladino
1
1. Álgebra Relacional e Operações Relacionais
A álgebra relacional é uma linguagem de consulta procedural. Ela consiste em um conjunto de
operações que tomam uma ou duas tabelas como entrada e produzem uma nova tabela como resultado.
Essas operações baseiam-se na teoria dos conjuntos (as tabelas correspondem a conjuntos).
Linguagem procedural: linguagem que requer sempre a existência de definição quanto à ordem em
que as operações serão realizadas
1.1 Operadores de Álgebra Relacional
São definidas nove operações ou operadores para se trabalhar com álgebra relacional, eles podem ser
classificados da seguinte maneira:
Quanto à sua origem:
- Fundamentais - através dela qualquer expressão de consulta de dados é permitida:
1. Projeção
2. Seleção
3. Produto Cartesiano
4.União
5. Diferença, Subtração
- Derivados – derivam dos operadores fundamentais, são definidos para facilitar a especificação de certos
procedimentos:
6. Intersecção
7. Junção (normal e natural)
8. Divisão
- Especiais – operadores que não se enquadram nos itens anteriores:
9.Renomeação e alteração
Quanto ao número de relações (tabelas) operandas:
Unários - operam em uma única tabela . São eles: seleção, projeção, renomeação e alteração;
Binários – operam em duas tabelas. São eles: união, intersecção, diferença, produto cartesiano, junção e
divisão.
Quanto à origem da área da matemática:
Teoria dos Conjuntos operadores usuais da teoria de conjuntos da matemática. São eles: união,
intersecção, diferença e produto cartesiano;
Especiaisoperadores adicionais, definidos pela álgebra relacional para manipulação de dados. São eles:
seleção, projeção, junção, divisão, renomeação e alteração.
Além desses operadores, é definido também o operador de atribuição que permite atribuir o resultado
de uma expressão de álgebra a uma tabela.
Quadro Resumo de Operações/Operadores em Álgebra Relacional:
OPERAÇÃO SÍMBOLO
SINTAXE
Projeção
(“pi”) <lista de campos> (Tabela)
Seleção/ Restrição
(“sigma”) <condição de seleção> (Tabela)
União (Tabela 1) (Tabela 2)
Interseção (Tabela 1) (Tabela 2)
Diferença (Tabela 1) (Tabela 2)
Produto Cartesiano
X (Tabela 1) X (Tabela 2)
Junção |X| (Tabela 1) |X| <condição de junção> (Tabela 2)
Divisão
÷
(Tabela 1)
÷
(Tabela 2)
Renomeação
(“rho”)
Nome(Tabela)
Atribuição
Variável Tabela
pf3
pf4
pf5

Pré-visualização parcial do texto

Baixe EXERCICIOS ALGEBRA RELACIONAL e outras Exercícios em PDF para Bancos de Dados Relacionais, somente na Docsity!

1. Álgebra Relacional e Operações Relacionais

A álgebra relacional é uma linguagem de consulta procedural. Ela consiste em um conjunto de

operações que tomam uma ou duas tabelas como entrada e produzem uma nova tabela como resultado.

Essas operações baseiam-se na teoria dos conjuntos (as tabelas correspondem a conjuntos).

Linguagem procedural: linguagem que requer sempre a existência de definição quanto à ordem em

que as operações serão realizadas

1.1 Operadores de Álgebra Relacional

São definidas nove operações ou operadores para se trabalhar com álgebra relacional, eles podem ser

classificados da seguinte maneira:

Quanto à sua origem:

  • Fundamentais - através dela qualquer expressão de consulta de dados é permitida:

1. Projeção

2. Seleção

3. Produto Cartesiano

4.União

5. Diferença, Subtração

  • Derivados – derivam dos operadores fundamentais, são definidos para facilitar a especificação de certos

procedimentos:

6. Intersecção

7. Junção (normal e natural)

8. Divisão

  • Especiais – operadores que não se enquadram nos itens anteriores:

9.  Renomeação e alteração

Quanto ao número de relações (tabelas) operandas:

Unários - operam em uma única tabela. São eles: seleção, projeção, renomeação e alteração;

Binários – operam em duas tabelas. São eles: união, intersecção, diferença, produto cartesiano, junção e

divisão.

Quanto à origem da área da matemática:

Teoria dos Conjuntos – operadores usuais da teoria de conjuntos da matemática. São eles: união,

intersecção, diferença e produto cartesiano;

Especiais – operadores adicionais, definidos pela álgebra relacional para manipulação de dados. São eles:

seleção, projeção, junção, divisão, renomeação e alteração.

Além desses operadores, é definido também o operador de atribuição que permite atribuir o resultado

de uma expressão de álgebra a uma tabela.

Quadro Resumo de Operações/Operadores em Álgebra Relacional:

OPERAÇÃO SÍMBOLO SINTAXE

Projeção

(“pi”)

(Tabela)

Seleção/ Restrição

(“sigma”)

<condição de seleção> (Tabela)

União (Tabela 1) (Tabela 2)

Interseção (Tabela 1) (Tabela 2)

Diferença – (Tabela 1) – (Tabela 2)

Produto Cartesiano X (Tabela 1) X (Tabela 2)

Junção |X| (Tabela 1) |X| <condição de junção> (Tabela 2)

Divisão ÷ (Tabela 1) ÷ (Tabela 2)

Renomeação

(“rho”)

 Nome(Tabela)

Atribuição ←←←← Variável  Tabela

Para nosso trabalho com os operadores relacionais assumiremos nesta apostila o banco de dados definido

pelo esquema abaixo:

Tabela Cargo Tabela Depto

CdCargo DescCargo VlrSalario CdDepto DescDepto RamalTel C1 Aux.Vendas 350,00 D1 Assist.Técnica 2246 C2 Vigia 400,00 D2 Estoque 2589 C3 Vendedor 800,00 D3 Administração 2772 C4 Aux.Cobrança 250,00 D4 Segurança 1810 C5 Gerente 1000,00 D5 Vendas 2599 C6 Diretor 2500,00 D6 Cobrança 2688

Tabela Funcionário

NumReg NomeFunc DtAdmissão Sexo CdCargo CdDepto 101 Luis Sampaio 10/08/2003 M C3 D 104 Carlos Pereira 02/03/2004 M C4 D 134 Jose Alves 23/05/2002 M C5 D 121 Luis Paulo Souza 10/12/2001 M C3 D 195 Marta Silveira 05/01/2002 F C1 D 139 Ana Luiza 12/01/2003 F C4 D 123 Pedro Sergio 29/06/2003 M C7 D 148 Larissa Silva 01/06/2002 F C4 D 115 Roberto Fernandes 15/10/2003 M C3 D 22 Sergio Nogueira 10/02/2000 M C2 D

Projeção ( )

Pode ser entendida como uma operação que filtra as colunas de uma tabela de nosso banco de dados ou

uma tabela resultante de uma outra operação relacional executada. Por operar em apenas um conjunto de

entrada, a projeção é classificada como uma operação unária.

Sintaxe:  coluna1, coluna2,..., colunaN ( Tabela )

Consulta: Qual o nome e data de admissão dos funcionários?

Comando: Nomefunc, DtAdmissao (Funcionario)

Resultado:

NomeFunc DtAdmissão Luis Sampaio 10/08/ Carlos Pereira 02/03/ Jose Alves 23/05/ Luis Paulo Souza 10/12/ Marta Silveira 05/01/ Ana Luiza 12/01/ Pedro Sergio 29/06/ Larissa Silva 01/06/ Roberto Fernandes 15/10/ Sergio Nogueira 10/02/

Seleção/ Restrição ( )

Pode ser entendida como a operação que filtra, seleciona as linhas de uma tabela, realizando também uma

projeção, e opera em um conjunto de dados, sendo portando uma operação unária.

Sintaxe: <condição de seleção ou predicado> (Tabela)

Consulta: Quais os funcionários de sexo masculino?

Comando: Sexo=’M’ (Funcionario)

Resultado: NumReg NomeFunc DtAdmissão Sexo CdCargo CdDepto

101 Luis Sampaio 10/08/2003 M C3 D 104 Carlos Pereira 02/03/2004 M C4 D 134 Jose Alves 23/05/2002 M C5 D 121 Luis Paulo Souza 10/12/2001 M C3 D 123 Pedro Sergio 29/06/2003 M C6 D 115 Roberto Fernandes 15/10/2003 M C3 D 22 Sergio Nogueira 10/02/2000 M C2 D

Notamos que como nossa operação é um produto cartesiano temos como resultado o produto das linhas

das duas tabelas, isso em um projeto lógico para nós está incorreto, pois para nossa consulta as linhas que

realmente nos interessam seriam as que os campos CdCargo sejam iguais das duas tabela ou seja

Funcionário.CdCargo = Cargos.CdCargo, aplicamos então uma seleção no resultado:

Consulta: Trazer o nome, data de admissão código do cargo e descrição do cargo dos funcionários.

Comando: Nomefunc, DtAdmissão, Sexo, CdCargo, DescCargo

( Funcionário.CdCargo = Cargos.CdCargo (FuncionárioXCargos) )

Resultado: NomeFunc DtAdmissão Sexo CdCargo DescCargo

Luis Sampaio 10/08/2003 M C3 Vendedor Carlos Pereira 02/03/2004 M C4 Aux.Cobrança Jose Alves 23/05/2002 M C5 Gerente Luis Paulo Souza 10/12/2001 M C3 Vendedor Marta Silveira 05/01/2002 F C1 Aux.Vendas Ana Luiza 12/01/2003 F C4 Aux.Cobrança Pedro Sergio 29/06/2003 M C6 Diretor Larissa Silva 01/06/2002 F C4 Aux.Cobrança Roberto Fernandes 15/10/2003 M C3 Vendedor Sergio Nogueira 10/02/2000 M C2 Vigia

Consulta: Trazer o nome, data admissão, cód. do cargo e descrição, dos funcionários do sexo masculino.

Comando: Nomefunc, DtAdmissão, Sexo, CdCargo, DescCargo

( Sexo=’M’ ^

Funcionário.CdCargo = Cargo.CdCargo (FuncionárioXCargos) )

Nomefunc, DtAdmissão, Sexo, CdCargo, DescCargo

Resultado 2

Seleção

Árvore de Expressão:

Funcionário X Cargos

Funcionário Cargos

Funcionário.CdCargo = Cargos.CdCargo

Resultado 3

Projeção

Resultado 1

Produto Cartesiano

Nomefunc, DtAdmissão, Sexo, CdCargo, DescCargo

Resultado 2

Seleção

Árvore de Expressão:

Funcionário X Cargos

Funcionário Cargos

Sexo=’M’ ^ Funcionário.CdCargo = Cargos.CdCargo

Resultado 3

Projeção

Resultado 1

Produto Cartesiano

São utilizados os símbolos ∧∧∧∧ e ∨∨∨∨ para representar respectivamente os operadores lógicos ´E´ e ´OU´

Resultado: NomeFunc^ DtAdmissão^ Sexo^ CdCargo^ Desccargo Luis Sampaio 10/08/2003 M C3 Vendedor Carlos Pereira 02/03/2004 M C4 Aux.Cobrança Jose Alves 23/05/2002 M C5 Gerente Luis Paulo Souza 10/12/2001 M C3 Vendedor Pedro Sergio 29/06/2003 M C7 Diretor Roberto Fernandes 15/10/2003 M C3 Vendedor Sergio Nogueira 10/02/2000 M C2 Vigia

União ( )

É uma operação binária, ou seja cria uma tabela a partir de duas outras tabelas união compatíveis levando

as linhas comuns e não comuns a ambas. As informações duplicadas aparecerão somente uma vez no

resultado.

 Tabelas União Compatíveis: tabelas cuja quantidade, disposição e domínio dos atributos/ campos

sejam os mesmos

Sintaxe: (Tabela 1) (Tabela 2)

Comando: Imaginemos um caso onde temos a tabela de Contas e a de Empréstimos e queremos saber

quais clientes possuem Conta ou Empréstimo, para isso realizamos as projeções respectivas para que

tenhamos somente o campo NomeCliente de cada tabela e realizamos a união desse resultado.

Projeção 1 Projeção 2 Resultado

Exemplo: NomeCliente NomeCliente = NomeCliente Luis Sampaio Luis Sampaio Luis Sampaio Carlos Pereira Luis Sampaio Carlos Pereira Jose Alves Jose Alves

Intersercção ( )

É uma operação binária, ou seja cria uma tabela a partir de duas outras tabelas levando sem repetição as

linhas, que pertençam a ambas as tabelas presentes na operação.

Sintaxe: (Tabela 1) (Tabela 2)

Comando: Imaginemos um caso onde temos a tabela de Contas e a de Empréstimos e queremos saber

quais clientes possuem Conta e Empréstimo, para isso realizamos as projeções respectivas para que

tenhamos somente o campo NomeCliente de cada tabela e realizamos a intersecção desse resultado.

Projeção 1 Projeção 2 Resultado

Exemplo: NomeCliente NomeCliente = NomeCliente Luis Sampaio Luis Sampaio Luis Sampaio Carlos Pereira Luis Sampaio Jose Alves

Diferença ( – )

Essa operação permite encontrarmos linhas que estão em uma tabela mas não estão em outra. A

expressão Tabela 1 – Tabela 2 resulta em uma tabela que contém todas as linhas que estão na tabela 1 e

não estão na Tabela 2. Observamos que Tabela 1 – Tabela 2 (Exemplo1) é diferente de Tabela 2 – Tabela

1 (Exemplo2).

Sintaxe: (Tabela 1) – (Tabela 2)

Comando: Imaginemos um caso onde temos a tabela de Contas e a de Empréstimos e queremos saber

quais clientes possuem uma Conta mas não tenham um Empréstimo, para isso realizamos as projeções

respectivas para que tenhamos somente o campo NomeCliente de cada tabela e realizamos a diferença

desse resultado.

Projeção 1 Projeção 2 Resultado

Exemplo1: NomeCliente^ ^ NomeCliente^ =^ NomeCliente Luis Sampaio Luis Sampaio Carlos Pereira Carlos Pereira Luis Sampaio Jose Alves Jose Alves

Renomeação (  )

É a operação que renomeia uma tabela.

Sintaxe:  Nome(Tabela) Exemplo:  Funcionairo2(Funcionario)

Atribuição ( ←←←← )

É utilizada para simplificar comandos muito extensos definindo então passos de comando.

Sintaxe: Variável ←←←← Tabela Exemplo: Nomes_Func ←←←← Nomefunc(Funcionario)

1.2. Funções em Álgebra Relacional

Algumas operações muito comuns sobre base de dados não podem ser executadas usando

apenas as operações de álgebra relacional e são implementadas na linguagem de consulta à

base de dados (SQL) dos SGBD (Sistemas Gerenciadores de Banco de Dados).

Funções de Agregação: aplicadas em uma coleção de valores numéricos: SOMA, MÉDIA,

MÁXIMO, MÍNIMO ou usada para contar linhas: CONTADOR.

BIBLIOGRAFIA

  • MACHADO, Felipe Nery Rodrigues – Banco de Dados: Projeto e Implementação – Edtora Érica;

EXERCÍCIOS

1- Dados o esquema abaixo, especificar as operações da álgebra relacional para as solicitações. Na

resolução do exercício demonstrar a árvore de expressão:

FORNECEDOR (CD-FORN, NOME-FORN, CD-CONDICAO)

PRODUTO (CD-PROD, NOME-PROD, COR-PROD)

PEDIDO ( CD-FORN , CD-PROD , QTD-PEDIDA)

Onde: PEDIDO.CD-FORN referencia FORNECEDOR.CD-FORN PEDIDO.CD-PROD referencia PRODUTO.CD-PROD

a) Traga o código e nome dos fornecedores;

b) Traga o código e nome dos fornecedores que estão inativos (CD-CONDICAO=’I’);

c) Traga as informações dos fornecedores que forneceram o produto de código ‘PD-23’ e estão ativos

(CD-CONDICAO=’A’); (utilizar junção com predicado)

d) Qual o nome dos fornecedores que forneceram pelo menos um produto cuja a cor é ‘VERDE’;

(utilizar junção natural)

e) Qual o nome dos produtos de cor ‘VERMELHA’ com pedidos em quantidade superior a 5000;

f) Qual o código e nome dos fornecedores que forneceram algum produto. (trazer as linhas de

resultado sem repetição)

2- Dados o esquema abaixo, especificar as operações da álgebra relacional para as solicitações. Na

resolução do exercício demonstrar a árvore de expressão e o resultado final da solicitação:

ALUNO (CD-ALUNO, NOME-ALUNO, END-ALUNO, SEXO-ALUNO)

DISCIPLINA (CD-DISC, NOME-DISC, CH-DISC, CD-PROF )

HISTORICO ( CD-ALUNO, CD-DISC , NOTA)

PROFESSOR (CD-PROF, NOME-PROFESSOR)

Onde: DISCIPLINA.CD-PROF referencia PROFESSOR.CD-PROF HISTORICO.CD-ALUNO referencia ALUNO.CD-ALUNO      HISTORICO.CD-DISC referencia DISCIPLINA.CD-DISC

ALUNO DISCIPLINA HISTORICO PROFESSOR CD- ALUNO

Nome- Aluno

End- Aluno

Sexo- Aluno

CD- Disc

Nome-Disc Ch- Disc

CD- Prof

CD- Aluno

CD- Disc

Nota CD- Prof

Nome- Prof 1 Carlos Rua A M CI Cálculo-I 40 1 1 CI 6,0 1 Paulo 2 Ana Rua B F MD Modelagem 80 2 1 MD 7,0 2 Antonio 3 Pedro Rua C M LBD Lab.BDs 80 2 2 CI 8, 

a) Traga o código, nome e sexo dos alunos;

b) Traga o código, nome e sexo dos alunos do sexo masculino;

c) Traga o código da disciplina, nome dela e nome dos professores que a lecionam;

d) Traga o código da disciplina e nome dos professores que lecionam a disciplina de nome ‘Cálculo-I’;

e) Traga as informações dos alunos que tiveram nota superior a 6 nas disciplinas de Modelagem e

Cálculo-I?

f) Qual o nome e código dos alunos que cursaram todas as disciplinas com carga horária (CH-DISC)

maior que 50 horas, com nota superior a 7?

g) Quais nomes de disciplinas onde todos os alunos que já a cursaram obtiveram nota superior a 5?