2.4.1 关系代数表达式的优化问题
考核要求:达到“领会”
层次知识点:关系代数表达式的优化问题
查询优化的目的就是为了系统在执行时既省时间又能提高效率。
在关系代数运算中,通常是先进行笛卡尔积或联接运算,再进行选择和投影。笛卡尔积或联接运算却往往花费教多的时间。
因此,恰当地安排选择、投影和联接的顺序直接影响到整个操作所需要的时间和空间。 如何安排若干关系的运算操作步骤,是查询优化所要考虑的问题。
2.4.2 关系代数表达式的等价变换规则
考核要求:达到“识记”
层次知识点:等价变换规则
两个关系代数表达式等价是指用同样的关系实例代替两个表达式中相应关系时所得到的结果是完全一样的。
等价变换规则有很多,不要死记,从语义上理解。
其实,只要在前面的学习中已经掌握关系运算的真正含义,就可以判断两个关系代数表达式是否等价。
2.4.3 优化的策略
考核要求:达到“领会”
层次知识点:优化的策略及其简单应用
优化的策略主要有以下几点:
(1)在关系代数表达式中尽可能早地执行选择操作;
(2)把笛卡尔积和随后的选择操作合并成F联接运算;
(3)同时计算一连串的选择和投影操作;
(4)保留同一子表达式的结果;
(5)适当对关系文件进行预处理 ;
(6)计算表达式之前先估计一下怎么计算合算。
以上优化策略要求会简单应用:先做选择,运用投影去除多余属性等等。
2.4.4 关系代数表达式的优化算法
考核要求:达到“简单应用”
层次知识点:语法树
学会画语法树,并掌握优化算法。
举例
在教学数据库S、SC、C中,用户有一查询语句:检索女同学选修课程的课程名和任课教师名。
(1)试写出该查询的关系代数表达式;
(2)试写出查询优化的关系代数表达式;
(3)画出该查询初始的关系代数表达式的语法树;
(4)使用2.4.4节的优化算法,对语法树进行优化,并画出优化后的语法树。
3.1.1 SQL发展历程
考核要求:达到“识记”
层次知识点:SQL的发展历程
SQL:结构式查询语言,虽然名为查询语言,实际上具有定义、查询、更新和控制等多种功能。
3.1.2 SQL数据库的体系结构
考核要求:达到“领会”
层次知识点:三级结构的理解
SQL数据库的体系结构也是三级结构,但术语与传统关系模型术语不同,在SQL中,关系模式称为“基本表”,存储模式称为“存储文件”,子模式称为“视图”,元组称“行”,属性称“列”。
SQL数据库体系的结构要点如下:
(1)一个SQL数据库是表的汇集。
(2)一个SQL表由行集构成,行是列的序列,每列对应一个数据项。
(3)表或者是基本表,或者是视图。基本表是实际存储在数据库中的表,视图由是由若干基本表或其他视图构成的表的定义。
(4)一个基本表可以跨一个或多个存储文件,一个存储文件也可存放一个或多个基本表。存储文件与物理文件对应。
(5)用户可以用SQL语句对表进行操作,包括视图和基本表。
(6)SQL的用户可以是应用程序,也可以是终端用户。
3.1.3 SQL的组成
考核要求:达到“识记”
层次知识点:四个组成部分
SQL由四部分组成:
(1)数据定义:SQL DDL.定义SQL模式,基本表、视图和索引。
(2)数据操纵:SQL DML.包括数据查询和数据更新(增、删、改)。
(3)数据控制:包括对基本表和视图的授权、完整性规则的描述,事务控制等。
(4)嵌入式SQL的使用规定
3.2.1 SQL模式的创建和撤消
SQL模式的创建:建立一个SQL模式,定义一个存储空间。
创建SQL模式的CREATE语句,其句法是:
CREAT SCHEMA <模式名> AUTHORIZATION <用户名>
撤消SQL模式的DROP语句,其句法为:
DROP SCHEMA <模式名> [CASCADE|RESTRICT]
方括号中的选项参数CASCADE表示连锁方式,执行时将SQL模式下所有基本表、视图、索引等元素全部撤消。 RESTRICT表示约束式,只有在SQL模式中没有任何下属元素时才能撤消SQL模式,否则拒绝执行DROP语句。
3.2.2 SQL提供的基本数据类型
数值型:包括 integer、smallint、real、double precision 、float(n),numeric(p,d)
字符串型:char(n)、varchar(n),前者是定长,后者为变长串位串型:bit(n),bit varying(n),同上。
时间型:date、time. .
3.2.3 基本表的创建、修改和撤消
(1)基本表的创建:(建立表结构)
CREAT TABLE SQL 模式名。基本表名(列名,类型,……完整性约束……)
完整性约束包括主键子句(PRIMARY KEY)、检查子句(CHECK)和外键子句(Foreign KEY)。
(2)基本表结构的修改
增加新列:ALTER TABLE 基本表名 ADD 列名 类型
删除原有的列:ALTER TABLE基本表名 DROP 列名 [CASCADE|RESTRICT]
CASCADE为连锁删除,RESTRICT为约束删除,即没有对本列的任何引用时才能删除。
基本表的撤消DROP TABLE 基本表名 [CASCADE|RESTRICT]
3.2.4 视图的创建和撤消
(1)视图的创建:
CREAT VIEW 视图名(列名表) AS SELECT 查询语句
(2)视图的撤消:
DROP VIEW 视图名
3.2.5 索引的创建和撤消
(1)索引的创建:
CREAT [UNIQUE] INDEX 索引名 ON (列名表 [ASC|DESC])
(2)索引的撤消:
DROP INDEX 索引名
Notice:在各种SQL句法中,创建用CREAT ,删除都用DROP,改变用alter
3.4.1 数据插入
考核要求:达到“简单应用”层次
数据插入方式有两种:(1) 元组值的插入INSERT INTO 基本表名(列名表)
VALUES (元组值)
或
INSERT INTO 基本表名(列名表)
(TABLE(元组值),(元组值),……)
(2) 查询结果的插入
INSERT INTO 基本表名(列名表)
SELECT 查询语句
3.4.2 SQL数据删除考核要求:达到“简单应用”层次
DELETE FROM 基本表名 [WHERE条件表达式](语义:从基本表中删除满足条件表达式的元组)
3.4.3 数据修改考核要求:达到“简单应用”层次
UPDATE 基本表名SET 列名=值表达式,[列名=值表达式……] [WHERE 条件表达式](语义:修改基本表中满足条件表达式的那些元组中的列值,需修改的列值在SET子句中指出)
3.4.4 数据修改考核要求:达到“领会”层次
对视图的查询(SELECT)操作,和基本表一样,但是视图的更新操作受到下列三条规则的限制:
如果视图是从多个基本表使用联接操作导出的,则不允许更新。
如果导出的视图使用了分组和聚合操作,也不允许更新。
如果视图是从单个基本表使用选择、投影操作导出的,并且包括了基本表的主键或某个候选键, 那么这样的视图称为“行列子集视图”,则可以执行操作。
3.3.1 SELECT语句的基本句法
考核要求:达到“综合应用”
层次知识点:SELECT-FROM-WHERE句型的应用
(1) SELECT-FROM-WHERE句型
SELECT 列名表(逗号隔开) FROM 基本表或视图序列 WHERE 条件表达式
Notice:掌握条件表达式中各种运算符的应用。 算术比较运算符=,>,<,<>或!=,<=,>=;
逻辑运算符AND、OR、NOT;
集合成员资格运算符:IN,NOT IN;
谓词:EXISTS(存在量词),ALL,SOME,UNIQUE;
聚合函数:(在下面介绍)
(2) SELECT句型使用实例本节内容需要多看例题,多作习题进行掌握。
Notice:嵌套的SELECT语句的用法
(3)聚合函数注意各个函数的含义:
3.3.2 SELECT 语句完整的句法考核要求:达到“综合应用”层次
知识点:SELECT 语句完整句法的使用
SELECT 列名表(逗号隔开)
FROM 基本表或视图序列[WHERE 条件表达式] (行条件子句)
[GROUP BY 列名序列] (分组子句)
[HAVING 组条件表达式] (组条件子句)
[ORDER BY列名[ASC|DESC]……] (排序子句)
本节内容需要多看例题,多作习题进行掌握
3.3.3 SELECT语句中的限定
考核要求:达到“领会”层次知识点:种限定的使用目的和方法
(1)SELECT子句中的规定如果要求输出表格中不允许出现重复元组,则在SELECT后加一DISTINCT
SELECT子句中允许出现+,-,*,/,以及列名,常数的算术表达式
(2) 条件表达式的算术比较操作
WHERE 子句中可以用BETWEEN……AND……来限定一个值的范围
(3)列和基本表的改名操作
同一个基本表在 SELECT语句中多次引用时可用AS来增加别名
(4)字符串的匹配操作
WHERE子句中字符串匹配用LIKE和两个通配符,%和下划线_.
(5)集合的并、交、差操作
查询结果的结构完全一致时,可将两个查询进行并(UNION)交(INTERSECT)差(EXCPT)操作
(6)空值的比较操作
查询空值操作不是用='null',而是用 IS NULL来测试。
(7)集合的比较操作
集合成员资格比较用 IN/NOT IN集合成员算术比较用元组θSOME/ALL (θ是算术比较运算符)
(8) 导出表的使用
如果在FROM子句中使用了子查询,可以给子查询结果起个表名和相应的列名。
(9) 基本表的自然联接操作
基本表的自然联接操作是用 NATURAL INNER JOIN来实现的。
2.3.1 元组关系演算
考核要求:达到“领会”和“简单应用”
层次知识点:元组关系演算的定义及表达式的含义
元组演算表达式的一般形式为:{t|P(t)}
其含义为:这是一个元组集合,其中的每个元组t(t是元组变量)满足公式P所规定的条件。
理解有关公式和原子公式的定义,对于公式中出现的符号,比如
、、=>、∧、∨、┐
要理解其含义。
Notice:(1)结合例题和习题领会表达式的含义,一定要多做练习。
(2)对于给定的关系计算元组表达式的值。(此部分内容为“简单应用”)
2.3.2 域关系演算
考核要求:达到“领会”和“简单应用”
层次知识点:域关系演算的定义及表达式的含义
域演算表达式的一般形式为:{t1……tk|P(t1……,tk)}
其含义为:这是一个域集合,其中每个域变量的取值关系满足公式P所规定的条件。
理解域公式的写法Notice:
(1)结合例题和习题领会表达式的含义,一定要多做练习。(熟能生巧)
(2)对于给定的关系计算域表达式的值。(此部分内容为“简单应用”)
(3)表达式的转换不用强记,关键要从语义上理解。
2.3.3 关系运算的安全性和等价性
考核要求:达到“识记”
层次知识点:安全性和等价性的含义
(1)关系运算的安全性关系代数的运算总是安全性。
关系演算则可能出现无限关系(概念)和无穷验证(概念)问题。
在数据库技术中,不产生无限关系和无穷验证的运算称为安全运算,相应的表达式称为安全表达式,所采取的措施称为安全约束。
约定:运算只对表达式中公式在涉及到的关系的值范围内操作。
有了这一约定后,关系演算是安全的。
(2)关系运算的等价性并、差、笛卡儿积、投影和选择是关系代数最基本的操作,并构成了关系代数运算的最小完备集。
已经证明,在这个基础上,关系代数、安全的元组关系演算、安全的域关系演算 在关系的表达和操作能力上是安全等价的。
2.1.1 二维表格的基本术语
考核要求:达到“识记”
层次知识点:主要是一些基本概念
(1)二维表格 在关系模型中,一张二维表格对应一个关系。
(2)元组(tuple) 表中的一行(即一个记录),表示一个实体;关系是由元组组成的。
(3)关系:是一个元数为K(K>=1)的元组的集合。 一张二维表格对应一个关系。表中的一行称为关系的一个元组;表中的一列称为关系的一个属性。
在关系模型中,对关系作了下列规范性的限制: 关系中每一个属性值都是不可分解的;
关系中不允许出现相同的元组(没有重复元组);
不考虑元组间的顺序,即没有行序;在理论上,属性间的顺序(即列序)也是不存在的;
但在使用时按习惯考虑列的顺序。
(4)超键(Super Key):在关系中能唯一标识元组的属性集称为关系模式的超键;
(5)候选键(Candidate Key):不含有多余属性的超键称为候选键;
(6)主键(Primary Key):用户选作元组标识的一个候选键。
在以上概念中,主键一定可作候选键,候选键一定可作超键;反之,则不成立。
比如,在学生表中,如果有“学号”、“姓名”、“出生年月”等字段, 其中学号是唯一的,那么(学号)属于超键,(学号,姓名)的组合也是超键。 同时,(学号)是候选键,而(学号,姓名)由于含有多余属性,所以不是候选键。 在这三个概念中,主键的概念最为重要,它是用户选作元组标识的一个关键字。 如果一个关系中有两个或两个以上候选键,用户就选其中之一作为主键。
2.1.2 关系模式、关系子模式和存储模式
考核要求:达到“识记”
层次知识点:三种模式的理解
(1)关系模式:关系模型的定义包括:模式名,属性名,值域名以及模式的主键。它仅仅是对数据特性的描述,不涉及到物理存储方面的描述。
(2)子模式: 子模式是用户所用到的那部分数据的描述。除了指出用户数据外,还应指出模式和子模式之间的对应性。
(3)存储模式:关系存储时的基本组织方式是文件,元组是文件中的记录。
几个模式的理解(教材30页的例子):
在教学模型中,有实体类型“学生”,其属性有学号S#、SNAME、AGE、SEX分别表示学生的学号、姓名、年龄、性别;实体类型“课程”的属性C#、CNAME、TEACHER分别表示课程号、课程名和任课教师名。学生用S表示,课程用C表示,S和C之间有M:N联系,联系类型SC的属性是GRADE.
关系模式为:
学生关系S (S#、SNAME、AGE、SEX)
课程关系C(C#、CNAME、TEACHER)
学习关系SC(S#、C#、GRADE)
以下则为关系子模式:
成绩关系子模式G (S#、SNAME、C#、GRADE,GRADE),它对应的数据来自关系S和SC.
2.1.3 关系模型的三类完整性规则
考核要求:达到“领会”
层次知识点:三类完整性规则的理解
(1)实体完整性规则 要求关系中元组在组成主键的属性上不能有空值。如果出现空值, 那么主键值就起不了唯一标识元组的作用。(对关系主键的约束)
(2)参照完整性规则 要求外键值必须是另一个关系的主键的有效值,或者是空值。 (对关系外键的约束) 外键:(外来关键字)将一个关系的主键(比如 学生关系S中的S#) 放到另一个关系(比如SC)中,此时称S#是关系SC的外键。
注意事项:
外键和相应的主键可以不同名,只要定义在相同值于域上即可;
两个关系可以是同一个关系模式,表示了属性之间的联系。
外键值是否允许空,应视具体情况而定
假设数据库有如下关系:
学生关系S (S#、SNAME、AGE、SEX)
课程关系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周岁。 用户定义的完整性规则反映某一具体应用涉及的数据必须满足的语义要求。 系统提供定义和检验这类完整性的机制。
2.1.4 关系模型的形式定义
考核要求:达到“识记”
层次知识点:三个组成部分的了解
关系模型有三个组成部分:
数据结构、数据操作和完整性规则关系模型的的数据结构是关系;
关系模型提供一组完备的高级关系运算(关系代数+关系演算),支持数据库的各种操作;
关系模型包括三类完整性规则。
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.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中相同属性集中的元组有相同的块, 且除去此块后留下的相应元组均相同,那么可以得到一条元组, 所有这些元组的集合就是除法的结果
对于上述的五个基本操作和四个组合操作,应当从实际运算方面进行理解和运用。
应用举例
2.2.3 关系代数表达式及应用
考核要求:达到“简单应用”
层次知识点:关系代数表达式的应用
本节的内容是有关实际应用,应该多看例题,多做习题,必须达到以下要求: 能够根据给出的关系代数表达式计算关系值,也能够根据相应查询要求列出关系表达式。
(1)在列关系表达式时,通常有以下形式:
π……(σ……(R×S))或者π……(σ……(RS))
首先把查询涉及到的关系取来,执行笛卡尔积或自然联接操作得到一张大的表格,然后对大表格执行水平分割(选择)和垂直分割(投影)操作。
(2)当查询涉及到否定或全部的逻辑时,往往要用到差或除法操作。
关系代数表达式举例
2.2.4 扩充的关系代数操作
考核要求:达到“识记”
层次知识点:了解“外联接”和“外部并”的含义
注意:(1)“外联接”、“左外联接”、“右外联接”和“自然连接”的差异。
(2)“外部并”和“并”的差异
本文标签:广东自考 工学类 2019年自考数据库原理知识点详细介绍
转载请注明:文章转载自(http://www.gdzkw.net)
热点关注: