Álgebra Relacional
Após passar pelo modelo conceitual e montar o de entidade e relacionamento, chegou
o momento de compreender o processo de implementação em banco de dados por
meio do modelo físico.
Aqui serão apresentados os conceitos iniciais de uma linguagem de script para
desenvolvimento de bancos de dados, baseados no modelo lógico. Esse é um
importante momento, em que serão necessários conhecimentos não só de
implementação, mas também da área de Matemática, principalmente, de domínio e
conjuntos.
Também serão apresentados os primeiros conceitos de implementação, com a
demonstração da criação de bancos de dados simples. O objetivo é apresentar a
importância que a modelagem possui para o desenvolvimento de um banco de dados
mais organizado, rápido e eficiente. Vamos lá?
Objetivo
Ao final desta unidade, você deverá ser capaz de:
• Aprofundar os conhecimentos em operações de seleção e projeção para
desenvolvimento de bancos de dados mais complexos.
• Executar as operações básicas de álgebra relacional para manipulação de
dados.
• Compreender as operações de junção e agrupamento nos sistemas de bancos
de dados.
Conteúdo Programático
Esta unidade está organizada de acordo com os seguintes temas:
• Tema 1 - Operações fundamentais: seleção e projeção
• Tema 2 - Operações oriundas da teoria dos conjuntos
• Tema 3 - Operação de junção; funções de agrupamento
Para implantação de um banco de dados e efetivação de seu modelo físico, é
necessário um intermediário, e esse é o caso do modelo relacional. Ele serve como
uma ponte entre o lógico e o físico em um banco de dados. Para isso, é necessário
compreender os conceitos de álgebra relacional que avaliaremos aqui. Ela é definida
por meio de diversos operadores, que vamos destrinchar, bem como apresentar, seu
funcionamento, a fim de que seja possível a construção de um banco de dados com
qualidade. O vídeo Transformando o modelo entidade relacionamento para o modelo
relacional traz informações sobre álgebra relacional.
Todos os materiais didáticos apresentados nesta plataforma são protegidos por direitos autorais de propriedade da Universidade Veiga
de Almeida e do Centro Universitário Jorge Amado. Qualquer uso não autorizado, reprodução ou distribuição (incluindo o upload para
sites) são estritamente proibidos e sujeitos às penalidades legais aplicáveis. Todos os direitos são reservados à UVA & Unijorge.
Tema 1
Operações fundamentais: seleção e projeção
Como funcionam as operações matemáticas de seleção
e projeção?
A álgebra relacional é um tipo de linguagem de consulta formal e procedimental. Nela
o usuário alimentará o sistema com instruções, a fim de que ele realize uma sequência
de operações na base de dados. O objetivo é calcular o resultado desejado. Para que
isso aconteça, operadores devem ser definidos para funcionar nas entidades (tabelas).
Com isso, o resultado será alcançado.
A álgebra relacional é subdividida em funções definidas por nove operações, sendo
que cinco são focadas apenas naquela (a saber: união, intersecção, diferença e
produto), quatro na teoria dos conjuntos (seleção, projeção, junção e divisão) e a
última é para ser utilizada nos modelos de dados relacionais (atribuição).
Aqui, vamos enfocar no entendimento acerca da seleção e da projeção. Os outros
operadores serão explicados em um momento posterior.
Seleção
Essa operação tem como objetivo selecionar um subconjunto de registros (conhecidos
como tuplas) que satisfaça uma condição de seleção já determinada anteriormente.
Ela pode ser representada pelo símbolo σ, que significa “relação entre os atributos de
uma determinada entidade”.
Exemplo
Para compreendermos esse operador na prática, vamos ver um exemplo, a partir de
uma entidade fictícia de funcionário, definida da seguinte maneira:
Todos os materiais didáticos apresentados nesta plataforma são protegidos por direitos autorais de propriedade da Universidade Veiga
de Almeida e do Centro Universitário Jorge Amado. Qualquer uso não autorizado, reprodução ou distribuição (incluindo o upload para
sites) são estritamente proibidos e sujeitos às penalidades legais aplicáveis. Todos os direitos são reservados à UVA & Unijorge.
Idade_fun
Sobrenom cGênero_f
Cpf_func Nome_func e_func unc Gênero_func Salário_func
121111111-11 João Resende 25 M 5.000
991111111-12 Pedro Smith 22 M 4.000
471111131-11 Maria Nzagui 54 F 9.000
251111111-11 Cleide Santos 29 F 8.200
431111444-11 Guilherme Gomes 33 M 8.000
232211111-11 Joana Fonseca 47 F 7.852
Quando utilizamos uma seleção para apresentar as pessoas com salário maior ou
igual a R$ 8.000, será aplicada a seguinte sintaxe:
σ Salário_func>=8000
Como resultado, teremos:
Sobrenome Idade_funcG
Cpf_func Nome_func _func ênero_func Gênero_func Salário_func
471111131-
11 Maria Nzagui 54 F 9.000
251111111-
11 Cleide Santos 29 F 8.200
431111444-
11 Guilherme Gomes 33 M 8.000
Perceba que, nesse exemplo, apenas os funcionários que recebem mais de R$ 8.000
reais são exibidos na tela. Portanto, é isso o que o operador de seleção faz: permitir
que consigamos filtrar do banco de dados a informação que desejarmos.
Exemplo
Outra situação: digamos que seja solicitado apresentar apenas as pessoas com a
idade menor que 40 anos. Nesse caso, a sintaxe ficaria desta forma:
σ Idade_func<40
Como resultado, a tabela ficará da seguinte maneira:
Todos os materiais didáticos apresentados nesta plataforma são protegidos por direitos autorais de propriedade da Universidade Veiga
de Almeida e do Centro Universitário Jorge Amado. Qualquer uso não autorizado, reprodução ou distribuição (incluindo o upload para
sites) são estritamente proibidos e sujeitos às penalidades legais aplicáveis. Todos os direitos são reservados à UVA & Unijorge.
Sobreno Idade_funcG
Cpf_func Nome_func me_func ênero_func Gênero_func Salário_func
121111111-
11 João Resende 25 M 5.000
991111111-
12 Pedro Smith 22 M 4.000
251111111-
11 Cleide Santos 29 F 8.200
431111444-
11 Guilherme Gomes 33 M 8.000
Portanto, apenas os funcionários com menos de 40 anos serão exibidos.
Agora que compreendemos o operador de seleção, vamos aprender mais sobre a
projeção.
Projeção
Esse operador é usado para selecionar alguns atributos de uma determinada relação,
que é executada em outra, e seu resultado é uma nova com atributos definidos pelo
usuário. A simbologia desse operador é o pi (π), que significa “relação”.
Para compreendermos melhor, vamos utilizar a tabela Funcionário, usada no exemplo
de seleção. Digamos que um usuário queira ver apenas as informações do nome, da
idade e do salário de um funcionário. Para isso, ele aplicará a seguinte sintaxe:
π Nome_func, Idade_func, Salário_func (Funcionário)
Como resultado, a tabela ficará da seguinte maneira:
Nome_func Idade_func Salário_func
João 25 5.000
Pedro 22 4.000
Maria 54 9.000
Cleide 29 8.200
Guilherme 33 8.000
Joana 47 7.852
Todos os materiais didáticos apresentados nesta plataforma são protegidos por direitos autorais de propriedade da Universidade Veiga
de Almeida e do Centro Universitário Jorge Amado. Qualquer uso não autorizado, reprodução ou distribuição (incluindo o upload para
sites) são estritamente proibidos e sujeitos às penalidades legais aplicáveis. Todos os direitos são reservados à UVA & Unijorge.
Perceba que, nesse exemplo, apenas os atributos nome do funcionário, idade e salário
estão disponibilizados para visualização. Em outra situação, o cliente deseja ver
apenas o CPF do funcionário e seu nome. Assim, ele utilizará a seguinte sintaxe:
π CPF_func, Nome_func (Funcionário)
Como resultado, a tabela ficará da seguinte maneira:
Cpf_func Nome_func
121111111-11 João
991111111-12 Pedro
471111131-11 Maria
251111111-11 Cleide
251111111-11 Cleide
431111444-11 Guilherme
232211111-11 Joana
Nota
Assim, percebe-se que é possível selecionar o atributo desejado, que será filtrado da
forma como o usuário solicitou.
Vimos a importância da Álgebra Relacional e seus operadores, bem como o
funcionamento e exemplos de dois importantes operadores, seleção e projeção. Com
a utilização deles, compreende-se que é possível filtrar dados requeridos pelo usuário
de forma eficiente.
Todos os materiais didáticos apresentados nesta plataforma são protegidos por direitos autorais de propriedade da Universidade Veiga
de Almeida e do Centro Universitário Jorge Amado. Qualquer uso não autorizado, reprodução ou distribuição (incluindo o upload para
sites) são estritamente proibidos e sujeitos às penalidades legais aplicáveis. Todos os direitos são reservados à UVA & Unijorge.
Tema 2
Operações oriundas da teoria dos conjuntos
Como funcionam as operações baseadas na teoria dos
conjuntos?
Para entender o funcionamento de um banco de dados e as relações entre as
entidades, é necessário adicionar uma pitada de Álgebra Relacional, principalmente no
que diz respeito às operações oriundas da teoria dos conjuntos, que podem ser: união
(que será vista em detalhes no próximo tema), diferença, intersecção e produto.
Intersecção
A intersecção, em uma relação entre entidades em um banco de dados, representará
todos os registros semelhantes em ambas as relações presentes na operação. Ela é
representada graficamente pelo símbolo ∩, e sua sintaxe é:
(Relação 1) ∩ (Relação 2)
Exemplo
Como exemplo, vamos identificar a relação entre gerentes e funcionários de uma loja:
Funcionários
Nome_func Sobrenome_func
Maria Nzagui
Cleide Santos
Guilherme Gomes
João Resende
Pedro Smith
Pedro Miguel
Gerentes
Nome_func Sobrenome_func
Maria Nzagui
Cleide Santos
Janaína José
Todos os materiais didáticos apresentados nesta plataforma são protegidos por direitos autorais de propriedade da Universidade Veiga
de Almeida e do Centro Universitário Jorge Amado. Qualquer uso não autorizado, reprodução ou distribuição (incluindo o upload para
sites) são estritamente proibidos e sujeitos às penalidades legais aplicáveis. Todos os direitos são reservados à UVA & Unijorge.
Nome_func Sobrenome_func
João Maria
Pedro Sento Sé
Maurício Miquéias
Dessa maneira, a intersecção entre as entidades deve ser feita da seguinte maneira:
RESULTADO ←-- (FUNCIONÁRIOS) ∩ (GERENTES),
resultando em:
Nome_func Sobrenome_func
Maria Nzagui
Cleide Santos
Assim, compreende-se que a operação de intersecção coletará os atributos que são
semelhantes entre as diferentes entidades.
Diferença
Para um bom funcionamento do banco de dados, a diferença é uma operação que
resulta em obter uma relação a partir dos atributos que não estão na outra entidade.
Ela é representada pelo sinal de –, e sua sintaxe é:
(Relação 1) – (Relação 2)
Portanto, utilizando as tabelas de Funcionários e Gerentes, que vimos anteriormente;
porém, aplicando a sintaxe:
(Funcionários) – (Gerentes)
O resultado será:
Nome_func Sobrenome_func
Janaína José
João Maria
Pedro Sento Sé
Maurício Miquéias
Todos os materiais didáticos apresentados nesta plataforma são protegidos por direitos autorais de propriedade da Universidade Veiga
de Almeida e do Centro Universitário Jorge Amado. Qualquer uso não autorizado, reprodução ou distribuição (incluindo o upload para
sites) são estritamente proibidos e sujeitos às penalidades legais aplicáveis. Todos os direitos são reservados à UVA & Unijorge.
Nome_func Sobrenome_func
Guilherme Gomes
João Resende
Pedro Smith
Pedro Miguel
Assim, percebe-se que os valores exibidos no resultado são diferentes entre as
tabelas Funcionários e Gerentes.
Produto
Essa operação também é conhecida como plano cartesiano e é definida pela
combinação de registros de duas relações em uma questão. A diferença é que existirá
um arranjo entre todos os registros das duas relações. Sua representação é com a
letra x, e sua sintaxe é:
(Relação 1) X (Relação 2)
Desta maneira, utilizando as tabelas de Gerentes, que vimos anteriormente, e projeto:
Gerentes
Nome_func Sobrenome_func
Maria Maria
Cleide Santos
Janaína José
João Maria
Pedro Sento Sé
Maurício Miquéias
Projetos
Cod_proj Obs
1 Construção de estádio.
2 Serviço de TI.
Todos os materiais didáticos apresentados nesta plataforma são protegidos por direitos autorais de propriedade da Universidade Veiga
de Almeida e do Centro Universitário Jorge Amado. Qualquer uso não autorizado, reprodução ou distribuição (incluindo o upload para
sites) são estritamente proibidos e sujeitos às penalidades legais aplicáveis. Todos os direitos são reservados à UVA & Unijorge.
Cod_proj Obs
3 Projeto de desenvolvimento de foguete.
4 Realocação de recursos.
Aplicando a sintaxe:
(Gerentes) x (Projetos)
Teremos:
Nome_func Sobrenome_func Cod_proj Obs
Construção de
Maria Nzagui 1 estádio.
Realocação de
Maria Nzagui 4 recursos.
Cleide Santos 2 Serviço de TI.
Janaína José 2 Serviço de TI.
Projeto de
desenvolvimento
Janaína José 3 de foguete.
Realocação de
João Maria 4 recursos.
Pedro Sento Sé 2 Serviço de TI.
Realocação de
Maurício Miquéias 4 recursos.
Desse modo, pode-se ver que as informações são unificadas em uma única entidade,
por meio do operador de produto.
Vimos que a Álgebra Relacional é um elemento importante para o entendimento sobre
os bancos de dados, e para a criação deles, esses conceitos serão utilizados em sua
implementação. Isso é de suma importância para entender o funcionamento da
relação entre as entidades e seus atributos em um banco de dados.
Todos os materiais didáticos apresentados nesta plataforma são protegidos por direitos autorais de propriedade da Universidade Veiga
de Almeida e do Centro Universitário Jorge Amado. Qualquer uso não autorizado, reprodução ou distribuição (incluindo o upload para
sites) são estritamente proibidos e sujeitos às penalidades legais aplicáveis. Todos os direitos são reservados à UVA & Unijorge.
Tema 3
Operação de junção; funções de agrupamento
Como funcionam as funções de agrupamento e
junção?
Até agora vimos diversos operadores de Álgebra Relacional e suas especificações.
Dessa vez, vamos conhecer um que tem a capacidade de combinar os registros de
diferentes entidades, partindo dos atributos que são comuns entre elas. O resultado
conterá os atributos de duas relações que participarão de uma junção.
A operação de junção é representada pelo símbolo |x|, e sua sintaxe é definida da
seguinte maneira:
(Relação 1) |x| (Relação 2)
As operações de junção funcionam com mais de uma condição. Para isso, é
necessário a utilização de operadores lógicos: and oi or. Veremos um exemplo de um
cinema que possui duas entidades: filmes e salas.
Filmes
Filme Tempo_filme Gênero_Filme Sala
E o vento levou 2 horas e 30 minutos. Ação 1
O senhor dos anéis 3 horas e 30 minutos. Fantasia 2
Avatar 03 horas e 45 minutos. Fantasia 3
SALAS
Cod_sala Tipo_sala
1 3D
2 Normal
3 Imax
Agora vamos utilizar o atributo de junção, que será:
FIL_SAL ←---- FILMES |x| SALA=COD_SALA SALAS
Como resultado, a tabela será a seguinte:
Todos os materiais didáticos apresentados nesta plataforma são protegidos por direitos autorais de propriedade da Universidade Veiga
de Almeida e do Centro Universitário Jorge Amado. Qualquer uso não autorizado, reprodução ou distribuição (incluindo o upload para
sites) são estritamente proibidos e sujeitos às penalidades legais aplicáveis. Todos os direitos são reservados à UVA & Unijorge.
FIL_SAL
Filme Tempo_filme Gênero_Filme Sala Cod_sala Tipo_sala
2 horas e 30
E o vento levou minutos. Ação 1 1 3D
3 horas e 30
O senhor dos anéis> minutos. Fantasia 2 2 Normal
3 horas e 45
Avatar minutos. Fantasia 3 3 Imax
Agora vamos utilizar o atributo de junção, que será:
FIL_SAL ←---- FILMES |x| SALA=COD_SALA SALAS
Como resultado, a tabela será a seguinte:
FIL_SAL
Filme Tempo_filme Gênero_Filme Sala Cod_sala Tipo_sala
2 horas e 30
E o vento levou minutos. Ação 1 1 3D
3 horas e 30
O senhor dos anéis minutos. Fantasia 2 2 Normal
3 horas e 45
Avatar minutos. Fantasia 3 3 Imax
Além disso, é possível usar o conjunto das operações para trazer apenas os filmes de
Fantasia, por exemplo:
RESULTADO-FINAL ←---- GENERO_FILME>= FANTASIA (FILME, TEMPO_FILME
(FILMES |x| SALA=COD_SALA SALAS))
Resultado:
Filme Tempo_filme Sala
E o vento levou 2 horas e 30 minutos. 1
O senhor dos anéis 3 horas e 30 minutos. 2
Avatar 3 horas e 45 minutos. 3
Todos os materiais didáticos apresentados nesta plataforma são protegidos por direitos autorais de propriedade da Universidade Veiga
de Almeida e do Centro Universitário Jorge Amado. Qualquer uso não autorizado, reprodução ou distribuição (incluindo o upload para
sites) são estritamente proibidos e sujeitos às penalidades legais aplicáveis. Todos os direitos são reservados à UVA & Unijorge.
Como resultado, a tabela final apresenta o nome do filme, o tempo e a sala em que
será exibido. A operação de junção mostra-se poderosa e abre muitas possibilidades,
pois permite ao operador do banco de dados utilizar atributos de entidades diferentes
em uma mesma e novo grupo.
Outro importante operador que verificaremos agora é o de união (função de
agrupamento), que tem a capacidade de unificar os atributos de entidades diversas.
União (função de agrupamento)
Esse operador tem como objetivo criar uma relação por meio de outras duas , unindo
os atributos de ambas. Dessa maneira, aparecerão o resultado de registros únicos de
uma relação ou de outra. Além disso, as informações duplicadas aparecerão apenas
uma única vez.
Para utilizar esse recurso, é necessário que as entidades de origem tenham a mesma
compatibilidade para a realização da união. Portanto, elas devem ser semelhantes e
gerar o mesmo tipo de resultado. O operador de união é representado pela letra U, e
sua sintaxe é:
(Relação 1) U (Relação 2)
Utilizando as tabelas a seguir:
FUNCIONÁRIOS_SP
Cpf_func Nome_func Sobrenome_func Idade_func Gênero_func Sálario_func
471111131-11 Maria Nzagui 54 F 9.000
251111111-11 Cleide Santos 29 F 8.200
431111444-11 Guilherme Gomes 33 M 8.000
FUNCIONÁRIOS_RJ
Cpf_func Nome_func Sobrenome_func Idade_func Gênero_func Sálario_func
121111111-11 João Resende 25 M 5.000
991111111-12 Pedro Smith 22 M 4.000
Utilizando o comando:
Temos:
Cpf_func Nome_func Sobrenome_func Idade_func Gênero_func Sálario_func
471111131-11 Maria Nzagui 54 F 9.000
Todos os materiais didáticos apresentados nesta plataforma são protegidos por direitos autorais de propriedade da Universidade Veiga
de Almeida e do Centro Universitário Jorge Amado. Qualquer uso não autorizado, reprodução ou distribuição (incluindo o upload para
sites) são estritamente proibidos e sujeitos às penalidades legais aplicáveis. Todos os direitos são reservados à UVA & Unijorge.
Cpf_func Nome_func Sobrenome_func Idade_func Gênero_func Sálario_func
251111111-11 Cleide Santos 29 F 8.200
431111444-11 Guilherme Gomes 33 M 8.000
121111111-11 João Resende 25 M 5.000
991111111-12 Pedro Smith 22 M 4.000
Hoje conhecemos o funcionamento de dois importantes operadores de Álgebra
Relacional: os operadores de junção e de união. Eles são de extrema importância para
a consulta e organização de informações em um banco de dados. Além disso, vimos
como funciona a Álgebra Relacional e sua importância para os bancos de dados.
Vídeo
Para saber mais, assista ao vídeo publicado na unidade da disciplina no
Ambiente Virtual de Aprendizagem.
Todos os materiais didáticos apresentados nesta plataforma são protegidos por direitos autorais de propriedade da Universidade Veiga
de Almeida e do Centro Universitário Jorge Amado. Qualquer uso não autorizado, reprodução ou distribuição (incluindo o upload para
sites) são estritamente proibidos e sujeitos às penalidades legais aplicáveis. Todos os direitos são reservados à UVA & Unijorge.
Encerramento
Como funcionam as operações matemáticas de seleção
e projeção?
Elas são fundamentais para a filtragem de dados configurada, de forma que o usuário
consiga consultar as informações desejadas.
Como funcionam as operações baseadas na teoria dos
conjuntos?
São quatro importantes operações que permitem a coleta de dados mediante várias
formas diferentes.
Como funcionam as funções de agrupamento e
junção?
O operador de junção tem a capacidade de agregar um atributo em uma entidade
diferente, enquanto a função de agrupamento tem a habilidade de unificar todas as
informações de todos os atributos entre dois grupos.
Resumo da Unidade
Hoje conhecimentos a Álgebra Relacional e sua importância para o funcionamento
dos bancos de dados, por meio de suas relações, atributos e entidades. Além
disso, conhecemos também os operadores utilizados por ela, pontuando os mais
utilizados. Isso servirá como base para o entendimento da implementação dos
bancos de dados, por meio de linguagem de script.
Referências da Unidade
• ALVES, W. P. Banco de dados. São Paulo: Érica, 2014.E-book. ISBN:
9788536518961.
• HEUSER, C. A. Projeto de banco de dados . 6. ed. Porto Alegre: Bookman,
2011. E-book. ISBN: 9788577804528.
• MACHADO, F. N. R. Projeto e implementação de banco de dados . 3. ed. São
Paulo: Érica, 2014. E-book. ISBN: 9788536518978.
Todos os materiais didáticos apresentados nesta plataforma são protegidos por direitos autorais de propriedade da Universidade Veiga
de Almeida e do Centro Universitário Jorge Amado. Qualquer uso não autorizado, reprodução ou distribuição (incluindo o upload para
sites) são estritamente proibidos e sujeitos às penalidades legais aplicáveis. Todos os direitos são reservados à UVA & Unijorge.
Para aprofundar e aprimorar os seus conhecimentos sobre os assuntos
abordados nessa unidade, não deixe de consultar as referências
bibliográficas básicas e complementares disponíveis no plano de ensino
publicado na página inicial da disciplina.
Todos os materiais didáticos apresentados nesta plataforma são protegidos por direitos autorais de propriedade da Universidade Veiga
de Almeida e do Centro Universitário Jorge Amado. Qualquer uso não autorizado, reprodução ou distribuição (incluindo o upload para
sites) são estritamente proibidos e sujeitos às penalidades legais aplicáveis. Todos os direitos são reservados à UVA & Unijorge.