ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

数据库学习_数据库系统概述_04

2022-03-19 16:35:25  阅读:327  来源: 互联网

标签:关系 外码 04 数据库 空值 主码 完整性 数据库系统 属性


关系的完整性

关系模型的完整性规则是对关系模型的某种约束。主要有实体完整性、参照完整性、用户定义的完整性。

一:实体完整性

定义:若属性A 是基本关系R的主属性,则A不能取空值。

关系模型必须遵守实体完整性规则的原因:

实体完整性规则是针对基本关系而言的。一个基本表通常对应现实世界的一个实体集或多对多联系。
• 现实世界中的实体和实体间的联系都是可区分的,即它们具有某种唯一性标识。

注意①空值就是 “ 不知道 ” 或 “ 不存在 ” 或 “ 无意义 ” 的值。

②关系模型中以主码作为唯一性标识。

举个栗子:学生( 学号 ,姓名,出生年份,性别,学院,专业)
• “ 学号 ” 为候选码
• “ 学号 ” 是主属性,不能取空值

再举个栗子:销售( 商品编码,学号 ,销售时间,数量)
• “ 商品编码,学号 ” 为候选码
• “ 商品编码 ” 和 “ 学号 ” 两个属性是主属性,都不能取空值。

可以得出 实体完整性规则规定基本关系的所有主属性都不能取空值。

二:参照完整性

先来了解一下关系之间的引用。

学生、商品、学生与商品之间的多对多联系可以用下面的三个关系表示。
学生( 学号 ,姓名,出生年份,性别,学院,专业,微信号)
商品( 商品编码 ,供应商编码,商品分类,商品名,条形码,进价,售价,数量,单位,备注)
销售( 商品编码 , 学号 ,销售时间,数量)
• 销售关系中引用了学生关系的主码“ 学号”和商品关系的 主码“ 商品编码”  这两个就是外码。

外码:定义:设F 是基本关系R的一个或一组属性,但不是关 系R 的码,K 是基本关系S 的主码。如果F 与K相对应,则称F 是R 的 外码,并称基本关系R为 为 参照关系  或 目标关系 。

定义属实难以理解。多看例题就好了。

 

 

注意:外码与另一个关系(可能是同一关系)的主码相对应。

•  关系R 和S 不一定是不同的关系。
• 目标关系S 的主码K 和参照关系的外码 和参照关系的外码F 必须定义在同一个( 或一 组)域上。
• 外码并不一定要与相应的主码同名。
• 当外码与相应的主码属于不同关系时,往往取相同的名字,以便于识别。

参照完整性规则:参照完整性规则:若属性(或属性组)F是基本关系R 的外码,它与基本关系S 的主码K相对应(基本关系 R 和S 不一定是不同的关系),
则对于R中每个元 组在 F上的值必须为: 
• 或者取空值(F的每个属性值均为空值),
• 或者等于S中某个元组的主码值。

三:用户定义的完整性

用户定义的完整性 :针对某一具体应用环境,给关系数据库的约束条件,这些约束条件就是反映某一具体应用所涉及的数据必须满足的语义要求。

用户定义的完整性约束主要包括:
• 唯一值约束(UNIQUE );
• 非空值约束(NOT NULL );
• 检查约束(CHECK );
• 缺省值约束(DEFAULT

举个栗子

学生(学号,姓名,出生年份,性别,学院,
专业,微信号)
• “ 姓名 ” 属性必须取唯一值( 唯一值约束)
• 非主属性 “ 出生年份 ” 不能取空值( 非空值约束)
• “ 性别 ”属性只能取值 属性只能取值{ 男,女}( ( 检查约束)
• “ 性别 ” 默认取值 “ 男 ”

标签:关系,外码,04,数据库,空值,主码,完整性,数据库系统,属性
来源: https://blog.csdn.net/m0_53967061/article/details/123595324

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有