美文网首页
数据完整性的设计

数据完整性的设计

作者: 承_风 | 来源:发表于2019-07-21 18:35 被阅读0次

数据完整性概念:能确保存储在数据库中数据的准确性和一致性

完整性约束的类型

常用三种类型的约束保证数据完整性:

  • 保证列值符合规定要求:域(列)完整性
  • 要求表中所有的行唯一:实体完整性
  • 要求两表相同字段具有一致性:引用完整性

实体完整性

作用:保证实体具有唯一标识
方法:主键约束、标识列、唯一约束

主键约束与唯一约束

  • 添加约束的基本语法
alter table 表名 add constraint 约束名 约束类型 具体的约束说明
  • 约束名的取名规则推荐采用:约束类型_约束字段
    主键(Primary Key)约束:如PK_StudentId
    唯一(Unique Key)约束:如UQ_StudentIdNo
use dbname
go
--创建“主键”约束primary key
if exists(select * from sysobjects where name='pk_StudentId')
    alter table Students drop constraint pk_StudentId
alter table Students add constraint pk_StudentId primary key(StudentId)

--创建唯一约束unique
if exists(select * from sysobjects where name='uq_StudentIdNo')
    alter table Students drop constraint uq_StudentIdNo
alter table Students add constraint uq_StudentIdNo  unique(StudentIdNo)

域完整性

作用:保证实体属性值符合规范要求
方法:检查约束、限制数据类型、默认值、非空约束

检查约束与默认约束

约束名的取名规则:

  • 检查(Check Key)约束:如CK_Age
  • 默认(Default Key)约束:如DF_StudentAddress
--创建检查约束
if exists(select * from sysobjects where name='ck_Age')
    alter table Students drop constraint ck_Age
alter table Students add constraint ck_Age  check(Age between 18 and 25)
if exists(select * from sysobjects where name='ck_PhoneNumber')
    alter table Students drop constraint ck_PhoneNumber
alter table Students add constraint ck_PhoneNumber  check(len(PhoneNumber)=11)

--创建默认约束
if exists(select * from sysobjects where name='df_StudentAddress')
    alter table Students drop constraint df_StudentAddress
alter table Students add constraint df_StudentAddress default('地址不详') for StudentAddress
--使用默认值插入数据
insert into Students (StudentName,Gender,Birthday,Age,StudentIdNo ,PhoneNumber,
StudentAddress,ClassId)
values('李小璐','女','1989-01-12',24,120229198901121315, '13099012876',default,1)

引用完整性

作用:保证两张表相同属性值的一致性
约束方法:外键约束

insert into StudentClass (ClassId,ClassName) values(1,'软件班')
if exists(select * from sysobjects where name='fk_ClassId')
    alter table Students drop constraint fk_ClassId
alter table Students add constraint fk_ClassId  foreign key (ClassId) references StudentClass(ClassId)

数据表的使用总结

主键的选择

  • 最少性原则:尽量选择单个键作为主键。
  • 稳定性原则:尽量选择数值更新少的列最为主键。

外键使用

  • 要求数据类型、数据长度必须与对应的主键表字段完全一致。
  • 添加数据时,要首先添加主键表,再添加外键表。
  • 删除数据时,要首先删除外键表数据,再删除主键表数据。

完整数据库创建步骤

建库→建表→主键约束→域完整性约束→外键约束

插入数据的过程

验证主键、主外键关系、检查约束......→插入成功

相关文章

  • 计算机三级

    1、数据模型:数据结构、数据操作、完整性约束 2、数据库应用系统设计包括 概念设计、逻辑设计、物理设计 3、数据库...

  • 数据完整性的设计

    数据完整性概念:能确保存储在数据库中数据的准确性和一致性 完整性约束的类型 常用三种类型的约束保证数据完整性: 保...

  • SQLite学习(五)

    数据完整性 ==数据完整性==用于定义和保护表内部或表之间数据的关系。有四种完整性:域完整性、实体完整性、参照完整...

  • 五、数据库的设计

    一、数据库设计的基本步骤 设计良好的数据库就好比货架有序摆放的商品一样,节省数据的存储空间。能够保证数据的完整性,...

  • MySQL(创表)

    数据完整性 如何添加数据完整性 在创建表的时候给表添加约束 完整性分类 实体完整性 域完整性 引用完整性 实体完整...

  • MySQL(创表)

    数据完整性 如何添加数据完整性 在创建表的时候给表添加约束 完整性分类 实体完整性 域完整性 引用完整性 实体完整...

  • 六、数据库安全与保护

    1.数据库完整性 什么是数据库完整性 数据库完整性是指数据库中数据的正确性和相容性。 完整性约束条件的作用对象 列...

  • 2018-03-27 数据库的基础和约束条件

    今天主要学习的是数据库的约束 保证数据库的完整性是从建表的时候开始的,完整性的问题大多是由设计引起的,所以创建表的...

  • 高并发访问数据库问题

    一、数据库结构的设计 为了保证数据库的一致性和完整性,在逻辑设计的时候往往会设计过多的表间关联,尽可能的降低数据的...

  • 数据完整性

    数据完整性 要想了解这三类完整性约束,先要了解什么是数据完整性。 数据库中的数据是从外界输入的,而...

网友评论

      本文标题:数据完整性的设计

      本文链接:https://www.haomeiwen.com/subject/rtsvlctx.html