Baixe o app para aproveitar ainda mais
Prévia do material em texto
Álgebra Relacional Descreve qualquer operação de consulta sobre relações Linguagem orientada a manipulação de relações e não de registros O resultado de uma operação sobre uma ou mais relações gera uma outra relação Linguagem com 8 operadores: 5 fundamentais (união, diferença, produto cartesiano, seleção e projeção) 3 derivados (interseção, junção e divisão) Exemplo: BD Bancário CLIENTE (nome, rua, cidade) EMPRÉSTIMO(nome_ag, num_empréstimo, nome_cliente, quantia) AGÊNCIA(nome, ativos, cidade) DEPÓSITO( nome_ag, num_conta, nome_cliente, saldo) Operadores Fundamentais Seleção: seleciona tuplas que satisfazem uma dada condição <condição> permite o uso dos seguintes operadores: =, <>, <, >,<=, >= (de comparação) and, or, not (lógicos) (relação>) <condição> Seleção - Exemplos: Buscar todos os clientes que moram em Belém: CIDADE = “Belém” (CLIENTE) Buscar os empréstimos realizados na agência Ag2 com quantia > 800 nome_ag = “Ag2” and quantia>800 (empréstimo) Operadores Fundamentais Operadores Fundamentais Projeção: seleciona atributos (colunas) de uma relação. (< relação >) (< lista_atributos >) Projeção - exemplos Buscar nome e cidade dos clientes Buscar nome e rua de todos os clientes da cidade de Belém (< CLIENTE >) Nome, cidade ( < CLIENTE >)cidade = “Belém” Nome, rua Operadores Fundamentais Produto Cartesiano: Combinação de todas as tuplas de duas relações. Usado quando se necessita obter dados presentes em duas ou mais relações Notação: <relação1> X <relação2> a b c x y a x a y b x b y c x c y X = Produto Cartesiano - Exemplos Buscar número e saldo de todas as contas dos clientes que moram em Belém R1 = (CLIENTE X DEPÓSITO) cidade = “Belém” R2 = num_conta, saldo(R1) Operadores Fundamentais União: Une as tuplas de duas relações que sejam compatíveis com união relações com o mesmo grau relações cujos domínios dos atributos são iguais na mesma ordem de definição das colunas Notação: <relação1> U <relação2> União - Exemplos Uma vez que as relações são conjuntos, os valores duplicados são eliminados Exemplo: Buscar todos os clientes da agência Ag1 que têm empréstimos ou depósitos R1 = nome_cliente( nome_ag = “Ag1” (EMPRÉSTIMO)) R2 = nome_cliente( nome_ag = “Ag1” (DEPÓSITO)) R = R1 U R2 Condições necessárias A relações r e s devem possuir o mesmo numero de atributos. Os domínios do i-ésimo atributo de r e o i- ésimo atributo de s devem ser os mesmos, para todo i. Operadores Fundamentais Diferença (-): Retorna as tuplas de uma relação1 cujos valores dos atributos não estão presentes em uma relação2 Notação: <relação1> - <relação2> Exemplo: Buscar nomes dos clientes da Agência Ag1 que não possuem depósito nome_cliente( nome_ag = “Ag1” (EMPRÉSTIMO)) - nome_cliente( nome_ag = “Ag1” (DEPÓSITO)) Operadores Derivados Interseção Retorna as tuplas cujos valores de seus atributos sejam comuns às relações 1 e 2 Notação: relação1 relação2 Exemplo: Buscar os clientes de Ag1 que possuem empréstimo e depósito nome_cliente( nome_ag = “Ag1” (EMPRÉSTIMO)) nome_cliente( nome_ag = “Ag1” (DEPÓSITO)) Operadores Derivados - Junção Junção (ou ligação): Combinação dos operadores produto cartesiano e Seleção; Retorna tuplas de um produto cartesiano que satisfazem uma condição Na condição os atributos devem pertencer ao mesmo domínio e a operação deve fazer sentido para esse domínio Notação: relação1 |X| relação2 [condição] a1 b1 a2 b2 a3 b3 a1 b1 c1 a2 b2 c2 a3 b3 c3 b1 c1 b2 c2 b3 c3 |X| = Junção Natural: Assume a junção por atributos comuns sem repetir o atributo no resultado Retorna tuplas de um produto cartesiano sem especificar condição nomes de atributos devem coincidir para ser aplicada junção natural Notação: relação1 |X| relação2 Exemplo junção: Buscar número e saldo de todas as contas dos clientes que moram em Belém: num_conta, saldo (CLIENTE |X| DEPÓSITO) nome = nome_cliente and cidade = “Belém” Operadores Derivados - Junção Operadores Derivados - Divisão Divisão é utilizada quando se deseja extrair de uma relação R1 uma determinada parte que possui as características (valores de atributos) da relação R2 Consultas com a frase “para todos”; Operadores: Dividendo (Relação R1 com grau m+n) Divisor (Relação R2 com grau m) Quociente (Relação resultante com grau n) Notação: relação1 relação2 a x a y a z b x c y X y a = Exemplo - Divisão Encontrar todos os clientes que têm conta em todas as agências localizadas em Belém nome_cliente, nome_ag (depósito) nome ( cidade = “Belém”(agência)
Compartilhar