3

私は次のテーブルを持っています:

Employee
|name|employee_cod|

Project
|name|project_cod|

Work
|employee_cod|project_cod|

では、たとえば project_cod = 1 のプロジェクトで関係代数を使用して、働いていない従業員の名前を一覧表示するにはどうすればよいでしょうか。

以下は機能しません:

π(employee.name(σ work.project_cod != 1 (Employee ∞ Work ∞ Project)

作業テーブルに次のデータがある場合:

| employee_cod | project_cod |
-------1--------------1-------
-------1--------------2-------
-------1--------------3-------
-------2--------------2-------

これσ work.project_cod != 1により、次のようになります。

| employee_cod | project_cod |
-------1--------------2-------
-------1--------------3-------
-------2--------------2-------

しかし、コード = 1 の従業員は、プロジェクト 1 に参加しているため、返されるべきではありません。

4

2 に答える 2

3

最初に、プロジェクトに従事するすべての従業員を検索します。そうでないものは、関係差分 (マイナス) 演算子によって生成されます。

于 2012-10-22T17:21:33.430 に答える
2

てぎりさん、ヒントありがとうございます。
解決策は次のとおりです。

π name (Employee) - ( π name (σ project_cod = 1 (Employee ∞ Work)))
于 2012-10-23T05:01:26.337 に答える