algebra relacional

58
12/10/2009 Álgebra Relacional André Luiz do Vale Soares

Upload: diego-rafael

Post on 04-Aug-2015

116 views

Category:

Documents


1 download

TRANSCRIPT

12/10/2009

Álgebra Relacional

André Luiz do Vale Soares

12/10/2009

Roteiro

● Operações Relacionais Unárias○ Seleção, Projeção e Rebatizamento

● Operações sobre Conjuntos○ União, Interseção, Diferença○ Produto Cartesiano

● Operações Relacionais Binárias○ Junções e Divisão

● Operações de Agregamento

12/10/2009

Esquema ExemploEstado do banco de dados CONCURSO

12/10/2009

Operações Relacionais Unárias● Seleção (Select)

○ Usada para selecionar um subconjunto de tuplas de uma relação que satisfaça uma condição de seleção.

○ Particionamento Horizontal da relação em dois conjuntos de tuplas: as que satisfazem a condição e as que não satisfazem a condição de seleção.

12/10/2009

Operações Relacionais Unárias● Seleção (Select)

○ Notação: (símbolo sigma)■ R � σ <condição de seleção> (S)■ onde a condição de seleção é uma expressão

booleana, especificada nos atributos da relação S.

■ S é, geralmente, uma expressão de álgebra relacional.

■ O resultado da operação de seleção é uma relação R com os mesmos atributos de S.

12/10/2009

Operações Relacionais Unárias● Seleção (Select)

○ Condição de Seleção:■ Geralmente é composta por expressões

booleanas na forma: <nome do atributo> <operador de comparação> <valor da constante>

■ Onde o operador de comparação pode ser =,≠, ≤, ≥, >, <

■ As cláusulas podem ser conectadas por operadores de disjunção (OR) ou conjunção (AND)

12/10/2009

Operações Relacionais Unárias

● Seleção (Select)○ Exemplo:

■ Listar todos os avaliadores com título de mestre:

■ R � σ <Titulação=‘Mestre’> (PROFESSOR)

12/10/2009

Operações Relacionais Unárias

● Seleção (Select)○ Exemplos:

■ Listar todos as provas escritas da área de Computação:

■ R � σ <Área=‘Computação’ AND Tipo=‘Escrita’> (PROVA)

12/10/2009

Operações Relacionais Unárias● Propriedades da Seleção (Select)

○ Comutatividade: σ <condição 1>(σ <condição 2> (R)) = σ <condição 2> (σ <condição 1> (R))

○ Propagação: σ <cond 1>(σ <cond 2> (...(σ <cond n>(R)...) = σ <cond 1> AND <cond 2> AND

... AND <cond n> (R)

12/10/2009

Operações Relacionais Unárias● Projeção (Project)

○ Usada para selecionar um subconjunto de atributos de uma relação.

○ Particionamento Vertical da relação.

12/10/2009

Operações Relacionais Unárias● Projeção (Project)

○ Notação: (símbolo pi)■ R � π <lista de atributos> (S)

■ S é, geralmente, uma expressão de álgebra relacional ou uma relação simples do banco de dados.

■ O resultado da operação de projeção é uma relação R com os atributos especificados de S, na mesma ordem em que aparecem na lista.

■ A operação de Projeção REMOVE quaisquer tuplas repetidas

12/10/2009

Operações Relacionais Unárias

● Projeção (Project)○ Exemplo:

■ Listar todos os nomes dos candidatos inscritos no concurso:

■ R � π <Nome> (CANDIDATO)

12/10/2009

Operações Relacionais Unárias

● Projeção (Project)○ Exemplo:

■ Listar os nomes de todos os avaliadores com título de mestre:

■ S � σ <Titulação=‘Mestre’> (PROFESSOR)

■ R � π nome (S)

OU■ R � π nome(σ <Titulação=‘Mestre’> (PROFESSOR))

12/10/2009

Operações Relacionais Unárias● Propriedades da Projeção (Project)

○ O número de tuplas da relação resultante R é menor ou igual ao número de tuplas de S.

○ Comutatividade: Não Aplicável π <lista 1> (π <lista 2> (R)) = π <lista 1> (R)

Desde que <lista 2> contenha os atributos de <lista 1>, caso contrário, a operação estará incorreta.

12/10/2009

Operações Relacionais Unárias● Rebatizar (Rename)

○ Usada para renomear os atributos das relações resultantes em operações da álgebra relacional.

○ Exemplo:■ Listar os nomes de todos os avaliadores com

título de mestre:■ R (Professor) � π nome (σ <Titulação=‘Mestre’> (PROFESSOR))

12/10/2009

Operações Relacionais Unárias

● Exercícios:○ Elabore consultas utilizando operadores da Álgebra Relacional

para listar:1. Os nomes dos departamentos da Empresa.2. Os nomes dos funcionários do sexo masculino da Empresa.3. Os nomes das esposas dos funcionários da empresa que estiverem

no cadastro de dependentes.4. O nome da localização do projeto de número 5.5. A matrícula do gerente do departamento ‘Contabilidade’.6. As matrículas dos empregados que trabalhem mais de 20 horas em

qualquer projeto.7. Os números de projetos em que o empregado de matrícula 10

trabalha.8. Os nomes dos empregados dos sexo feminino, supervisionadas pelo

empregado de matrícula 120.9. Os nomes dos departamentos gerenciados pelo empregado de

matrícula 534 ou gerenciados a partir de ’01-Janeiro-2004’.

12/10/2009

Operações da Álgebra Relacional a Partir da Teoria dos Conjuntos● Diferentemente das operações unárias, são

aplicadas em duas relações, a fim de obter uma terceira como resultado da operação aplicada.

● São baseadas em operações sobre conjuntos: União, Interseção e Diferença

● As relações sobre as quais é efetuada a operação devem ser união-compatíveis.

12/10/2009

Operações da Álgebra Relacional a Partir da Teoria dos Conjuntos

● Relações União-Compatíveis:○ Duas relações R (A1, A2, …, An) e S (B1,

B2, …, Bn) são ditas união-compatíveis se:

■ Tiverem o mesmo grau n; ■ dom(Ai) = dom(Bi), para 1 ≤ i ≤ n.

○ Ou seja, as duas relações têm o mesmo número de atributos e cada par correspondente de atributos tem o mesmo domínio.

12/10/2009

Operações da Álgebra Relacional a Partir da Teoria dos Conjuntos

● Operação de União (∪):

○ O resultado dessa operação, indicada por:

R � S ∪ T

○ É uma relação R que inclui todas as tuplas que estão em S, ou em T, ou em ambas, S e T.

○ As tuplas repetidas são eliminadas.

12/10/2009

Operações da Álgebra Relacional a Partir da Teoria dos Conjuntos

● Operação de Interseção (∩):○ O resultado dessa operação, indicada

por: R � S ∩ T

○ É uma relação R que inclui todas as tuplas que estão em ambas, S e T.

12/10/2009

Operações da Álgebra Relacional a Partir da Teoria dos Conjuntos

● Operação de Diferença (-):○ O resultado dessa operação, indicada

por: R � S - T

○ É uma relação R que inclui todas as tuplas que estão em S, mas não estão em T.

12/10/2009

Operações da Álgebra Relacional a Partir da Teoria dos Conjuntos

● Exemplos:○ Listar os nomes dos professores e dos

candidatos inscritos no concurso. Cand � π nome (CANDIDATO)

Prof � π nome (PROFESSOR)

R � Cand ∪ Prof

12/10/2009

Operações da Álgebra Relacional a Partir da Teoria dos Conjuntos

● Exemplos:○ Listar os nomes dos professores que

realizaram alguma avaliação: AVAL (Nome) � π Professor (AVALIAÇÃO)

PROF � π nome (PROFESSOR)

R � PROF ∩ AVAL

12/10/2009

Operações da Álgebra Relacional a Partir da Teoria dos Conjuntos

● Exemplos:○ Listar os nomes dos professores que não

realizaram nenhuma avaliação: AVAL (Nome) � π Professor (AVALIAÇÃO)

PROF � π nome (PROFESSOR)

R � PROF - AVAL

12/10/2009

Operações da Álgebra Relacional a Partir da Teoria dos Conjuntos

● Propriedades:○ Comutativivade:

■ União e Interseção são comutativas:■ R ∪ S = S ∪ R

■ R ∩ S = S ∩ R■ Diferença não é comutativa:

■ R – S ≠ S – R○ Associatividade

■ União, interseção e diferença são associativas:■ R ∪ (S ∪ T) = (R ∪ S) ∪ T

■ R ∩ (S ∩ T) = (R ∩ S) ∩ T■ R – (S – T) = (R – S) – T

12/10/2009

Operações da Álgebra Relacional a Partir da Teoria dos Conjuntos● Produto Cartesiano (X):

○ Não há necessidade das relações envolvidas serem “união-compatíveis”

○ Utilizada para gerar uma nova relação a partir de duas outras, associando suas tuplas de forma combinatória.

○ Em geral, só possui algum sentido se combinada com uma operação de seleção, “casando” atributos de relações diferentes que tenham valores iguais.

12/10/2009

Operações da Álgebra Relacional a Partir da Teoria dos Conjuntos

● Produto Cartesiano (X):○ R � S X T

■ S (A1, A2, …, An)

■ T (B1, B2, …, Bn)

■ R (A1, A2, …, An, B1, B2, …, Bn)

■ Se S possuir n tuplas e T possuir m tuplas, então R possuirá n*m tuplas.

12/10/2009

Operações da Álgebra Relacional a Partir da Teoria dos Conjuntos

● Exemplo de Produto Cartesiano (X):○ Listar, para as bancas formadas: área,

sub-área, membro, titulação e Universidade de Origem

■ Área, Sub-Área e Membro da banca estão na relação “BANCA_MEMBROS”

■ Membro da banca, titulação e universidade de origem estão na relação “PROFESSOR”

■ Temos que combinar as duas relações para obter o resultado esperado

12/10/2009

Esquema ExemploEstado do banco de dados CONCURSO

● Comb �PROFESSOR X BANCA_MEMBROS● R �σ Nome = Membro (Comb)

OU● R �σ Nome = Membro (PROFESSOR X BANCA_MEMBROS)

12/10/2009

Operações da Álgebra Relacional a Partir da Teoria dos Conjuntos

● Exemplo de Produto Cartesiano (X):○ Resultado:

12/10/2009

Operações Relacionais Binárias● Junção (Join)

○ É usada para combinar as tuplas relacionadas em duas relações dentro de uma tupla única.

○ É uma das operações mais importantes aplicadas ao modelo relacional, porque implementa a associação entre relações.

○ Grosso modo, substitui a associação entre relações através de produto cartesiano combinado à seleção.

12/10/2009

Operações Relacionais Binárias● Junção (⋈):

○ R � S ⋈<condição da junção> T■ S (A1, A2, …, An)

■ T (B1, B2, …, Bn)

■ R (A1, A2, …, An, B1, B2, …, Bn)

■ Uma tupla de R será composta por uma tupla de S e uma de T, quando a combinação satisfizer a condição de junção.

12/10/2009

Operações Relacionais Binárias● Junção (⋈):

○ R � S ⋈<condição da junção> T■ Condição de junção: mesmas regras da

condição de seleção, exceto que a expressão poderá ser do tipo:

<nome do atributo1> <operador de comparação> <nome do atributo2>

■ Onde atributo1 faz parte da relação S e atributo2 faz parte da relação T.

12/10/2009

Operações Relacionais Binárias● Junção (⋈):

○ Exemplo: Listar nome dos candidatos que realizaram provas da área de Computação.

CAND_COMP � πinscrição (σÁrea=‘Computação’PROVAS_CANDIDATO)

R � πnome (CANDIDATO ⋈ candidato.inscrição = cand_comp.inscrição CAND_COMP)

12/10/2009

Operações Relacionais Binárias● Junção (⋈):

○ Variações■ Equijunção (Equijoin)

■ Junção em que o único operador de comparação usado é o = (igual)

■ Junção Natural (Natural Join)■ Equijunção em que os dois atributos (ou cada par

de atributos) têm o mesmo nome em ambas as relações envolvidas.

■ Representada por *

12/10/2009

Operações Relacionais Binárias● Equijunção (⋈):

○ Exemplo: Listar nome dos candidatos que realizaram provas da área de Computação.

CAND_COMP � πinscrição (σÁrea=‘Computação’PROVAS_CANDIDATO)

R � πnome (CANDIDATO ⋈ candidato.inscrição = cand_comp.inscrição CAND_COMP)

12/10/2009

Operações Relacionais Binárias● Junção Natural (*):

○ Exemplo: Listar nome dos candidatos que realizaram provas da área de Computação.

CAND_COMP � πinscrição (σÁrea=‘Computação’PROVAS_CANDIDATO)

R � πnome (CANDIDATO * CAND_COMP)

12/10/2009

Operações Relacionais Binárias● Divisão (÷)

○ Operação peculiar da álgebra relacional, não possuindo comando na linguagem SQL para representá-la.

○ É aplicada em duas relações: R(A) e S(B), em que A ⊆ B. Se tivermos um conjunto de atributos

C = A – B, ou seja, C é o conjunto de atributos de R que não são atributos de S. Assim, o resultado da operação será uma relação T(C).

12/10/2009

Operações Relacionais Binárias● Divisão (÷)

○ Para uma tupla t aparecer no resultado T da divisão de R por S, os valores em t devem aparecer em R em combinação com toda tupla em S.

12/10/2009

Operações Relacionais Binárias

● Divisão (÷)○ Exemplo: C � A ÷

B

12/10/2009

Operações Relacionais Binárias

● Divisão (÷)○ Exemplo: Listar os nomes dos candidatos

que passaram pelas duas fases do concurso, ou seja, realizaram tanto prova escrita quanto didática.

12/10/2009

Operações Relacionais Binárias

● Resposta (possível): PROVAS � π Tipo (PROVA)

PROV_REALIZ � π Inscrição, Tipo

(PROVAS_CANDIDATO) CAND � PROV_REALIZ ÷ PROVAS R � π Nome CAND * CANDIDATO

12/10/2009

Operações Relacionais Binárias

● Divisão (÷)○ Pode ser expressa como uma seqüência de

operações de projeção (π), produto cartesiano (X) e diferença (-): T � R ÷ S

ǁ T1 � πγ(R)

T2 � πγ((S X T1) – R)

T � T1 – T2

12/10/2009

Operações Relacionais Binárias

● Exercícios:○ Elabore consultas utilizando operadores da

Álgebra Relacional para listar:1. Os nomes dos empregados que trabalham no

departamento ‘Administração’2. Os nomes e parentescos dos dependentes do

empregado ‘Ari França’3. O nome do gerente do departamento ‘Informática’4. As Localidades do departamento ‘Contabilidade’5. Os nomes dos projetos em que o empregado ‘José da

Silva’ trabalha6. Os nomes e parentescos dos dependentes dos

empregados do departamento ‘Financeiro’

12/10/2009

Operações Relacionais Binárias

● Exercícios:○ Elabore consultas utilizando operadores da Álgebra

Relacionais para listar:1. Os nomes dos empregados supervisionados por ‘Antenor

Filho’2. Os nomes dos projetos em que os empregados do

departamento ‘Informática’ trabalham3. Os nomes dos supervisores dos empregados que trabalham

no projeto ‘Pesquisa’4. Os nomes dos empregados que trabalham em

departamentos com localizações em ‘Manaus’5. Os nomes dos gerentes dos departamentos que controlam

projetos em que o empregado ‘Iran Neves’ trabalha6. Os nomes dos empregados que trabalham nos dois projetos

‘Pesquisa’ e ‘Desenvolvimento’, simultaneamente

12/10/2009

Operações de Agregamento

● Inclui funções ou operações aplicadas a um conjunto ou grupo de tuplas.

● Funções básicas:○ Contar○ Soma○ Média○ Mínimo○ Máximo

12/10/2009

Operações de Agregamento

● O agrupamento pode ser feito com base na aplicação da função de agregamento a todo o conjunto de tuplas da relação ou a um grupo de conjuntos de tuplas, obtido a partir de valores para uma lista de atributos.

12/10/2009

Operações de Agregamento

● Notação (“script F”):○ R � <atributos de agrupamento> ℱ <lista de funções> (S)

■ Onde:■ <atributos de agrupamento> é uma lista de

atributos da relação S■ <lista de funções> é uma lista de pares: <função>

<atributo>, onde a função é uma das permitidas pelas operações de agregação.

12/10/2009

Operações de Agregamento

● Exemplo:○ Listar o número de candidatos inscritos no

concurso: R (candidatos) � ℱ contar(*) (CANDIDATO)

12/10/2009

Operações de Agregamento

● Exemplo:○ Listar quantos professores doutores estarão

aptos para avaliar trabalhos: S � σTitulação em (‘Doutor’,’Doutora’)(PROFESSOR)

R (candidatos) � ℱ contar(*) (S)

12/10/2009

Operações de Agregamento

● Exemplo:○ Listar quantas avaliações foram realizadas

para cada professor avaliador: R (professor,total) � professor ℱ contar(*)

(AVALIACAO)

12/10/2009

Operações de Agregamento

● Exemplo:○ Listar o nome do aluno que obteve a maior

nota de todas as avaliações realizadas: S (maior_nota) � ℱ máximo(nota) (AVALIACAO)

T � S ⋈ nota=maior_nota AVALIACAO

U � CANDIDATO * T R (Candidato) � π nome (U)

12/10/2009

Operações de Agregamento● Exercícios:

○ Elabore consultas utilizando operadores da Álgebra Relacionais para listar:

1. O nome do empregado mais jovem da empresa2. O nome do departamento que controla o maior número de

projetos3. O total de horas trabalhadas nos projetos, por empregado4. O nome do empregado que possui maior número de

dependentes5. As quantidades de empregados dos sexos masculino e

feminino que trabalham na empresa6. O nome do departamento que mais gasta com pagamento

de salários da empresa

12/10/2009

Outras Operações

● Junção Externa:○ Nas junções, apenas as tuplas de ambas as

relações envolvidas que satisfazem à condição de junção são retornadas na consulta.

○ Há casos em que para uma relação seja necessário recuperar suas tuplas, mesmo que estas não satisfaçam à condição de junção.

○ Para isto, utilizamos a operação de “junção externa” (“outter join”)

12/10/2009

Outras Operações

● Junção Externa:○ Pode ser aplicada:

■ Na relação à esquerda da junção (“left outer join”)

■ Na relação à direita da junção (“right outer join”)

■ Em ambas as relações, à esquerda e à direita da junção (“full outer join”)

12/10/2009

Outras Operações

● Junção Externa:○ Notação:

■ “left outer join”: R � S T■ “right outer join”: R � S T■ “full outer join”: R � S T

12/10/2009

Outras Operações

● Junção Externa:○ Exemplo:

■ Listar as notas das provas didáticas por candidato:

S � σTipo = ‘Didática’ (AVALIACAO)

T � π Inscrição,Nota (S)

U � π Inscrição,Nome (CANDIDATO)

R � π Nome,Nota (U U.Inscrição=T.Inscrição T)

12/10/2009

Junção Externa

● Exercícios:○ Elabore consultas utilizando operadores

da Álgebra Relacionais para listar:1. O nome de cada empregado da empresa e,

se for o caso, o departamento que o mesmo gerencia

2. Os nomes dos empregados do departamento ‘Informática’ e de suas esposas, caso estas estejam cadastradas como suas dependentes