【数据库系统设计】关系数据库简介(关系模型、关系模式、关系完整性、关系代数)

【数据库系统设计】关系数据库简介(关系模型、关系模式、关系完整性、关系代数)关系数据库关系模型关系数据结构域关系关系模式关系的三类完整性实体元整性(EntityIntegrity)参照完整性用户定义的完整性关系代数关系代数运算符传统的集合运算并(Union)差(Difference)交(Intersection)笛卡尔积专门的集合运算选择投影连接等值连接自然连接![在这里插入图片描述](https://img-blog.csdnimg.cn/20200308121704…

大家好,欢迎来到IT知识分享网。

笔记目录

更多内容可以查看笔记目录

关系模型

关系数据结构

单一的数据结构 —- 关系
现实世界的实体以及实体间的各种联系均用关系来表示
在这里插入图片描述

是一组具有相同数据类型的值的集合。例:

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

关系

关系

  • D 1 × D 2 × . … × D n D_1×D_2×.…×D_n D1×D2×.×Dn子集叫作在域 D 1 , D 2 , … , D n D_1,D_2,…,D_n D1D2Dn 上的关系,表示为 R ( D 1 , D 2 … , D n ) R(D1,D2…,Dn) R(D1D2Dn)
    R:关系名
    n:关系的目或度(Degree)

元组

  • 关系中的每个元素 ( d 1 , d 2 , … , d n ) (d_1,d_2,…,d_n) (d1d2dn) 叫作一个 n元组(n-tuple) 或简称元组,通常用 t 表示。

属性

  • 关系中不同列称为属性(Attribute),每个属性有一个名字
  • n目关系必有n个属性

  • 候选码(Candidate key)
    若关系中的某一属性组的值能唯一地标识一个元组,而其子集不能,则称该属性组为候选码
    简单的情况:候选码只包含一个属性

  • 全码(All-key)
    最极端的情况:关系模式的所有属性是这个关系模式的候选码,称为全码

  • 主码
    若一个关系有多个候选码,则选定其中一个为主码(Primary key)

  • 主属性
    主属性是指包含在候选码中的属性。
    不包含在任何侯选码中的属性称为非主属性(Non-Prime attribute)或
    非码属性(Non-key attribute)

单元关系与二元关系

  • 当 n=1 时,称该关系为单元关系(Unary relation)或一元关系
  • 当 n=2 时,称该关系为二元关系(Binary relation)

关系模式

关系模式(Relation Schema)是型、关系是值
关系模式是对关系的描述

  • 元组集合的结构
    • 属性构成
    • 属性来自的域
    • 属性与域之间的映象关系
  • 完整性约束条件

关系的三类完整性

实体元整性(Entity Integrity)

  • 关系中元组在组成主码的属性上不能有空值
  • 每个关系都应有一个主码
  • 每个元组的主码的值应当唯一
  • 主属性不为 NULL
  • 空值就是“不知道”或“不存在”或“无意义”的值

在这里插入图片描述

参照完整性

  • 在关系模型中存在着关系与关系间的引用
  • 外码(Foreign Key)

例 2.1 :
在这里插入图片描述
在这里插入图片描述
学生关系中每个元组的“专业号”属性只取两类值:
(1)空值,表示尚未给该学生分配专业
(2)非空值,这时该值必须是专业关系中某个元组的“专业号”值,表示该学生不可能分配一个不存在的专业


例 2.2 :
在这里插入图片描述
在这里插入图片描述

选修(学号,课程号,成绩)
“学号”和“课程号”可能的取值:
(1)选修关系中的主属性,不能取空值
(2)只能取相应被参照关系中已经存在的主码值


例 2.3 :
在这里插入图片描述
在这里插入图片描述
学生(学号,姓名,性别,专业号,年龄,班长)
“班长”属性值可以取两类值:
(1)空值,表示该学生所在班级尚未选出班长
(2)非空值,该值必须是本关系中某个元组的学号值

在这里插入图片描述

用户定义的完整性

  • 针对某一具体关系数据库的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求
  • 关系模型应提供定义和检验这类完整性的机制,以便用统一的系统的方法处理它们,而不需由应用程序承担这一功能

例:
课程(课程号,课程名,学分)

  • “课程号” 属性必须取唯一值
  • 非主属性 “课程名” 也不能取空值
  • “学分” 属性只能取值 {1,2,3,4}

关系代数

关系代数是一种抽象的查询语言,它用对关系的运算来表达查询

  • 运算对象是关系
  • 运算结果亦为关系
  • 关系代数的运算符有两类:
    集合运算符
    专门的关系运算符

关系代数运算符

在这里插入图片描述

传统的集合运算

并(Union) ∪ \cup

在这里插入图片描述

差(Difference) − –

在这里插入图片描述

交(Intersection) ∩ \cap

在这里插入图片描述

笛卡尔积 × \times ×

在这里插入图片描述

例如,给出 3 个域:

  • D1 = 导师集合SUPERVISOR = {张清玫,刘逸}
  • D2 = 专业集合SPECIALITY = {计算机专业,信息专业}
  • D3 = 研究生集合POSTGRADUATE = {李勇,刘晨,王敏}

D1,D2,D3的笛卡尔积为:
在这里插入图片描述

专门的集合运算

首先给出三张表:学生关系Student、课程关系Course、选修关系SC

  • 学生关系 Student
    在这里插入图片描述
  • 课程关系 Course
    在这里插入图片描述
  • 选修关系 SC
    在这里插入图片描述

选择 σ \sigma σ

选择运算是从关系R中选取使逻辑表达式F为真的元组,是从行的角度进行的运算
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

投影 ⊓ \sqcap

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

连接 ⋈ ⋈

在这里插入图片描述

等值连接

在这里插入图片描述

自然连接

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

等值与自然连接例题

例:给出关系 R 和关系S 的表:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

悬浮元组

两个关系R和S在做自然连接时,关系R中某些元组有可能在S中不存在公共属性上值相等的元组从而造成R中这些元组在操作时被舍弃了,这些被舍弃的元组称为悬浮元组。
在这里插入图片描述

外连接

在这里插入图片描述
在这里插入图片描述

除运算 ÷ \div ÷

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

除运算例题

在这里插入图片描述

解:
在这里插入图片描述
在这里插入图片描述

小结

关系数据库系统是目前使用最广泛的数据库系统

关系数据库系统与非关系数据库系统的区别:

  • 关系系统只有 “表” 这一种数据结构
  • 非关系数据库系统还有其他数据结构

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

课后作业

设有一个 SPJ 数据库,包括 S、P、J 及 SPJ 4 个关系模式:
S(SNO, SNAME, STATUS, CITY);
P(PNO, PNAME, COLOR, WEIGHT);
J(JNO, JNAME, CITY);
SPJ(SNO, PNO, JNO, QTY)。
供应商表 S 由供应商代码(SNO)、供应商姓名(SNAME)、供应商状态(STATUS)、供应商所在城市(CITY)组成。
零件表 P 由零件代码(PNO)、零件名(PNAME)、颜色(COLOR)、重量(WEIGHT)组成。
工程项目表 J 由工程项目代码(JNO)、工程项目名(JNAME)、工程项目所在城市(CITY)组成。
供应情况表 SPJ 由供应商代码(SNO)、零件代码(PNO)、工程项目代码(JNO)、供应数量(QTY)组成,表示某供应商供应某种零件给某工程项目的数量为 QTY。
在这里插入图片描述

试用关系代数、ALPHA语言、QBE语言完成如下查询:
(1)求供应工程 J1 零件的供应商号码 SNO;
(2)求供应工程 J1 零件Pl的供应商号码 SNO;
(3)求供应工程 J1 零件为红色的供应商号码 SNO;
(4)求没有使用天津供应商生产的红色零件的工程号 JNO;
(5)求至少用了供应商 S1 所供应的全部零件的工程号 JNO。

解:
在这里插入图片描述

课后作业答案

(1)(2)(3)没有问题。
(4)第一个式子写成 SPJ 或 J 都行。
(5)错了。
在这里插入图片描述在这里插入图片描述在这里插入图片描述

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/23112.html

(0)

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信