大家好,欢迎来到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 D1,D2,…,Dn 上的关系,表示为 R ( D 1 , D 2 … , D n ) R(D1,D2…,Dn) R(D1,D2…,Dn)
R:关系名
n:关系的目或度(Degree)
元组
- 关系中的每个元素 ( d 1 , d 2 , … , d n ) (d_1,d_2,…,d_n) (d1,d2,…,dn) 叫作一个 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 σ
投影 ⊓ \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