目录
关系
关系运算
元组、域关系演算表达式
题目
关系代数表达式——例
元组演算表达式——例
域演算表达式——例
关系数据库是以二维表形式组织数据,应用数学方法处理数据库组织的方法。目前关系数据库系统在数据管理中已占据了主导地位。
关系
关系:一个关系就是一张二维表,每个关系有一个关系名。在计算机里,一个关系可以存储为一个文件。
元组:表中的行称为元组。一行为一个元组,对应存储文件中的一个记录值。属性:表中的列称为属性,每一列有一个属性名。属性值相当于记录中的数据项或者字段值。
域:属性的取值范围,即不同元组对同一个属性的值所限定的范围。例如,逻辑型属性只能从逻辑真(如.T.)或逻辑假(如.F.)两个值中取值。关系模式:对关系的描述称为关系模式,格式为:关系名(属性名1,属性名2,...,属性名n)一个关系模式对应一个关系文件的结构。
关键字(或码):属性或属性组合,其值能够唯一的标识一个元组。
主关键字(或主码):在一个关系中可能有多个候选关键字,从中选择一个作为主关键字。主关键字在关系中用来作为插入、删除、检索元组的操作变量。
外关键(或外码):如果一个关系中的属性或属性组并非该关系的关键字,但它们是另外一个关系的关键字,则称其为该关系的外关键字。关系是一张关系表,表的一行是一元组,所以元组的集合就是关系;
关系模式是表一行中的某些值,所以关系模式是属性的集合;
同理元组则是,属性的值的集合;
一个关系模型是若干个关系模式的集合。
关系的数学定义:笛卡尔积( 符号X )
关系运算
传统的集合运算:并、交、差、除和笛卡尔积运算;
关系的并:关系R和关系S的所有元组合并,再删去重复的元组,组成一个新关系,称为R和S的并
关系的差:关系R和关系S的差是由属于R而不属于S的所有元组组成的集合,即关系R中删去与S关系中相同的元组,组成一个新关系
关系的交:关系R和关系S的交是由既属于R又属于S的元组组成的集合,即在两个关系R与S中取相同的元组,组成一个新关系
关系的除:设有关系R (X,Y)与关系S (Z),其中,X、 Y、Z为属性集合。假设X、Y和Z具有相同的属性个数,且对应属性出自相同域。关系R(X,Y)除以S(Z〉所得的商关系是关系R在属性X上投影的一个子集,该子集和S(Z)的笛卡尔积必须包含在R(X,Y)中。(这个定义看起来很复杂,难懂,其实很好理解的,大家去网上搜一下有很多的相关知识理解!)
专门的关系运算:选择、投影、连接运算。
选择: 从关系中找出满足给定条件的所有元组称为选择。其中的条件是以逻辑表达式给出的,该逻辑表达式的值为真的元组被选取。
这是从行的角度进行的运算,即水平方向抽取元组。经过选择运算得到的结果元组可以形成新的关系,其关系模式不变,但其中元组的数目小于或等于原来的关系中元组的个数,它是原关系的一个子集。
投影:从关系中挑选若干属性组成新的关系称为投影。
这是从列的角度进行的运算,相当于对关系进行垂直分解。经过投影运算可以得到一个新关系,其关系所包含的属性个数往往比原关系少,或者属性的排列顺序不同。如果新关系中包含重复元组,则要删除重复元组。
自然连接:自然连接是除去重复属性的等值连接,它是连接运算的一个特例,是最常用的连接运算。
元组、域关系演算表达式
把数理逻辑中的谓词演算应用到关系运算中,就得到了关系演算。
关系演算分为元组关系演算和域关系演算,前者以元组为变量,后者以域为变量。
元组关系演算:
在元组关系演算系统中,称 {t|Φ(t)} 为元组演算表达式。其中 t 是元组变量, Φ(t) 为元组关系演算公式,简称公式。
它由原子公式和运算符组成。原子公式有三类:
(1) R(t): R 是关系名, t 是元组变量。 R(t) 表示 t 是 R 中的元组。
于是,关系 R 可表示为: {t|R(t)}
(2) t[i] θ u[j] : t 和 u 是元组变量, θ 是算术比较运算符。 t[i] θ u[j] 表示断言 “ 元组 t 的第 i 个分量与元组 u 的第 j 个分量满足比较关系 θ ” 。
例如, t[2] < u[3] 表示元组 t 的第 2 个分量小于元组 u 的第 3 个分量。
(3) t[i] θ c 或 c θ t[i] : 这里 c 是常量,该公式表示 “t 的第 i 个分量与常量 C 满足比较关系 θ” 。
例如: t[4]=3 表示元组 t 的第 4 个分量等于 3 。
在关系演算中定义了 “ 自由元组变量 ” 和 “ 约束元组变量 ” 的概念。这些概念和谓词演算中的概念完全一样。
若公式中的一个元组变量前有 “ 全称量词 ” 或 “ 存在量词 ” ,则称该变量为约束元组变量,否则称自由元组变量。
域关系演算:
域演算表达式是形为{t1…tk∣P(t1,…,tk)}的表达式,其中P(t1,…,tk)是关于自由域变量t1,…,tk 的公式。
原子公示有两种:
⑴ R(x1…xk),R是一个k元关系,每个xi是常量或域变量;
⑵ xθy,其中x,y是常量或域变量,但至少有一个是域变量,θ是算术比较符。
公式中可使用∧、∨、┐和=>等逻辑运算符,也可用(∃x)和(∀x)形成公式,但变量x是域变量,不是元组变量。
在公式中各种运算符之间也有着优先级,从高到低依次是:算术运算符、量词(全称量词、存在量词)、逻辑运算符。
题目
(1)检索"程军"老师所授课程的课程号(C#)和课程名(CNAME)。
(2)检索年龄大于21的男学生学号(S#)和姓名(SNAME)。
(3)检索至少选修"程军"老师所授全部课程的学生姓名(SNAME)。
(4)检索"李四"同学不学课程的课程号(C#)。
(5)检索至少选修两门课程的学生学号(S#>。
(6)检索全部学生都选修的课程的课程号(C#)和课程名(CNAME)。
(7〉检索选修课程包含"程军"老师所授课程之一的学生学号(S#)。
(8)检索选修课程号为k1和k5的学生学号(S#)。
(9)检索选修全部课程的学生姓名( SNAME)。
( 10)检索选修课程包含学号为2的学生所修课程的学生学号(S#)。
(11)检索选修课程名为"语言"的学生学号(S#)和姓名(SNAME)。
关系代数表达式——例
元组演算表达式——例
(还是用上面那三个表):
(1)检索选修课程号为k5的学生学号和成绩。
(2)检索选修课程号为k8的学生学号和姓名。文章来源:https://www.toymoban.com/news/detail-400065.html
(3)检索选修课程名为"语言"的学生学号和姓名。
(4)检索选修课程号为k1或k5的学生学号。
(5)检索选修课程号为k1和k5的学生学号。(6)检索不选修k8课程的学生姓名和年龄。
(7)检索选修全部课程的学生姓名。
(8)检索所选修课程包含1号学生所选课程的学生学号。
域演算表达式——例
(1)检索选修课程号为k5的学生学号和成绩。
(2)检索选修课程号为k8的学生学号和姓名。
文章来源地址https://www.toymoban.com/news/detail-400065.html
到了这里,关于数据库原理与应用(SQL)——2、关系数据库(E-R图、关系模式、关系运算、关系代数)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!