第五章学习心得
    第五章我学习了数据库的完整性,了解了数据库完整性和安全性的区别,学习了实体完整性、参照完整性和用户自定义完整性,掌握了完整性约束命名子句的方法,掌握了触发器机制和方法。

    数据库的完整性和安全性的区别在于,数据库的完整性是防止数据库中存在不符合语义的数据,也就是防止数据库中存在不正确的数据。而数据库的安全性是保护数据库防止恶意的破坏和非法的存取。

    实体完整性要求基本表的主码值唯一且不允许为空值。在SQL的create语句里,我们可以用Primary Key短语实现,而在alter语句里,我们可以用Add Primary Key短语实现。

    参照完整性为若干个表中的相应元组建立联系。在SQL的create语句里可以用Foreign Key和References短语来实现,而在alter语句里,可以用Add Foreign Key短语来实现。Foreign Key指出定义哪些列为外码,References短语指明这些外码参照哪些关系。给出Foreign Key定义的关系称为参照关系,由References指明的表称为被参照关系。

    用户自定义的完整性就是针对某一具体应用的数据必须满足的语义要求,RDBMS提供了定义和检验用户定义完整性的机制。create table时需要判断列值非空,判断列值唯一,还要检查列值是否满足一个布尔表达式。

    触发器是一种特殊的存储过程,不管什么原因造成的数据变化都可以自动响应。每条SQL语句,触发器都只执行一次,事务可用于触发器中。

    经过第五章的学习,我对数据库的完整性有了一定的了解。意识到完整性是数据库一种很重要的特性,完整性是维持数据库正常运作的重要保障。