时间:2021-07-01 10:21:17 帮助过:23人阅读
数据库完整性的作用 数据库完整性对于数据库应用系统非常关键,其作用主要体现在以下几个方面: 1 .数据库完整性约束能够防止合法用户使用数据库时向数据库中添加不合语义的数据。 2机制来实现业务规则,易于定义,容易理解,而且可以降低应用程序的复杂性
数据库完整性的作用
数据库完整性对于数据库应用系统非常关键,其作用主要体现在以下几个方面:
1.数据库完整性约束能够防止合法用户使用数据库时向数据库中添加不合语义的数据。
2机制来实现业务规则,易于定义,容易理解,而且可以降低应用程序的复杂性,提高应用程序的运行效率。同时,基于机制是集中管理的,因此比应用程序更容易实现数据库的完整性。
3
4.在应用软件的功能测试中,完善的数据库完整性有助于尽早发现应用软件的错误。
数据库完整性约束可分为级静态约束、关系级静态约束、列级动态约束、元组级动态约束、关系级动态约束。动态约束通常由应用软件来实现。不同DBMS支持的数据库完整性基本相同。
编辑本段关系模型的完整性
关系完整性的用于保证数据库中数据的正确性。系统在进行更新、插入或删除等操作时都要检查数据的完整性,核实其约束条件,即关系模型的完整性规则。在关系模型中有四类完整性约束:实体完整性、域完整性、参照完整性和用户定义的完整性,其中实体完整性和参照完整性约束条件,称为关系的两个不变性。
1. 实体完整性
关系数据库的完整性规则是数据库设计的重要内容。绝大部分关系型数据库管理系统
(
(
2.域完整性
域完整性(
3. 参照完整性
参照完整性(Referential Integrity)属于表间规则。对于永久关系的相关表,在更新、插入或删除记录时,如果只改其一,就会影响数据的完整性。如删除父表的某记录后,子表的相应记录未删除,致使这些记录称为孤立记录。对于更新、插入或删除表间数据的完整性,统称为参照完整性。通常,在客观现实中的实体之间存在一定联系,在关系模型中实体及实体间的联系都是以关系进行描述,因此,操作时就可能存在着关系与关系间的关联和引用。
在关系数据库中,关系之间的联系是通过公共属性实现的。这个公共属性经常是一个表的主键,同时是另一个表的外键。参照完整性体现在两个方面:实现了表与表之间的联系,外键的取值必须是另一个表的主键的有效值,或是
参照完整性规则(Referential Integrity)要求:若属性组F是关系模式R1的主键,同时F也是关系模式R2的外键,则在R2的关系中,F的取值只允许两种可能:空值或等于R1关系中某个主键值。
R1R2
注意:在实际应用中,外键不一定与对应的主键同名。外键常用下划曲线标出。
4. 用户定义完整性
用户定义完整性(User-defined Integrity
编辑本段数据库完整性设计阶段
一个好的数据库完整性设计首先需要在需求分析阶段确定要通过数据库完整性约束实现的业务规则,然后在充分了解特定机制的基础上,依据整个系统的体系结构和性能要求,遵照数据库设计方法和应用软件设计方法,合理选择每个业务规则的实现方式;最后,认真测试,排除隐含的约束冲突和性能问题。基于DBMS的数据库完整性设计大体分为以下几个阶段:
1.需求分析阶段
经过系统分析员、数据库分析员、用户的共同努力,确定系统模型中应该包含的对象,如人事及工资管理系统中的部门、员工、经理等,以及各种业务规则。
在完成寻找业务规则的工作之后,确定要作为数据库完整性的业务规则,并对业务规则进行分类。其中作为数据库模式一部分的完整性设计按下面的过程进行。而由应用软件来实现的数据库完整性设计将按照软件工程的方法进行。
2.概念结构设计阶段
概念结构设计阶段是将依据需求分析的结果转换成一个独立于具体(阶段就要开始数据库完整性设计的实质阶段,因为此阶段的实体关系将在逻辑结构设计阶段转化为实体完整性约束和参照完整性约束,到逻辑结构设计阶段将完成设计的主要工作。
3.逻辑结构设计阶段
此阶段就是将概念结构转换为某个
在逻辑结构设计阶段结束时,作为数据库模式一部分的完整性设计也就基本完成了。每种业务规则都可能有好几种实现方式,应该选择对数据库性能影响最小的一种,有时需通过实际测试来决定。
编辑本段数据库完整性设计原则
在实施数据库完整性设计的时候,有一些基本的原则需要把握:
1.根据数据库完整性约束的类型确定其实现的系统层次和方式,并提前考虑对系统性能的影响。一般情况下,静态约束应尽量包含在数据库模式中,而动态约束由应用程序实现。
2.实体完整性约束、参照完整性约束是关系数据库最重要的完整性约束,在不影响系统关键性能的前提下需尽量应用。用一定的时间和空间来换取系统的易用性是值得的。
3功能,一方面由于触发器的性能开销较大,另一方面,触发器的多级触发不好控制,容易发生错误,非用不可时,最好使用Before型语句级触发器。
4
5.要根据业务规则对数据库完整性进行细致的测试,以尽早排除隐含的完整性约束间的冲突和对性能的影响。
6实现的数据库完整性约束进行审核。
7各阶段的工作量。好的人员的工作效率得到很大提高,同时也容易与用户沟通。
数据库中ER图是什么
就是表以及表之间的关系,使用工具图,其中图中拥有1;N,n:1,N:N的关系图,从而建立表与表之间的关系,例如1:N的关系为:
学生表与课程表,其中课程表引用学生表的编号,所以学生表与课程表一对多的关系;
建立数据库使用到的工具有:
world,UML, power;
表语表的关系为:
包含,关联,泛型,扩展
1. 事务的概念
为了理解
通常,事务遵循特定的规则,其称为
事务必须具有原子性(
原子性:原子性可确保要么执行所有更新,要么什么也不发生。由于事务中的原子性保障,开发人员不必编写代码来处理一个更新成功,而另一个没有成功的情况。
一致性:一致性意味着事务的结果使得系统保持一致状态。在事务启动之前,数据保持有效的状态,这与事务结束时一样。一致性还确保了事务必须使得数据库保持一致状态,那么如果事务的部分操作失败,则其他部分也必须回到原来的状态。
隔离性:多个用户可能同时访问同一个数据库。使用隔离性能够保证在事务完成之前,该事务外部不能看到事务中的数据改变。也不能访问一些中间状态,如果事务终止这些状态将不会发生。
持久性:持久性意味着即使是系统崩溃也能够保证一致性状态。如果数据库系统崩溃,则持久性必须保证已经提交的事务确实写入了数据库。
2.
事务分为本地事务和分布式事务两种类型。(
一些软件包(例如
在分布式事务环境中,不同的资源管理器需要实现可靠的提交协议,最为常见的实现是两阶段提交。在两阶段提交中,实际的提交工作分为两个阶段:第一个阶段包括为提交准备一些所需的更改。这样,资源管理器就会与事务协调器通信,告知其更新准备已经就绪,准备执行提交,但实际还不进行提交。在第二个阶段中,一旦所有资源管理器都告知事务协调器准备工作就绪,那么事务协调器将使所有参与者都了解继续工作准备好,接着执行更改。在两阶段提交中,单个或者多个数据库能够参与分布式事务。实际上,任何在;