dgcharitha Asked: 2014-04-02 18:16:00 +0800 CST2014-04-02 18:16:00 +0800 CST 2014-04-02 18:16:00 +0800 CST DBMS 中使用的覆盖约束和重叠约束有什么区别? 772 DBMS 中使用的覆盖约束和重叠约束有什么区别? constraint dbms 4 个回答 Voted Best Answer Karthik Sampath 2014-04-02T20:11:49+08:002014-04-02T20:11:49+08:00 参考下面的员工实体关系模型 重叠约束:“Karthik”(员工)可以是 Hourly_Emps 还是 Contract_Emps 实体?(允许/不允许) - 在这种情况下,小时工 karthik 不能是合同员工 - 不允许 - 这解释了重叠约束。 覆盖约束:该组织的每个员工都是小时工还是合同工?回答:是的,主员工类的所有实体都属于子类之一 - 这解释了覆盖约束。 Heli shah 2016-10-02T19:16:47+08:002016-10-02T19:16:47+08:00 重叠约束:它确定 XYZ 人是否既是 hourly_emp 又是 contract_emp?答案是否定的。他可以既是合同雇员又是高级雇员?答案是肯定的。所以我们可以写这样的东西。 'Contract_emp OVERLAPS Senior_emp' 在没有这样的声明的情况下,我们默认假设实体集被限制为没有重叠。重叠约束是允许或不允许的。 覆盖约束:我们可能想要识别参与某种关系的实体集。例如,我们要定义管理关系,以便参与者实体集是 Senior_emps 和 Departments,以确保“只有高级员工才能成为经理”。作为另一个示例,摩托艇和汽车可能具有不同的描述性属性(例如,吨位和门数),但作为机动车辆实体,它们必须获得许可。许可信息可以由 Motor Vehicles 和称为 Owners 的实体集之间的 Licensed To 关系捕获。 StackUser96 2018-03-01T04:20:24+08:002018-03-01T04:20:24+08:00 覆盖约束 确定子类中的实体是否共同包括超类中的所有实体 重叠约束 判断是否允许两个子类包含同一个类实体 请参阅:Ramakrishnan 和 Gehrke 的“数据库管理系统”。第 2 版或第 3 版。 vkamenen 2021-02-08T00:18:09+08:002021-02-08T00:18:09+08:00 重叠约束:Joe 可以同时是小时工和合同工吗?如果是,我们必须声明一个重叠约束: Hourly_emps 重叠 Contract_emps 否则,我们不必声明任何内容,因为默认情况下不重叠。 覆盖约束:每个员工实体是否也必须是Hourly_Emps 或 Contract_Emps 实体?如果是(并且仅在那时),我们声明: Hourly_emps 和 Contract_emps COVER 员工
参考下面的员工实体关系模型
重叠约束:“Karthik”(员工)可以是 Hourly_Emps 还是 Contract_Emps 实体?(允许/不允许) - 在这种情况下,小时工 karthik 不能是合同员工 - 不允许 - 这解释了重叠约束。
覆盖约束:该组织的每个员工都是小时工还是合同工?回答:是的,主员工类的所有实体都属于子类之一 - 这解释了覆盖约束。
重叠约束:它确定 XYZ 人是否既是 hourly_emp 又是 contract_emp?答案是否定的。他可以既是合同雇员又是高级雇员?答案是肯定的。所以我们可以写这样的东西。 'Contract_emp OVERLAPS Senior_emp' 在没有这样的声明的情况下,我们默认假设实体集被限制为没有重叠。重叠约束是允许或不允许的。
覆盖约束:我们可能想要识别参与某种关系的实体集。例如,我们要定义管理关系,以便参与者实体集是 Senior_emps 和 Departments,以确保“只有高级员工才能成为经理”。作为另一个示例,摩托艇和汽车可能具有不同的描述性属性(例如,吨位和门数),但作为机动车辆实体,它们必须获得许可。许可信息可以由 Motor Vehicles 和称为 Owners 的实体集之间的 Licensed To 关系捕获。
覆盖约束
确定子类中的实体是否共同包括超类中的所有实体
重叠约束
判断是否允许两个子类包含同一个类实体
请参阅:Ramakrishnan 和 Gehrke 的“数据库管理系统”。第 2 版或第 3 版。
否则,我们不必声明任何内容,因为默认情况下不重叠。
覆盖约束:每个员工实体是否也必须是Hourly_Emps 或 Contract_Emps 实体?如果是(并且仅在那时),我们声明: