Álgebra Relacional e Cálculo...

36
Álgebra Relacional e Cálculo Relacional Prof. Edson Thizon SISTEMAS DE INFORMAÇÃO

Transcript of Álgebra Relacional e Cálculo...

Page 1: Álgebra Relacional e Cálculo Relacionalpaginas.unisul.br/edson.thizon/PDF/aula2_algebra_calculo.pdf · combina o produto cartesiano e a seleção em uma única operação. Por exemplo:

Álgebra Relacionale

Cálculo Relacional

Prof. Edson Thizon

SISTEMAS DE INFORMAÇÃO

Page 2: Álgebra Relacional e Cálculo Relacionalpaginas.unisul.br/edson.thizon/PDF/aula2_algebra_calculo.pdf · combina o produto cartesiano e a seleção em uma única operação. Por exemplo:

Modelo Relacional Álgebra e Cálculo Relacional Prof. Edson Thizon

Linguagens de consultas formais (1)

� Uma linguagem de consulta (Query Language ) é uma linguagem com a qual o usuário pode requisitar ao Sistema de Gerência de Banco de Dados (SGBD) informações armazenadas no Banco de Dados (BD).

� Linguagens de consulta podem ser:– Procedurais

• O usuário descreve o algoritmo de acesso aos dados através de uma seqüência de instruções (COMO)

– Não procedurais• O usuário descreve a informação que deseja obter

sem descrever como obtê-la (O QUÊ)

Page 3: Álgebra Relacional e Cálculo Relacionalpaginas.unisul.br/edson.thizon/PDF/aula2_algebra_calculo.pdf · combina o produto cartesiano e a seleção em uma única operação. Por exemplo:

Modelo Relacional Álgebra e Cálculo Relacional Prof. Edson Thizon

Linguagens de consultas formais (2)

� As linguagens de consulta e atualização comerciais para sistemas relacionais baseiam-se na ÁLGEBRA RELACIONAL (procedural) e no CÁLCULO RELACIONAL (não procedural)

� As operações da álgebra e do cálculo exprimem o conjunto de consultas e manipulações possíveis sobre uma base de dados relacional qualquer

Page 4: Álgebra Relacional e Cálculo Relacionalpaginas.unisul.br/edson.thizon/PDF/aula2_algebra_calculo.pdf · combina o produto cartesiano e a seleção em uma única operação. Por exemplo:

Modelo Relacional Álgebra e Cálculo Relacional Prof. Edson Thizon

� A álgebra apresenta o conjunto mínimo de OPERADORES RELACIONAIS que podem ser combinados para extrair da base de dados, praticamente, todas as informações ali armazenadas (dados e seus relacionamentos)

� O cálculo estende (e completa) a potencialidade da álgebra relacional com a introdução dos quantificadores universal (∀) e existencial (∃)

Linguagens de consultas formais (3)

Page 5: Álgebra Relacional e Cálculo Relacionalpaginas.unisul.br/edson.thizon/PDF/aula2_algebra_calculo.pdf · combina o produto cartesiano e a seleção em uma única operação. Por exemplo:

Modelo Relacional Álgebra e Cálculo Relacional Prof. Edson Thizon

Álgebra Relacional (AR)

� Operações fundamentais da Álgebra Relacional:

– Restrição/Seleção (select): σ– Projeção (project): π– Produto Cartesiano (cartesian product): x– União (union): ∪– Diferença (set-difference): -

Page 6: Álgebra Relacional e Cálculo Relacionalpaginas.unisul.br/edson.thizon/PDF/aula2_algebra_calculo.pdf · combina o produto cartesiano e a seleção em uma única operação. Por exemplo:

Modelo Relacional Álgebra e Cálculo Relacional Prof. Edson Thizon

Álgebra Relacional (AR)

� Além das 5 operações fundamentais, a Álgebra Relacional oferece as operações:

– INTERSEÇÃO: ∩– JUNÇÃO THETA: Ξθ– JUNÇÃO NATURAL: Ξ– DIVISÃO: ÷

Page 7: Álgebra Relacional e Cálculo Relacionalpaginas.unisul.br/edson.thizon/PDF/aula2_algebra_calculo.pdf · combina o produto cartesiano e a seleção em uma única operação. Por exemplo:

Modelo Relacional Álgebra e Cálculo Relacional Prof. Edson Thizon

Operações Fundamentais da Álgebra Relacional

� SELEÇÃO e PROJEÇÃO são operações UNÁRIAS.

� As outras três operações (PRODUTO CARTESIANO, UNIÃO e DIFERENÇA) operam, cada uma, sobre um par de relações.

� As operações da AR sempre operam sobre relações e devolvem como resultado uma relação.

Page 8: Álgebra Relacional e Cálculo Relacionalpaginas.unisul.br/edson.thizon/PDF/aula2_algebra_calculo.pdf · combina o produto cartesiano e a seleção em uma única operação. Por exemplo:

Modelo Relacional Álgebra e Cálculo Relacional Prof. Edson Thizon

Relações Usadas nos Exemplos:Relação (tabela) “CLIENTES”

Page 9: Álgebra Relacional e Cálculo Relacionalpaginas.unisul.br/edson.thizon/PDF/aula2_algebra_calculo.pdf · combina o produto cartesiano e a seleção em uma única operação. Por exemplo:

Modelo Relacional Álgebra e Cálculo Relacional Prof. Edson Thizon

Script Tabela Clientes

CREATE TABLE CLIENTES(C_NOME VARCHAR2(20) NOT NULL PRIMARY KEY,C_ENDERECO VARCHAR2(20) NOT NULL,C_CIDADE VARCHAR2(20) NOT NULL);

INSERT INTO CLIENTES(C_NOME, C_ENDERECO, C_CIDADE) VALUES ('JONES','MAIN','HARRISON');INSERT INTO CLIENTES(C_NOME, C_ENDERECO, C_CIDADE) VALUES ('SMITH','NORTH','RYE');INSERT INTO CLIENTES(C_NOME, C_ENDERECO, C_CIDADE) VALUES ('HAYES','MAIN','HARRISON');INSERT INTO CLIENTES(C_NOME, C_ENDERECO, C_CIDADE) VALUES ('CURRY','NORTH','RYE');INSERT INTO CLIENTES(C_NOME, C_ENDERECO, C_CIDADE) VALUES ('LINDSAY','PARK','PITTSFIELD');INSERT INTO CLIENTES(C_NOME, C_ENDERECO, C_CIDADE) VALUES ('TURNER','PUTNAM','STAMFORD');INSERT INTO CLIENTES(C_NOME, C_ENDERECO, C_CIDADE) VALUES ('WILLIAMS','NASSAU','PRINCETON');INSERT INTO CLIENTES(C_NOME, C_ENDERECO, C_CIDADE) VALUES ('ADAMS','SPRING','PITTSFIELD');INSERT INTO CLIENTES(C_NOME, C_ENDERECO, C_CIDADE) VALUES ('JOHNSON','ALMA','PALO ALTO');INSERT INTO CLIENTES(C_NOME, C_ENDERECO, C_CIDADE) VALUES ('GLENN','SAND HILL','WOODSIDE');INSERT INTO CLIENTES(C_NOME, C_ENDERECO, C_CIDADE) VALUES ('BROOKS','SENATOR','BROOKLYN');INSERT INTO CLIENTES(C_NOME, C_ENDERECO, C_CIDADE) VALUES ('GREEN','WALNUT','STAMFORD');INSERT INTO CLIENTES(C_NOME, C_ENDERECO, C_CIDADE) VALUES ('JACKSON','WAL','FORD');

COMMIT;

Page 10: Álgebra Relacional e Cálculo Relacionalpaginas.unisul.br/edson.thizon/PDF/aula2_algebra_calculo.pdf · combina o produto cartesiano e a seleção em uma única operação. Por exemplo:

Modelo Relacional Álgebra e Cálculo Relacional Prof. Edson Thizon

Relações Usadas nos Exemplos:Relação (tabela) “DEPÓSITOS”

Page 11: Álgebra Relacional e Cálculo Relacionalpaginas.unisul.br/edson.thizon/PDF/aula2_algebra_calculo.pdf · combina o produto cartesiano e a seleção em uma única operação. Por exemplo:

Modelo Relacional Álgebra e Cálculo Relacional Prof. Edson Thizon

Script Tabela Depósitos

CREATE TABLE DEPOSITOS(D_AGENCIA VARCHAR2(20) NOT NULL,D_CONTA NUMBER(10) NOT NULL,D_NOME VARCHAR2(20) NOT NULL,D_SALDO NUMBER(10,2) NOT NULL,CONSTRAINT DEPOSITOS_CLIENTES_FK FOREIGN KEY (D_NOME)REFERENCES CLIENTES (C_NOME));

INSERT INTO DEPOSITOS(D_AGENCIA,D_CONTA, D_NOME, D_SALDO) VALUES('DOWNTOW',101, 'JOHNSON',500);INSERT INTO DEPOSITOS(D_AGENCIA,D_CONTA, D_NOME, D_SALDO) VALUES('MIANUS',215, 'SMITH',700);INSERT INTO DEPOSITOS(D_AGENCIA,D_CONTA, D_NOME, D_SALDO) VALUES('PERRYRIDGE',102, 'HAYES',400);INSERT INTO DEPOSITOS(D_AGENCIA,D_CONTA, D_NOME, D_SALDO) VALUES('ROUND',305, 'TURNER',350);INSERT INTO DEPOSITOS(D_AGENCIA,D_CONTA, D_NOME, D_SALDO) VALUES('PERRYRIDGE',201, 'WILLIAMS',900);INSERT INTO DEPOSITOS(D_AGENCIA,D_CONTA, D_NOME, D_SALDO) VALUES('REDWOOD',222, 'LINDSAY',700);INSERT INTO DEPOSITOS(D_AGENCIA,D_CONTA, D_NOME, D_SALDO) VALUES('BRIGHTON',217, 'GREEN',750);

COMMIT;

Page 12: Álgebra Relacional e Cálculo Relacionalpaginas.unisul.br/edson.thizon/PDF/aula2_algebra_calculo.pdf · combina o produto cartesiano e a seleção em uma única operação. Por exemplo:

Modelo Relacional Álgebra e Cálculo Relacional Prof. Edson Thizon

Relações Usadas nos Exemplos:Relação (tabela) “EMPRÉSTIMOS”

Page 13: Álgebra Relacional e Cálculo Relacionalpaginas.unisul.br/edson.thizon/PDF/aula2_algebra_calculo.pdf · combina o produto cartesiano e a seleção em uma única operação. Por exemplo:

Modelo Relacional Álgebra e Cálculo Relacional Prof. Edson Thizon

Script Tabela Empréstimos

CREATE TABLE EMPRESTIMOS(E_AGENCIA VARCHAR2(20) NOT NULL,E_CODIGO NUMBER(10) NOT NULL,E_NOME VARCHAR2(20) NOT NULL,E_VALOR NUMBER(10,2) NOT NULL,CONSTRAINT EMPRESTIMOS_CLIENTES_FK FOREIGN KEY (E_NOME)REFERENCES CLIENTES (C_NOME));

INSERT INTO EMPRESTIMOS(E_AGENCIA,E_CODIGO, E_NOME, E_VALOR) VALUES('DOWNTOW',17, 'JONES',1000);INSERT INTO EMPRESTIMOS(E_AGENCIA,E_CODIGO, E_NOME, E_VALOR) VALUES('REDWOOD',23, 'SMITH',2000);INSERT INTO EMPRESTIMOS(E_AGENCIA,E_CODIGO, E_NOME, E_VALOR) VALUES('PERRYRIDGE',15, 'HAYES',1500INSERT INTO EMPRESTIMOS(E_AGENCIA,E_CODIGO, E_NOME, E_VALOR) VALUES('DOWNTOW',14, 'JACKSON',1500INSERT INTO EMPRESTIMOS(E_AGENCIA,E_CODIGO, E_NOME, E_VALOR) VALUES('MIANUS',93, 'CURRY',500);INSERT INTO EMPRESTIMOS(E_AGENCIA,E_CODIGO, E_NOME, E_VALOR) VALUES('ROUND HILL',11, 'TURNER',900);INSERT INTO EMPRESTIMOS(E_AGENCIA,E_CODIGO, E_NOME, E_VALOR) VALUES('PWNAL',29, 'WILLIAMS',1200);INSERT INTO EMPRESTIMOS(E_AGENCIA,E_CODIGO, E_NOME, E_VALOR) VALUES('NORTH',16, 'ADAMS',1300);INSERT INTO EMPRESTIMOS(E_AGENCIA,E_CODIGO, E_NOME, E_VALOR) VALUES('DOWNTOW',18, 'JOHNSON',2000INSERT INTO EMPRESTIMOS(E_AGENCIA,E_CODIGO, E_NOME, E_VALOR) VALUES('PERRYRIDGE',25, 'GLENN',2500INSERT INTO EMPRESTIMOS(E_AGENCIA,E_CODIGO, E_NOME, E_VALOR) VALUES('BRIGHTON',10, 'BROOKS',2200);

COMMIT;

Page 14: Álgebra Relacional e Cálculo Relacionalpaginas.unisul.br/edson.thizon/PDF/aula2_algebra_calculo.pdf · combina o produto cartesiano e a seleção em uma única operação. Por exemplo:

Modelo Relacional Álgebra e Cálculo Relacional Prof. Edson Thizon

Seleciona tuplas (linhas) de uma relação (tabela) que satisfazem um determinado predicado (condição)– Formato: – Ex.:Selecione as tuplas da relação

EMPRÉSTIMOS para quais o nome da agência é“Perryridge”

A operação de Seleção

R = σe-agência=‘Perryridge’ (EMPRÉSTIMOS)

RelResultado = σpredicado (RelEntrada)

SELECT *FROM EMPRESTIMOSWHERE E_AGENCIA = 'PERRYRIDGE'

Page 15: Álgebra Relacional e Cálculo Relacionalpaginas.unisul.br/edson.thizon/PDF/aula2_algebra_calculo.pdf · combina o produto cartesiano e a seleção em uma única operação. Por exemplo:

Modelo Relacional Álgebra e Cálculo Relacional Prof. Edson Thizon

� Em geral, os predicados permitem expressar comparações do tipo (<, ≤, >, ≥, = e ≠). Além disso, pode-se relacional com operadores lógicos (and, or, not)

� Exemplos:– Selecione tuplas da relação EMPRÉSTIMOS para as

quais o valor do empréstimo é maior que 1200:

RelResult = σe-valor>1200 (EMPRÉSTIMOS)

– Selecione as tuplas da relação EMPRÉSTIMOS para as quais o nome da agência é “Perryridge e o valor do empréstimo excede 1200:

RelResult = σe-valor>1200 and e-agencia = ‘Perryridge’(EMPRÉSTIMOS)

A operação de Seleção

Page 16: Álgebra Relacional e Cálculo Relacionalpaginas.unisul.br/edson.thizon/PDF/aula2_algebra_calculo.pdf · combina o produto cartesiano e a seleção em uma única operação. Por exemplo:

Modelo Relacional Álgebra e Cálculo Relacional Prof. Edson Thizon

� Copia uma relação de entrada, deixando de fora uma ou mais colunas– Formato:

– Ex.: Obter uma tabela que relacione os clientes do banco com as agências onde fizeram empréstimos:

A Operação de Projeção

Res=πe-agencia, e-nome(EMPRÉSTIMOS)

RelResult=πcolunas a copiar(RelEntrada)

SELECT E_AGENCIA, E_NOMEFROM EMPRESTIMOS

Page 17: Álgebra Relacional e Cálculo Relacionalpaginas.unisul.br/edson.thizon/PDF/aula2_algebra_calculo.pdf · combina o produto cartesiano e a seleção em uma única operação. Por exemplo:

Modelo Relacional Álgebra e Cálculo Relacional Prof. Edson Thizon

� É possível compor operações mais complexas da álgebra relacional através do aninhamento de operações mais simples

� Exemplo: listar os nomes dos clientes que fizeram empréstimos superiores a 1200:

RelResult = ππππe-nome (σσσσe-valor>1200 (EMPRÉSTIMOS))

� A operação de seleção que gera uma relação como resultado pode ser usada como relação de entradapara a operação de projeção

A Operação de Projeção

SELECT DISTINCT E_NOMEFROM (SELECT E_NOME

FROM EMPRESTIMOSWHERE E_VALOR >1200)

Page 18: Álgebra Relacional e Cálculo Relacionalpaginas.unisul.br/edson.thizon/PDF/aula2_algebra_calculo.pdf · combina o produto cartesiano e a seleção em uma única operação. Por exemplo:

Modelo Relacional Álgebra e Cálculo Relacional Prof. Edson Thizon

O Produto Cartesiano� As operações de seleção e projeção permitem

extrair informações de somente uma relação de cada vez.

� A operação de PRODUTO CARTESIANO permite relacionar informações de duas relações.

� Dadas duas relações de entrada, R1 com N tuplase R2 com M tuplas, o produto cartesiano delas éuma relação, contendo (MxN) tuplas. A operação CONCATENA cada tupla de R1 com todas as tuplas de R2.

Page 19: Álgebra Relacional e Cálculo Relacionalpaginas.unisul.br/edson.thizon/PDF/aula2_algebra_calculo.pdf · combina o produto cartesiano e a seleção em uma única operação. Por exemplo:

Modelo Relacional Álgebra e Cálculo Relacional Prof. Edson Thizon

O Produto Cartesiano� Quando, devido a concatenação de tuplas de duas relações

diferentes, RelResult apresenta duas colunas de mesmo nome, cada uma delas recebe, como prefixo, o nome de sua relação de origem

� Exemplo: listar o nome dos clientes que moram em Rye e fizeram empréstimo de menos de 1000.a)RelResult1= CLIENTES x EMPRÉSTIMOS

b)RelResult2= σc-name = e-name (RelResult1)c)RelResult3= σe-valor<1000 and c-cidade = Rye (RelResult2)

SELECT C_NOMEFROM CLIENTES, EMPRESTIMOSWHERE C_NOME = E_NOME ANDE_VALOR < 1000 AND C_CIDADE = 'RYE'

Page 20: Álgebra Relacional e Cálculo Relacionalpaginas.unisul.br/edson.thizon/PDF/aula2_algebra_calculo.pdf · combina o produto cartesiano e a seleção em uma única operação. Por exemplo:

Modelo Relacional Álgebra e Cálculo Relacional Prof. Edson Thizon

A Operação de União� Considere agora que se deseje listar os clientes associados

à agência de “Perryridge”, independente do seu relacionamento com aquela agência (depósito ou empréstimo)

� R1 = ππππ d-nome (σd-agencia = “Perryridge” (DEPÓSITOS)) � R2 = ππππ e-nome (σe-agencia = “Perryridge” (EMPRÉSTIMOS))� Result = R1 U R2

SELECT D_NOME NOMEFROM DEPOSITOSWHERE D_AGENCIA = 'PERRYRIDGE'UNIONSELECT E_NOME NOMEFROM EMPRESTIMOSWHERE E_AGENCIA = 'PERRYRIDGE'

Page 21: Álgebra Relacional e Cálculo Relacionalpaginas.unisul.br/edson.thizon/PDF/aula2_algebra_calculo.pdf · combina o produto cartesiano e a seleção em uma única operação. Por exemplo:

Modelo Relacional Álgebra e Cálculo Relacional Prof. Edson Thizon

A Operação de Diferença� Listar aqueles clientes da agência “Perryridge” que não

fizeram empréstimos naquela agência (têm só conta corrente lá). O que se pede nesta consulta é o conjunto de clientes que têm conta na agência menos o conjunto de nomes de clientes que fizeram empréstimo nesta agência.

� R1 = ππππ d-nome (σd-agencia = “Perryridge” (DEPÓSITOS)) � R2 = ππππ e-nome (σe-agencia = “Perryridge” (EMPRÉSTIMOS))� Result = R1 - R2

SELECT D_NOME NOMEFROM DEPOSITOSWHERE D_AGENCIA = 'PERRYRIDGE'MINUSSELECT E_NOME NOMEFROM EMPRESTIMOSWHERE E_AGENCIA = 'PERRYRIDGE'

Page 22: Álgebra Relacional e Cálculo Relacionalpaginas.unisul.br/edson.thizon/PDF/aula2_algebra_calculo.pdf · combina o produto cartesiano e a seleção em uma única operação. Por exemplo:

Modelo Relacional Álgebra e Cálculo Relacional Prof. Edson Thizon

Operações de União e Diferença

� Para as operações UNIÃO e DIFERENÇA serem consideradas corretas, duas condições devem ser satisfeitas:– As relações R1 e R2 têm que apresentar o

mesmo número de atributos.

– Os domínios (tipo de dado) do i-ésimo atributo de R1 e do i-ésimo atributo de R2 devem ser iguais.

Page 23: Álgebra Relacional e Cálculo Relacionalpaginas.unisul.br/edson.thizon/PDF/aula2_algebra_calculo.pdf · combina o produto cartesiano e a seleção em uma única operação. Por exemplo:

Modelo Relacional Álgebra e Cálculo Relacional Prof. Edson Thizon

Operadores Adicionais

� Os operadores a seguir não acrescentam qualquer poder à Álgebra Relacional, somente simplificam a construção de consultas.

Page 24: Álgebra Relacional e Cálculo Relacionalpaginas.unisul.br/edson.thizon/PDF/aula2_algebra_calculo.pdf · combina o produto cartesiano e a seleção em uma única operação. Por exemplo:

Modelo Relacional Álgebra e Cálculo Relacional Prof. Edson Thizon

A Operação de Interseção� A INTERSEÇÃO entre duas relações é uma

relação que contém somente as tuplascomuns das duas relações argumentos

� Os requisitos válidos para a UNIÃO e DIFERENÇA valem também para a INTERSEÇÃO

Page 25: Álgebra Relacional e Cálculo Relacionalpaginas.unisul.br/edson.thizon/PDF/aula2_algebra_calculo.pdf · combina o produto cartesiano e a seleção em uma única operação. Por exemplo:

Modelo Relacional Álgebra e Cálculo Relacional Prof. Edson Thizon

A Operação de Interseção

Listar os nomes dos clientes da agência “Perryridge” que tem conta corrente e fizeram empréstimo lá

R1 = ππππ d-nome (σd-agencia = “Perryridge” (DEPÓSITOS)) R2 = ππππ e-nome (σe-agencia = “Perryridge” (EMPRÉSTIMOS))Result = R1 ∩∩∩∩ R2

TR1 ∩∩∩∩ TR2 = TR1 – (TR1 – TR2)

SELECT D_NOME NOMEFROM DEPOSITOSWHERE D_AGENCIA = 'PERRYRIDGE'INTERSECTSELECT E_NOME NOMEFROM EMPRESTIMOSWHERE E_AGENCIA = 'PERRYRIDGE'

Page 26: Álgebra Relacional e Cálculo Relacionalpaginas.unisul.br/edson.thizon/PDF/aula2_algebra_calculo.pdf · combina o produto cartesiano e a seleção em uma única operação. Por exemplo:

Modelo Relacional Álgebra e Cálculo Relacional Prof. Edson Thizon

A Operação de Junção Theta

� Usualmente, consultas que envolvem o produto cartesiano de duas relações incluem também uma operação de seleção sobre as tuplas do produto.

Page 27: Álgebra Relacional e Cálculo Relacionalpaginas.unisul.br/edson.thizon/PDF/aula2_algebra_calculo.pdf · combina o produto cartesiano e a seleção em uma única operação. Por exemplo:

Modelo Relacional Álgebra e Cálculo Relacional Prof. Edson Thizon

A Operação de Junção ThetaA JUNÇÃO THETA é uma operação binária que

combina o produto cartesiano e a seleção em uma única operação. Por exemplo: listar o nome e a cidade vive de cada uma dos clientes devedores da agência “Perryridge”.

ππππ e-nome,c-cidade (σc-nome = e-nome and e-agencia = ‘Perryridge’

(CLIENTES x EMPRÉSTIMOS))

SELECT E_NOME, C_CIDADEFROM CLIENTES, EMPRESTIMOSWHERE C_NOME = E_NOME ANDE_AGENCIA = 'PERRYRIDGE'

Page 28: Álgebra Relacional e Cálculo Relacionalpaginas.unisul.br/edson.thizon/PDF/aula2_algebra_calculo.pdf · combina o produto cartesiano e a seleção em uma única operação. Por exemplo:

Modelo Relacional Álgebra e Cálculo Relacional Prof. Edson Thizon

Cálculo Relacional de TuplasLinguagem NÃO PROCEDURAL (declarativa):� O usuário descreve a INFORMAÇÃO que deseja

obter sem descrever como obtê-la ( O QUÊ)

� O Cálculo Relacional de Tuplas (CRT) permite que se defina conjuntos de tuplas a partir de expressões do tipo: {t | P(t)}

� Uma expressão do cálculo relacional representa um conjunto de tuplas onde, para cada tupla t, o predicado P(t) é verdadeiro:

� T ∈ Result ⇒ P(t)

Page 29: Álgebra Relacional e Cálculo Relacionalpaginas.unisul.br/edson.thizon/PDF/aula2_algebra_calculo.pdf · combina o produto cartesiano e a seleção em uma única operação. Por exemplo:

Modelo Relacional Álgebra e Cálculo Relacional Prof. Edson Thizon

Cálculo Relacional de Tuplas� Uma Variável Tupla (VT) representa, a cada

instante, uma tupla T de uma determinada relação R. Uma fórmula P(t) pode apresentar mais de uma variável tupla. Em uma determinada fórmula, uma VT pode aparecer como:– Variável Destino: quando estiver associada a um

quantificador existencial ∋ (existe) ou universal ∀ (para todo)

– Variável Livre: em caso contrário ao anteriorExemplo:

AR => σe-agencia = ‘Perryridge’ (EMPRÉSTIMOS)

CRT => {t | t ∈ EMPRÉSTIMOS ^ t[e-agencia]=‘Perryridge’}

Page 30: Álgebra Relacional e Cálculo Relacionalpaginas.unisul.br/edson.thizon/PDF/aula2_algebra_calculo.pdf · combina o produto cartesiano e a seleção em uma única operação. Por exemplo:

Modelo Relacional Álgebra e Cálculo Relacional Prof. Edson Thizon

Expressando Operação da Álgebra Relacional em Cálculo Relacional

� Selecione as tuplas da relação EMPRÉSTIMOS para as quais o valor do empréstimo é maior que 1200.

AR => σe-valor > 1200 (EMPRÉSTIMOS)

CRT => {t | t ∈ EMPRÉSTIMOS ^ t[e-valor]>1200}

Page 31: Álgebra Relacional e Cálculo Relacionalpaginas.unisul.br/edson.thizon/PDF/aula2_algebra_calculo.pdf · combina o produto cartesiano e a seleção em uma única operação. Por exemplo:

Modelo Relacional Álgebra e Cálculo Relacional Prof. Edson Thizon

Expressando Operação da Álgebra Relacional em Cálculo Relacional

� Listar os nomes dos clientes que moram em Rye e fizeram empréstimo de menos de 1000.AR => ππππ e-nome (σe-valor<1000 and c-cidade = ‘Rye’

(σc-name = e-name (CLIENTES x EMPRÉSTIMOS)))

CRT => {t | ∋ s ∈ CLIENTES (s[c-cidade] = ‘Rye’ ^ ∋ u ∈ EMPRÉSTIMOS (s [c-nome] = u[e-nome] ^ u[e-valor]<1000 ^ t[e-nome] = u[e-nome]))}

Page 32: Álgebra Relacional e Cálculo Relacionalpaginas.unisul.br/edson.thizon/PDF/aula2_algebra_calculo.pdf · combina o produto cartesiano e a seleção em uma única operação. Por exemplo:

Modelo Relacional Álgebra e Cálculo Relacional Prof. Edson Thizon

� Com AR (relacionamento)

� Com CRT (exists)

SELECT C_NOMEFROM CLIENTES, EMPRESTIMOSWHERE C_NOME = E_NOME ANDE_VALOR < 1000 AND C_CIDADE = 'RYE'

SELECT C_NOMEFROM CLIENTESWHERE EXISTS (SELECT E_NOME

FROM EMPRESTIMOSWHERE C_NOME = E_NOME ANDE_VALOR < 1000 AND C_CIDADE = 'RYE')

Page 33: Álgebra Relacional e Cálculo Relacionalpaginas.unisul.br/edson.thizon/PDF/aula2_algebra_calculo.pdf · combina o produto cartesiano e a seleção em uma única operação. Por exemplo:

Modelo Relacional Álgebra e Cálculo Relacional Prof. Edson Thizon

n Em SQL (Subconsulta)

SQL

SELECT C_NOMEFROM CLIENTESWHERE C_NOME IN (SELECT E_NOME

FROM EMPRESTIMOSWHERE E_VALOR < 1000 AND C_CIDADE = 'RYE')

Page 34: Álgebra Relacional e Cálculo Relacionalpaginas.unisul.br/edson.thizon/PDF/aula2_algebra_calculo.pdf · combina o produto cartesiano e a seleção em uma única operação. Por exemplo:

Modelo Relacional Álgebra e Cálculo Relacional Prof. Edson Thizon

Outer Join

� Retorna linhas ausentes na outra tabela. O sinal de adição (+) é colocado ao lado do join que não possui as informações. Esse tipo de relacionamento não pode usar operadores In ou OR.

� O que mudou no resultado? Porque?

SELECT C_NOMEFROM CLIENTES, EMPRESTIMOSWHERE C_NOME = E_NOME (+) ANDE_VALOR (+) < 1000 AND C_CIDADE = 'RYE'

Page 35: Álgebra Relacional e Cálculo Relacionalpaginas.unisul.br/edson.thizon/PDF/aula2_algebra_calculo.pdf · combina o produto cartesiano e a seleção em uma única operação. Por exemplo:

Modelo Relacional Álgebra e Cálculo Relacional Prof. Edson Thizon

Uso do Case

create table test_case_when ( a varchar2(5), b varchar2(5) );

insert into test_case_when values ('*','*'); insert into test_case_when values ('+','+'); insert into test_case_when values ('-','-'); insert into test_case_when values ('.','.');

select a, case

when b = '*' then 'star' when b = '+' then 'plus' when b = '-' then 'minus' else '????'

endfrom test_case_when;

Page 36: Álgebra Relacional e Cálculo Relacionalpaginas.unisul.br/edson.thizon/PDF/aula2_algebra_calculo.pdf · combina o produto cartesiano e a seleção em uma única operação. Por exemplo:

Modelo Relacional Álgebra e Cálculo Relacional Prof. Edson Thizon

Referências Bibliográficas

� KORTH, Henry F. & SILBERSCHATZ, Abraham. Sistemas de Bancos de Dados , São Paulo. Ed. Makron Books, 1999.

� IOCHPE, Cirano. Institudo de Informática - UFRGS.