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

  • 什么是关系模型
  • 什么是关系
  • 关系有什么特性
  • 候选码与外码
  • 关系模型的完整性
  • 小结

什么是关系模型

重点与难点:一组概念的区分:围绕关系的相关概念,如域、笛卡尔积,关系,关系模式,关键字/键/码,外码/外键,主码/主键,主属性与非主属性。
关系模型最早由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. 【数据库系统】第三讲 关系模型的基本概念

    3.1 关系模型概述 1.关系模型的提出 2.关系模型的研究内容 一个关系就是一个Table 关系模型就是处理Table的,由三部分组成: 描述DB各种数据的基本结构形式(Table/Relation ...

  2. 数据库知识点2——关系模型之基本概念

    关系模型之基本概念 1. 关系模型概述? 2. 什么是关系? 3. 关系模型中的完整性约束 1. 关系模型概述? 形象地说,一个关系(relation)就是一个Table  关系模型就是处理Tabl ...

  3. 数据库原理—关系模型的基本概念(七)

    数据库原理-关系模型的基本概念(七)

  4. 数据库系统(上):模型与语言 第3讲-关系模型之基本概念

    1某关系R的外键是指______ A.其它关系的候选键,可以是R中的主属性或非主属性 B.该关系除主键之外的另一个候选键 C.其它关系的候选键,同时作为R的主属性 D.其它关系的候选键,同时作为R的非 ...

  5. 哈工大数据库系统(上):关系模型之基本概念(三)课后测验与作业

    文章目录 前引 第三章课后习题 前引 这段时间每天看三章吧 感觉现在又是进入全理论的感觉了 有点刚开始学计算机网络那味了 但是后面应该还是有很多编程作业吧 还要再介绍SQL语言 待会把习题做了 早点回 ...

  6. 数据库MySQL关系模型之基本概念

    1.什么是关系模型 1.1关系模型研究什么 一个关系(relation)就是一个Table 关系模型就是处理Table的,它由三个部分组成: 描述DB各种数据的基本结构形式(Table/Relatio ...

  7. IBM DB2 学习笔记:关系模型、基本概念、数据库实例基本操作、数据库对象

    文章目录 1. 关系数据模型 1.1 什么是数据? 1.2 为什么使用数据库? 1.3 数据库管理系统(DBMS) 1.4 数据模型 1.5 关系数据模型 1.6 关系数据库 1.6.1 表 1.6. ...

  8. 2.1 关系模型的基本概念

    文章目录 2.1.1 基本术语 定义2.1 用二维表格表示实体集,用关键码表示实体间联系的数据模型称为关系模型(relational Model). 在关系模型中, 关键码(key,简称键)由一个或多 ...

  9. 关系模型基本概念笔记

    第三讲关系模型之基本概念 ​ 关系模型简述 关系模型是从表(table)以及表的处理方式中抽象出来的 形象的说,一个关系(relatioin)就是一个Table 关系模型组成: 描述数据库的数据的基本 ...

最新文章

  1. 优先级队列实现哈夫曼树的编码和译码
  2. python函数手册68_直接在python中检索68个内置函数?
  3. 一步一步做高性能服务器(C++) -- Day 1
  4. 找出SAP OData service出错根源的小技巧
  5. IE、FF脚本兼容性问题
  6. Spark:Yarn-cluster和Yarn-client区别与联系
  7. (转)对SQLSERVER数据库事务日志的疑问
  8. oracle 0.1变.1,Oracle在12.1.0.2开始改变了补丁策略
  9. 07年博客迁移:心情记事
  10. CF 460C Present 【DP+】主意
  11. itextPdf pdf加水印
  12. D3D9 3D渲染图像变模糊
  13. 网线的制作及交换机的基本配置
  14. 新手设计师必须知道的4大设计软件
  15. [P4V]Perforce(P4V)使用教程
  16. PS 2020一些使用技巧
  17. Altium Designer操作——创建元器件——同一SchLib库下创建多个器件模型
  18. 分享一个下载无损音乐的网站,且用且珍惜!
  19. PE文件格式详解(7)
  20. 腾讯云TcaplusDB成为首批通过信通院-键值型内存数据库功能评测的产品,树立内存数据库行业标杆

热门文章

  1. 抖音头条小程序担保支付php版demo源码
  2. 看准这几点,选购毛衣不踩雷
  3. linux系统磁盘block、inode占满处理
  4. BugkuCTF-Web-计算器(随机数字运算验证码)
  5. 2021年第十一届C/C++ A组第一场蓝桥杯省赛真题
  6. SQLSERVER查询语句中LIKE中不能使用正则,但是可以使用通配符
  7. H5页面在手机桌面显示图标【iOS版】
  8. 网络调试助手(pc端)+ESP8266指令
  9. 梦幻星辰服务器网站,我的世界1.7.10梦幻星辰
  10. 数学建模学习笔记(十六)lingo求解整数规划