zoukankan      html  css  js  c++  java
  • 数据库完整性

      数据库完整性(database integrity)是指数据库中数据的正确性和相容性。数据库完整性由各种各样www.8tt t8. com的完整性约束来保证,因此www.8 t tt8. comwww.ssbbww.com说数据库完整性设计www.8ttt8.com数据库完整性约束的设计。数据库完整性约束www.ssbbww.com通过dbms或应用程序来实现,基于dbms的完整性约束dddtt模式的一部分存入数据库中。通过dbms实现的数据库完整性按照8ttt8数据库设计步骤进行设计,而由应用软件实现的数据库完整性则纳入应用软件设计(本文主要讨论前者)。数据库完整性对于dddtt.c o m数据库应用系统非常关键,其作用主要体现ssbbww在dd dtt. com以下几个方面www.ssbbww.com:

      1.数据库完整性约束SSBBww防止合法用户使用数据库时向数据库中添加不合语义的数据。

      2.利用www.8 t t t8. com基于dbms的完整性控制机制来实现业务规则,易于定义,Dddtt理解,而且www.ssbbww.com降低应用程序的www.dDdtt.com性,提高应用程序的运行效率。ssbbww. com,基于dbms的完整性控制机制是集中管理的,因此www.8 t tt8. com比应用程序更Dddtt实现数据库的完整性。

      3.合理的数据库完整性设计,SSBBwwssbbww. com兼顾数据库的完整性和系统的效能。比如ssbbww装载大量数据时,只要在装载之前临时使基于dbms的数据库完整性约束失效,此后再使其生效,就能保证既不影响数据装载的效率又能保证数据库的完整性。

      4.在应用软件的功能测试中,完善的数据库完整性有助于尽早发现应用软件的错误。

      数据库完整性约束可分为6类:列级静态约束、元组级静态约束、关系级静态约束、列级动态约束、元组级动态约束、关系级动态约束。动态约束通常由应用软件来实现。不同dbms支持的数据库完整性基本dddTt.com,oracle支持的基于dbms的完整性约束如下表所示ssbbww:

      数据库完整性设计示例

      一个好的数据库完整性设计首先需要ssbbww.com在需求分析阶段确定要通过数据库完整性约束实现的业务规则,8ttt8.com在充分了解特定dbms提供的完整性控制机制的基础上,依据整个系统的体系结构和性能dDdtt,遵照数据库设计方法和应用软件设计方法,合理选择每个业务规则的实现方式;最后,认真测试,排除隐含的约束冲突和性能问题。基于dbms的数据库完整性设计大体分为以下几个阶段:

      1.需求分析阶段

      经过ssbbww系统分析员、数据库分析员、用户的共同努力,确定系统模型中应该包含的对象,如人事及工资管理系统中的部门、员工、经理等,以及各种业务规则。

      在完成寻找业务规则的工作之后,确定要dddtt数据库完整性的业务规则,并对业务规则进行分类。其中dddtt数据库模式一部分的完整性设计按8ttt8的过程进行。而由应用软件来实现的数据库完整性设计将按照8ttt8软件工程的方法进行。

      2.概念结构设计阶段

      概念结构设计阶段是将依据需求分析的结果转换成一个独立于具体dbms的概念模型,即实体关系图(erd)。在概念结构设计阶段就要开始数据库完整性设计的实质阶段,8 Tt t 8. com此阶段的实体关系将在逻辑结构设计阶段转化为实体完整性约束和参照完整性约束,到逻辑结构设计阶段将完成设计的主要工作。

      3.逻辑结构设计阶段

      此阶段www.8ttt8.com将概念结构转换为某个dbms所支持的数据模型,并对其进行优化,www .ddd tt. com对关系模型的规范化。www.8ttt8.Com,依据dbms提供的完整性约束机制,对尚未加入逻辑结构中的完整性约束列表,逐条选择合适的方式加以实现。

      在逻辑结构设计阶段结束时,dddtt数据库模式一部分的完整性设计也就基本完成了。每种业务规则都可能www.ssbbww.com有好几种实现方式,应该选择对数据库性能影响最小的一种,有时需通过实际8ttt8测试来决定。

      数据库完整性设计原则

      在实施数据库完整性设计的时候,有8 tt t8.com基本的原则需要ssbbww.com把握:

      1.根据数据库完整性约束的类型确定其实8ttt8.com现的系统层次和方式,并提前考虑对系统性能的影响。ssbbww.com8 tt t 8. com下,静态约束应尽量包含在数据库模式中,而动态约束由应用程序实现。

      2.实体完整性约束、参照完整性约束是关系数据库最www.8ttt8.com的完整性约束,在不影响系统关键性能的前提下需尽量应用。用www.8ttt8.com的时间和空间来换取系统的易用性是值得的。

      3.要慎用目前主流dbms都支持的触发器功能,一方面www.ssbbww.comwww.ddd tt. com触发器的性能开销较大,另一方面www.ssbbww.com,触发器的多级触发不好控制,Dddtt发生错误,非用不可时,最好使用before型语句级触发器。

      4.在需求分析阶段就必须ssbbww. c om制定完整性约束的命名规范,尽量使用有意义的英文单词、缩写词、表名、列名及下划线等组合,使其易于识别和记忆,如:ckc_emp_real_income_employee、pk_employee、ckt_employee。8 tt t8.com使用case工具,ssbbww.com有缺省的规则,可在此基础上修改使用。

      5.要根据业务规则对数据库完整性进行细致的测试,以尽早排除隐含的完整性约束间的冲突和对性能的影响。

      6.要有专职的数据库设计小组,自始至终负责数据库的分析、设计、测试、实施及早期维护。数据库设计人员不仅负责基于dbms的数据库完整性约束的设计实现,还要负责对应用软件实现的数据库完整性约束进行审核。

      7.应采用合适的case工具来降低数据库设计各阶段的工作量。好的case工具SSBBww支持整个数据库的生命周期,这将使数据库设计人员的工作效率得到很大提高,ssbbww. com也Dddtt与用户沟通。

  • 相关阅读:
    centos7下部署iptables环境纪录(关闭默认的firewalle)
    JVM性能调优2:JVM性能调优参数整理
    增加swap分区,文件形式
    常用nginx rewrite重定向-跳转实例:
    nginx反向代理解决跨域
    Python,Jupyter Notebook,IPython快速安装教程
    Python之NumPy实践之数组和矢量计算
    Python之IPython开发实践
    技术应用涉及到的四个方面的问题
    Python Base of Scientific Stack(Python基础之科学栈)
  • 原文地址:https://www.cnblogs.com/lzhdim/p/1360585.html
Copyright © 2011-2022 走看看