约束元组变量和自由元组变量若在元组关系演算公式中:元组变量前有全称量词或存在量词,该变量为约束元组变量;否则为自由元组变量。元组关系演算公式的递归定义①每个原子公式都是公式。④在元组关系演算公式中,运算符的优先次序为:括号算术比较存在量词、全称量词逻辑非、与、或。⑤元组关系演算公式是有限次应用上述规则的公式,其他公式不是元组关系演算公式。......
2025-09-30
首先通过一个简单的例子来看一下查询优化的必要性。
设学生选课库的关系模式为
学生(学号,姓名,年龄,所在系);
选课(学号,课程号,成绩)。
求选修了C1号课程的学生姓名,用SQL语言表达如下:
SELECT学生,姓名
FROM学生,选课
WHERE学生.学号=选课.学号AND选课.课程号=’C1’;
假定学生选课库中有1000个学生记录,10000个选课记录,其中选修C1号课程的选课记录有50个。这个查询系统可以用多种等价的关系代数表达式来完成。
这里列出其中3种:
下面分析这3种查询的策略,看看策略的不同会对查询的时间效率产生怎样的影响。
1.第1种情况
(1)计算广义笛卡儿积
把学生和选课的每个元组连接起来。连接的做法一般是这样的:在内存中尽可能多地装入某个表(如学生表)的若干块元组,留出一块存放另一个表(如选课表)的元组。然后把选课中的每个元组和学生中的每个元组连接,连接后的元组装满一块后就写到中间文件上,再从选课中读入一块和内存中的学生元组连接,直到选课表处理完。这时再一次读入若干块学生元组,读入一块选课元组。重复上述处理过程,直到把学生表处理完。
设一个块能装10个学生元组或100个选课元组,在内存中存放5块学生元组和一块选课元组,则读取总块数为
(https://www.chuimin.cn)
其中读学生表100块。读选课表20遍,每遍100块。若读写20块/s,则总计要花105s。
连接后的元组数为103×104=107。设每块能装10个元组,则写出这些块要用5×104s。
(2)进行选择操作
依次读入连接后的元组,按照选择条件选取满足要求的记录。假定内存处理时间忽略,这一步读取中间文件花费的时间(同写中间文件一样)需5×104s。满足条件的元组假设仅50个,均可放在内存中。
(3)进行投影操作
把第(2)步的结果在姓名上做投影输出,得到最终结果。
因此,第1种情况下执行查询的总时间≈105+2×5×104≈105(s)。这里,所有内存处理时间忽略不计。
2.第2种情况
(1)计算自然连接花费的时间。执行自然连接仍需读取学生和选课表,因此读取块数仍为2100块,花费时间为105 s。自然连接的结果比广义笛卡儿积减少了很多,为104个,所以写出这些元组的时间为50s,仅为第1种情况的千分之一。
(2)执行选择运算花费时间。执行选择运算花费时间为50s。
(3)把第(2)步结果投影输出。第2种情况总的执行时间≈105+50+50≈205(s),比第1种情况大大减少。
3.第3种情况
(1)先对选课表作选择运算。只需读一遍选课表,存取100块花费时间为5 s,因为满足条件的元组仅50个,不必使用中间文件。
(2)读取学生表。把读入的学生元组和内存中的选课表进行连接。同样只需读一遍学生表(共100块)花费时间为5 s。
(3)把连接结果投影输出。第3种情况总的执行时间≈(5+5)s≈l0s,比第2种情况又减少了很多。
如果在选课表的课程号上建有索引,则第1步就不必读取所有的选课元组,而只需读取课程号=’C1’的那些元组(50个)。存取的索引块和选课表中满足条件的数据块总共3~4块。如果学生表在学号上也建有索引,则第2步也不必读取所有的学生元组,因为满足条件的选课记录只有50个,最多涉及50个学生记录,因此读取学生表的块数也可大大减少。总的存取时间将进一步减少到数秒。
相关文章
约束元组变量和自由元组变量若在元组关系演算公式中:元组变量前有全称量词或存在量词,该变量为约束元组变量;否则为自由元组变量。元组关系演算公式的递归定义①每个原子公式都是公式。④在元组关系演算公式中,运算符的优先次序为:括号算术比较存在量词、全称量词逻辑非、与、或。⑤元组关系演算公式是有限次应用上述规则的公式,其他公式不是元组关系演算公式。......
2025-09-30
下面给出几个应用关系代数进行查询的实例。解题说明:该题的求解思路是在全部学号中去掉选修“C2”课程的学生学号,就得出没有选修课程号为“C2”课程的学生学号。应当特别注意的是,由于选择操作为元组操作,本题不能写为求既选修“C2”课程,又选修“C3”课程的学生学号。①除关系和被除关系都为选课表。通过选择运算,求出学号为“98002”学生所选课程的元组;通过投影运算,得出除关系的结构。......
2025-09-30
由开发人员定义存储数据的文件及文件结构,借助文件管理系统的功能编写访问这些文件的应用程序,以实现对用户数据的处理方式称为文件管理,在本章后面的讨论中将忽略文件管理系统,假定应用程序是直接对磁盘文件进行操作的。图1—1文件管理的操作模式假设某学校要用文件的方式保存学生及其选课的数据,并在这些数据文件基础之上构建对学生进行管理的系统。图1—2文件管理实现示例假设文件F1、F2和F3分别包含如下信息。......
2025-09-30
本章所介绍的K线辅助系统主要由均线、成交量、分时线和MACD指标四个技术指标构成,如图5-1所示。图5-1 铜陵有色日K线走势图下面结合铜陵有色的走势,介绍一下K线辅助系统的功能。投资者如果对这一信号的准确性存在疑虑,还可以借助这套辅助系统进行确认。......
2025-09-29
4个LED灯分别用4个GPIO口来进行单独控制,通过I/O控制发光二极管的亮和灭。图4.7GPIO与LED灯的连接通过电路原理图可以得到的物理连接如表4.2所示。表4.2物理连接对应如表4.3所示,GPH3相关的寄存器有:GPH3CON,GPH3DAT,GPH3PUD以及GPH3DRV。表4.3GPH3寄存器族表4.4GPH3CON端口配置寄存器表4.5GPH3DAT端口数据寄存器表4.6GPH3PUD端口上拉寄存器表4.7GPH3DRV端口驱动能力寄存器本例通过使用mmap方法实现不经过内核驱动直接在用户区映射的方式来控制寄存器,从而最终控制LED灯的功能。......
2025-09-30
分解是关系规范化采用的主要手段,分解后的关系可以自然连接将关系合并。连接依赖是有关分解和自然连接的理论,第五范式是有关如何消除子关系的插入和删除异常的理论。、xn上具有n目连接依赖。例如,设关系模式SPJ,其中SNO表示供应者号,PNO表示零件号,JNO表示项目号。因为多值依赖是连接依赖的特殊情况,所以任何5 NF的关系自然也都是4 NF的关系。......
2025-09-30
下面通过例子来说明如何创建一个VI程序。 字符串输入与显示目的:建立一个简单的VI,包括一个字符串输入控件、一个字符串输出控件和一个按钮,当按下按钮时,将输入的字符串显示到字符串显示控件中。具体步骤如下:1)在LabVIEW中,选择“文件”→“新建VI”,打开一个新的前面板窗口。在上例中,初学者很难记住系统提供的大量控件与模块的功能,有一个很方便的助手,这就是即时帮助。......
2025-09-29
关系模式设计的好坏将直接影响到数据库设计的成败。将关系模式规范化,使之达到较高的范式,这是设计好关系模式的主要途径。表2-1中的数据按分解后的关系模式组织,得到表2-2。......
2025-09-30
相关推荐