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

上传人:b****3 文档编号:5523981 上传时间:2022-12-18 格式:DOCX 页数:16 大小:115.85KB
下载 相关 举报
华南师范大学数据库系统复习.docx_第1页
第1页 / 共16页
华南师范大学数据库系统复习.docx_第2页
第2页 / 共16页
华南师范大学数据库系统复习.docx_第3页
第3页 / 共16页
华南师范大学数据库系统复习.docx_第4页
第4页 / 共16页
华南师范大学数据库系统复习.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

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

《华南师范大学数据库系统复习.docx》由会员分享,可在线阅读,更多相关《华南师范大学数据库系统复习.docx(16页珍藏版)》请在冰豆网上搜索。

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

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

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

LT

逻辑模式:

整体数据库的逻辑结构,描述所有数据的结构和数据间联系,屏蔽了向下的物理模式,即与数据的物理存储细节和硬件环境无关。

一个数据库只有一个模式。

子模式:

一部分数据库的逻辑结构(特定用户能看到的部分),一部分数据库的逻辑结构(特定用户能看到的部分)。

外模式=用户视图=(逻辑)模式的子集

两级映射:

内模式/模式映像,外模式/模式映像

1.两种数据独立性:

什么是逻辑数据独立性?

什么是物理数据独立性?

用户或者应用程序面向的到底是哪一级数据库模式?

物理数据独立性:

当数据库的物理存储结构改变时(如存储位置改变),应用程序不必变化。

内模式/模式映射保证了物理数据独立性。

逻辑数据独立性:

当数据库的整体逻辑结构改变时(如字段的增减,字段名修改),应用程序不一定要改变。

外模式/模式映射保证了逻辑数据独立性。

用户/应用程序面向的是:

外模式

2.熟记数据模型的定义,组成部分(三要素):

数据结构,数据操作,数据完整性约束

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

3.概念数据模型用于数据库设计,是对客观世界的第一层抽象。

常见例子是E-R模型。

4.例举各种用于数据库的数据模型:

层次、网状、关系、对象、半结构化等。

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

1.数据模型的三要素?

关系模型的三要素?

数据模型三要素:

数据结构、数据操作、数据完整性约束

关系模型三要素:

关系、关系操作、关系完整性约束

2.关系的组成:

什么是属性?

什么是元组?

什么是分量?

属性:

关系的一列

元组:

关系的一行

分量:

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

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

列的同质性:

同一列中的分量(值)必须具有相同的类型,因为它们来自同一个域。

异列同域性:

不同列可以来自同一个域,但属性名不能相同

元组相异性:

关系里的任意两行不能相同,因为关系是一个元组集合

行列无序性:

关系的行或列是顺序无关的。

属性值原子性:

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

4.关系有哪四种键?

数量(是否有多个)?

什么是外部键?

外部键的属性名可以和所对应的主键不同。

外部键可以指向同一个关系的主键。

例如:

学生(学号,姓名,班长学号...)。

外部键从E-R图的什么概念转化而来?

超键:

关系中能够唯一标识每个元组的属性或者属性组,数量可能有多个。

候选键:

把超键中多余的属性去掉后,剩余的就是候选键,数量可能有多个。

主键:

从候选键选出一个作为主键,数量只能一个。

外部键:

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

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

关系模式比较稳定。

而关系实例随时间而变化,原因是元组不断被插入/删除/更新

6.查询语言分类:

过程化和非过程化语言的区分和理解——看课件。

过程化:

用户要指定①what:

查询什么②how:

怎么查询,用什么方法、过程?

非过程化:

用户只要指定查询什么,而“怎么查询”的问题留给系统处理——系统会自动寻找(近似)最优的查询方法/查询执行计划,即查询优化。

关系代数是过程化的,SQL和关系演算是非过程化的

7.关系操作分为查询和更新操作。

表示关系操作的语言:

关系代数,关系演算(又分为元组关系演算和域关系演算)。

关系代数是过程化的,关系演算是非过程化的。

8.掌握关系代数的各种运算(包括符号)。

其中最基本的运算(不可替代)是哪些?

基本运算:

选择σ,投影∏,笛卡儿积X,集合并⋃,集合差-,更名ρ

附加运算:

集合交⋂,自然连接(同名属性相等,去掉重复同名属性),除÷(“…所有…”的查询,一般用除运算表示),赋值←

扩展运算:

广义投影∏(下标可有计算表达式),外连接,聚集运算

聚集函数:

avg,sum,count,max,min(-distinct)

聚集运算:

G1,G2,...,GnGF1(A1),F2(A2),…,Fm(Am)(E)

一元运算:

输入为一个关系

二元关系:

输入为两个关系

9.查询优化的三种技术:

物理优化,规则优化,代价估算优化。

规则优化的三种启发式规则:

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

物理优化:

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

规则优化:

只考虑查询语句本身,根据某些启发式规则进行优化,例如“先选择、先投影和后连接”

代价估算优化:

对多个候选查询计划,逐个进行代价估算(需要访问一些数据字典信息,如表的大小),从而选取代价最小的

10.应用题型:

用关系代数表达查询问题(查询习题课件)

第三章关系数据库语言SQL

1.SQL的全名(中英文)。

SQL是非过程化的语言。

理解SQL的特点(基本功能特征)。

SQL的全名:

结构化查询语言StructuredQueryLanguage

特点:

综合统一性(功能的统一、操作过程的统一)、高度非过程化、面向集合的操作方式

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的各个数据定义语句(特别是新建表,建视图,修改表,删除表的语句)。

1)createtableStudent

(Snochar(8)notnull,

SNamevarchar(8)notnull,

Sexchar

(1)default‘M’,

Primarykey(Sno,SName),

//Foreignkey(Sno)referencesS(Sno)

Check(Sex=’M’orSex=’F’)

2)altertableStudentaddAgeintnotnull

3)altertableStudentmodifyAgesmallint

4)droptableStudent

5)createindexindex_on_ageStudent(Age)

6)createviewBook_Not_Borrow(Book_Num,Book_Writer)as

(selectBook.Name,Writer.Name

fromeBook,Writer,Borrow

where……

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

1)计算次序:

From(笛卡儿积)→Where(选择)→Groupby→Having→Select(投影)→Orderby

2)select姓名 asname,0.05*工资astax

selectdistinct部门

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

3)where中可以出现:

<、<=、>、>=、=、<>、and、or、not、between下and上、in(集合)、notin(集合)、like(匹配串)

4)GroupBy属性1,属性2,…:

作用:

Where子句筛选元组后,对它们分组,分组依据:

属性1,属性2。

用法:

出现统计词,比如“平均,最高,总和,…”的问题

Select子句的作用发生变化:

对分组进行统计,Select中出现的属性只能是:

分组属性、聚集函数

Select课程,Avg(成绩)as平均成绩,Max(成绩)as最高成绩 

From选修

GroupBy课程

5)HavingQ(分组限定条件):

作用:

出现在groupby子句后面,不能单独使用,GroupBy分好组后,按条件Q作筛选,Q中出现的属性只能是:

分组属性、聚集函数(Having用于分组,Where用于元组)。

HavingAvg(成绩)>85

6)OrderBy属性1[asc|desc],属性2[asc|desc],…:

出现在最最后面,作用:

在Select子句得出结果后,先按属性1的值,升序(asc)或降序(desc)排列,缺省是升序;属性1的值相等时,再按属性2值升序或降序排列…

OrderBy成绩desc,姓名

7)From子句中用子查询构造派生关系:

复杂的查询分解成若干步->把上一步的查询结果变成一个派生关系->在下一步查询中使用,例如求平均一间宿舍的人数?

(先求各间宿舍的人数,再求平均)

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

a.whereA[not]in(子查询),意义:

A是否出现在子查询的结果中?

(是为真,否则为假),可以多个元组,但只能有一个属性

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

b.whereA(比较运算,>,<,=,…)some|all(子查询),意义:

some:

A与子查询结果中的一个值满足,比较时为真;all:

A与子查询结果中的所有值都满足,比较时为真

Where年龄<=all(Select年龄From学生),可以多个元组,但只能有一个属性

c.whereA[not]exists(子查询),意义:

子查询结果存在(至少一条)记录,可包含多个属性。

exists和in的差别:

exists可包含多个属性,in只能有一个属性,故in的Select语句只有一个属性。

Whereexists(Select*From选修Where姓名=学生.姓名and课程=‘物理’)

9)from子句中可以是连接运算A(inner)joinBon条件、Aleft/right/full[outer]joinBon条件

From报名表rightouterjoin招工表on报名表.年龄<=招工表.年龄限制

From员工rightouterjoin部门on员工.部门=部门.部门

7.掌握SQL的各个数据修改语句:

Insert,Update,Delete。

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

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

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

8.空值的意义;空值的运算规则(包括聚集函数忽略空值等)。

给出一个包含空值的式子,能计算最终结果。

表示两种情况:

值未知,或值不存在

计算规则:

空值出现在算术运算中,其结果一定还是null;如:

2014-null=null

空值出现在比较运算中,结果一定是unknown(trueorfalse);如:

not((Null=Null)and(Null<>Null))=unknown=false(最后一步计算得到的结果是unknown,那么就替换为false)

空值出现在布尔运算中,null替换为unknown后再计算;如:

(unknownortrue)=true、(trueandunknown)=unknown、(notunknown)=unknown

聚集函数忽略空值,但count(*)例外。

9.理解视图的本质:

命名的查询语句,只有这个才是真正存储在数据库里;表象:

虚拟表,与真正的表基本表相比有相同也有不同;动态变化)。

理解视图的优点。

一个①命名、用②查询从基本表中导出的③虚拟表,物理上不存在,视图中的数据(记录)平时并没有存储在数据库里,而是用到时候才执行查询算出来(动态变化)。

用户对视图的操作(查询或更新),系统在执行时必须转化为对相关基本表的操作。

优点:

简化用户的操作、个性化服务、安全性、逻辑独立性

10.掌握定义视图的语句。

理解对视图的查询以及对视图的更新在后台是怎样进行的(视图的查询:

展开视图——替换视图为它所对应的查询。

视图的更新:

转化为对基本表的更新,这种转化可能因为缺少主键等原因失败,从而无法更新)。

CreateView物理成绩单as(Select姓名,课程,成绩From选修Where课程=‘物理’withcheckoption课程=‘物理’)

withcheckoption:

当对视图进行插入,更新时,要检查新元组是否满足视图对应的条件,否则拒绝。

如果展开一个视图后,(它定义中的)查询又还出现了其它视图,那么继续展开,直到没有任何视图为止。

11.嵌入式SQL不要求。

12.应用题型:

用SQL表达查询问题(查询习题课件)。

用SQL建表,建视图等定义语句。

第四章关系数据库模式设计

1.熟记关系模式设计不当可能产生的四种问题:

数据冗余和三种异常。

数据冗余、更新异常、插入异常、删除异常

2.理解函数依赖的概念。

三对特殊类型的函数依赖:

平凡/非平凡,部分/完全,传递/非传递。

根据定义去理解和判定它们。

1)关系模式R上存在以下函数依赖,X→Y(X函数决定Y,或Y函数依赖X,X是Y的决定元素)条件是当且仅当:

两个元组如果在属性集X上相等,则它们在属性集Y上也相等。

特例:

X→X'(X'⊂X)

2)平凡/非平凡:

函数依赖X→Y,当Y⊆X时是平凡的;否则是非平凡的。

平凡的函数依赖一定成立,平凡的函数依赖是没有实质意义的

3)部分/完全:

函数依赖X→Y是部分的,当存在X'⊂X,使X'→Y成立;函数依赖X®Y是完全的,当不存在X'⊂X,使X'→Y。

理解:

部分:

左边的一部分就可以决定(右边);完全:

左边全部才可以决定右边;

4)传递/非传递:

函数依赖X→Y是传递的,当存在Z,使X→Z,Z→Y同时成立,但Z→X不成立(Z不是X的等价因素);函数依赖X→Y是非传递的,当不存在Z,使X→Z,Z→Y同时成立,且Z→X不成立。

理解:

传递:

左边与右边是间接的(决定)关系,存在中间元素;非传递:

左边与右边是直接的(决定)关系,不存在中间元素。

5)对候选键的部分/传递函数依赖是”坏”的(K→A是部分函数依赖orK→A是传递函数依赖,其中K为候选键)。

3.用函数依赖判断一个属性集是否超键,或者是否候选键的方法。

该超键能否通过函数依赖推出整一个属性集?

该超键的子集能否推出整一个属性集?

//判断超键:

判断属性集是否在超键的闭包中;如果是,再判断属性集是否在超键的子集的闭包中。

4.例举Armstrong公理系统的各条定律:

自反律...

Y⊆X,则X→Y(自反律);X→Y,则XZ→YZ(增广律);X→Y,且Y→Z,则X→Z(传递律);X→Y,且X→Z,则X→YZ(结合律);X→YZ,则X→Y且X→Z(分解律);X→Y,YZ→δ,则XZ→δ(伪传递律)

若AB→C,则AB=AB(B)→BC

5.掌握计算属性集闭包的算法。

以及由此判定一个函数依赖是否成立的方法。

属性集的闭包:

a所决定的全部属性的集合(包括a自身),例如F={A→B,B→C},(A)+=(ABC)

判断a→β是否成立,等价的方法判断β是否在a+中。

证明候选键:

求它的闭包,看能否包含U,且它的真子集均不是主键。

6.最小函数依赖集不要求。

4.3这一节不要求。

7.掌握1NF、2NF、3NF、BCNF。

并能够进行判定。

1)4NF⊂BCNF⊂3NF⊂2NF⊂1NF

2)1NF:

关系模式的每个属性都是原子的。

判断:

逐个属性分析是否为原子属性(属性值不可再分,注意复合属性:

如Parents;多值属性:

如phone-number)。

3)键属性(主属性):

出现在某个候选键中的属性;非键属性(非主属性):

不出现在任何候选键中的属性。

4)2NF:

关系模式在1NF中,且每一个非键属性完全函数依赖于键。

判断:

检查键以外每个属性A,且X是候选键的一部分,如有X→A,则违反2NF(存在部分键(<键)属性能推出非键属性:

NO!

)。

简而言之,第二范式就是属性完全依赖于主键。

5)3NF:

关系在1NF中,每一个非键属性不传递函数依赖于键。

判断:

检查键以外每个属性A,且X不包含键,如有X→A,则违反3NF(存在非键属性能推出非键属性:

NO!

)。

简而言之,第三范式就是属性不依赖于其它非主属性。

6)BC范式:

关系在1NF中,每一个属性不传递函数依赖于键。

判断:

每一个非平凡函数依赖X→Y,不管Y是什么,X必含键(=超键)(存在非键属性能推出其他任意属性:

NO!

)。

7)求R最高属于第几范式:

假设R最高属于第x范式,则证明R属于第x范式,而不属于第(x+1)范式。

证明R属于第x范式:

x=2:

假设候选键HS,证明所有非键属性C、T、R都不在H+或者S+中;

x=3:

假设候选键HS,找不到非键属性能推出非键属性如C→T,因为如果存在,则HS→C→T,则存在非键属性对候选键的函数依赖是传递的。

8.掌握规范化到1NF,3NF,BCNF的相关方法。

关系模式应该至少规范化到3NF。

规范化到3NF和规范化到BCNF相比,后者得到的关系模式属于更高级别,但是可能会丢失函数依赖。

规范化到1NF:

复合属性:

转化成相应的多个原子属性;多值属性:

移出去生成一个新关系,同时还包含原来的主键

规范化到3NF:

对于每一个X→Y,如果XY在Ri中则什么都不做,否则看X是否为Ri的主键,是则把Y加到Ri中,否则新增加关系Ri+1=(XY),其中X为主键。

规范化到BCNF:

9.多值依赖不要求。

这个原来的有误。

10.应用题型:

给出关系和函数依赖

a)判断和证明某个属性(集合)是否候选键?

b)判断某个函数依赖是否成立?

c)判断关系所属的最高范式,并给出证明。

d)将关系规范化到3NF,或者BCNF

第五章数据库设计

1.理解E-R模型的三要素:

实体、属性和联系。

以及在E-R图中的表示。

E-R模型:

实体-联系模型。

实体:

客观存在且可以与其他物体相区分的某一物体(如学生、课程、公司等);

属性:

实体具有的描述作用的特征(例如人的姓名、身高等),有复合(如Parents)、多值(如phone-numbers)、派生属性(如税收);

联系:

实体之间的相互联系(如雇佣关系),有同一实体集内部联系、实体集之间联系。

按照基数分类:

一对一、一对多、多对一、多对多联系、多元联系。

实体:

矩形表示;属性:

椭圆表示(双线椭圆表示多值属性,虚线属性表示派生属性);联系:

菱形表示,如联系有属性,则用椭圆连接起来。

EE-R模型:

实体的属性是另一个实体(嵌套),在E-R图中表示:

实体A通过有向线段连接另一个实体B的属性;实体A是实体B的一个子集(继承),在E-R图中表示:

带圆圈的直线连接超类和子类。

2.能判断二元联系的类型:

一对一,一对多,多对多。

以及在E-R图中的表示。

判断:

如教师:

课程,则1个教师只有一门课程,则课程为“1”;而一门课程可以有多个教师,则教师为“多”。

表示:

两个矩形之间连接同一个菱形,直线上标注1,m,n表示映射的基数。

3.能将E-R图转化为关系模型。

注意:

多值属性的处理;1对1,1对多,多对1,多对多,三元以上联系各自的转化方式——不要张冠李戴。

E-R模型→关系模型:

从基本元素到基本元素,实体→关系,属性→属性,联系→关系/属性。

联系一对一:

将“一”方主键+联系的属性一同添加到另外“一”方里面(成为外部键)。

联系一对多、多对一:

将“一”方主键+联系的属性一同添加到“多”方里面(成为外部键)。

联系多对多:

转化为一个新关系,属性包括两个“多”方的主键and联系的属性。

联系三元以上:

转化为一个新关系,属性包括各个涉及主体的主键and联系的属性。

4.熟记数据库设计的基本过程,包括在各个阶段分别要做的工作?

1.用户需求分析;2.概念设计(需求转化为概念模型,如E-R模型);3.逻辑设计(概念模型转化为数据模型,如关系模型);4.物理设计(定义物理特性,如索引、内部存储结构、文件组织方式等);5.数据库建立与管理。

5.应用题型1:

画E-R图(概念设计)。

6.应用题型2:

将E-R图转化为关系模型(逻辑设计)。

第六章数据库安全性与完整性

1.安全性是防止非法用户进入数据库,以及合法用户进入数据库后做了(未授权的)非法操作。

完整性是防止非法数据进入数据库,即使是合法用户及合法操作产生的。

2.掌握用SQL授予权限和回收、禁止权限的语句(grant,revoke,deny)。

withgrantoption子句的作用。

1)grant权限on对象类型对象名to用户[1,…n]|public[withgrantoption]

权限有:

create、select、insert、update、delete、reference、all

对象类型有:

schema(数据库模式)、table、view、attribute(属性)

用户有:

用户名,public代表所有用户

withgrantoption:

有此选项,用户可把获得的权限转授给其它用户。

否则,用户只能使用不能转授该权限。

如:

grantselect,updateonTABLE选修表to教务员王withgrantoption

2)revoke权限on对象类型对象from用户[1,…n]|public[cascade|restrict]

cascade:

级联式回收权限(包括权限转授),restrict:

不存在级联时回收成功,存在则回收失败。

revokeupdateonTable选修表from教务员王cascade

3)deny权限on对象类型对象to用户[1,…n]|public

禁止(授予负)权限:

使用户以后绝对不可以做相应操作

4)createrole角色名:

创建角色

5)grant角色to用户[withgrantoption]:

将此用户拉入这个用户集合。

6)grant数据库权限to用户:

数据库权限有connect、resource、dba。

3.理解常见权限的含义。

(例如insertontableS,updateonviewA等)

4.理解完整性的含义:

正确、有效、相容。

完整性约束(规则)是数据为保证完整性所必须满足的条件。

5.熟记关系模型中的三类完整性规则。

各有什么要求?

理解哪些(修改)操作会破坏这些规则?

实体完整性规则:

元组主键取值唯一,且不能取空值;破坏:

主键取值不唯一或取空值。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1