Baixe o app para aproveitar ainda mais
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)
Compartilhar