• Nenhum resultado encontrado

SQL: ÁLGEBRA RELACIONAL

N/A
N/A
Protected

Academic year: 2021

Share "SQL: ÁLGEBRA RELACIONAL"

Copied!
26
0
0

Texto

(1)

SQL:

ÁLGEBRA RELACIONAL

Prof. Msc. Pedro Henrique Neves da Silva

(2)

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

• Essas operações são usadas para:

– Selecionar tuplas de uma determinada relação;

– Combinar tuplas relacionadas a diversas relações com o propósito de especificar uma consulta.

Álgebra Relacional

Definição

(3)

• São divididas em dois grupos:

– Fundamentais: seleção, projeção, produto cartesiano, renomear, união, diferença de conjuntos;

– Adicionais: intersecção de conjuntos, junção natural, divisão, agregação;

Álgebra Relacional

Definição

(4)

• Seleciona tuplas que satisfaçam à condição de seleção

condição_seleção pode:

– Envolver operadores de comparação (=, >, ≥, <, ≤, ≠) – Combinar condições usando-se , ∧ ∨

relação_argumento é o resultado de alguma operação da álgebra relacional

Álgebra Relacional

Seleção

σ

condição_seleção

( relação_argumento )

(5)

cliente (nro_cli, nome_cli, end_cli, saldo, cod_vend)

Álgebra Relacional

Seleção

(6)

• Projeta as colunas solicitadas (i.e. produz um subconjunto vertical)

lista_atributos é a lista de atributos separados por vírgula;

relação_argumento é o resultado de alguma operação da álgebra relacional

Álgebra Relacional

Projeção

π

lista_atributos

( relação_argumento )

(7)

cliente (nro_cli, nome_cli, end_cli, saldo, cod_vend)

Álgebra Relacional

Projeção

(8)

• Combina tuplas de duas relações (relações não precisam ter atributos comum)

• Resulta em todas as combinações de tuplas possíveis entre as relações participantes

Álgebra Relacional

Produto Cartesiano

relação argumento 1 × relação argumento 2

(9)

cliente (nro_cli, nome_cli, end_cli, saldo, cod_vend)

vendedor (cod_vend, nome_vend)

Álgebra Relacional

Produto Cartesiano

(10)

Álgebra Relacional

Produto Cartesiano

(11)

• Renomeia:

– nome da relação

– nomes dos atributos da relação

– nome da relação e nomes dos atributos

• indicada para ser utilizada quando uma relação é usada mais do que uma vez para responder à consulta

Álgebra Relacional

Renomear

ρ

S(B1,B2, ..., Bn)

(relação)

(12)

cliente (nro_cli, nome_cli, end_cli, saldo, cod_vend) Exemplos:

• ρ

comprador

(cliente)

• ρ

(código, nome, rua, saldo, vendedor)

(cliente)

• ρ

comprador (código, nome, rua, saldo, vendedor)

(cliente)

Álgebra Relacional

Renomear

(13)

Álgebra Relacional

SELECT

SQL Álgebra Relacional

SELECT projeção

FROM produto cartesiano

WHERE seleção

SELECT <lista_de_atributos>

FROM <lista_de_tabelas>

[WHERE condições_seleção]

(14)

• Ordena as tuplas que aparecem no resultado de uma consulta

– asc (padrão): ordem ascendente – desc: ordem descendente

• Ordenação pode ser especificada em vários atributos

– a ordenação referente ao primeiro atributo é prioritária. Se houver valores repetidos, então é utilizada a ordenação referente ao segundo atributo, e assim por diante

Álgebra Relacional

ORDER BY

(15)

• Renomeia:

– atributos:

deve aparecer na cláusula SELECT

útil para a visualização das respostas na tela

– relações:

deve aparecer na cláusula FROM

útil quando a mesma relação é utilizada mais do que uma vez na mesma consulta

Álgebra Relacional

AS

(16)

• Concatena tuplas relacionadas de duas relações

• Passos:

– forma um produto cartesiano das relações

– faz uma seleção forçando igualdade sobre os atributos que aparecem nas relações

Álgebra Relacional

Junção

relação argumento 1

condição_junção

relação argumento 2

(17)

Álgebra Relacional

Junção

(18)

Álgebra Relacional

Junção

(19)

Álgebra Relacional

Junção

(20)

• [INNER] JOIN

– somente as tuplas de R que têm tuplas correspondentes em S – e vice-versa – aparecem no resultado

• LEFT [OUTER] JOIN

– mantém cada tupla de R na tabela de junção

– preenche com valores nulos as tuplas de S que não correspondem à coluna de junção em R

Álgebra Relacional

Junção

(21)

• RIGHT [OUTER] JOIN

– mantém cada tupla de S na tabela de junção

– preenche com valores nulos as tuplas de R que não correspondem à coluna de junção em S

• FULL [OUTER] JOIN

– mantém cada tupla de R e de S na tabela de junção

– preenche com valores nulos as tuplas que não correspondem à coluna de junção

Álgebra Relacional

Junção

(22)

Álgebra Relacional

[INNER] JOIN

(23)

Álgebra Relacional

LEFT [OUTER] JOIN

(24)

Álgebra Relacional

RIGHT [OUTER] JOIN

(25)

Álgebra Relacional

FULL [OUTER] JOIN

(26)

Referências

Documentos relacionados

Banco de dados, Álgebra Relacional, SQL, Compilador, Projeção, Seleção, Produto Cartesiano, Junção, União, Interseção, Diferença, Inclusão, Exclusão, Divisão.. 1

A ferramenta EasyRA, desenvolvida na linguagem Java, ´e composta de um m´odulo compilador, que tem como entrada as express˜oes em ´algebra relacional ou consultas SQL dependendo do

Disponibilizar um editor gráfico para construção de árvores de expressões algébricas.. Fazer a conversão das árvores de expressões algébricas em

de software, Qualidade de software; Banco de dados relacional: Modelo de dados relacional: conceitos, álgebra de relações, dependência funcional e formas normais.. Sistema

tabela.nome_colula. Optou-se então por construir um template que expressa um comando SQL, e com o auxílio de uma pilha o mesmo é preenchido durante a visitação da

2) Buscar o nome e o endereço dos pacientes que não residem na Rua I.. 3) Mostre todos os médicos que não preencheram a data

UNIP – SBD – Álgebra Relacional – Prof.Antonio A.Palladino Notamos que como nossa operação é um produto cartesiano temos como resultado o produto das linhas das duas tabelas,

Para obter os alunos que não têm inscrições basta fazer a diferença entre o conjunto completo de alunos e o conjunto de alunos que têm alguma inscrição.. Ou seja, se retirarmos do