Álgebra Relacional
43 pág.

Álgebra Relacional


DisciplinaModelagem de Dados3.108 materiais39.472 seguidores
Pré-visualização2 páginas
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
\u2022 Aprender sobre as linguagens de 
manipulação de um Banco de Dados 
Relacional.
\u2022 Conhecer conceitos básicos de Álgebra 
Relacional 
Prof. Esp. Flávio Almeida Ferreira
Processamento de Consultas
Etapas Básicas:
1 \u2013 Análise e Tradução
2 \u2013 Otimização
3 \u2013 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
\u2013 Traduz a consulta para o seu formato interno. Este é então traduzido 
para a álgebra relacional. 
\u2013 O analisador verifica a sintaxe e as relações
Avaliação
\u2013 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
\u2013 Uma expressão da álgebra relacional pode ter muitas expressões 
equivalentes
\u3c3 saldo < 2500(pi saldo(conta))
é equivalente a 
pi saldo(\u3c3 saldo2500(conta))
\u2013 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.
\u2013 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
\u2013 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 
\u2013 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 \u2013 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
\u2013 formais
\u2022 álgebra relacional e cálculo relacional
\u2013 comerciais (baseadas nas linguagens formais)
\u2022 SQL
Linguagens formais - Características
\u2013 orientadas a conjuntos
\u2013 fechamento (query language)
\u2022 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 \u3c3F (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
é:
\u3c3 <condição de seleção>
( <nome da relação> )
A letra grega \u3c3 é 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 \u3c3F (R)
\u2022 As operações relacionais que podem ser aplicadas na 
operação Seleção são:
\u2013 <, >, \u2264, \u2265, =, \u2260
\u2022 além dos operadores booleanos:
\u2013 and, or, not.
\u2022 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 \u3c3F (R)
Selecionar os empregados com salario 
menor que 2500.
Prof. Esp. Flávio Almeida Ferreira
Seleção \u3c3F (R)
Prof. Esp. Flávio Almeida Ferreira
Seleção \u3c3F (R)
Selecionar os dependentes que são filhas 
de algum empregado.
Prof. Esp. Flávio Almeida Ferreira
Seleção \u3c3F (R)
Prof. Esp. Flávio Almeida Ferreira
Projeção \u3a0i1, 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 \u3a0i1, i2, ..., im(R)
Projetar o nome e a data de nascimento 
de todos os dependentes.
Prof. Esp. Flávio Almeida Ferreira
Projeção \u3a0i1, 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> (\u3c3<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 (\u3c3 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,