我自学了课本<<数据库管理系统,第3版>。在第3.5.4章中,作者谈论了翻译关系中捕获的参与约束。他展示了一个参与约束的例子,每个部门都必须有一个经理,图表在下面
然后他说第一种方法的翻译关系无法捕捉到每个部门都必须有一个管理者的约束,SQL代码在下面
translation relationship with first approach
作者进一步请求读者思考如果我们在 ssn 和做字段中添加NOT NULL约束会产生什么效果。他给出了提示:约束会阻止经理解雇,但不能确保最初为每个部门指定经理。
我的第一个问题是,即使我们在 ssn
之后放置NOT NULL,第一个翻译关系也无法捕获参与约束我的第二个是他的进一步要求。
也许这两者是相关的。谢谢你的任何建议。
答案 0 :(得分:0)
作者进一步请求读者思考如果我们会有什么影响 为ssn添加了NOT NULL约束并执行了字段
Actualy作者要求读者为3.5.3中描述的外部表“管理”进行这样的思维构建。对于“管理”这样的约束确实没有多大帮助,因为不是每个部门都可以引用经理。但是在3.5.4中描述的表“Dept_Mgr”中,我们构建了一个指向管理器的链接到一个部门实体本身,并且阻止它为null工作就好了。