精华内容
下载资源
问答
  • 数据冗余是数据库中存在一些重复的数据,数据完整性数据库中的数据能够正确反应实际情况,我们说,为了性能着想,数据库中允许有一些数据冗余,但是要保持数据的完整性。 数据完整性=可靠性+准确性,这里我们...

    我们在学习数据库的过程中,经常会听到两个概念:数据冗余和数据完整性。数据冗余是指数据库中存在一些重复的数据,数据完整性是指数据库中的数据能够正确反应实际情况,我们说,为了性能着想,数据库中允许有一些数据冗余,但是要保持数据的完整性。

    数据完整性=可靠性+准确性,这里我们要清楚以下几点:

    • 数据存放在表中

    • 数据完整性的问题大多是由于设计引起的

    • 创建表的时候,就应当保证以后数据输入是正确的,加约束

       ——错误的数据、不符合要求的数据不允许输入
    

    保证数据的完整性 = 实施完整性约束

    完整性包括

    1.  实体完整性
      

    数据行不能存在重复

    1.  域完整性
      

    实现了对输入到特定列的数值的限制

    1.  引用完整性
      

    要求子表中的相关项必须在主表中存在
    如果建立了主表和子表的关系,则:
    子表中的相关项目的数据,在主表中必须存在;
    主表中相关项的数据更改了,则子表对应的数据项也应当随之更改;
    在删除子表之前,不能够删除主表;

    1.  自定义完整性
      

    实际上,SQL Server创建表的过程是规定数据列的属性的过程,同时也是实施数据完整性(包括实体完整性、引用完整性和域完整性等)保证的过程。创建表包括选择字段名称、数据类型、定义是否为空、设置默认值、主键和外键关系、检查约束等。表中没有合适的列作为主键,可以创建标识列。

    SQL Server中存在五种约束:

    • 约束的目的:确保表中数据的完整型

    • 常用的约束类型:

    主键约束(Primary Key Constraint):要求主键列数据唯一,并且不允许为空

    唯一约束(Unique Constraint):要求该列唯一,允许为空,但只能出现一个空值。

    检查约束(Check Constraint):某列取值范围限制、格式限制等,如有关年龄的约束

    默认约束(Default Constraint):某列的默认值,如我们的男性学员较多,性别默认为“男”

    外键约束(Foreign Key Constraint):用于两表间建立关系,需要指定引用主表的那列

    添加约束的语法:

    ALTER TABLE 表名 ADD CONSTRAINT 约束名 约束类型 具体的约束说明

    • 约束名的取名规则推荐采用:约束类型_约束字段

    • 主键(Primary Key)约束:如 PK_stuNo

    • 唯一(Unique Key)约束:如 UQ_stuID

    • 默认(Default Key)约束:如 DF_stuAddress

    • 检查(Check Key)约束:如 CK_stuAge

    • 外键(Foreign Key)约束:如 FK_stuNo

    下面我们来给前面建立的学员信息表stuInfo添加约束:

    添加主键约束(stuNo作为主键)

    ALTER TABLE stuInfo ADD CONSTRAINT PK_stuNo PRIMARY KEY (stuNo)

    添加唯一约束(因为每人的身份证号全国唯一)

    ALTER TABLE stuInfo ADD CONSTRAINT UQ_stuID UNIQUE (stuID)

    添加默认约束(如果地址不填,默认为“地址不详”)

    ALTER TABLE stuInfo ADD CONSTRAINT DF_stuAddress DEFAULT (‘地址不详’) FOR stuAddress

    添加检查check约束,要求年龄只能在15-40岁之间

    ALTER TABLE stuInfo ADD CONSTRAINT CK_stuAge CHECK(stuAge BETWEEN 15 AND 40)

    添加外键约束(主表stuInfo和从表stuMarks建立关系,关联字段为stuNo)

    ALTER TABLE stuMarks ADD CONSTRAINT FK_stuNo FOREIGN KEY(stuNo) REFERENCES stuInfo(stuNo)

    GO

    如果错误地添加了约束,我们还可以删除约束

    删除约束的语法

    ALTER TABLE 表名 DROP CONSTRAINT 约束名

    例如:删除stuInfo表中地址默认约束

    ALTER TABLE stuInfo DROP CONSTRAINT DF_stuAddress

    展开全文
  • 数据库完整性

    千次阅读 2012-12-28 21:19:03
    1.数据库的完整性概念与数据库的安全性概念有什么区别和联系?  答:数据的完整性和安全性是两个不同的概念,但是有一定的联系。  前者是为了防止数据库中存在不符合语义的数据,防止错误信息的输入和输出,即...

    1.数据库的完整性概念与数据库的安全性概念有什么区别和联系?

      答:数据的完整性和安全性是两个不同的概念,但是有一定的联系。

      前者是为了防止数据库中存在不符合语义的数据,防止错误信息的输入和输出,即所谓垃圾进垃圾出(Garbage In Garbage Out)所造成的无效操作和错误结果。

      后者是保护数据库防止恶意的破坏和非法的存取。

      也就是说,安全性措施的防范对象是非法用户和非法操作,完整性措施的防范对象是不合语义的数据。

      

      2.什么是数据库的完整性约束条件?可分为哪几类?

      答:完整性约束条件是指数据库中的数据应该满足的语义约束条件。

       一般可以分为六类:

      静态列级约束、静态元组约束、静态关系约束、动态列级约束、动态元组约束、动态关系约束。
       

      3. 假设有下面两个关系模式:

       职工(职工号,姓名,年龄,职务,工资,部门号),其中职工号为主码;

       部门(部门号,名称,经理名,电话),其中部门号为主码;

      用SQL语言定义这两个关系模式,要求在模式中完成以下完整性约束条件的定义:

      定义每个模式的主码;定义参照完整性;定义职工年龄不得超过60岁。

      答

       CREATE TABLE DEPT

       (Deptno NUMBER(2),

       Deptname VARCHAR(10),

       Manager VARCHAR(10),

       PhoneNumber Char(12)

       CONSTRAINT PK_SC PRIMARY KEY (Deptno));

       CREATE TABLE EMP

       (Empno NUMBER(4),

       Ename VARCHAR(10),

       Age NUMBER(2),

       CONSTRAINT C1 CHECK (Age《=60),

       Job VARCHAR(9),

       Sal NUMBER(7,2),

       Deptno NUMBER(2),

       CONSTRAINT FK_DEPTNO

       FOREIGN KEY (Deptno)

       REFERENCES DEPT(Deptno));

      

      4.关系系统中,当操作违反实体完整性、参照完整性和用户定义的完整性约束条件时,一般是如何分别进行处理的?

      答:

      对于违反实体完整性和用户定义的完整性的操作一般都采用拒绝执行的方式进行处理。而对于违反参照完整性的操作,并不都是简单地拒绝执行,有时要根据应用语义执行一些附加的操作,以保证数据库的正确性。

     

    展开全文
  • 数据库完整性对数据库的一致性和准确性强制数据完整性可靠性保证

              数据库完整性是指对数据库的一致性和准确性强制数据完整性可靠性保证数据库中数据的质量。

    ---------------------数据库完整性分类

           数据完整性一般分为域完整性,实体完整性参照完整性用户自定义完整性

           1,域完整性

           域完整性指列数据输入的有效性,又称列完整性,通过CHECK约束、DEFALUT约束、NOT NULL约束、数据类型和规则等实现域完整性。
          CHECK约束通过显示输入到列中的值来实现域完整性。

          例如:对于stsc数据库score表,grade规定为0分到100分之间,可用CHECK约束表示。

          2,实体完整性

          实体完整性要求表中有一个主键,其值不能为空且能唯一地标识对应的记录,又称为行完整性,通过PRIMARY KEY 约束、UNIQUE约束、索引或IDENTITY 属性等实现数据的实体完整性。
         例如,对于stsc数据库中student表,stno列作为主键,每一个学生的stno列能唯一地标识该学生对应的行记录信息,通过stno列建立主键约束实现student表的实体完整性。

          3,参照完整性

          参照完整性保证主表中的数据与从表中数据的一致性,又称为引用完整性,在SQL Server 2008中,通过定义主键(主码)与外键(外码)之间的对应关系实现参照完整性,参照完整性确保键值在所有表中一致。
          主键:表中能唯一标识每个数据行的一个或多个列。

          外键:一个表中的一个或多个列的组合是另一个表的主键。

         4,用户自定义完整性

           用户自定义完整性不属于其他任何完整性类别的特定业务规则,所有完整性类别都支持用户定义完整性,包括CREATE TABLE 中所有的列级约束和表级约束,存储过程和触发器。

    -------------------------域完整性

          1,check约束

                  CHECK约束用于对输入列或者整个表中的值设置检查条件,以限制输入值,从而保证数据库的完整性。

                 A, 使用T-SQL 语句在创建表时创建CHECK约束。

                  语法格式如下:

    CREATE TABLE table_name      		 /*指定表名*/
    (column_name  datatype
         {
            NOT NULL | NULL 			 /*指定为空性*/
            | [ DEFAULT co nstraint_expression ]        /*指定默认值
            | [ CONSTRAINT constraint_name ] CHECK ( logical_expression )]	
      				               /*CHECK约束表达式*/
           }[,…n]
           [ CONSTRAINT constraint_name ] CHECK ( logical_expression )][,	
    ) 
    
            其中,关键字 CHECK表示 CHECK约束。 logial_expressionCHECK约束表达式。

           例如:在stsc数据库中创建表goods,包含有关域完整性的定义。

    USE stsc
    CREATE TABLE goods 
    (
         gid int NOT NULL,                                                               /*商品号*/
         gname varchar(100) NOT NULL,                                         /*商品名*/
      gprice float NOT NULL CHECK(gprice<=500),                 /*价格*/
      gclass varchar(60) DEFAULT 'articles of everyday use',     /*类型*/
      gamount int NOT NULL,                                                      /*数量*/
      gdate date NULL,                                                                  /*上架日期*/
         trade_price float NOT NULL                                                /*批发价格*/  
    ) 
    
            注意:如果在指定的一个月书中涉及多个列,则该约束必须定义为表的约束。

               B,使用 T-SQL 语句在修改表时创建 CHECK约束

                使用ALTER TABLE 的ADD 子句在修改表时创建CHECK约束,其语法格式如下:

    ALTER TABLE table_name     
      ADD [<column_definition>]
        [CONSTRAINT constraint_name] CHECK (logical_expression)
    
            例如: 通过修改stsc数据库的goods表,增加批发价格列的 CHECK约束。
    USE stsc
    ALTER TABLE goods 
    ADD CONSTRAINT CK_trade_price CHECK(trade_price<=500)
    
            C,使用 T-SQL语句删除 CHECK约束

             使用  ALTER TABLE 语句的 DROP 子句删除CHECK约束。其语法格式如下:

     ALTER TABLE table_name     
        DROP CONSTRAINT check_name  
    
          例如:删除stsc数据库的goods表批发价格列的 CHECK约束
    USE stsc
    ALTER TABLE goods  
    DROP CONSTRAINT CK_trade_price
    

           2,DEFAULT约束

                DEFALUT约束通过定义列的默认值或使用数据库的默认值对象绑定表的列,当没有为某列指定数据时,自动指定列的值。在创建表时,可以创建 DEFAULT约束作为表定义的一部分。如果某个表已经存在,则可以为其添加 DEFAULT约束,表中的每一列都可以包含一个 DEFAULT约束。
               默认值可以是常量,也可以是表达式,还可以为NULL值。
               创建表时创建 DEFALUT约束的语法格式如下:
    [CONSTRAINT constraint_name]
    DEFAULT constant_expression [FOR column_name] 
          例如:在stsc数据库中创建st表时建立 DEFALUT约束。
    USE stsc
    CREATE TABLE st 
    (
      stno char(4) NOT NULL PRIMARY KEY,  
         stname char(8) NOT NULL,
      stsex char(2) NOT NULL DEFAULT '男',            /* 定义stsex列DEFALUT约束值为'男' */
      stbirthday date NOT NULL,
      specialist char(12) NULL DEFAULT '计算机',     /* 定义specialist列DEFALUT约束值为'计算机' */
      tc int NULL
    )
    GO
    
                      

    展开全文
  • 数据完整性

    千次阅读 2018-11-15 13:46:37
    完整性用来确保信息没有被修改,也可以防止假冒的信息。 一个印刷在书面上的文件,要想通过修改其上面的文字或者数字来破坏其完整性是不容易的,你可以涂抹文件上面的文字,但可能很容易就被发现了。相对于现实世界...

    #简介
    完整性用来确保信息没有被修改,也可以防止假冒的信息。
    一个印刷在书面上的文件,要想通过修改其上面的文字或者数字来破坏其完整性是不容易的,你可以涂抹文件上面的文字,但可能很容易就被发现了。相对于现实世界而言,存储在计算机中的数字信息的完整性受到破坏的风险就大大增加了。一个存储在计算机中重要的文本文件,可能被其他人恶意修改了其中一个重要的数字而你没有发现就发出去了,甚至可能整个文件都给替换了而你没有再看一眼就发出去了,后果可想而知。在网络传输中,完整性面临的风险就更大,这种风险有两种,一种是恶意攻击,一种是偶尔的事故,恶意攻击者可以监听并截获你的信息包,然后修改或替换其中的信息,再发给接收方,这样能够不知不觉地达到其目的。网络是一个物理设备,虽然其出错的可能性极低,但还是有可能发生的,如果你在给某个商家转账的过程中其中的付款数字在网络传输时发生了错误而没有发现,后果是严重的。
    目前完整性的解决方案主要是基于单向散列函数和加密算法。单向散列函数能够将一个大的文件映射成一段小的信息码并且不同文件散列成相同信息的概率极低。通常我们将会将原始信息使用单向散列函数处理得到一段信息码,然后将其加密,跟文件一起保存。如果有人更改了文件,那么当我们再次使用该文件时,先使用同样的单向散列函数得到信息码,然后用自己的密钥解密原来生成的信息码跟新得到的信息码对比,那么就会发现不一样,就可以发现文件已经被修改。
    单向散列函数(one-way hash function)有一个输入和一个输出,其中输入称为消息(message),输出称为散列值(hash value),单向散列函数也称为消息摘要函数,哈希函数,或者杂凑函数。
    说明:

    • 这里的消息不一定是人类能够读懂的文字,也可以是图像文件或者声音文件。单向散列函数不需要知道消息实际代表的含义,无论任何消息,单向散列函数都会将它作为单纯的比特序列来处理。
    • 散列值的长度和消息的长度无关。无论消息是1比特,还是100MB,甚至100GB,单向散列函数都会计算出固定长度的散列值。

    #单向散列函数的性质

    • 根据任意长度的消息计算出固定长度的散列值

    首先,单向散列函数的输入必须能够是任意长度的消息。其次,无论输入多长的消息,单向散列函数必须能够生成长度很短的散列值,如果消息越长生成的散列值也越长的话使用就不是很方便了,从使用方便的角度来看,散列值的长度最好是短且固定的。

    • 能够快速计算出散列值

    计算散列值所花费的时间必须要短。尽管消息越长,计算散列值的时间也会越长,但是如果不能在现实的时间内完成计算就没有意义了。

    • 消息不同散列值也不同

    如果单向散列函数计算出的散列值没有发生变化,那么消息很容易就会被篡改,这个单向散列函数也就无法被用于完整性检查。两个不同的消息产生同一个散列值的情况称为碰撞。理论上单向散列函数的碰撞概率应该为0,但是实际上不存在这种单向散列函数。

    • 具备单向性

    单向性指的是无法通过散列值反算出消息,但是根据消息计算散列值可以很容易。
    这里写图片描述
    #单向散列函数的实际应用

    • 检测软件是否被篡改
    • 基于口令加密
    • 消息认证码
    • 数字签名
    • 伪随机数生成器
    • 一次性口令

    #单向散列函数具体实例

    • MD4,MD5是由Rivest分别与1990年,1991年设计的单向散列函数,能够产生128比特的散列值。
    • SHA-1是由美国国家标准技术研究所设计的一个能够产生160比特的散列值的单向散列函数。
    • SHA-2系列单向散列函数:SHA-256,SHA224, SHA-384,SHA-512。

    #单向散列函数的缺点
    单向散列函数能够辨别出篡改,但是无法辨别出真伪。
    例如:假设攻击者A伪装成B,向C同时发送了消息和散列值,这时C能够通过单向散列函数检查消息的完整性,但是这只是对A发送的消息进行检查,而无法确定这条消息是否真的是B发送的。

    学院Go语言视频主页
    https://edu.csdn.net/lecturer/1928

    清华团队带你实战区块链开发
    扫码获取海量视频及源码 QQ群:721929980
    在这里插入图片描述

    展开全文
  • 参照完整性

    千次阅读 2019-04-10 20:52:17
    – 参照完整性多表之间的设计,主要使用外键约束。 – 多表设计有:一对多,多对多,一对一。 – 1、一对多 – 客户和订单的,一个客户可以有多张订单,一张订单属于一个客户。 CREATE TABLE customers( id int,...
  • MSSQL之七 数据完整性

    千次阅读 2016-05-17 19:09:49
    信息的质量是指信息的准确性、完整性、一致性等。在许多数据库应用系统中,数据质量的高低往往是导致系统成功与否的重要因素。数据完整性是保证数据质量的一种重要方法,是现代数据库系统的一个重要特征。 Microsoft...
  • 数据库完整性5.1 实体完整性5.1.1 实体完整性定义5.1.2 实体完整性检查和违约处理5.2 参照完整性5.2.1 参照完整性定义5.2.2 参照完整性检查和违约处理小结5.3 用户定义的完整性5.3.1 属性上的约束条件不允许取空值列...
  • 数据完整性以及保证数据完整性

    千次阅读 2012-10-28 13:55:12
    数据库中的数据是从外界输入的...数据完整性(Data Integrity)是数据的精确性(Accuracy) 和可靠性(Reliability)。它是应防止数据库中存在不符合语义规定的数据和防止因错误信息的输入输出造成无效操作或错误信息
  • 数据库中的数据完整性约束

    万次阅读 多人点赞 2018-06-14 18:43:33
    这篇文章讲的是数据库中的数据完整性约束,如有错误或不当之处,还望各位大神批评指正。 什么是数据完整性约束? 数据完整性:存储在数据库中的所有数据值均正确的状态。...准确地说,实体完整性关...
  • 信号完整性与电源完整性的详细分析

    千次阅读 多人点赞 2018-10-14 18:23:28
    最近在论坛里看到一则关于电源完整性的提问,网友质疑大家普遍对信号完整性很重视,但对于电源完整性的重视好像不够,主要是因为,对于低频应用,开关电源的设计更多靠的是经验,或者功能级仿真来辅助即可,电源完整...
  • sql server 2008 数据库的完整性约束

    千次阅读 2015-11-14 14:02:34
    ①数据库的完整性数据的正确性和相容性 ②数据库完整性是防止不合语义或不正确的数据进入数据库 ③完整性体现了是否真实地反映现实世界   例:  学生的年龄必须是整数,取值范围为14-29; ...
  • SQL 完整性约束

    千次阅读 2018-10-21 22:32:57
    完整性约束 1.掌握约束的主要作用; 2.掌握5中约束的使用形式; 3.理解约束的修改操作; 4.可以同坐数据字典表查看约束信息完整性约束是保证用户对数据库所做的修改不会破坏数据的一致性,是保护数据正确性和相容...
  • 保证数据完整性

    千次阅读 2016-01-04 18:51:52
    数据库能防止存储垃圾数据,而我们所使用的RDBMS实现该功能主要是通过维护数据完整性来实现。那么,根据数据完整性实施的方法,我们可以分为哪几类呢? 实体完整性,在某种意义上,实体...域完整性,是给定列的输入
  • 完整性约束

    万次阅读 2016-11-15 21:43:28
    数据完整性简介业务规则会指定一些条件和关系,它们要么必须始终为真,要么必须始终为假。例如,每个公司会定义其有关工资、 雇员人数、 库存跟踪,等方面的政策。保持数据的数据完整性很重要,它由数据库管理员或...
  • 维护数据完整性

    千次阅读 2012-08-22 20:14:38
    数据的完整性,是存储在数据库中的数据的正确性和可靠性,它是衡量数据中数据质量的一种标准。数据完整性可以分为四类。 1、实体完整性,实体完整性的目的是确保数据库中所有实体的唯一性,也就是不应出现...
  • 通信安全的特性或者说是分类有以下三个主要类别:保密性,完整性,端点认证 保密性  大多数人认为安全就是考虑保密性。保密性的意思就是对无关的听众保密,通常听众是窃听者。当政府监听你的电话就会对你的保密性...
  • 数据库数据完整性的6个约束

    千次阅读 2019-03-23 00:05:45
    数据库数据完整性default约束check约束null约束unique约束primary key约束foreign key约束总结 前言:数据完整性是指存储在数据库中数据的... 域完整性 :域完整性指特定列的项的有效性(default、check、null) ...
  • 实验三 数据库的安全性和完整性控制 实验教室 913 实验日期 2018年10月22日 学 号 2016214220 姓 名 ** 专.....
  • MySQL数据完整性约束

    千次阅读 2019-01-09 18:29:22
    数据完整性数据的正确性和相容性,是为了防止数据库中存在不符合语义的数据,即防止数据库中存在不正确的数据。在MySQL中提供了多种完整性约束。 1、主键约束 主键可以是表中的某一列,也可以是表中的多个列所...
  • 数据库一致性、完整性

    万次阅读 2016-11-20 13:09:44
    来源: http://www.zybang.com/question/e23cf724ee5a0d00d2cba4f9ccb2d23b.html ... ...数据完整性(data integrity)是  数据的精确性(accuracy) 和可靠性(reliability)。它是应防
  • 信号完整性(Signal Integrity, SI)是信号在信号线上的质量,即信号在电路中以正确的时序和电压作出响应的能力。如果电路中信号能够以要求的时序、持续时间和电压幅度到达接收器,则可确定该电路具有较好的信号...
  • Windows 公共组件的完整性

    千次阅读 2018-11-27 21:21:50
    Windows 公共组件的完整性 今天和大家简单讨论一下 Windows 公共组件的完整性。所谓公共组件,的是独立的、被其它应用程序引用的 PE 文件(程序集,DLL 或 EXE);所谓完整性,即除了实现功能方面的需求外,还需...
  • 第5章 数据库完整性 数据库的完整性数据的正确性和相容性
  • 数据库的完整性数据的正确性和相容性。 2.数据库的完整性概念与数据库的安全性概念有什么区别和联系? 数据的完整性和安全性是两个不同的概念,但是有一定的联系。前者是为了防止数据库中存在不符合语义的数据,...
  • DB数据完整性和一致性

    千次阅读 2012-10-23 11:24:28
    DB数据完整性和一致性 1.  数据完整性  数据库中的数据是从外界输入的,而数据的输入由于种种原因... 数据完整性分为四类:实体完整性(Entity Integrity)、域完整性(Domain Integrity)、参照完整性(Referen
  • 完整性 普通测试用例,考虑全面,比如把字符串转化为整数的例子,考虑正数,0,负数,充分发散思维,比如求最大的n位数,考虑int溢出,long溢出,以及表示大数,用数组还是字符串 边界值的测试用例,递归和循环的...
  • 数据的完整性概述

    千次阅读 2010-10-17 16:00:00
    存储在数据库中的所有数据值均正确的状态。如果数据库中存储有不正确的数据值,则该数据库称为已丧失数据完整性。 数据库中的数据是从外界输入的,而数据... 数据完整性(Data Integrity)是数据的精确性
  • SQL Server数据完整性

    千次阅读 2008-11-15 09:40:00
    数据冗余是数据库中存在一些重复的数据,数据完整性数据库中的数据能够正确反应实际情况,我们说,为了性能着想,数据库中允许有一些数据冗余,但是要保持数据的完整性。数据完整性=可靠性+准确性,这里我们要...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 400,628
精华内容 160,251
关键字:

信息的完整性是指哪些