数据库系统——第三讲 关系模型之基本概念


什么是关系模型

重点与难点:一组概念的区分:围绕关系的相关概念,如域、笛卡尔积,关系,关系模式,关键字/键/码,外码/外键,主码/主键,主属性与非主属性。
关系模型最早由E.F.Codd在1970年提出,是从表(Table)及表的处理方式中抽象出来的, 是在对传统表及其操作进行数学化严格定义基础上,引入集合理论与逻辑学理论提出的,是数据库的三大经典数据模型之一, 也是现在大多数商品化数据库系统所仍然使用的数据模型,标准的数据库语言(SQL语言)是建立在关系模型基础之上的, 数据库领域的众多理论也都是建立在关系模型基础之上的。

关系模型的三个要素(详细内容在后面讲述)

  • 基本结构:Relation/Table
  • 基本操作:Relation Operator
    并、差 、广义积、选择、投影、交、连接、除运算
  • 完整性约束:实体完整性、参照完整性和用户自定义的完整性

什么是关系

  1. 域(Domain)
    一组值的集合,这组值具有相同的数据类型
    如整数的集合、字符串的集合、全体学生的集合
    再如, 由8位数字组成的数字串的集合,由0到100组成的整数集合
    集合中元素的个数称为域的基数(Cardinality)
    在这里插入图片描述
  2. 笛卡尔积(Cartesian Product)
    一组域D1 , D2 ,…, Dn的笛卡尔积为:
    D1×D2×…×Dn = { (d1 , d2 , … , dn) | di∈Di , i=1,…,n }
    笛卡尔积的每个元素(d1 , d2 , … , dn)称作一个n-元组(n-tuple)
    在这里插入图片描述
  3. 关系(Relation)
    一组域D1 , D2 ,…, Dn的笛卡尔积的子集
    笛卡尔积中具有某一方面意义的那些元组被称作一个关系(Relation)
    由于关系的不同列可能来自同一个域,为区分,需要为每一列起一个名字,该名字即为属性名。
    在这里插入图片描述
  4. 关系模式与关系
     同一关系模式下,可有很多的关系
     关系模式是关系的结构, 关系是关系模式在某一时刻的数据
     关系模式是稳定的;而关系是某一时刻的值,是随时间可能变化的

关系有什么特性

  1. 列是同质:即每一列中的分量来自同一域,是同一类型的数据
  2. 不同的列可来自同一个域,称其中的每一列为一个属性,不同的属性要给予不同的属性名。
  3. 列位置互换性:区分哪一列是靠列名
  4. 行位置互换性:区分哪一行是靠某一或某几列的值(关键字/键字/码字)
  5. 关系是以内容(名字或值)来区分的,而不是属性在关系的位置来区分
  6. 如下面两个关系是完全相同的关系
    在这里插入图片描述
  7. 理论上,关系 的任意两个元组不能完全相同。(集合的要求:集合内不能有相同的两个元素);现实应用中,表(Table)可能并不完全遵守此特性。
  8. 元组相同 是指两个元组的每个分量都相同。
  9. 属性不可再分特性:又被称为 关系第一范式

候选码与外码

关系中的一个属性组,其值能唯一标识一个元组,若从该属性组中去掉任何一个属性,它就不具有这一性质了,这样的属性组称作 候选码
例如:“学生(S#, Sname, Sage, Sclass)”,S#就是一个候选码,在此关系中,任何两个元组的S#是一定不同的,而这两个元组的Sname, Sage, Sclass都可能相同(同名、同龄、同班),所以S#是候选码。
再如:“选课(S#, C#, Sname, Cname, Grade)”,(S#,C#)联合起来是一个候选码。

  • 主码(Primary Key)/主键:
    当有多个候选码时,可以选定一个作为主码。
    DBMS以主码为主要线索管理关系中的各个元组。

  • 主属性与非主属性:
    包含在任何一个候选码中的属性被称作主属性,而其他属性被称作非主属性。

  • 外码(Foreign Key)/外键
    关系R中的一个属性组,它不是R的候选码,但它与另一个关系S的候选码相对应,则称这个属性组为R的外码或外键。


关系模型的完整性

重点与难点:实体完整性,参照完整性和用户自定义的完整性
一、实体完整性
1、关系的主码中的属性值不能为空值;
2、 空值:不知道或无意义的值;
3、意义:关系中的元组对应到现实世界相互之间可区分的一个个个体,这些个体是通过主码来唯一标识的;若主码为空,则出现不可标识的个体,这是不容许的。

二、参照完整性
1、如果关系R1的外码Fk与关系R2的主码Pk相对应,则R1中的每一个元组的Fk值或者等于R2 中某个元组的Pk 值,或者为空值。
2、意义:如果关系R1的某个元组t1参照了关系R2的某个元组t2,则t2必须存在。
3、例如关系Student在D#上的取值有两种可能:
(1)空值,表示该学生尚未分到任何系中。
(2)若非空值,则必须是Dept关系中某个元组的D#值,表示该学生不可能分到一个不存在的系中。

三、用户自定义完整性
1、用户针对具体的应用环境定义的完整性约束条件
2、如S#要求是10位整数,其中前四位为年度,当前年度与他们的差必须在4以内


小结

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值