对数据库数据完整性约束的粗略认识

数据完整性约束

数据完整性约束的目的是为了防止不符合规范的数据进入数据库。在用户对数据进行插入、修改、删除等操作时,数据库管理系统会根据数据完整性约束判断数据是否能够进入数据库,确保数据库中的记录合乎规范。数据完整性约束包括域完整性、实体完整性、参照完整性和用户定义完整性

域完整性包括了数据类型、输入格式、数据可能的取值范围。数据类型就是规定输入的数据是字符、整数、实数等等。输入格式规定数据以怎样的形式输入,就以日期为例,可以以“年月日”、“日月年”或是“月日年”格式等等,同时还规定数据之间以何种方式分隔(空格、连字符、斜杠等)。数据可能的取值范围很好理解,就是规定了哪些取值是有效的,还是以日期为例,“月”的取值只能是1~12。

实体完整性要求每行数据必须要有唯一的标识符,简单的讲,就是通过这个标识符搜索数据库,能够准确定位到这一行。比方说,“身份证号”就能作为标识符,因为每个人的身份证号都不相同,而“姓名”就不能作为标识符,因为存在同名同姓的可能。这个标识符就是我们经常听到的“主键”,它可以是某一列,或是几列一起共同作为标识符。或许有人会说可以把“身份证号”和“姓名”一起作为主键,这样当然是不行的,因为去掉“姓名”,主键仍旧满足实体完整性的要求。简言之,主键要求“短小精悍”。

参照完整性属于表间规则,是相关联的两个表之间的约束。下面先引入外键的概念:如果两个数据表中有相同的关键字,而且这个关键字在其中一个表中是主键,那么这个关键字就称为另一个表的外键。在这种关系中前一个表叫做主表,后一个叫从表。参照完整性就是要保证主从表中的数据具有一致性。举个例子,一个员工表,由“员工姓名”、“员工身份证号”、“年龄”构成一条记录(就是表的一行);一个部门表,由“部门名称”、“员工姓名”、“员工身份证号”构成一条记录。这两个表通过“员工身份证号”相互联系。当有员工离职,员工表删去一条记录的同时,部门表必须删除与该员工有关的记录,保证数据的一致性。

用户定义完整性指针对某一具体关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。简单的说就是对数据库的“定制”,根据用户使用要求来确定数据要求。

PS:以上都是个人对数据完整性约束的理解,若有错误和不合理之处希望指正。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值