联机帮助上有详细的说明了SQL联机帮助--索引--安全性-SQL Server

解决方案 »

  1.   

    数据完整性
    强制数据完整性可确保数据库中的数据质量。例如,如果输入了 employee_id 值为 123 的职员,那么该数据库不应允许其他职员使用同一 ID 值。如果计划将 employee_rating 列的值范围设定为从 1 到 5,则数据库不应接受 6。如果表有一 dept_id 列,该列存储职员的部门编号,则数据库应只允许接受公司中的有效部门编号。对表进行计划有两个重要步骤:标识列的有效值和确定如何强制列中的数据完整性。数据完整性有四种类型: 实体完整性
    域完整性
    引用完整性
    用户定义完整性 
    实体完整性
    实体完整性将行定义为特定表的唯一实体。实体完整性强制表的标识符列或主键的完整性(通过索引、UNIQUE 约束、PRIMARY KEY 约束或 IDENTITY 属性)。域完整性
    域完整性是指给定列的输入有效性。强制域有效性的方法有:限制类型(通过数据类型)、格式(通过 CHECK 约束和规则)或可能值的范围(通过 FOREIGN KEY 约束、CHECK 约束、DEFAULT 定义、NOT NULL 定义和规则)。引用完整性
    在输入或删除记录时,引用完整性保持表之间已定义的关系。在 Microsoft® SQL Server™ 2000 中,引用完整性基于外键与主键之间或外键与唯一键之间的关系(通过 FOREIGN KEY 和 CHECK 约束)。引用完整性确保键值在所有表中一致。这样的一致性要求不能引用不存在的值,如果键值更改了,那么在整个数据库中,对该键值的所有引用要进行一致的更改。强制引用完整性时,SQL Server 禁止用户进行下列操作: 当主表中没有关联的记录时,将记录添加到相关表中。
    更改主表中的值并导致相关表中的记录孤立。
    从主表中删除记录,但仍存在与该记录匹配的相关记录。 
    例如,对于 pubs 数据库中的 sales 和 titles 表,引用完整性基于 sales 表中的外键 (title_id) 与 titles 表中的主键 (title_id) 之间的关系。用户定义完整性
    用户定义完整性使您得以定义不属于其它任何完整性分类的特定业务规则。所有的完整性类型都支持用户定义完整性(CREATE TABLE 中的所有列级和表级约束、存储过程和触发器)。
      

  2.   

    数据完整性包括域、实体和参照完整性域完整性用数据类型、NULL限制和检查限制之类的验证检查保证实体完整性要求表中所有的行都唯一,用主键来保证参照完整性维护相关表之间的相关值,是用主键/外键来保证
    数据库安全
    防病毒和黑客攻击、加密与解密、帐户管理等等这是我的一点理解,还请高手讲解讲解
      

  3.   

    --楼主参考!
      SQL SERVER 提供了一些在列上的完整性的机制
    1.PRIMARY KEY(主键)约束
    2.FOREIGN KEY(外键)约束
    3.UNIQUE(唯一性)约束
    4.CHECK(检查)约束
    5.DEFAULT(缺省值)定义
    6.是否可以为空
      
    A.主键(PRIMARY KEY)约束
      一个表通常可以通过一列和多列组合的数据来唯一标识表中的每一列,这些列和列组合
    就被称为表上的主键,它可以用来强制实体完整性。
      当一个表指定了PRIMARY KEY约束时,SQL SERVER通过为主键列上建立唯一索引来强制
    数据的唯一性。唯一性索引在主键被用于查询时可以对数据进行快速访问。
    B.外键(FOREIGN KEY)约束
      外键也是由一列或多列构成的,它用来建立和强制两个表间的关联。这种关联是通过将
    一个表中的组成主键的列或组合列加入到另一个表中形成的,这个列或组合列就成了第二
    个表中的外键。
      一个FOREIGN KEY约束并不一定要求必须与另一个表上的PRIMARY KEY约束相关联,它还
    可以被定义为对另一个列中的UNIQUE约束的一个引用。FOREIGN KEY约束可以允许空值,但
    是形成外键的列或组合列中出现空值时将跳过对FOREIGN KEY约束的验证。当向表中添加新
    数据行或修改已有的数据行时,在外键中的定义的列或组合列必须在其他表的主键中存在或
    是为空,否则将会出错。
    注意:FOREIGN KEY约束可以对同一个数据库中的其他表上的列或组合列进行引用,也可以
    是对自身表中其他列或组合列的引用(自引用表)
      尽管外键的主要作用是用来限制可以输入到外键表中的数据,但是还可以限制对主键表中
    数据的修改。
      FOREIGN KEY约束也可以被用作索引,这是因为:
      1.对FOREIGN KEY约束的修改或被在其他表中的FOREIGN KEY约束所检查
      2.外键列或组合列也常常被用于查询中,对于在具有FOREIGN KEY约束的表和其他有主键或
    唯一键的表间进行查询时,可以在连接准则中使用外键列或组合列。索引允许SQL SERVER在
    外键中进行快速查找。但是对这样的索引的创建并不是必需的。
    C.唯一性(UNIQUE)约束
      使用唯一性约束来保证在没有在主键定义中出现的指定列上不会出现重复的数据被加入。使用
    唯一性约束和主键约束都可以保证唯一性。对于在要保证唯一性的情况下,在满足下面的要求时
    使用唯一性约束来代替使用主键约束:
      1.在不属于主键的一列或组合列上
      一个表上可以定义多个唯一性约束,但是最多只能有一个主键约束。
      2.允许为空的列
      可以在允许为空的列上使用唯一性约束,主键约束不能建立在允许为空的列上。唯一性约束还
    可以被外键约束所引用。
    D.检查(CHECK)约束
      检查约束通过限制一列上可以接受的值来强制域完整性。它与外键约束很相似,都是用来控制
    列上可以接受的数据的。两者的差别是对数据是否有效的判断的方法不同:外键约束从其他表中
    得到一组合法数据的列表,而检查约束使用一个不基于其他列上数据的逻辑表达式。
      可以在一列上使用多个检查约束,也可以在表级建立一个可以在多个列上使用的一个检查约束。
    E.缺省值(DEFAULT)定义F.是否可以为空
    空值(NULL)和0,空白,长度为零的字符串s(“”)不同,NULL意味这数据尚未被输入。