Buscar

BD4_AlgebraRelac

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 6 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 6 páginas

Prévia do material em texto

1
�������������	�
�������������	�
�������������	�
�������������	�
��
����
����� ���������������
����
����� ���������������
����
����� ���������������
����
����� �������������
��������������
 ����������������
 ����������������
 ����������������
 ��
ÁLGEBRA RELACIONAL
Coleção de operações utilizadas pelo SGBD 
para executar os comandos de consulta da 
linguagem SQL.
Executada sobre relações internas.
O resultado de cada operação é uma nova 
relação.
SGBD
ÁLGEBRA RELACIONAL
usuário
Processador de consultas
Operação 1 Operação 2 Operação n
BD
...
result set finalconsulta SQL
rs1 rs2
ÁLGEBRA RELACIONAL
• As operações podem ser divididas em 2 
grupos:
• Operações unárias: operam sobre 1 única 
relação
– Ex: seleção, projeção, designação
• Operações binárias: operam sobre um par 
de relações
– Ex: união, interseção, produto cartesiano
Tabela Exemplo
FM15000MSPaulo20-04-65Edson8
FM1000MSertãoz28-02-80Igor7
IBM5000FBonfim29-08-75Fabiana6
FM1000MNiterói08-07-77Lucas5
PUBL3000FRibeirão17-04-80Cassia4
IBM1500MPFerreira26-02-80Euler3
PSI2000MRibeirão23-06-76Rodrigo2
IBM5000FRibeirão20-09-80Patricia1
cursoRendaSexoCidadeDta_nascNomeCod_alu
Aluno
Operação SELEÇÃO
• Seleciona um subcjto de tuplas da relação original, 
de acordo com uma condição.
• Ex 1: (Aluno)IBM""curso� =
IBM5000FBonfim29-08-75Fabiana6
IBM1500MPFerreira26-02-80Euler3
IBM5000FRibeirão20-09-80Patricia1
cursoRendaSexoCidadeDta_nascNomeCod_alu
result set:
2
Operação SELEÇÃO
• Ex 2:
(Aluno)2000renda� >
FM15000MSPaulo20-04-65Edson8
IBM5000FBonfim29-08-75Fabiana6
PUBL3000FRibeirão17-04-80Cassia4
IBM5000FRibeirão20-09-80Patricia1
cursoRendaSexoCidadeDta_nascNomeCod_alu
Operação SELEÇÃO
• Ex 3:
(Aluno)Sertãoz")"cidade and FM""(cursoor 2000)renda and IBM""(curso� ==>=
FM1000MSertãoz28-02-80Igor7
IBM5000FBonfim29-08-75Fabiana6
IBM5000FRibeirão20-09-80Patricia1
cursoRendaSexoCidadeDta_nascNomeCod_alu
Operadores
• Operadores lógicos: 
= , <> , > , >= , < , <=
• Conectores lógicos: 
and , or , not
Operação PROJEÇÃO
• Seleciona atributos específicos da relação 
original
• Ex 4:
(Aluno)cidade nome, cod_alu,pi
Resultado Ex 4
SPauloEdson8
SertãozIgor7
BonfimFabiana6
NiteróiLucas5
RibeirãoCassia4
PFerreiraEuler3
RibeirãoRodrigo2
RibeirãoPatricia1
CidadeNomeCod_alu
Operação DESIGNAÇÃO
• Atribui um nome temporário a uma relação 
resultante de uma operação
• Ex:
(Aluno)Ribeirão"" cidade� AlunoRib =←
3
Operações Aninhadas
• O resultado de uma operação é argumento 
de outra operação:
• Ou:
) (Aluno) ( Ribeirão""cidadedta_nasc nome, =σpi
(Aluno)Ribeirão"" cidade� AlunoRib =←
) ( AlunoRib Resultado dta_nasc nome,pi←
Operações da Teoria dos Conjuntos
• UNIÃO
• INTERSEÇÃO
• DIFERENÇA
Obs: tem que haver COMPATIBILIDADE entre as relações:
atributos na mesma quantidade, mesma ordem e de 
mesmo tipo.
Operações da Teoria dos Cjtos
• Ex: Funcionário
�
!�
!�
!�
!""""�� ��� ��� ��� � 
�� 
�� 
�� 
�� !��#
!��#
!��#
!��#
 �$���� #
 �$���� #
 �$���� #
 �$���� #
% �
&
 �' %()*+),(
- �.$$�� �� � ����
 %,)*()/*
0 �
!���
 ��$���$� %+)*%),/
( 
�
� �' -/)*-)/*
Operações da Teoria dos Cjtos
) ( Aluno AlunoTodos dta_nasc nome,pi←
) ( oFuncionári FuncTodos nascimento nome,pi←
FuncTodos AlunoTodos Result1 ∪←
FuncTodos AlunoTodos Result2 ∩←
AlunoTodos FuncTodos Result3 −←
Result 1:
14-05-74João
20-04-65Edson
15-01-78Rodrigo
28-02-80Igor
29-08-75Fabiana
08-07-77Lucas
17-04-80Cassia
26-02-80Euler
23-06-76Rodrigo
20-09-80Patricia
Dta_nascNome
todos os 
alunos e 
todos os 
funcionários, 
sem 
repetição
Result 2:
28-02-80Igor
17-04-80Cassia
Dta_nascNome
alunos que são 
funcionários
4
Result 3:
15-01-78Rodrigo
14-05-74João
Dta_nascNome
funcionários que 
não são alunos
Operação PRODUTO CARTESIANO
• Combina 2 a 2 as tuplas de 2 relações
R(A1, A2, ... , An) com p tuplas 
S(B1, B2, ... , Bn) com q tuplas
Q � R χ S 
Q(A1, A2, ... , An, B1, B2, ... , Bn) 
possuirá pxq tuplas 
Obs: não necessita que as relações sejam compatíveis
PRODUTO CARTESIANO
• Ex: Matrícula
0406
0155
0233
0153
Cod_discCod_alu_matr
Recuperar, para cada aluno do curso de IBM, uma lista 
contendo o código e o nome do aluno, juntamente com 
os códigos das disciplinas em que estão matriculados.
PRODUTO CARTESIANO
• Sequência de operações:
(Aluno)IBM""curso� Aluno_IBM =←
) ( Aluno_IBM BMNome_Alu_I nomecod_alu,pi←
Matrícula BMNome_Alu_I Prod_Cart χ←
)(Prod_Carttrcod_alu_ma cod_alu � Filtro =←
) ( Filtro Result cod_discnome,cod_alu,pi←
PRODUTO CARTESIANO
�
!�
!�
!�
!""""������������ 
�� 
�� 
�� 
��
% ��#�����
0 �����
1 ����� �
) ( Aluno_IBM BMNome_Alu_I nomecod_alu,pi←
(Aluno)IBM""curso� Aluno_IBM =←
PRODUTO CARTESIANO
Matrícula BMNome_Alu_I Prod_Cart χ←
�
!�
!�
!�
!""""������������ 
�� 
�� 
�� 
�� �
!�
!�
!�
!""""������������""""��#���#���#���#� �
!�
!�
!�
!""""!�$�!�$�!�$�!�$�
% ��#�2��� 0 *%+
% ��#�2��� 0 *-0
% ��#�2��� + *%+
% ��#�2��� 1 *(*
0 ����� 0 *%+
0 ����� 0 *-0
0 ����� + *%+
0 ����� 1 *(*
1 ����� � 0 *%+
1 ����� � 0 *-0
1 ����� � + *%+
1 ����� � 1 *(*
5
PRODUTO CARTESIANO
)(Prod_Carttrcod_alu_ma cod_alu � Filtro =←
) ( Filtro Result cod_discnome,cod_alu,pi←
�
!�
!�
!�
!""""������������ 
�� 
�� 
�� 
�� �
!�
!�
!�
!""""!�$�!�$�!�$�!�$�
0 ����� *%+
0 ����� *-0
1 ����� � *(*
�
!�
!�
!�
!""""������������ 
�� 
�� 
�� 
�� �
!�
!�
!�
!""""������������""""��#���#���#���#� �
!�
!�
!�
!""""!�$�!�$�!�$�!�$�
0 ����� 0 *%+
0 ����� 0 *-0
1 ����� � 1 *(*
Operação JUNÇÃO
• É a combinação de um Produto Cartesiano com uma 
Seleção. 
• Sua finalidade é identificar apenas as tuplas cujos 
atributos estão relacionados.
Matrícula BMNome_Alu_I Prod_Cart χ←
)(Prod_Carttrcod_alu_ma cod_alu � Filtro =←
Matrícula BMNome_Alu_I Filtro ←
cod_alu = cod_alu_matr
JUNÇÃO
• Condição de igualdade � EQUIJUNÇÃO
• JUNÇÃO NATURAL ( * ) � elimina o 
atributo duplicado
Exercícios
• Func (cod_func, nome, salário, cod_supervCE, 
cod_deptoCE)
• Depto (cod_depto, nome_depto, cod_gerCE)
• Projeto (cod_proj, nome_proj, cidade, cod_deptoCE)
• Paticipação (cod_funcCE, cod_projCE)
%3%3%3%3 �
��� �� $��.��
� !�� #
!
$� 
$�
�� ��
 .��
$� ���� #�����4�� � 
� !��#
� !��
��$���$��
Exercícios
• Func (cod_func, nome, salário, cod_supervCE, 
cod_deptoCE)
• Depto (cod_depto, nome_depto, cod_gerCE)
• Projeto (cod_proj, nome_proj, cidade, cod_deptoCE)
• Paticipação (cod_funcCE, cod_projCE)
-3-3-3-3 �����#
!
���
5�#
��
������!
��� �
������&
����#
6���$#���
� �
!
���
5�#
6�
�
 �
!
�!��#
���$�
 $.7�����
� 
���!
�
���� #����$�
 $.7������
�!��#
�
Exercícios
• Func (cod_func, nome, salário, cod_supervCE, 
cod_deptoCE)
• Depto (cod_depto, nome_depto, cod_gerCE)
• Projeto (cod_proj, nome_proj, cidade, cod_deptoCE)
• Paticipação (cod_funcCE, cod_projCE)
03030303�8!��
�!
$���
5�#
$�
 !������ ��
 .����
�
� ��#�����4��
����5
�!��#
��
 #�
��!
��9
���� ���!
��
���
� ��
6
Exercícios
• Func (cod_func, nome, salário, cod_supervCE, 
cod_deptoCE)
• Depto (cod_depto, nome_depto, cod_gerCE)
• Projeto (cod_proj, nome_proj, cidade, cod_deptoCE)
• Paticipação (cod_funcCE, cod_projCE)
(3(3(3(3:�$#���
$� 
��$�!
$��� ��
 .��
$6��
� �
$� 
��$�!
$���$���#�7
$�$����7�$
��$�
Exercícios
• Func (cod_func, nome, salário, cod_supervCE, 
cod_deptoCE)
• Depto (cod_depto, nome_depto, cod_gerCE)
• Projeto (cod_proj, nome_proj, cidade, cod_deptoCE)
• Paticipação (cod_funcCE, cod_projCE)
+3+3+3+3:�$#���$� 
��$�!
$� �� ��
 .��
$�����
 &
����#�������� �!�� � 4�� ���
5�#
�
• SUM, AVG, MAX, MIN, COUNT
• Ex:
FUNÇÕES DE AGREGAÇÃO
(Aluno)cod_alu COUNT renda,AVG Result τ←
�;<��;<��;<��;<��� !��� !��� !��� !� ��=�>��
!"��=�>��
!"��=�>��
!"��=�>��
!"������������
(%/,6+* /
4187,50
AVG renda
(Aluno)cod_alu COUNT renda,AVG Result τ← (Aluno)
FM15000MSPaulo20-04-65Edson8
FM1000MSertãoz28-02-80Igor7
IBM5000FBonfim29-08-75Fabiana6
FM1000MNiterói08-07-77Lucas5
PUBL3000FRibeirão17-04-80Cassia4
IBM1500MPFerreira26-02-80Euler3
PSI2000MRibeirão23-06-76Rodrigo2
IBM5000FRibeirão20-09-80Patricia1
cursoRendaSexoCidadeDta_nascNomeCod_alu
Aluno
AGRUPAMENTOS
(Aluno)cod_alu COUNT renda,AVG curso Result τ←
���$
���$
���$
���$
 �;<��� !��;<��� !��;<��� !��;<��� !� ��=�>��
!"��=�>��
!"��=�>��
!"��=�>��
!"������������
�? 0/00600 0
�	
 -***6** %
�=�: 0***6** %
�? +11161, 0
Exercícios
• Func (cod_func, nome, salário, cod_supervCE, 
cod_deptoCE)
• Depto (cod_depto, nome_depto, cod_gerCE)
• Projeto (cod_proj, nome_proj, cidade, cod_deptoCE)
• Paticipação (cod_funcCE, cod_projCE)
13131313��$��.��
�� 9!�
6�
�� .@��
���
�� 2 ��
�
!����!��!����#��� #
�
,3,3,3,3 �� ��� #�!�!�� !�� �� ��
 .��
$� ����
���#�������� �!����!����
5�#
�

Outros materiais