3

この質問があります。

2 つのテーブルの場合: 1 つ目は従業員: Employee(id, roomID)2 つ目は :Room(roomID, roomName)

問題は、各部屋で何人の従業員が働いているかです。

これは SQL 言語で簡単に実行できます。

select Room.roomID, COUNT(Employee.id) as NumofEmployee
from Employee, Room
where employee.roomID = Room.roomID
group by Room.roomID

同じ質問ですが、リレーショナル代数言語で書いています。私はこの言語を知っているので、この質問は私をとても頭痛にさせますjoin selection projection difference. そのため、たとえば :group bycount.

ありがとう :)

4

1 に答える 1

4

集約およびグループ化操作は、基本的な関係代数操作から構築することはできません。COUNTこれを実行するには、独自のandGROUP BY演算子を定義する必要があります。

基本的なリレーショナル代数には、使用できる、または独自に定義することもできる拡張機能が多数提案されていますが、これを正式に行うには、数学がかなり複雑になると思います。

簡単な提案 (あまり形式張っていない) は、http://myweb.lmu.edu/dondi/share/db/relational3.pdfにあります。(セクション 3.2)

そのリンクで提案されている拡張代数を使用すると、式は次のように記述されます。

于 2013-05-31T17:38:43.180 に答える