Baixe o app para aproveitar ainda mais
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�# �
Compartilhar