2.7. 综合示例¶
如何绘制 ER 图 ?按照以下几点了解如何创建 ER。
识别系统中的所有实体。
一个实体在一个特定的图中应只出现一次。
选择一种特定的符号表示法。(例如,此处使用的 Chen 符号表示法)
为所有实体创建矩形并正确命名它们。
识别实体之间的关系。使用线条连接它们,并在中间添加一个菱形来描述关系。
永远不要将关系连接到另一个关系。
为实体添加属性。赋予有意义的属性名称,以便易于理解。
移除实体之间模糊、冗余或不必要的关系。
再次,为图中的每个实体、属性和关系提供精确且恰当的名称。简单且熟悉的术语总是优于模糊的、听起来很技术化的词汇。在为实体命名时,请记住使用单数名词。然而,可以使用形容词来区分属于同一类的实体(例如兼职员工和全职员工)。同时,属性名称必须具有意义、唯一、与系统无关且易于理解。
听起来很简单,对吧? 在复杂的系统中,识别关系可能是一场 噩梦 。你只有通过练习才能掌握这一技能。
尝试按照上述步骤解决给定的实体关系图(ERD)创建示例。尝试通过应用 ERD/RDD 映射规则找到对应的关系模式。最后将你的答案与下面的解决方案进行比较,以了解其优缺点。
提示: 在尝试独自解决问题之前,不要试图查看给定的解决方案。
Company Databases 示例: 要求被过度简化以作说明之用
公司被组织为 DEPARTMENTs。每个部门都有一个唯一的名称、电话(每个部门可能有不止一个电话号码),以及一名管理该部门的员工。我们记录部门经理的入职日期。每个部门控制若干个 PROJECTs。每个项目都有一个名称、截止日期(Duedate 为完成日期)。项目可以有相同的名称,但位于不同的地点。有供应商为每个项目提供特定的零件。特定供应商为特定项目提供的每个零件的价格都应被存储。
每个 PART 都有名称,并通过其编号进行标识。供应商(SUPPLIERs)拥有 ID、名称和专长。
我们存储每位 EMPLOYEE 的社会保险号、姓名、地址、工资和出生日期。员工地址应指定城市、街道和建筑。每位员工隶属于一个部门,但可能参与多个项目。我们记录每位员工当前在每个项目上每周工作的小时数。我们还记录每位员工的直接主管。每位员工可能有多个子女。对于每位子女,我们记录其姓名、性别、年龄以及与员工的关系。
公司数据库 ERD:
公司的关系模式图:
提示: 关系模式图由下方的部分注释与分析支持,以便更好地理解。
