A maior rede de estudos do Brasil

Grátis
10 pág.
Álgebra Relacional em Banco De Dados

Pré-visualização | Página 1 de 2

REVISÃO RÁPIDA DE ÁLGEBRA RELACIONAL
APLICADA A BANCO DE DADOS
Sobre o autor:
Meu nome é Neilton e sou estudante de Análise e Desenvolvilmento de Sistemas no Instituto
Federal da Bahia e Concluinte do curso de Técnico em Informática no Senai/CIMATEC (ao
contrário do que parece o curso é de desenvolvimento de software).
Até pouco fazia apostilas de cunho puramente pessoal para reforçar meus estudos e fontes
de pesquisa posteriores, mas com o incentivo da rede colaborativa ‘passeidireto’ pretendo
compartilhar com vocês o que já produzi e o que produzirei. 
obs: Peço desculpas pelos erros pontuais peço que sejam sinalizados e buscarei solucioná-los da
melhor forma possível
Olá pessoal,
Trago hoje esta pequena revisão de álgebra relacional aplicada na disciplina de BANCO DE 
DADOS.
Existem 9 relações aplicadas ao banco de dados sendo 4 delas diretamente relacionadas a teoria de 
conjuntos da matemática e outras 4 relacionadas a modelos computacionais, vejamos abaixo:
CONJUNTOS COMPUTACIONAIS
UNIÃO SELEÇÃO
INTERSEÇÃO PROJEÇÃO
DIFERENÇA JUNÇÃO
PRODUTO DIVISÃO
A nona relação é aplicado apenas aos modelos relacionais e é o Assignment que não está descrito 
nessa rápida revisão
Como sabem ou imaginam cada uma dessas relações tem uma simbologia para “simplificar” a 
leitura do que deve ser feito
CONJUNTOS COMPUTACIONAIS
UNIÃO = ‘ ’∪ SELEÇÃO = ‘σ’
INTERSEÇÃO = ‘∩’ PROJEÇÃO = ‘ ’
DIFERENÇA = ‘-’ JUNÇÃO = ‘ ’
PRODUTO = ‘×’ DIVISÃO = ‘÷’
Operação Seleção
Seleciona um subconjunto de tuplas a fim de satisfazer a condição determinada
σgols >= 10 (GOLS_MARCADOS)
Isso pode ser lido da seguinte forma:
Selecione o conteúdo do resultado em uma relação de gols maior ou igual a 10 que estão na tabela 
GOLS_MARCADOS
Em leitura geral seria mais ou menos assim:
Selecione o conteúdo do resultado em uma relação de sua relação que estão na tabela 
SUA_TABELA
Operação Projeção
Eu gosto de dizer, a grosso modo, que projeção é uma seleção elaborada, no entanto seu 
comportamento é um pouco diferente, então vejamos abaixo:
 Este símbolo deve ser lido como relação!!
 NOME, GOLS (TIME)
Temos a sua leitura como:
Ao resultado atribua o(s) valor(es) uma relação de NOME, GOLS que estão na tabela TIME
Em uma leitura geral seria:
Ao resultado atribua o(s) valor(es) uma relação de SEU_CAMPO, OUTRO_CAMPO que estão em 
uma tabela SUA_TABELA
 
Operação União
Assim como nos conjuntos a união junta tudo, contudo as duplicatas serão ignoradas.
ELENCO <- ATORES ATRIZES∪
Isso pode ser lido como:
Ao elenco atribua a UNIÃO entre a ATORES e ATRIZES
ATORES ATRIZES
JOÃO MARIA
PAULO PAULA
CARLOS SILVIA
TIAGO ROSA
ELENCO
ELENCO
JOÃO
PAULO
CARLOS
TIAGO
MARIA
PAULA
SILVIA
ROSA
Operação Interseção
Semelhante a união a interseção se comportará da mesma forma que na teoria de conjuntos vejamos
abaixo.
 RESULTADO<- LISTA_ANTIGA ∩ LISTA_NOVA
Ao resultado atribua o que tem na tabela LISTA_ANTIGA com o que tem na tabela LISTA_NOVA
De forma mais geral pode ser lida como
Ao NOME_DA_SUA_TABELA_RESULTADO atribua os campos que estão interseccionados na 
SUA_LISTA_1 e SUA_LISTA_2
LISTA_ANTIGA LISTA_NOVA
JOÃO JOÃO
PAULO CARLA
CARLOS MARIA
MARIA ROSA
RESULTADO
RESULTADO
JOÃO
MARIA
Operação de Subtração:
Assim como as duas anteriores funcionará da mesma forma que nas relações de conjunto
De forma geral será lido como SUA_TABELA1 menos SUA_TABELA2
T1 T2
A B
B C
E D
Ou seja buscamos saber o que T1 tem que T2 não tem então obteremos
T1 - T2
A
E
Operação de Produto Cartesiano:
O produto cartesiano equivale a multiplicação das tabelas onde:
TOTAL_LINHAS = LINHAS DA TABELA1 + LINHAS DA TABELA2
TOTAL_COLUNAS = COLUNAS DA TABELA1 × COLUNAS DA TABELA2
Os campos serão preenchidos relacionando seus conteudos de forma distributiva conforme o 
exemplo:
T1 T2
A C
B D
E
Caso não se recorde de como funciona o uso de distributiva leia:
http://mundoeducacao.bol.uol.com.br/matematica/utilizando-propriedade-distributiva-na-resolucao-equacoes.htm 
T1 × T2
AC
AD
AE
BC
BD
BE
Operação de Junção:
Nesta operação temos 6 subgrupos de junção:
Junção Theta, Equijunção, Junção Natural, Anti-junção* e Semi-junção* e Junções externas que por
sua vez possuem 3 tipos distintos
Junção Theta
É a forma mais genérica da junção que aceita qualquer expressão lógica
Carro Barco
CarroModelo PreçoCarro BarcoModelo PreçoBarco
CarroA 20,000 Barco1 10,000
CarroB 30,000 Barco2 40,000
CarroC 50,000 Barco3 60,000
*Não serão aqui abordados
Carro Barco PreçoCarro >= PreçoBarco
Pode ser lido:
Faça uma Junção de e Barco onde PreçoCarro for maior ou igual ao PreçoBarco
CarroModelo PreçoCarro BarcoModelo PreçoBarco
CarroA 20,000 Barco1 10,000
CarroB 30,000 Barco1 10,000
CarroC 50,000 Barco1 10,000
CarroC 50,000 Barco2 40,000
Equijunção
Embarque (codFornec),(codFornec) Fornecedor
Representa em uma tabela embarque faça a junção (que vai funcionar como associação) do codF 
(de embarque), codF que está em Fornecedor 
Imagem 1: No acima exemplo foi feito Junção theta
Imagem 2: Enquanto neste utilizou-se Equijunção
Junção Natural
Nos casos onde os campos possuam o mesmo nome podemos simplificar seu uso a partir da junção 
natural expresso da seguinte maneira
Embarque Fornecedor
Que pode ser lido como junção da tabela Embarque com a tabela Fornecedor 
O resultado é idêntico a imagem 2 em Equijunção.
Junção Externa (Outer Join)
Os 3 casos de Junção externa são o ‘left outer join( ⟕ )’, ‘right outer join( )’ e ‘full outer join (⟖ )’
que fazem a junção, respectivamente, dos campos à esquerda do indicado, à direita e de ambos 
lados. O seu comportamento será similar as junções já exemplificadas.
Empregado
Nome IdEmp DeptNome
Harry 3415 Finanças
Sally 2241 Vendas
George 3401 Finanças
Harriet 2202 Vendas
Tim 1123 Executivo
Departamento
DeptNome Gerente
Vendas Harriet
Produção Charles
Empregado ⟕ Departamento
Nome IdEmp DeptNome Gerente
Harry 3415 Finanças NULL
Sally 2241 Vendas Harriet
George 3401 Finanças NULL
Harriet 2202 Vendas Harriet
Tim 1123 Executivo NULL
A tabela Empregado é retornada com os registros coincidentes em departamento caso não haja 
correspondencia seram retornados campos NULL
‘right outer join( )’ ⟖ irá funcionar da mesma forma, mudando apenas o lado de execução enquanto 
o ‘full outer join ( )’ retornará todos os registros de ambas tabelas
Junção Interna (Inner Join):
Esse é um formato comum de join, que retorna dados apenas quando as duas tabelas tem chaves 
correspondentes
TabelaA.Chave = TabelaB.Chave
Operação de Divisão:
A divisão em álgebra relacional pode parecer confusa a primeira vista, no entanto, com um pouco 
de atenção é possível compreendê-la rapidamente. 
A tabela resultante é obtida verificando o que há na primeira e não há na segunda (a subtração entre 
as tabelas) além de sua concatenação com cada linha apareça na segunda tabela. Vejamos o exemplo
a seguir para entender como isso funciona:
T1 T2
ax x
ay y
bx
Campo1 de T1 ÷ Campo1 de T2, ou seja, ax ÷ x = a
Campo1 de T1 ÷ Campo2 de T2, ou seja, ax ÷ y = NÃO É POSSÍVEL CALCULAR
Campo2 de T1 ÷ Campo2 de T2, ou seja, ay ÷ y = a
Campo2 de T1 ÷ Campo1 de T2, ou seja, ay ÷ x = NÃO É POSSÍVEL CALCULAR
Campo3 de T1 ÷ Campo1 de T2, ou seja, bx ÷ x = b
Campo3 de T1 ÷ Campo2 de T2 ou seja, bx ÷ y = NÃO É POSSÍVEL CALCULAR
Neste caso o único valor que possui os valores de T2 é o ‘a’ que será o único campo de T1÷T2
T1 ÷ T2
a
Referências:
http://www.devmedia.com.br/algebra-relacional-parte-i/2663
Apostila: Álgebra Relacional. Zaupa, Aglaê Pereira. Disponível em 
<https://www.passeidireto.com/arquivo/3015040/algebra-relacional>
https://pt.wikipedia.org/wiki/%C3%81lgebra_relacional