所谓的数据完整性就是在数据库中只有符合公司商业规则的有效数据。
有三种方法维护数据的完整性。它们分别是:Oracle的完整性约束,数据库触发器和应用程序代码
。
如果可能的话,应该尽可能使用Oracle的完整性约束,因为它们是加在表上的而且可靠性和效率性应该都很好;而且完整性约束容易声明也容易修改,几乎不需要什么编码;而且它们在使用上很灵活,可以开启和关闭。最后所有的完整性约束的定义都记录在数据库的数据字典中。
另外,要使用完整性约束的原因是:在所谈到的3种公司商业规则的方法中,只有完整性约束是Oracle产品自带的,其他的两种都需要依赖程序员的编码,因此,程序员的水平将决定系统的可靠性,安全性和效率等。。
其次是数据库触发器,因为它们也是加在表上的。
最后才是应用程序代码,因为它们不是加在表上的。这会留下安全漏洞。应用程序代码可能是存储过程也可以是客户端程序。
究竟选用哪种方法,除了考虑数据的完整性之外还要考虑系统的效率。有时为了系统的效率可能使用客户端的程序代码,因为这样做可以减轻数据库服务器的压力。
以数据的完整性为代价换来了系统效率的提高。最后的系统设计和实现是在数据的完整性与系统效率之间达到平衡。
有三种方法维护数据的完整性。它们分别是:Oracle的完整性约束,数据库触发器和应用程序代码
。
如果可能的话,应该尽可能使用Oracle的完整性约束,因为它们是加在表上的而且可靠性和效率性应该都很好;而且完整性约束容易声明也容易修改,几乎不需要什么编码;而且它们在使用上很灵活,可以开启和关闭。最后所有的完整性约束的定义都记录在数据库的数据字典中。
另外,要使用完整性约束的原因是:在所谈到的3种公司商业规则的方法中,只有完整性约束是Oracle产品自带的,其他的两种都需要依赖程序员的编码,因此,程序员的水平将决定系统的可靠性,安全性和效率等。。
其次是数据库触发器,因为它们也是加在表上的。
最后才是应用程序代码,因为它们不是加在表上的。这会留下安全漏洞。应用程序代码可能是存储过程也可以是客户端程序。
究竟选用哪种方法,除了考虑数据的完整性之外还要考虑系统的效率。有时为了系统的效率可能使用客户端的程序代码,因为这样做可以减轻数据库服务器的压力。
以数据的完整性为代价换来了系统效率的提高。最后的系统设计和实现是在数据的完整性与系统效率之间达到平衡。