Prof.: Bruno Rafael de Oliveira Rodrigues

Slides:



Advertisements
Apresentações semelhantes
Capítulo 6 A Álgebra Relacional e o Cálculo Relacional
Advertisements

Álgebra Relacional Marcelo Mendes Manaus
Banco de Dados Prof. Antonio.
SQL Structured Query Language (continuação)
TECNOLOGIA EM SISTEMAS PARA INTERNET Banco de dados em aplicativos WEB Aula /08/2011 Professor Leomir J. Borba- –
Banco de Dados Prof.: Bruno Rafael de Oliveira Rodrigues.
Banco de Dados Bruno Rafael de Oliveira Rodrigues.
Prof. Bruno Rafael de Oliveira Rodrigues
Linguagens relacionais
Otimização de Consultas em SQL Parte I - Planos de Execução e Equivalências de Expressões da Álgebra Relacional AULA 19 Profa. Sandra de Amo Programa.
Gerenciamento de Banco de Dados
Algoritmos para Operações de Conjuntos AULA 19 Profa. Sandra de Amo GBC053 – BCC
Algebra relacional nomeada e não-nomeada
Algoritmos para Projeção e Operações de Conjuntos AULA 22 Profa. Sandra de Amo GBC053 – BCC
Otimização de Consultas em SQL Planos de Execução e Equivalências de Expressões da Álgebra Relacional AULA 24 Profa. Sandra de Amo GBC053 – BCC
Subconsultas ou Consultas Aninhadas
SQL – Consultas Básicas
Márcia Jacyntha Nunes Rodrigues - DIMAP/UFRN
SQL – Noções Gerais Por Márcia Jacyntha N. Rodrigues Lucena
Modelo Relacional parte 1
ÁLGEBRA RELACIONAL Cada operador da álgebra relacional toma uma ou duas relações como sua entrada e gera uma nova relação como saída. São oito os operadores.
Álgebra Relacional – Parte 2
Álgebra Relacional – Parte 3
01(c) 2007 Gustavo Motta1 Introdução ao -calculus Prof. Gustavo Motta Departamento de Informática/UFPB.
Prof. Alexander Roberto Valdameri
Colégio da Imaculada Curso Técnico em Informática Álgebra Relacional
SISTEMAS DE INFORMAÇÃO – UNIESP/2010
Otimização de Consultas em SQL Planos Alternativos AULA 24 Profa. Sandra de Amo GBC053 – BCC
Álvaro Vinícius de Souza Coêlho
AULA 26 Profa. Sandra de Amo GBC053 – BCC
Otimizador de consultas
1 Álgebra Relacional Aspectos de Manipulação (Linguagens Formais de Consulta) –Álgebra Relacional Características –Descrevem qualquer operação de consulta.
Banco de Dados Aplicado ao Desenvolvimento de Software
Otimização de Consultas em SQL Planos de Execução
Cálculo relacional Lílian Simão Oliveira.
Sistemas de Informação Prof. Carlos Alberto Seixas Banco de Dados II /01 UNIESP
Capítulo 2: Modelo relacional
Álgebra Relacional (Exemplos)
Baseado no material do Professor Raul Paradeda
©Silberschatz, Korth and Sudarshan (Modificado)3.3.1Database System Concepts Capítulo 3: Modelo Relacional Estrutura das Bases de Dados Relacionais Redução.
A abordagem de banco de dados para gerenciamento de dados
Comandos SQL.
REVISÃO Comandos SQL - DML SELECT * FROM ?.
Banco de Dados Aplicado ao Desenvolvimento de Software
©Silberschatz, Korth and Sudarshan (modificado)4.1.1Database System Concepts Capítulo 4: SQL Estrutura básica Operações com conjuntos Funções de agregação.
INE Fundamentos de Matemática Discreta para a Computação
Algoritmos para Operações Binárias entre blocos SQL AULA 19 – Parte I Profa. Sandra de Amo GBC053 – BCC.
Cálculo Relacional.
AULA DE DÚVIDAS 9 de Abril de Especialização  Simplifica-se quando:  especialização é disjunta e  especialização é total e  não há relações.
©Silberschatz, Korth and Sudarshan (Modificado)3.1.1Database System Concepts Capítulo 3: Modelo Relacional Estrutura das Bases de Dados Relacionais Redução.
Banco de Dados I Linguagem SQL e Álgebra Relacional 4P/SI – 2010/02
Banco de Dados I I Comandos SQL
Linguagem SQL Prof. Juliano.
SQL Structured Query Language Linguagem de Consulta Estruturada
©Silberschatz, Korth and Sudarshan (modificado)4.2.1Database System Concepts Capítulo 4: SQL Estrutura básica Operações com conjuntos Funções de agregação.
IEC Banco de Dados I Aula 04 – SQL (II) Turmas: Sistemas de Informação Professora: André Luiz da Costa Carvalho
Sumário 1 SQL Embutida 2 Processamento de Consultas
Object Constraint Language Philip Stephen Medcraft.
Banco de Dados I Unidade 6 Processamento de Consultas Otimização Lógica.
Uma Proposta para Bancos de Dados Categoriais Rafael C. Pinto.
Arnaldo Rocha1995 BANCO DE DADOS Modelo Relacional.
Aula 09: Comando SELECT: Ligações entre tabelas e Subconsultas
UCSal – Bacharelado em Informática
©Silberschatz, Korth and Sudarshan (Modificado)3.2.1Database System Concepts Capítulo 3: Modelo Relacional Estrutura das Bases de Dados Relacionais Redução.
Banco de Dados -Aprendendo conceitos -Usando o SQL Conf para:
Programação para Internet Aula 12 SQL (Comandos de Consulta ao BD)
Prática de Banco de Dados Créditos: Prof. Jefferson Silva Adaptações: Prof. Nécio de Lima Veras.
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Capítulo 5 Mais SQL: Consultas Complexas, Triggers e Views.
Álgebra Relacional Prof.: José Antônio da Cunha CEFET-RN
BANCO DE DADOS Araújo Lima Ago / 2017 Araújo.
Transcrição da apresentação:

Prof.: Bruno Rafael de Oliveira Rodrigues Banco de Dados Prof.: Bruno Rafael de Oliveira Rodrigues

O que vai ser estudado neste período? Em banco de dados 1 foi visto os conceitos básicos de banco de dados e como realizar a modelagem dos projetos de Banco de Dados. Em banco de dados 2 será trabalhado diretamente com o banco de dados, usando-se dos conceitos para criar um banco de dados, inserir, remover, alterar, dados. Além de usar técnicas de consultas.

Linguagens de Consulta: linguagem por meio da qual os usuários obtêm informações do banco de dados. Podem ser: - procedurais: o usuário descreve uma seqüência de operações para obter o resultado desejado; - não procedurais: o usuário descreve a informação desejada, sem instruir como esta será obtida.

A Álgebra Relacional é uma coleção de operações utilizadas para manipular relações.

As operações relacionais são divididas normalmente em dois grupos: - operações da teoria matemática dos conjuntos: união, interseção, diferença e produto cartesiano; - operações desenvolvidas especificamente para bancos de dados relacionais: seleção, projeção, junção e funções agregadas.

A operação SELEÇÃO (SELECT) A operação seleção, representada pela letra σ (sigma), seleciona um subconjunto de tuplas que satisfaça uma determinada condição de seleção. Em geral, a operação SELECT é denotada por: σ <condição de seleção> (<nome da relação>) Exemplos: a) σ SALÁRIO > 3000 (EMPREGADO) b) σ (NDEP = 4 AND SALÁRIO > 2500) OR (NDEP = 5 AND SALÁRIO > 3000) (EMPREGADO)

Operação PROJEÇÃO (PROJECT) Denotada pela letra grega pi (π), esta operação retorna a relação com somente os atributos selecionados, eliminando as linhas em duplicidade. Sintaxe: π<lista de atributos>(<nome da relação>) Exemplo: π SNOME, PNOME, SALÁRIO (EMPREGADO)

Juntando operações SELECT E PROJECT: pode-se unir operações desde que elas tratem de relações. Exemplo: Deseja-se recuperar o primeiro nome, o último nome e o salário de todos os empregados que trabalham no departamento 5. Isto pode ser feito aplicando-se os operadores SELECT e PROJECT: π PNOME, SNOME, SALÁRIO (σ NDEP=5 (EMPREGADO))

A Operação União (UNION) É denotada por R ∪ S e tem como resultado uma relação que inclui todas as tuplas que estão em R ou em S ou em ambas. As tuplas duplicadas são eliminadas.

Exemplo: Considere a seguinte consulta: selecionar todos os nomes de clientes que tenham um empréstimo, uma conta ou ambos. Deve-se utilizar as relações “depositante” e “devedor”. πnome_cliente(devedor) ∪ πnome_cliente(depositante)

A operação Interseção (INTERSECTION) É denotada por R ∩ S e tem como resultado uma relação que inclui todas as tuplas que estão em ambas R e S.

Exemplo: Selecionar os nomes de clientes que possuem uma conta e um empréstimo. πnome_cliente(devedor) ∩ πnome_cliente(depositante)

A operação Diferença (DIFFERENCE) É denotada por R – S e tem como resultado uma relação que inclui todas as tuplas que estão em R, mas não estão em S. A operação diferença não é comutativa. Observe que, em geral, R-S <> S-R. Exemplo: Selecionar todos os clientes que tem conta mas não tem empréstimo. πnome_cliente(depositante) - πnome_cliente(devedor)

A operação Produto Cartesiano Esta operação é usada para combinar tuplas de duas relações tal que tuplas relacionadas possam ser identificadas. O CARTESIAN PRODUCT cria tuplas com atributos combinados de duas relações. Pode-se então selecionar apenas as tuplas que estejam relacionadas especificando uma condição de seleção apropriada. Ou seja, permite combinar informações de duas relações quaisquer. Representado por “r x s”.

Exemplo Qual o produto cartesiano entre as relações devedor e emprestimo. (devedor)x(emprestimo) = (nome_cliente, num_emprestimo, nome_agencia, num_emprestimo, total) Obs: Para evitar o problema da duplicidade de nomes de atributos insere-se o nome da relação antes do atributo: (nome_cliente, devedor.num_emprestimo, nome_agencia, emprestimo.num_emprestimo, total)

A operação Junção (JOIN) Denotada por ⌧, é usada para combinar tuplas relacionadas de relações em uma única tupla. A junção natural forma um produto cartesiano das duas relações, e já executa uma seleção, fazendo a equivalência dos atributos que aparecem em ambos os esquemas da relação, e por último, remove os atributos em duplicidade

Exemplo: Encontrar todos os nomes de clientes que tenham um empréstimo no banco, bem como o total emprestado. Utilizando apenas as operações fundamentais, poderia ser resolvido assim: πnome_cliente, emprestimo.num_emprestimo, total(σ devedor.num_emprestimo = emprestimo.num_emprestimo(devedor x emprestimo)) Usando o Join: πnome_cliente, num_emprestimo total(devedor⌧ emprestimo)

Operações de Divisão A divisão de duas relações R ÷ S, onde os atributos de S estão contidos nos atributos de R, A(R) ⊆ A(S), resulta na relação T, onde A(T) = { A(R) – A(S) }, onde para cada tupla t que aparece no resultado, os valores de t devem aparecer em R, combinando com cada tupla de S. Esta operação é utilizada nas consultas em que se emprega a frase “para todos”. Exemplo: πnome_cliente, nome_agencia(depositante ⌧ conta) ÷ πnome_agencia(σcidade_agencia = “Pirapora”(agencia))

Operações adicionais Representada por ← - Atribui-se a relação resultante de uma operação à direita de ←, a uma variável temporária, à esquerda, a qual poderá ser utilizada em relações subsequentes. operação de divisão anterior poderia ser descrita como: temp1 ← πnome_agencia(σcidade_agencia = “São Leopoldo”(agencia)) temp2 ← πnome_cliente, nome_agencia(depositante conta) resultado ← temp2 ÷ temp1

Funções Agregadas São funções matemáticas sobre coleções de valores do banco de dados, como soma, média, máximo, mínimo e contagem (de tuplas).

Faça: 1. Compare a álgebra relacional e a teoria dos conjuntos matemática. Em que elas se assemelham? Em que diferem? 2. Discuta algumas das consultas em que seja necessário renomear atributos a fim de especificar consultas não ambíguas.