~misterio/BSI-SCC0540-listas

70c2e31a01648fa4ad23e24b20bd7c6062961b04 — Gabriel Fontes 6 months ago b6aca49 main
adiciona algebra relacional também
17 files changed, 60 insertions(+), 1 deletions(-)

A lista6/consultas_algebra_relacional/a.txt
A lista6/consultas_algebra_relacional/b.txt
A lista6/consultas_algebra_relacional/c.txt
A lista6/consultas_algebra_relacional/d.txt
A lista6/consultas_algebra_relacional/e.txt
A lista6/consultas_algebra_relacional/f.txt
A lista6/consultas_algebra_relacional/g.txt
R lista6/{ex-1a.sql => consultas_sql/a.sql}
R lista6/{ex-1b.sql => consultas_sql/b.sql}
A lista6/consultas_sql/c.sql
A lista6/consultas_sql/d.sql
A lista6/consultas_sql/e.sql
R lista6/{ex-1i.sql => consultas_sql/i.sql}
R lista6/{ex-1j.sql => consultas_sql/j.sql}
R lista6/{ex-1k.sql => consultas_sql/k.sql}
R lista6/{ex-1l.sql => consultas_sql/l.sql}
A lista6/sqls.yml
A lista6/consultas_algebra_relacional/a.txt => lista6/consultas_algebra_relacional/a.txt +4 -0
@@ 0,0 1,4 @@
T1 <- σ (pecas.cor='vermelho') (pecas)
T2 <- T1 * catalogo
T3 <- T2 * fornecedores
T4 <- π (fornecedores.f_nome) (fornecedores)

A lista6/consultas_algebra_relacional/b.txt => lista6/consultas_algebra_relacional/b.txt +4 -0
@@ 0,0 1,4 @@
T1 <- fornecedores * catalogo
T2 <- pecas * T1
T3 <- σ (cor='vermelho' OR endereco='Av. São Carlos') (T2)
T4 <- π(T3.f_nome) (T3)

A lista6/consultas_algebra_relacional/c.txt => lista6/consultas_algebra_relacional/c.txt +3 -0
@@ 0,0 1,3 @@
T1 <- π(f_nome) (fornecedores * (catalogo * (σ(pecas.cor='vermelho')(pecas))))
T2 <- π(f_nome) (fornecedores * (catalogo * (σ(pecas.cor='verde')(pecas))))
T3 <- T1 INTERSECT T2

A lista6/consultas_algebra_relacional/d.txt => lista6/consultas_algebra_relacional/d.txt +5 -0
@@ 0,0 1,5 @@
T1 <- ⍴F1 (f_id1, f_nome1, endereco1) (fornecedores) * ⍴C1 (f_id1, p_id1, preco1) (catologo)
T2 <- ⍴F2 (f_id2, f_nome2, endereco2) (fornecedores) * ⍴C2 (f_id2, p_id2, preco2) (catalogo)
T3 <- T1 ⋈ (p_id1 = p_id2 AND preco1 > preco2 AND
f_id1 <> f_id2) T2
T4 <- π(f_id1, f_id2, p_id1) (T3)

A lista6/consultas_algebra_relacional/e.txt => lista6/consultas_algebra_relacional/e.txt +3 -0
@@ 0,0 1,3 @@
T1 <- pecas LEFT OUTER JOIN (pecas.p_id = catalogo.p_id) catalogo
T2 <- T1 LEFT OUTER JOIN (T1.f_id = fornecedores.f_id) fornecedores
T3 <- π(nome, cor, f_nome, preco) (T2)

A lista6/consultas_algebra_relacional/f.txt => lista6/consultas_algebra_relacional/f.txt +3 -0
@@ 0,0 1,3 @@
T1 <- π(p_id) (pecas)
T2 <- π(f_nome, endereco, p_id) (fornecedores ⋈ (fornecedores.f_id = catalogo.f_id) catalogo)
T3 <- T1 % T2

A lista6/consultas_algebra_relacional/g.txt => lista6/consultas_algebra_relacional/g.txt +6 -0
@@ 0,0 1,6 @@
T1 <- π(p_id) (σ(cor='vermelho') (pecas))
T2 <- π(p_id) (σ(cor='verde') (pecas))
T3 <- π(f_id, p_id) (fornecedores*catalogo)
T4 <- T3 % T1
T5 <- T3 % T2
T6 = T4 UNION T5

R lista6/ex-1a.sql => lista6/consultas_sql/a.sql +1 -1
@@ 1,4 1,4 @@
SELECT DISTINCT f_nome, cor
SELECT DISTINCT f_nome
    FROM fornecedores
    NATURAL JOIN catalogo
    NATURAL JOIN pecas

R lista6/ex-1b.sql => lista6/consultas_sql/b.sql +0 -0
A lista6/consultas_sql/c.sql => lista6/consultas_sql/c.sql +10 -0
@@ 0,0 1,10 @@
(SELECT f_nome FROM fornecedores
    NATURAL JOIN catalogo
    NATURAL JOIN pecas
    WHERE cor = 'vermelho')
INTERSECT
(SELECT f_nome FROM fornecedores
    NATURAL JOIN catalogo
    NATURAL JOIN pecas
    WHERE cor = 'verde'
);

A lista6/consultas_sql/d.sql => lista6/consultas_sql/d.sql +13 -0
@@ 0,0 1,13 @@
SELECT * FROM
    (SELECT p_id, f_id, preco
        FROM fornecedores
        NATURAL JOIN catalogo
    ) p1,
    (SELECT p_id, f_id, preco
        FROM fornecedores
        NATURAL JOIN catalogo
    ) p2
    WHERE
        p1.f_id != p2.f_id AND
        p1.preco > p2.preco AND
        p1.p_id = p2.p_id;

A lista6/consultas_sql/e.sql => lista6/consultas_sql/e.sql +3 -0
@@ 0,0 1,3 @@
SELECT p_nome, cor, f_nome, preco FROM pecas
    NATURAL LEFT OUTER JOIN catalogo
    NATURAL LEFT OUTER JOIN fornecedores;

R lista6/ex-1i.sql => lista6/consultas_sql/i.sql +0 -0
R lista6/ex-1j.sql => lista6/consultas_sql/j.sql +0 -0
R lista6/ex-1k.sql => lista6/consultas_sql/k.sql +0 -0
R lista6/ex-1l.sql => lista6/consultas_sql/l.sql +0 -0
A lista6/sqls.yml => lista6/sqls.yml +5 -0
@@ 0,0 1,5 @@
connections:
  - driver: postgresql
    proto: unix
    path: /run/postgresql
    user: misterio