Banco de Dados I LGEBRA RELACIONAL Agenda lgebra
Banco de Dados I ÁLGEBRA RELACIONAL
Agenda Álgebra Relacional – Introdução – Operações Fundamentais – Operações Específicas
Álgebra Relacional - Introdução “A álgebra relacional é uma linguagem de consultas procedural que consiste em um conjunto de operações tendo como entrada uma ou duas relações e produzindo, como resultado, uma nova relação”.
Álgebra Relacional - Introdução Entre as motivações para aprendermos Álgebra Relacional, se destacam: § Compreendendo álgebra relacional é mais fácil apreender SQL; § SQL incorpora cada vez mais conceitos de álgebra; § Algoritmos de otimização de consulta definidos sobre álgebra (possível uso internamente no SGBD).
Álgebra Relacional - Introdução § Operadores originários da teoria de conjuntos: – União (union) : – Intersecção (intersect): – Diferença (minus): - § Operadores específicos da álgebra relacional: – Seleção (select): – Projeção (project): – Junção (join): | |
AR- Operações Fundamentais Conceitos Gerais § Relação: Representada por uma tabela de duas dimensões (linhas e colunas). § Tupla: Corresponde a uma linha (“registro”, nos conceitos de estrutura de dados) da relação. § Atributo: Corresponde a cada coluna (“campo”, nos conceitos de estrutura de dados) da relação.
AR- Operações Fundamentais Exemplo Atributos Tuplas Mat. Nome Sexo Data Nasc. Cod_Emissora 1 Zé Mané M 01/02/1986 20 2 Loirinha Bonita F 13/08/1995 30 3 Xico Langue M 16/03/1954 20 4 Gavião Boêmio M 03/03/1900 10 . . . . Juca K Melo F 26/11/1910 40 150 Jornalistas
AR- Operação Select ( ) O resultado é uma tabela que contém as linhas que obedecem a um determinado critério. Sintaxe: <critério de seleção> (< tabela>) § onde <tabela> é o nome de uma tabela ou uma expressão de álgebra relacional que resulta em uma tabela e <critério de seleção> é uma expressão booleana que envolve literais e valores de atributos da tabela
AR- Operação Select ( ) A operação select seleciona tuplas que satisfaçam a determinado predicado. Este aparece subscrito a sigma. Já o argumento é dado entre parênteses. Por exemplo, se quisermos selecionar aquelas tuplas da emissora “ 20”, escrevemos: Cod_Emissora = “ 20” (Jornalistas) Mat. Nome Sexo Data Nasc. Cod_Emissora 1 Zé Mané M 01/02/1986 20 3 Xico Langue M 16/03/1954 20
AR- Operação Select ( ) Cod. Peca Nome. Peca Cor. Peca Peso. Peca Cidade. Peca P 1 Eixo Cinza 10 Porto Alegre P 2 Rolamento Preto 16 Santa Maria P 3 Mancal Verde 30 Uruguaiana Peças Cod. Peca Embarque Cod. Fornec Qtd. Embarque P 1 F 1 300 P 1 F 2 400 P 1 F 3 200 P 2 F 1 300 P 2 F 4 350 Fornecedor Cod. Fornec Nome. Fornec Status Cidade. Fornec F 1 Fábrica de Molas 1 São Paulo F 2 Fábrica de Rolamentos 2 Rio de Janeiro F 3 Fábrica de Ferramentas 1 São Paulo F 4 Fábrica de Auto-Peças 3 Rio de Janeiro
AR- Operação Select ( ) O resultado da seleção tem colunas com os mesmos nomes e domínios da tabela de entrada. cod. Peça = ‘P 1’ (Peca) Resulta em uma tabela que contém todos os dados da peça de código P 1. Cod. Peca P 1 Nome. Peca Cor. Peca Peso. Peca Cidade. Peca Eixo Cinza 10 Porto Alegre
AR- Operação Select ( ) Exemplo: Mostre os dados de todas os fornecedores que tenham status maior que 5 e que sejam do Rio de Janeiro. Cod. Fornec Nome. Fornec Status Cidade. Fornec F 1 Fábrica de Molas 1 Rio de Janeiro F 2 Fábrica de Rolamentos 2 Rio de Janeiro F 3 Fábrica de Ferramentas 1 São Paulo F 4 Fábrica de Auto-Peças 3 Rio de Janeiro (Status. Fornec > 1 and Cidade. Fornec = ‘Rio de Janeiro’ (Fornec)) Tabela Resultante Cod. Fornec Nome. Fornec Status Cidade. Fornec F 2 Fábrica de Rolamentos 2 Rio de Janeiro F 4 Fábrica de Auto-Peças 3 Rio de Janeiro
AR- Operação Select ( ) Exemplos Adicionais § Considerando as tabelas a seguir. . . Funcionário Codigo Nome Sexo Admissao Salario Depto 10 Mônica F 01/02/1983 R$ 12500, 00 3 20 Cebolinha M 29/07/1980 R$ 2500, 00 1 30 Magali F 30/11/1981 R$ 9560, 00 3 40 Cascão M 22/02/1981 R$ 11700, 00 2 50 Franjinha M 08/09/2000 R$ 20000, 00 1 Sócio Departamento Codigo Socio Sexo Depto Nome_Depto 1 Mônica F 1 Administração 2 Cebolinha M 2 Contabilidade 3 Astronauta M 3 Informática
AR- Operação Select ( ) Exemplo: Selecionar todos os funcionários do sexo feminino. Sexo = ‘F’ (Funcionário) Codigo Nome Sexo Admissao Salario Depto 10 Mônica F 01/02/1983 R$ 12500, 00 3 30 Magali F 30/11/1981 R$ 9560, 00 3
AR- Operação Select ( ) Exemplo: Selecionar todos os funcionários do sexo masculino que ganham mais de R$ 15000, 00 Sexo = ‘M’ Salário > 15000 (Funcionário) Codigo 50 Nome Franjinha Sexo Admissao M 08/09/2000 Salario R$ 20000, 00 Depto 1
AR- Operação de Projeção ( ) Trata-se da operação usada para selecionar determinadas colunas de uma relação qualquer. Como a relação é um conjunto, quaisquer linhas em duplicidade serão eliminadas. Sintaxe: <lista de colunas> (<tabela>)
AR- Operação de Projeção ( ) Exemplo: Apresente os códigos e os nomes de todas as peças: Cod. Peca, Nome. Peca (Peca) Cod. Peca Nome. Peca P 1 Eixo P 2 Rolamento P 3 Mancal
AR- Operação de Projeção ( ) A Projeção pode resultar também na eliminação de linhas, caso a(s) coluna(s) que são parte da chave forem eliminadas. Assim, se uma coluna cujos valores distinguem diferentes linhas é eliminada, surgem linhas duplicadas na tabela, que devem ser eliminadas. Cidade. Forn (Fornecedor) Cidade. Forn São Paulo Rio de Janeiro
Operações da teoria de conjuntos A álgebra relacional empresta da teoria de conjuntos quatro operadores: União, Intersecção, Diferença e Produto Cartesiano: – Sintaxe da União: <tabela> 1 <tabela> 2 – Sintaxe da Intersecção: <tabela> 1 <tabela> 2 – Sintaxe da Diferença: <tabela> 1 – <tabela> 2 Nos três casos, a operação possui duas tabelas como operandos. E as tabelas devem ser compatíveis: – possuir o mesmo número de colunas; – o mesmo domínio para cada posição da lista de atributos; – quando os nomes das colunas forem diferentes, adota- se os nomes das colunas da primeira tabela.
AR- Operação de União ( ) R S – A união de duas relações R e S é o conjunto de todas as tuplas pertencentes à relação R ou à relação S ou a ambas. Sintaxe: <lista de colunas> (<tabela 1>) <lista de colunas> (<tabela 2>)
AR- Operação de União ( ) Exemplo: Apresente o nome e o sexo de todos os funcionários e sócios. Nome, Sexo (Funcionario) Nome, Sexo (Socio) Nome Sexo Mônica F Cebolinha M Magali F Cascão M Franjinha M Astronauta M
AR- Operação de Intersecção ( ) R S – A intersecção de duas relações R e S é o conjunto de todas as tuplas pertencentes à relação R e à relação S. Sintaxe: <lista de colunas> (<tabela 1>) <lista de colunas> (<tabela 2>)
AR- Operação de Intersecção ( ) Exemplo: Apresente o nome e o sexo de todos os funcionários que também são sócios. Nome, Sexo (Funcionario) Nome, Sexo (Socio) Nome Sexo Mônica F Cebolinha M
AR- Operação de Diferença (- ) R-S – A diferença de duas relações R e S é o conjunto de todas as tuplas pertencentes à relação R e não pertencentes à relação S. Sintaxe: <lista de colunas> (<tabela 1>) - <lista de colunas> (<tabela 2>)
AR- Operação de Diferença (- ) Exemplo: Apresente o nome e o sexo de todos os funcionários que não sócios. Nome, Sexo (Funcionario) - Nome, Sexo (Socio) Nome Sexo Magali F Cascão M Franjinha M
AR- Produto Cartesiano (X) §RXS – O produto cartesiano de duas relações R e S é o uma relação T cujas tuplas são a combinação das tuplas das relações R e S, tomando-se uma tupla de R e concatenando-a com cada tupla de S. Representação gráfica: A B C Y x Z AY AZ BY BZ CY CZ
AR- Produto Cartesiano (X) Exemplo: Obter, para cada funcionário, a lista de departamentos possíveis. Funcionario X Departamento Nome Departamento Mônica Administração Mônica Contabilidade Mônica Informática Cebolinha Administração Cebolinha Contabilidade Cebolinha Informática e demais nomes. . . E demais departamentos. . .
AR- Junção (⋈) É utilizada para combinar tuplas relacionadas de duas relações em uma única tupla É representada como: R ⋈<condição de junção> S
AR- Produto Cartesiano (X) Exemplo: Listar todos os funcionários e o nome do departamento em que cada um deles trabalha Funcionário ⋈Depto = Depto Departamento Codigo Nome Sexo Admissao 10 Mônica F 01/02/1983 20 Cebolinha M 30 Magali 40 50 Salario Depto Departamento R$ 12500, 00 3 Informática 29/07/1980 R$ 2500, 00 1 Administração F 30/11/1981 R$ 9560, 00 3 Informática Cascão M 22/02/1981 R$ 11700, 00 2 Contabilidade Franjinha M 08/09/2000 R$ 20000, 00 1 Administração
Bibliografia CARDOSO, Jiani Cordeiro. Notas de Aula – Banco de Dados I – IFF (Instituto Federal Farroupilha), Rio Grande do Sul. 2010. SILBERSCHATZ, Abraham. ; KORTH, Henry F. ; SUDARSHAN, S. Sistema de Banco de Dados, São Paulo: Makron Books, 1999.
Copyright © 2012 Prof. Jorge Surian Todos direitos reservados. Reprodução ou divulgação total ou parcial deste documento é expressamente proibido sem o consentimento formal, por escrito, do professor.
- Slides: 31