数据完整性的设计

2019-07-21  本文已影响0人  承_风

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

完整性约束的类型

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

实体完整性

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

主键约束与唯一约束

alter table 表名 add constraint 约束名 约束类型 具体的约束说明
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)

域完整性

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

检查约束与默认约束

约束名的取名规则:

--创建检查约束
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)

数据表的使用总结

主键的选择

外键使用

完整数据库创建步骤

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

插入数据的过程

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

上一篇下一篇

猜你喜欢

热点阅读