【学习目标
��本章的内容与关系数据库的优化设计密切相关,课程从最基本的域约束开始,逐步深入到参照完整性、触发器、函数依赖和模式分解等。因此,本章的学习目标主要是了解数据库中的完整性约束,熟练掌握关系数据库优化设计的模式分解方法。

学习方法
��除了深刻理解完整性约束的基本概念以外,可以把不同的约束进行横向比较,以便了解完整性约束的利弊;对于模式分解要做一些练习,在实践中理解和掌握有关模式分解的概念和过程,达到学习目标。

【学习指南
��完整性约束提供了一种手段,保证当授权用户对数据库进行修改时不会破坏数据的一致性。因此,完整性约束的目的就是防止对数据的意外破坏!在前面讲过的E-R模型中,就已经提到过完整性约束:即码和联系的形态。而模式分解则是得到最优的数据库逻辑设计的关键!本章的重点是5.2节、5.4节、5.5节和5.8节,难点也是5.2节、5.4节、5.5节和5.8节,其中5.6节和5.7节的详细内容要求大家在课下自己找有关的参考书进行自学。请你仔细阅读教材的第十章"数据库完整性"和教材的第五章"关系数据理论"(链接到本课程所指定的教材的介绍)以及参考书的第6章"完整性约束"和参考书的第7章"关系数据库设计"(链接到本课程所指定的参考书的介绍)。

【预习思考题
��1、 什么是最基本的完整性约束?
��2、 check约束的主要作用是什么?
��3、 什么是参照完整性?它主要用来禁止数据库中哪种情况的发生?
��4、 参照完整性对数据库修改的影响是怎样的?
��5、 什么是断言?断言的利弊是什么?
��6、 什么是触发器?触发机制必须满足什么样的条件?
��7、 从广义上讲,约束都包括哪些内容?约束与系统性能的关系如何?你清楚DBMS中各种约束的一致性检查的顺序吗?
��8、 什么是函数依赖?它与码的关系如何?
��9、 函数依赖a?b在关系r(R)上是满足的,但在关系模式R上不一定是成立的!这句话的含义是什么?
��10、 你是如何理解范式的概念的?用通俗的话讲,1NF、2NF、3NF之间有什么区别和联系?
��11、 关系数据库的设计目标和设计方法是什么?在设计过程中,最容易犯的错误是什么?
��12、 一个有信息冗余的关系模式被不恰当地分解之后,容易产生哪些问题?
��13、 什么是无损连接分解?无损连接分解的条件是什么?
��14、 什么是规范化?规范化的主要手段是什么?
��15、 模式分解的目标是什么?