关系数据库系统概论2关系模型

数据库关系模型  时间:2021-02-27  阅读:()

1关系模型的基本概念

1. 1二维表格的基本术语

考核要求达到“识记”层次

知识点主要是一些基本概念

(1)二维表格在关系模型中一张二维表格对应一个关系。

(2)元组表中的一行即一个记录 表示一个实体关系是由元组组成的。

(3)域是一组具有相同数据类型的值的集合。

(4)笛卡尔积域上的一种集合运算。

(5)关系是一个元数为K(K>=1)的元组的集合。一张二维表格对应一个关系。表中的一行称为关系的一个元组表中的一列称为关系的一个属性。

在关系模型中对关系作了下列规范性的限制

关系中每一个属性值都是不可分解的

关系中不允许出现相同的元组没有重复元组)

不考虑元组间的顺序 即没有行序

在理论上属性间的顺序即列序也是不存在的

列是同质的 即每一列中的分量是同一类型的数据来自同一个域

不同的列可出自同一个域不同的属性要给予不同的属性名。

(6)超码SuperKey 在关系中能唯一标识元组的属性集称为关系模式的超码

(7)候选码(Candi dateKey) 不含有多余属性的超码称为候选码

(8)主码Pr i maryKe y 用户选作元组标识的一个候选码。

在以上概念中主码一定可作候选码候选码一定可作超码 反之则不成立。

比如在学生表中如果有“学号”、 “姓名”、 “出生年月”等字段其中学号是唯一的那么学号属于超码 学号姓名的组合也是超码。 同时 学号是候选码而学号姓名 由于含有多余属性所以不是候选码。在这三个概念中主码的概念最为重要它是用户选作元组标识的一个关键字。如果一个关系中有两个或两个以上候选码用户就选其中之一作为主码。

1.2关系模型的三类完整性规则

考核要求达到“领会”层次

知识点三类完整性规则的理解

(1)实体完整性规则要求关系中元组在组成主码的属性上不能有空值。如果出现空值那么主

码值就起不了唯一标识元组的作用。 对关系主码的约束

(2)参照完整性规则要求外码值必须是另一个关系的主码的有效值或者是空值。 对关系外

码的约束

外码 外来关键字将一个关系的主码比如学生关系S中的S#放到另一个关系比

如SC 中此时称S#是关系SC的外码。

注意事项

外码和相应的主码可以不同名只要定义在相同值于域上即可

两个关系可以是同一个关系模式表示了属性之间的联系。

外码值是否允许空应视具体情况而定

假设数据库有如下关系

学生关系S(S#、 SNAM E、A GE、 S EX)

课程关系CC#、 CNAME、 TEACHER

学习关系SCS#、 C#、 GRADE

那么

(1)S#是关系S的主码 因此在关系S中不能为空 实体完整性规则

(2)C#是关系C的主码 因此在关系C中不能为空 实体完整性规则

关系SC中

S#、 C#的组合为主码 因此S#、 C#不能为空 实体完整性规则

S#是来自S的外码 因此它必须和关系S中某个元组的S#相同。 参照完整性规则

C#是来自C的外码 因此它必须和关系C中某个元组的C#相同。 参照完整性规则

(3)用户定义的完整性规则这是针对某一具体数据的约束条件 由应用环境决定例如学生的年龄限制为15~30周岁。用户定义的完整性规则反映某一具体应用涉及的数据必须满足的语义要求。系统提供定义和检验这类完整性的机制。

1.3关系模型的形式定义

考核要求达到“识记”层次

知识点三个组成部分的了解

关系模型有三个组成部分数据结构、数据操作和完整性规则

关系模型的的数据结构是关系

关系模型提供一组完备的高级关系运算关系代数+关系演算 支持数据库的各种操作

关系模型包括三类完整性规则。

2关系代数运算

2. 1关系代数的五个基本操作

考核要求达到“简单应用”层次

知识点五个基本操作的含义和运算应用

(1)并(∪) 两个关系需有相同的关系模式并的对象是元组 由两个关系所有元组构成。

RUS≡{t|t∈R∨t∈S}

(2)差(-)  同样两个关系有相同的模式 R和S的差是由属于R但不属于S的元组构成的集合。

R-S≡{t|t∈R∧t不属于S}

(3)笛卡尔积× 对两个关系R和S进行操作产生的关系中元组个数为两个关系中元组个数之积。

R×S≡{t|t=<tr, ts>∧tr∈R∧ts∈S}

(4)投影(σ) 对关系进行垂直分割消去某些列并重新安排列的顺序。

(5)选择(π) 根据某些条件关系作水平分割 即选择符合条件的元组。

2.2关系代数的四个组合操作

考核要求达到“简单应用”层次

知识点 四个组合操作的含义和运算应用

(1)交(∩)  R和S的交是由既属于R又属于S的元组构成的集合。

(2)连接:包括θ (算术比较符)连接和F(公式)连接.

选择R×S中满足iθ (r+j)或F条件的元组构成的集合

概念上比较难理解关键理解运算实例

等值连接(θ为等号“=”的连接) 。

(3)自然连接(RS) 在R×S中选择R和S公共属性值均相等的元组并去掉R×S中重复的公共属性列。如果两个关系没有公共属性则自然连接就转化为笛卡尔积。

(4)除法(÷) 首先除法的结果中元数为两个元数的差

R÷S的操作思路如下---把S看作一个块如果R中相同属性集中的元组有相同的块且除

去此块后留下的相应元组均相同那么可以得到一条元组所有这些元组的集合就是除法

的结果

对于上述的五个基本操作和四个组合操作应当从实际运算方面进行理解和运用。应用举例

设有关系R和S 如下 

计算

2.3关系代数表达式及应用

考核要求达到“简单应用”层次

知识点关系代数表达式的应用

有关实际应用应该多看例题多做习题 必须达到以下要求能够根据给出的关系代数表达式计算关系值也能够根据相应查询要求列出关系表达式。

1在列关系表达式时通常有以下形式

π. . . (σ. . . (R×S) )或者π. . . (σ. . . (RS) )

首先把查询涉及到的关系取来执行笛卡尔积或自然连接操作得到一张大的表格然后对大

表格执行水平分割(选择)和垂直分割(投影)操作。

2当查询涉及到否定或全部的逻辑时往往要用到差或除法操作。

关系代数表达式举例

[例]设教学数据库中有3个关系

学生关系S(SNO,SNAME,AGE,SEX)

学习关系S C(S N O,C NO,GR A DE)

课程关系C(CNO,CNAME,TEACHER)

下面用关系代数表达式表达每个查询语句。

(1)检索学习课程号为C2的学生学号与成绩。

πSNO GRADE (σCNO='C2' (S C) )

(2)检索学习课程号为C2的学生学号与姓名

πSNO SNAME (σCNO='C2' (SS C) )

由于这个查询涉及到两个关系S和SC 因此先对这两个关系进行自然连接 同一位学生的有关的信息 然后再执行选择投影操作。

此查询亦可等价地写成

πSNO SNAME SπSNO(σCNO='C2' (S C) ) 

这个表达式中自然连接的右分量为"学了C2课的学生学号的集合"。这个表达式比前一个表达式优化执行起来要省时间省空间。

3检索选修课程名为MATHS的学生学号与姓名。

πSNO SANME (σCNAME='MATHS' (SS CC) )

4检索选修课程号为C2或C4的学生学号。

πSNO(σCNO='C2'∨CNO='C4' (S C) )

5检索至少选修课程号为C2或C4的学生学号。

π1 (σ1=4∧2='C2'∧5='C4' SC×S C )

这里 SC×SC表示关系SC 自身相乘的乘积操作其中数字1 2 4 5都为它的结果关系中的属性序号。

比较这一题与上一题的差别。

6检索不学C2课的学生姓名与年龄。

πSNAME AGE

这个表达式用了差运算差运算的左分量为"全体学生的姓名和年龄" 右分量为"学了C2课的学生姓名与年龄" 。

7检索学习全部课程的学生姓名。

编写这个查询语句的关系代数过程如下

(a)学生选课情况可用πSN O,CN O(S C)表示

(b)全部课程可用πCNO(C)表示

(c)学了全部课程的学生学号可用除法操作表示。

操作结果为学号SNO的集合该集合中每个学生对应SNO)与C中任一门课程号CNO配在一起都在πSCOCNO SC中出现即SC中出现 所以结果中每个学生都学了全部的课程这是"除法"操作的含义 

πSNO,CNO (SC)÷πCNO(C)

(d)从SNO求学生姓名SNAME可以用自然连结和投影操作组合而成

πSNAME () ) )

这就是最后得到的关系代数表达式。

8检索所学课程包含S3所学课程的学生学号。

注意 学生S3可能学多门课程所以要用到除法操作来表达此查询语句。

学生选课情况可用操作πSN O,C NO(S C)表示

所学课程包含学生S3所学课程的学生学号可以用除法操作求得

πSNO,CNO (SC)÷πCNO(σSNO='S3' (SC) 

3查询优化

3. 1关系代数表达式的优化问题

考核要求达到“领会”层次

知识点关系代数表达式的优化问题

查询优化的目的就是为了系统在执行时既省时间又能提高效率。

在关系代数运算中通常是先进行笛卡尔积或连接运算再进行选择和投影。笛卡尔积或连接运算却往往花费教多的时间。

因此恰当地安排选择、投影和连接的顺序直接影响到整个操作所需要的时间和空间。如何安排若干关系的运算操作步骤是查询优化所要考虑的问题。

3.2关系代数表达式的等价变换规则

考核要求达到“识记”层次

知识点等价变换规则

两个关系代数表达式等价是指用同样的关系实例代替两个表达式中相应关系时所得到的结果是完全一样的。

等价变换规则有很多不要死记从语义上理解。

其实只要在前面的学习中已经掌握关系运算的真正含义就可以判断两个关系代数表达式是否等价。

3.3优化的策略

考核要求达到“领会”层次

知识点优化的策略及其简单应用

优化的策略主要有以下几点

(1)在关系代数表达式中尽可能早地执行选择操作

(2)把笛卡尔积和随后的选择操作合并成F连接运算

(3)同时计算一连串的选择和投影操作

(4)保留同一子表达式的结果

(5)适当对关系文件进行预处理

(6)计算表达式之前先估计一下怎么计算合算。

以上优化策略要求会简单应用先做选择运用投影去除多余属性等等。

3.4关系代数表达式的优化算法

考核要求达到“简单应用”层次

知识点语法树

学会画语法树并掌握优化算法。

举例

在教学数据库S、 SC、 C中用户有一查询语句检索女同学选修课程的课程名和任课教师名。

(1)试写出该查询的关系代数表达式

(2)试写出查询优化的关系代数表达式

(3)画出该查询初始的关系代数表达式的语法树

(4)使用2.4.4节的优化算法对语法树进行优化并画出优化后的语法树。

(1)πCNAM) )

(2)优化为 πCNAME TEACHER ()) ) )

(基本思路尽量提前做选择操作在每个操作后应做个投影操作去掉不用的属性值。

PhotonVPS:$4/月,KVM-2GB/30GB/2TB/洛杉矶&达拉斯&芝加哥等

很久没有分享PhotonVPS的消息,最近看到商家VPS主机套餐有一些更新所以分享下。这是一家成立于2008年的国外VPS服务商,Psychz机房旗下的站点,主要提供VPS和独立服务器等,数据中心包括美国洛杉矶、达拉斯、芝加哥、阿什本等。目前,商家针对Cloud VPS提供8折优惠码,优惠后最低2G内存套餐每月4美元起。下面列出几款主机配置信息。CPU:1core内存:2GB硬盘:30GB NVm...

DiyVM:50元/月起-双核,2G内存,50G硬盘,香港/日本/洛杉矶机房

DiyVM是一家比较低调的国人主机商,成立于2009年,提供VPS主机和独立服务器租用等产品,其中VPS基于XEN(HVM)架构,数据中心包括香港沙田、美国洛杉矶和日本大阪等,CN2或者直连线路,支持异地备份与自定义镜像,可提供内网IP。本月商家最高提供5折优惠码,优惠后香港沙田CN2线路VPS最低2GB内存套餐每月仅50元起。香港(CN2)VPSCPU:2cores内存:2GB硬盘:50GB/R...

特网云,美国独立物理服务器 Atom d525 4G 100M 40G防御 280元/月 香港站群 E3-1200V2 8G 10M 1500元/月

特网云为您提供高速、稳定、安全、弹性的云计算服务计算、存储、监控、安全,完善的云产品满足您的一切所需,深耕云计算领域10余年;我们拥有前沿的核心技术,始终致力于为政府机构、企业组织和个人开发者提供稳定、安全、可靠、高性价比的云计算产品与服务。公司名:珠海市特网科技有限公司官方网站:https://www.56dr.com特网云为您提供高速、稳定、安全、弹性的云计算服务 计算、存储、监控、安全,完善...

数据库关系模型为你推荐
外网和内网外网和内网的区别安装程序配置服务器失败SQL安装程序配置服务器失败arm开发板ARM开发板具体有什么作用?有什么商业价值?网店推广网站什么平台适合做淘宝店铺推广中小企业信息化信息化为中小企业发展带来了哪些机遇如何建立一个网站要建立一个网站怎么弄啊?硬盘人移动硬盘的优缺点ejb开发什么是EJB?它是干什么的?和JAVA,JSP有关系吗?他们各有什么特点和用途?二层交换机二层交换机是什么意思,三层呢怎么上传音乐怎么上传音乐到网上
成都主机租用 com域名价格 vps交流 息壤主机 免费主机 cpanel directadmin patcha 国外免费空间 上海域名 什么是服务器托管 美国在线代理服务器 免费网页空间 cloudlink 重庆电信服务器托管 云营销系统 lamp什么意思 杭州电信宽带优惠 服务器防御 512内存 更多