Employee 和 Department 的基数是多少?

What would be the cardinality of Employee and Department?

A company database needs to store information about employees (identified by ssn, with salary and phone as attributes),

departments (identified by dno, with dname and budget as attributes), and children of employees (with name and age as attributes).

Employees work in departments; each department is managed by an employee;

a child must be identified uniquely by name when the parent (who is an employee; assume that only one parent works for the company) is known.

We are not interested in information about a child once the parent leaves the company.

Draw an ER diagram that captures this information.

我在这里使用 "Look Across" 最小-最大表示法。

Employee 和 Department 之间的基数是否正确?

例如,一个部门是否有可能有零名员工?或者,这是相关信息吗?

如果一个部门必须有一名经理,并且该经理是通过关系为该部门工作的,那么该部门必须至少有 1 名员工。

一个员工理论上可以(我假设)管理一个以上的部门,一个部门也可以(假设)由一个以上的员工管理。

所以我是这样看的

Employee *-* Department   (many to many relationship)

或者用你的话来说

Employee  1-N  Works In    1-N  Department
Employee  1-N  Managed By  1-N  Department

你的答案是正确的,并且与我拥有的两个不同文本中这个常见示例的教师密钥匹配。

其他想法

不幸的是,大多数教科书对现实的反映很差,因为它们使事情变得琐碎,但在向学生介绍复杂主题(例如在数据库中建模现实)时,这被认为是必要的。

这说明了从 English-language 叙述中创建 ERD 的问题,但是这种叙述可能含糊不清且易于解释。如果你指出这一点,你的导师可能会加分。实际上,员工为多个部门工作(我确实如此)和经理管理多个部门(我的确实如此)的情况并不少见。与客户合作时,最好也用物理数据模型(表和行)或实际用户界面(数据输入表单)来表达更模糊的设计,以便他们确定他们得到的是什么。

您的基数对于案例员工在部门工作不正确。由于一个员工可以在 0 个或多个部门工作。这里,基数应该如下:

员工 (0,n) - 在 (0,n) 个部门工作。

而在另一个案例中,部门必须有一名员工与之关联。 员工管理的案例部门的基数在您的案例中是正确的。