关系数据库

1、关系数据结构及形式化定义

  • 关系数据结构
    • 单一的数据结构----关系,现实世界的实体以及实体间的各种联系均用关系来表示
    • 数据的逻辑结构----二维表,从用户角度,关系模型中数据的逻辑结构是一张二维表
  • 关系数据结构的基本概念
    • 关系
    • 关系模式
    • 关系数据库

1.1关系模型简述

一个关系(relation)就是一张(table),关系模型就是处理表的模型

  • 描述数据库中各种数据的基本结构形式———关系
  • 描述之间所可能发生的各种操作——关系运算
  • 描述这些操作所遵循的相关约束条件——完整性约束

1.2关系的形式定义

1.2.1集合论定义

  • 关系是一个元数为K的元组集合。
  • 即这个关系有若干个元组,每个元组有K个属性值

1.2.2值域的概念来定义

  • 关系是属性值域笛卡儿积的一个子集。

2、关系的基本概念

学号

姓名

专业

籍贯

98521101

诺亚

光电

北京

98521102

赛迦

物理

上海

98521103

雷杰多

机械

广州

98521104

奥王

临床

深圳

98521105

迪迦

资源

苏州

值域:一组具有相同数据类型集合

  • 整数
  • 实数
  • 介于某个取值范围的整数
  • 指定长度的字符串集合
  • {‘男’,‘女’}
  • 介于某个取值范围的日期

笛卡儿积:

  • 设一个关系的属性A1,A2,…,An,其对应的值域D1,D2,…,Dn, 这些域中可以有相同的
  • 定义D1,D2,…,Dn的笛卡儿积为:D=D1×D2×…×Dn={(d1,d2,…,dn )|di \inDi,i=1,2,…,n}
  • 所有域的所有取值的任意组合、不能重复
  • D中的每一个子集D’称为关系
  • D的元素(d1,d2,…,dn )就是一个n元元组
  • 元素中的每一个值di 称为元组的一个分量

元组(Tuple):如(98521101、诺亚、光电、北京)为一个元组。

分量(Component):诺亚、光电分别是上面元组在属性姓名、专业上面的分量。

基数(Cardinal number):一个域允许的不同取值个数,若Di(i=1,2,…,n)为有限集,其基数为mi(i=1,2,…,n),则D1×D2×…×Dn的基数M 为:M=\prod_{i=1}^{n}m_{i}

3、基本关系的性质

基本关系/基本表或基表实际存在的表,是实际存储数据的逻辑表示。

查询表:从基本表产生的查询结果(不对应实际存储数据)

视图表:由基本表或其它视图导出的表(不对应实际存储数据)

3.1基本关系作为关系数据模型的数据结构时的限定

  • 列是同质的(Homogeneous)
  • 不同的列可出自同一个域
  • 列的顺序无所谓
  • 任意两个元组的候选码(主码)不能相同
  • 行的顺序无所谓
  • 分量必须取原子值(不可分)(如下图,成绩又可分为平时成绩和期末成绩)

学号

课程代码

成绩

平时

期末

98521101

ZS001

95

99

98521101

ZS002

90

91

98521101

ZS005

96

97

98521102

ZS003

89

90

98521102

ZS004

87

89

4、关系模式

关系模式是对关系的描述,元组集合的结构

关系模式(Relation Schema)是关系

关系模式可以形式化地表示为:R(U,D,dom,F)

  • R 关系名
  • U 组成该关系的属性名集合
  • D 属性组U 中属性所来自的域
  • dom 属性向域的映象集合
  • F 属性间的数据依赖关系集合

4.1关系模式和关系

关系模式:对关系的描述;静态的,稳定的,

关系:关系模式在某一时刻状态或内容动态的、随时间不断变化的、

关系数据库:一个给定的应用领域中,所有关系(包括关系关系模式)的集合(包括型和值)

5、关系的完整性

学号姓名专业籍贯
98521101诺亚光电北京
98521102赛迦物理上海
98521103雷杰多机械广州
98521104奥王临床深圳
98521105迪迦资源苏州
课程代码课程名称
ZS001高数
ZS002大英
ZS003马原
ZS004毛概
ZS005数据库
学号课程代码成绩
98521101ZS00195
98521101ZS00290
98521101ZS00596
98521102ZS00389
98521102ZS00487

5.1实体完整性规则

(通常由关系系统自动支持)

若属性A是基本关系R的主属性,则属性A不能取空值。(如成绩关系模型,其中“学号、课程代码”为主码,两个都不能取空值)

  • 实体完整性规则是针对基本关系而言的
  • 现实世界中的实体和实体间的联系都是可区分的,即它们具有某种唯一性标识
  • 关系模型中以主码(候选码)作为唯一性标识
  • 主码(候选码)中的属性即主属性不能取空值

5.2参照完整性(关系之间的引用)

  • 在关系模型中实体及实体间的联系都是用关系来描述的
  • 自然存在着关系与关系间的引用

如下面的成绩关系,引用了学生关系中的“学号”和课程关系中的“课程代码”,注意成绩关系中的“学号值”必须是学生关系中确实存在的学号,成绩关系中的“课程代码”必须是课程关系中确实存在的代码

学号课程代码成绩
98521101ZS00195
98521101ZS00290
98521101ZS00596
98521102ZS00389
98521102ZS00487

再如下面的例子:

学号姓名专业籍贯老板
98521101诺亚光电北京
98521102赛迦物理上海98521101
98521103雷杰多机械广州98521101
98521104奥王临床深圳98521101
98521105迪迦资源苏州98521101

学号是“主码”,老板是“外码”,引用了本关系中的学号,老板必须是确实存在的学生的学号

5.2.1外码

  • 设F 是基本关系R的一个或一组属性,但不是关系R 的码
  • 如果F与基本关系S的主码Ks相对应,则称F是基本关系R的外码

举个例子:R(学号,姓名,性别,专业号)             S(专业号,专业名)

容易看出,R是学生关系,S是专业关系,F(专业号)是基本关系R的一个属性,但不是R的主码,而F又与关系S中的主码专业号相对应(或者就是它),称F(专业号)是R(学生关系)的外码。

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

5.2.2参照完整性规则

若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码 Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每 个元组在F上的值必须为:

  • 或者取空值(F 的每个属性值均为空值)
  • 或者等于S 中某个元组的主码值(必须是S中确实存在的)。

6用户定义的完整性

针对某一具体关系数据库的约束条件,反映某一具体应用所涉及的数据 必须满足的语义要求。

例如上面的成绩必须是0~100分,不能在这个范围之外。

再举个例子:课程(课程号,课程名,学分),其中学分只能是从(1、2、2.5、3、3.5、4、5、6)中选择。

7例题

7.1现有如下关系: 患者(患者编号,患者姓名,性别,出生日 期,所在单位) 医疗(患者编号,医生编号,医生姓名,诊断 日期,诊断结果) 其中,医疗关系中的外码是(A )。

(A)患者编号

(B)患者姓名

(C)患者编号和患者姓名

(D)医生编号和患者编号

7.2设有供应商关系S和零件关系P,如图所示。它们的主码分别是“供应商号” 和“零件号”,而且,零件关系P的属性“颜色”只能取值为(红,白,蓝)。

S
供应商号供应商名所在城市
100红星北京
200宇宙上海
300黎明广州
400标新深圳
零件关系P
零件号颜色供应商号
A110100
B201300
C312200

如果向关系P中插入一个元组,下列哪一个元组可以被插入?(B)

A.( ’B201’ , ’白’ , ’北京’ )     B.( ’C301’ , ’红’ , ’300’ )

C.( ’D401 ’ , ’绿’ , ’100’ )     D.( ’B211’ , ’蓝’ , ’500’ )

首先要满足实体完整性,即零件号(主码)要唯一,排除A,接着满足参照完整性,即选项的“供应商号”要在S中确切存在,排除D。接着用户完整性,颜色只能从(红、白、蓝)中选择,排除C。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

背水

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值