华南师范大学数据库系统复习

更新时间:2023-09-12 17:46:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

考试范围:

1、 第一到第七章。包括教材、课件、实验(基本内容,只要做过实验就没问题) 2、 “熟记”部分,一定要熟记

3、 “查询习题讲解”课件中的题型及方法(跟第二次实验讲评一起的方法PPT) 4、 掌握蓝色部分的应用题型和解题方法(对应章节的课件中有)

第一章 数据库系统概述

1. 四个概念:什么是数据? 什么是数据库? 什么是数据库管理系统(DBMS)?什么是数

据库系统(DBS)?

答:数据:以描述事物属性的符号;数据库:一个相互联系的数据的集合;数据库管理系统DBMS:存取和管理这些数据的一套程序;数据库系统DBS:由数据库、数据库管理系统、计算机系统组成。

2. 熟记数据库系统的组成。

数据库、硬件、软件(DBMS,OS,数据库应用程序,应用程序开发工具),人员(数据库管理员,应用程序员,最终用户) DBS=数据库+数据库管理系统+计算机系统

3. 理解数据库管理员DBA是对数据库进行集中控制和管理的最重要人员。

4. 实例和模式的对比(内容/状态 vs 结构,变化 vs 稳定)

模式:数据库中表的结构(属性),相对稳定。 实例:数据库中表的具体内容(元组),时时变化。

5. 三级模式:物理模式(又称内模式),逻辑模式(又称模式),和子模式(又称外模式)

的含义是什么?一个数据库有几个物理模式,逻辑模式和子模式? 三级模式间的两极映射,以及是由谁(DMBS)完成这种映射功能的?两级映射的作用(好处)是带来以下两种数据独立性。

物理模式:整体数据库的物理结构,描述全体数据在硬盘等介质上如何存储。一个数据库只有一个内模式。

逻辑模式:整体数据库的逻辑结构,描述所有数据的结构和数据间联系,屏蔽了向下的物理模式,即与数据的物理存储细节和硬件环境无关。一个数据库只有一个模式。 子模式:一部分数据库的逻辑结构(特定用户能看到的部分),一部分数据库的逻辑结构(特定用户能看到的部分)。外模式=用户视图=(逻辑)模式的子集 两级映射:内模式/模式映像,外模式/模式映像

6. 两种数据独立性:什么是逻辑数据独立性?什么是物理数据独立性?用户或者应用程序

面向的到底是哪一级数据库模式?

物理数据独立性:当数据库的物理存储结构改变时(如存储位置改变),应用程序不必变化。内模式/模式映射保证了物理数据独立性。

逻辑数据独立性:当数据库的整体逻辑结构改变时(如字段的增减,字段名修改),应用程序不一定要改变。外模式/模式映射保证了逻辑数据独立性。 用户/应用程序面向的是:外模式

第1页 共12页

7. 熟记数据模型的定义,组成部分(三要素):数据结构,数据操作,数据完整性约束

数据模型是用于描述数据、数据联系、数据语义和数据约束的一套工具与方法。

8. 概念数据模型用于数据库设计,是对客观世界的第一层抽象。常见例子是E-R模型。

9. 例举各种用于数据库的数据模型:层次、网状、关系、对象、半结构化等。

第二章 关系模型与关系运算

1. 数据模型的三要素?关系模型的三要素?

数据模型三要素:数据结构、数据操作、数据完整性约束 关系模型三要素:关系、关系操作、关系完整性约束

2. 关系的组成:什么是属性?什么是元组?什么是分量?

属性:关系的一列 元组:关系的一行

分量:行和列的交叉(某个元组的某个属性值)

3. 理解关系有哪些基本性质?

列的同质性:同一列中的分量(值)必须具有相同的类型,因为它们来自同一个域。 异列同域性:不同列可以来自同一个域,但属性名不能相同

元组相异性:关系里的任意两行不能相同,因为关系是一个元组集合 行列无序性:关系的行或列是顺序无关的。

属性值原子性:每一个属性值(分量)都必须是原子的(不可分),不允许出现组合数据,更不允许“表中有表”。

4. 关系有哪四种键?数量(是否有多个)?什么是外部键?外部键的属性名可以和所对应

的主键不同。外部键可以指向同一个关系的主键。例如:学生(学号,姓名,班长学号...)。外部键从E-R图的什么概念转化而来?

超键:关系中能够唯一标识每个元组的属性或者属性组,数量可能有多个。 候选键:把超键中多余的属性去掉后,剩余的就是候选键,数量可能有多个。 主键:从候选键选出一个作为主键,数量只能一个。

外部键:关系R1中的单个属性或属性集合,对应关系R2的主键,可能有多个。

5. 关系模式和关系实例的对比。

关系模式比较稳定。而关系实例随时间而变化,原因是元组不断被插入/删除/更新

6. 查询语言分类:过程化和非过程化语言的区分和理解——看课件。

过程化:用户要指定 ① what: 查询什么 ② how:怎么查询,用什么方法、过程? 非过程化:用户只要指定查询什么,而“怎么查询”的问题留给系统处理——系统会自动寻找(近似)最优的查询方法/查询执行计划,即查询优化。 关系代数是过程化的,SQL和关系演算是非过程化的

7. 关系操作分为查询和更新操作。表示关系操作的语言:关系代数,关系演算(又分为元

组关系演算和域关系演算)。关系代数是过程化的,关系演算是非过程化的。

第2页 共12页

8. 掌握关系代数的各种运算(包括符号)。其中最基本的运算(不可替代)是哪些? 基本运算:选择?,投影?,笛卡儿积X,集合并?,集合差-,更名? 附加运算:集合交?,自然连接(同名属性相等,去掉重复同名属性),除÷(“?所有?”

的查询,一般用除运算表示),赋值?

扩展运算:广义投影?(下标可有计算表达式),外连接,聚集运算 聚集函数:avg,sum,count,max,min(-distinct)

聚集运算:G1 , G2 , ... , Gn G F1(A1) , F2(A2) , ? , Fm(Am)(E)

一元运算:输入为一个关系 二元关系:输入为两个关系

9. 查询优化的三种技术:物理优化,规则优化,代价估算优化。规则优化的三种启发式规

则:选择优先,投影优先,笛卡尔积合并。

物理优化:利用某些存储数据结构,如索引、聚簇、排序文件等进行优化

规则优化:只考虑查询语句本身,根据某些启发式规则进行优化,例如“先选择、先投影和后连接” 代价估算优化:对多个候选查询计划,逐个进行代价估算(需要访问一些数据字典信息,如表的大小),从而选取代价最小的

10. 应用题型:用关系代数表达查询问题(查询习题课件)

第三章 关系数据库语言SQL 1. SQL的全名(中英文)。SQL是非过程化的语言。理解SQL的特点(基本功能特征)。

SQL的全名:结构化查询语言Structured Query Language 特点:综合统一性(功能的统一、操作过程的统一)、高度非过程化、面向集合的操作方式

2. 熟记SQL的四种功能。这些功能分别由哪些语句(动词)实现?

DDL(数据定义):create,alter,drop DML(数据操纵):select(数据查询)insert、update、delete(数据修改) DCL(数据控制):grant,revoke

3. SQL对数据库三级模式的规定:每级模式由什么组成?

物理模式:描述所有数据是如何在硬盘等介质上存储的,存储文件。 (逻辑)模式:描述所有数据的结构及所有数据间的联系,基表。

子模式:描述某个特定用户能看到的那一部分数据的结构及它们之间的联系,视图。

4. 理解SQL中的系统数据类型,char/varchar/numeric等。

char (n):长度固定为n的字符串

varchar (n):可变长度的字符串,最大长度为n

numeric (p, q):总共不多于p位,小数点右边不多于q位的定点数

5. 掌握SQL的各个数据定义语句(特别是新建表,建视图,修改表,删除表的语句)。

第3页 共12页

1) create table Student (Sno char(8) not null,

SName varchar(8) not null, Sex char(1) default ‘M’, Primary key (Sno,SName),

//Foreign key (Sno) references S(Sno) Check (Sex=’M’ or Sex=’F’) )

2) alter table Student add Age int not null 3) alter table Student modify Age smallint 4) drop table Student

5) create index index_on_age Student(Age)

6) create view Book_Not_Borrow(Book_Num,Book_Writer) as (select Book.Name,Writer.Name frome Book,Writer,Borrow where ?? )

6. 掌握SQL的Select数据查询语句。

1) 计算次序:From (笛卡儿积) → Where (选择) → Group by → Having → Select (投影) →Order by

2)select姓名 as name, 0.05*工资 as tax select distinct 部门

select 选修.姓名 from 选修,选修 as 王

3)where中可以出现:<、<=、>、>=、=、<>、and、or、not、between 下 and 上、in(集合)、not in(集合)、like(匹配串) 4) Group By 属性1,属性2,?:作用:Where子句筛选元组后,对它们分组,分组依据:属性1,属性2。用法:出现统计词,比如“平均,最高,总和, ?”的问题

Select 子句的作用发生变化:对分组进行统计,Select中出现的属性只能是:分组属性、聚集函数

Select 课程,Avg(成绩) as 平均成绩,Max(成绩) as 最高成绩 From 选修 Group By 课程 5) Having Q (分组限定条件):作用:出现在group by子句后面,不能单独使用,Group By分好组后,按条件Q作筛选,Q中出现的属性只能是:分组属性、聚集函数(Having用于分组,Where用于元组)。 Having Avg(成绩) > 85

6)Order By 属性1[asc|desc],属性2 [asc|desc],?:出现在最最后面,作用:在Select子句得出结果后,先按属性1的值,升序(asc)或降序(desc)排列,缺省是升序;属性1的值相等时,再按属性2值升序或降序排列? Order By 成绩 desc ,姓名

7) From子句中用子查询构造派生关系:复杂的查询分解成若干步->把上一步的查询结果变成一个派生关系->在下一步查询中使用,例如求平均一间宿舍的人数?(先求各间宿舍的人数,再求平均)

第4页 共12页

8) Where子句中用子查询构造条件:

a.where A [not] in (子查询),意义:A是否出现在子查询的结果中? (是为真,否则为假),可以多个元组,但只能有一个属性

Where 课程 in (Select 课程 From 课程计划 Where 专业=‘网络' )

b.where A (比较运算, >, <, =,?) some|all (子查询),意义:some: A与子查询结果中的一个值满足,比较时为真; all:A与子查询结果中的所有值都满足,比较时为真 Where 年龄<=all (Select 年龄 From学生),可以多个元组,但只能有一个属性 c.where A [not] exists (子查询),意义:子查询结果存在 (至少一条)记录,可包含多个属性。exists和in的差别:exists可包含多个属性,in只能有一个属性,故in的Select语句只有一个属性。

Where exists (Select * From 选修 Where 姓名=学生.姓名 and 课程=‘物理’) 9) from子句中可以是连接运算A (inner) join B on 条件、A left/right/full [outer] join B on 条件

From 报名表 right outer join 招工表 on 报名表.年龄<=招工表.年龄限制 From 员工 right outer join 部门 on员工.部门=部门.部门

7. 掌握SQL的各个数据修改语句: Insert, Update, Delete。

Insert Into 职员表(职工号,姓名,年龄) Values (‘E05’,‘张明’, 30);#没有包含的属性则采用默认值或者null。

delete from 学生表 Where 姓名=‘刘芳’;#没有Where子句,则删除全部元组(但表的结构如字段、主键等保留)。

Update 员工 Set 经理=(select 经理 From 部门 Where 部门=员工.部门); Update学生 Set 宿舍=‘203’ Where 姓名=‘黄大鹏’;#在关系中找到满足Where条件的 (没有就是全部)记录,然后更新 —— Set子句说明更新哪些字段,以及更新后的值(表达式的结果)

8. 空值的意义;空值的运算规则(包括聚集函数忽略空值等)。给出一个包含空值的式子,

能计算最终结果。

表示两种情况:值未知,或值不存在

计算规则:空值出现在算术运算中,其结果一定还是null;如:2014-null=null 空值出现在比较运算中,结果一定是unknown (true or false);如:not((Null = Null) and(Null<>Null))=unknown=false(最后一步计算得到的结果是unknown,那么就替换为false)

空值出现在布尔运算中,null替换为unknown后再计算;如:(unknown or true) =true、(true and unknown)=unknown、(not unknown)=unknown 聚集函数忽略空值,但count(*)例外。

9. 理解视图的本质:命名的查询语句,只有这个才是真正存储在数据库里;表象:虚拟表,

与真正的表基本表相比有相同也有不同;动态变化)。理解视图的优点。

一个①命名、用②查询从基本表中导出的③虚拟表,物理上不存在,视图中的数据(记录)平时并没有存储在数据库里,而是用到时候才执行查询算出来(动态变化)。 用户对视图的操作(查询或更新),系统在执行时必须转化为对相关基本表的操作。 优点:简化用户的操作、个性化服务、安全性、逻辑独立性

第5页 共12页

本文来源:https://www.bwwdw.com/article/62jh.html

Top