Buscar

Álgebra Relacional

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 43 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 43 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 43 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Prof. Esp. Flávio Almeida Ferreira
BANCO DE DADOS II
Prof. Esp. Flávio Almeida Ferreira
Prof. Esp. Flávio Almeida Ferreira
ALGEBRA RELACIONAL
OBJETIVOS
• Aprender sobre as linguagens de 
manipulação de um Banco de Dados 
Relacional.
• Conhecer conceitos básicos de Álgebra 
Relacional 
Prof. Esp. Flávio Almeida Ferreira
Processamento de Consultas
Etapas Básicas:
1 – Análise e Tradução
2 – Otimização
3 – Avaliação
Consulta
Analisador 
e
Tradutor
Expressão da Álgebra 
Relacional
Otimizador
Plano de Execução
Mecanismo 
de Avaliação
Saída da 
Consulta
Dados Estatística sobre 
Dados
Prof. Esp. Flávio Almeida Ferreira
Análise e tradução
– Traduz a consulta para o seu formato interno. Este é então traduzido 
para a álgebra relacional. 
– O analisador verifica a sintaxe e as relações
Avaliação
– O mecanismo de execução de consulta apanha um plano de avaliação 
de consulta, executa esse plano e retorna as respostas à consulta.
Processamento de Consultas
Prof. Esp. Flávio Almeida Ferreira
Otimização
– Uma expressão da álgebra relacional pode ter muitas expressões 
equivalentes
σ saldo < 2500(pi saldo(conta))
é equivalente a 
pi saldo(σ saldo2500(conta))
– Cada operação da álgebra relacional pode ser avaliada usando um de 
vários algoritmos diferentes. Da mesma forma, uma expressão da 
álgebra relacional pode ser avaliada de muitas maneiras.
– Expressão anotada especificando estratégia de avaliação detalhada é 
chamada de plano de avaliação.
Processamento de Consultas
Prof. Esp. Flávio Almeida Ferreira
Otimização
– Pode-se usar um índice sobre saldo para encontrar contas com saldo < 
2500, ou pode realizar varredura completa da relação e descartar 
contas com saldo >= 2500 
– Entre todos os planos de avaliação equivalentes, é escolhido aquele 
com o menor custo. O custo é estimado usando informações 
estatísticas do catálogo de banco de dados – Exemplo: número de 
tuplas em cada relação, tamanho das tuplas etc.
Processamento de Consultas
Prof. Esp. Flávio Almeida Ferreira
a) Relação: representada por uma tabela de duas dimensões 
(linhas e colunas);
b) Tupla: corresponde a uma linha da relação;
c) Atributo: corresponde às colunas da relação;
d) Chave primária: conjunto de atributos que identificam 
univocamente cada tupla da relação;
e) Chave estrangeira: atributo de uma relação que é chave 
primária de outra relação.
Conceitos
Prof. Esp. Flávio Almeida Ferreira
Conceitos
Prof. Esp. Flávio Almeida Ferreira
Manipulação de Dados no 
Modelo Relacional
Duas categorias de linguagens
– formais
• álgebra relacional e cálculo relacional
– comerciais (baseadas nas linguagens formais)
• SQL
Linguagens formais - Características
– orientadas a conjuntos
– fechamento (query language)
• resultados de consultas são relações
Prof. Esp. Flávio Almeida Ferreira
Álgebra Relacional - Operadores
A Álgebra Relacional é um conjunto de operações 
sobre modelos relacionais de dados. Podem ser 
agrupadas em duas categorias:
Operadores Relacionais:
· Seleção
· Projeção
· Junção
· Divisão 
Operadores de Conjunto:
· União
· Intersecção
· Diferença
· Produto Cartesiano
Prof. Esp. Flávio Almeida Ferreira
Seleção σF (R)
A operação Seleção é utilizada para selecionar um subconjunto de 
tuplas de uma relação, sendo que estas tuplas devem satisfazer 
uma condição de seleção. A forma geral de uma operação Seleção
é:
σ <condição de seleção>
( <nome da relação> )
A letra grega σ é utilizada para representar a operação de seleção; 
<condição de seleção> é uma expressão booleana aplicada sobre 
os atributos da relação e <nome da relação> é o nome da relação 
sobre a qual será aplicada a operação Seleção.
Prof. Esp. Flávio Almeida Ferreira
Seleção σF (R)
• As operações relacionais que podem ser aplicadas na 
operação Seleção são:
– <, >, ≤, ≥, =, ≠
• além dos operadores booleanos:
– and, or, not.
• A operação Seleção é unária, ou seja, só pode ser aplicada a 
uma única relação. Não é possível aplicar a operação sobre 
tuplas de relações distintas.
Prof. Esp. Flávio Almeida Ferreira
Seleção σF (R)
Selecionar os empregados com salario 
menor que 2500.
Prof. Esp. Flávio Almeida Ferreira
Seleção σF (R)
Prof. Esp. Flávio Almeida Ferreira
Seleção σF (R)
Selecionar os dependentes que são filhas 
de algum empregado.
Prof. Esp. Flávio Almeida Ferreira
Seleção σF (R)
Prof. Esp. Flávio Almeida Ferreira
Projeção Πi1, i2, ..., im(R)
A operação Projeção seleciona um conjunto determinado de colunas 
de uma relação. A forma geral de uma operação Projeção é:
A letra grega pi representa a operação Projeção, <lista de atributos>
representa a lista de atributos que o usuário deseja selecionar e 
<nome da relação> representa a relação sobre a qual a operação 
Projeção será aplicada.
Prof. Esp. Flávio Almeida Ferreira
Projeção Πi1, i2, ..., im(R)
Projetar o nome e a data de nascimento 
de todos os dependentes.
Prof. Esp. Flávio Almeida Ferreira
Projeção Πi1, i2, ..., im(R)
Prof. Esp. Flávio Almeida Ferreira
Seleção e Projeção
As operações Projeção e Seleção podem ser utilizadas de
forma combinada, permitindo que apenas determinadas
colunas de determinadas tuplas possam ser selecionadas.
A forma geral de uma operação sequencializada é:
pi<lista de atributos> (σ<condição de seleção> (<nome da relação>))
Prof. Esp. Flávio Almeida Ferreira
Seleção e Projeção
Projetar o nome e o departamento dos 
empregados que ganham menos que 
2500
Prof. Esp. Flávio Almeida Ferreira
Seleção e Projeção
Prof. Esp. Flávio Almeida Ferreira
Seleção e Projeção
Prof. Esp. Flávio Almeida Ferreira
Exercício
a) Quais os nomes de todos os alunos?
b) Quais os números das matrículas dos alunos com idade maior que 30 anos?
c) Quais os alunos matriculados na turma de número 15?
d) Quais turmas funcionam no horário noturno?
e) Quais as turmas com alunos que obtiveram nota final maior que 8
1)Dada modelo relacional a seguir para uma escola, responda as perguntas abaixo:
ALUNO (matricula, nome, curso, nivel, idade)
TURMA (nr_turma, nometurma, sala, horario)
MATRÍCULA (matricula, nr_turma, nota_1, nota_2, nota_3, nota_final, nr_faltas)
Prof. Esp. Flávio Almeida Ferreira
Exercício
a) Quais os nomes de todos os alunos?
1)Dada modelo relacional a seguir para uma escola, responda as perguntas abaixo:
ALUNO (matricula, nome, curso, nivel, idade)
TURMA (nr_turma, nometurma, sala, horario)
MATRÍCULA (matricula, nr_turma, nota_1, nota_2, nota_3, nota_final, nr_faltas)
Prof. Esp. Flávio Almeida Ferreira
Exercício
a) Quais os nomes de todos os alunos?
pi nome(ALUNO)
1)Dada modelo relacional a seguir para uma escola, responda as perguntas abaixo:
ALUNO (matricula, nome, curso, nivel, idade)
TURMA (nr_turma, nometurma, sala, horario)
MATRÍCULA (matricula, nr_turma, nota_1, nota_2, nota_3, nota_final, nr_faltas)
Prof. Esp. Flávio Almeida Ferreira
Exercício
b) Quais os números das matrículas dos alunos com idade maior que 30 anos?
1)Dada modelo relacional a seguir para uma escola, responda as perguntas abaixo:
ALUNO (matricula, nome, curso, nivel, idade)
TURMA (nr_turma, nometurma, sala, horario)
MATRÍCULA (matricula, nr_turma, nota_1, nota_2, nota_3, nota_final, nr_faltas)
Prof. Esp. Flávio Almeida Ferreira
Exercício
b) Quais os números das matrículas dos alunos com idade maior que 30 anos?
pi matricula, nome, idade (σ idade > 30(ALUNO))
1)Dada modelo relacional a seguir para uma escola, responda as perguntas abaixo:
ALUNO (matricula, nome, curso, nivel, idade)
TURMA (nr_turma, nometurma, sala, horario)
MATRÍCULA (matricula,nr_turma, nota_1, nota_2, nota_3, nota_final, nr_faltas)
Prof. Esp. Flávio Almeida Ferreira
Exercício
c) Quais os alunos matriculados na turma de número 15?
pi matricula, nr_turma (σ nr_turma = 15(MATRICULA))
1)Dada modelo relacional a seguir para uma escola, responda as perguntas abaixo:
ALUNO (matricula, nome, curso, nivel, idade)
TURMA (nr_turma, nometurma, sala, horario)
MATRÍCULA (matricula, nr_turma, nota_1, nota_2, nota_3, nota_final, nr_faltas)
Prof. Esp. Flávio Almeida Ferreira
Exercício
d) Quais turmas funcionam no horário noturno?
1)Dada modelo relacional a seguir para uma escola, responda as perguntas abaixo:
ALUNO (matricula, nome, curso, nivel, idade)
TURMA (nr_turma, nometurma, sala, horario)
MATRÍCULA (matricula, nr_turma, nota_1, nota_2, nota_3, nota_final, nr_faltas)
Prof. Esp. Flávio Almeida Ferreira
Exercício
d) Quais turmas funcionam no horário noturno?
pi nr_turma, nometurma, sala, horario, (σ horario = 
“noturno”(TURMA))
1)Dada modelo relacional a seguir para uma escola, responda as perguntas abaixo:
ALUNO (matricula, nome, curso, nivel, idade)
TURMA (nr_turma, nometurma, sala, horario)
MATRÍCULA (matricula, nr_turma, nota_1, nota_2, nota_3, nota_final, nr_faltas)
Prof. Esp. Flávio Almeida Ferreira
Exercício
e) Quais as turmas com alunos que obtiveram nota final maior que 8
1)Dada modelo relacional a seguir para uma escola, responda as perguntas abaixo:
ALUNO (matricula, nome, curso, nivel, idade)
TURMA (nr_turma, nometurma, sala, horario)
MATRÍCULA (matricula, nr_turma, nota_1, nota_2, nota_3, nota_final, nr_faltas)
Prof. Esp. Flávio Almeida Ferreira
Exercício
e) Quais as turmas com alunos que obtiveram nota final maior que 8
pi nr_turma (σ nota_fianl > = 8(MATRICULA))
1)Dada modelo relacional a seguir para uma escola, responda as perguntas abaixo:
ALUNO (matricula, nome, curso, nivel, idade)
TURMA (nr_turma, nometurma, sala, horario)
MATRÍCULA (matricula, nr_turma, nota_1, nota_2, nota_3, nota_final, nr_faltas)
Prof. Esp. Flávio Almeida Ferreira
Junção Interior (Inner Join)
• A operação junção atua de forma similar á operação produto 
cartesiano, porém, a tabela resultante conterá apenas as 
combinações das tuplas que se relacionam de acordo com 
uma determinada condição de junção. A forma geral da 
operação junção entre duas tabelas R e S é a seguinte:
• R ⋈ <condição de junção> S
Junção R ⋈ S
Prof. Esp. Flávio Almeida Ferreira
Junção R ⋈ S
Prof. Esp. Flávio Almeida Ferreira
encontre todos os funcionários que desenvolvem projetos em 
Campinas;
Inicialmente faremos a junção da tabela projeto com a tabela 
empregado projeto;
Junção R ⋈ S
Prof. Esp. Flávio Almeida Ferreira
Junção R ⋈ S
Prof. Esp. Flávio Almeida Ferreira
Finalmente selecionamos os projetos de campinas;
Junção R ⋈ S
Prof. Esp. Flávio Almeida Ferreira
Exercício
3)Modelo relacional para empregados e departamentos
EMPREGADO (id, nome, aniversario, endereco, sexo, salario, nrdepto)
DEPARTAMENTO (numero, nome, gerente, horario)
LOCALIZACAO (localizacao , nrdepto)
TRABALHA_EM (idempregado, nrprojeto, horas)
PROJETO (numero, nome, nrdepto)
DEPENDENTE (id, idtempregado, nome, sexo, aniversario, parentesco)
a) Recuperar o nome e o endereço de todos os empregados que trabalham 
para o Departamento de Compras
b) Para cada projeto localizado no “Rio de Janeiro”, exibir o número do 
projeto, o número do departamento que o controla e a identidade de seu 
gerente, seu endereço e a data de seu aniversário
c) Descobrir os nomes dos projetos onde trabalham empregados com o 
nome “João”
d) Listar os nomes dos empregados que não têm dependentes
Prof. Esp. Flávio Almeida Ferreira
Exercício
3)Modelo relacional para empregados e departamentos
EMPREGADO (id, nome, aniversario, endereco, sexo, salario, nrdepto)
DEPARTAMENTO (numero, nome, gerente, horario)
LOCALIZACAO (localizacao , nrdepto)
TRABALHA_EM (idempregado, nrprojeto, horas)
PROJETO (numero, nome, nrdepto)
DEPENDENTE (id, idtempregado, nome, sexo, aniversario, parentesco)
a) Recuperar o nome e o endereço de todos os empregados que trabalham 
para o Departamento de Compras
Prof. Esp. Flávio Almeida Ferreira
Exercício
3)Modelo relacional para empregados e departamentos
EMPREGADO (id, nome, aniversario, endereco, sexo, salario, nrdepto)
DEPARTAMENTO (numero, nome, gerente, horario)
LOCALIZACAO (localizacao , nrdepto)
TRABALHA_EM (idempregado, nrprojeto, horas)
PROJETO (numero, nome, nrdepto)
DEPENDENTE (id, idtempregado, nome, sexo, aniversario, parentesco)
a) Recuperar o nome e o endereço de todos os empregados que trabalham 
para o Departamento de Compras
C1 = σ nome = “Departamento de Compras”(DEPARTAMENTO))
C2 = pi nome, endereco (EMPREGADO)⋈ nrdepto = numero (C1)
Prof. Esp. Flávio Almeida Ferreira
Exercício
3)Modelo relacional para empregados e departamentos
EMPREGADO (id, nome, aniversario, endereco, sexo, salario, nrdepto)
DEPARTAMENTO (numero, nome, gerente, horario)
LOCALIZACAO (localizacao , nrdepto)
TRABALHA_EM (idempregado, nrprojeto, horas)
PROJETO (numero, nome, nrdepto)
DEPENDENTE (id, idtempregado, nome, sexo, aniversario, parentesco)
b) Para cada projeto localizado no “Rio de Janeiro”, exibir o número do 
projeto, o número do departamento que o controla e a identidade de seu 
gerente, seu endereço e a data de seu aniversário
Prof. Esp. Flávio Almeida Ferreira
Exercício
3)Modelo relacional para empregados e departamentos
EMPREGADO (id, nome, aniversario, endereco, sexo, salario, nrdepto)
DEPARTAMENTO (numero, nome, gerente, horario)
LOCALIZACAO (localizacao , nrdepto)
TRABALHA_EM (idempregado, nrprojeto, horas)
PROJETO (numero, nome, nrdepto)
DEPENDENTE (id, idtempregado, nome, sexo, aniversario, parentesco)
b) Para cada projeto localizado no “Rio de Janeiro”, exibir o número do 
projeto, o número do departamento que o controla e a identidade de seu 
gerente, seu endereço e a data de seu aniversário
C1 = σ localizacao = “Rio de Janeiro”(LOCALIZACAO))
C2 = (PROJETO)⋈ nrdepto = nrdepto (C1)
C3 = (DEPARTAMENTO)⋈ gerente = id (EMPREGADO)
C4 = pi numero, gerente, endereco, aniversario (C3)⋈ nrdepto 
= nrdepto (C2)

Continue navegando