2

次の質問を関係代数として書こうとしています。

低価格の代替製品があるすべての製品の Pnr と pname。

私が持っている関係は次のとおりです。

Product(Pnr, Pname, Price) //Product info
Substprod(Pnr, Subst-Pnr) //Product which can replace other products

SQL で実行すると、次のようになります。

SELECT p.pnr, p.pname
FROM Product p1, Substprod s, Product p2
WHERE p1.pnr = s.pnr
AND s.subst_pnr = p2.pnr
AND p1.price > p2.price

しかし、関係代数で同じ結果を得る方法がわかりません。ここでも 3 者結合を行う必要があると思いますが、特定の製品の 1 つの価格がその代替品よりも低くなければならないという条件に問題があります。

4

1 に答える 1

3

たぶんそのようなものですか?正確な構文は少しさびていますが、一般的な考え方はそこにあります。

T1 <- ρ pris = substpris (Product ⨝ Substprod)
T2 <- σ price > substprice (T1 ⨝ Product)
T3 <- π pnr,name (T2)
于 2012-10-10T13:04:50.073 に答える