文章目录
- 《数据库系统》复习要点
-
- 一、基础知识
-
- 1.数据库系统的构成要素包括哪些?
- 2.数据库系统的体系结构特点有哪些?
- 3.数据库系统的体系结构特征是什么?
- 4.DBMS的主要功能有哪些?
- 5.数据库系统的三级模式结构、二级映象功能与数据独立性
- 6.什么是数据库系统的逻辑独立性和物理独立性?DBMS是如何实现的?
- 7.掌握用关系代数表达式写查询
- 8. 常见的数据逻辑模型有哪些?
- 9.数据模型的构成要素有哪三个?
- 10.SQL语言有哪些功能和特点?
- 11. 专门的关系运算有哪些?
- 12. 关系的除法运算。
- 13. 关系的特点有哪些?
- 14. 关系代数表达式与SQL语言转换。
- 15.数据库的完整性概念,各种完整性的定义。
- 16. 什么是数据库的安全性?
- 17. 视图与表有什么区别?
- 18. 范式的定义以及各范式之间的关系。
- 19. 如何判断一个关系属于第几范式?
- 20. 如何把一个不满足BCNF的关系分解为BCNF?
- 21. 实体联系转换成关系模式的方法。
- 22. 局部E-R图合并成全局E-R图时可能出现冲突有哪些?
- 23. 数据库设计包括哪几个阶段,各阶段主要任务是什么?
- 24. 事务的概念和特点,事务与程序的区别是什么?
- 25. 数据库恢复有哪些技术?
- 26. 什么是数据库镜像?它有什么用途?
- 27. 数据库故障产生的因素有哪些,数据库故障分为哪几种?
- 28. 什么是两段锁协议?
- 29. 什么是死锁?如何检测死锁的发生?
- 30. 什么是并行调度的可串行化?
- 31. 并发操作会带来哪些问题,如何避免?
- 32. 并发操作带来的数据不一致性有哪些?各表示什么意思?
- 33. 什么是笛卡尔积、自然联接、等值联接、左联接、右联接?
- 二、综合应用
- 三、试题结构:
《数据库系统》复习要点
一、基础知识
1.数据库系统的构成要素包括哪些?
1、硬件
构成计算机系统的各种物理设备,包括存储所需的外部设备。硬件的配置应满足整个数据库系统的需要。
2、软件
包括操作系统、数据库管理系统及应用程序。数据库管理系统(databasemanagementsystem,DBMS)是数据库系统的核心软件,是在操作系统的支持下工作,解决如何科学地组织和存储数据,如何高效获取和维护数据的系统软件。其主要功能包括:数据定义功能、数据操纵功能、数据库的运行管理和数据库的建立与维护。
3、数据库
是指长期存储在计算机内的,有组织,可共享的数据的集合。数据库中的数据按一定的数学模型组织、描述和存储,具有较小的冗余,较高的数据独立性和易扩展性,并可为各种用户共享。
4、人员
第一类为系统分析员和数据库设计人员:系统分析员负责应用系统的需求分析和规范说明,他们和用户及数据库管理员一起确定系统的硬件配置,并参与数据库系统的概要设计。数据库设计人员负责数据库中数据的确定、数据库各级模式的设计。
第二类为应用程序员,负责编写使用数据库的应用程序。这些应用程序可对数据进行检索、建立、删除或修改。
第三类为最终用户,他们利用系统的接口或查询语言访问数据库。
第四类用户是数据库管理员(databaseadministrator,DBA),负责数据库的总体信息控制。DBA的具体职责包括:具体数据库中的信息内容和结构,决定数据库的存储结构和存取策略,定义数据库的安全性要求和完整性约束条件,监控数据库的使用和运行,负责数据库的性能改进、数据库的重组和重构,以提高系统的性能。
2.数据库系统的体系结构特点有哪些?
结构化
数据库系统实现了整体数据的结构化,这是数据库的最主要的特征之一。这里所说的“整体”结构化,是指在数据库中的数据不再仅针对某个应用,而是面向全组织;不仅数据内部是结构化,而且整体式结构化,数据之间有联系。
共享性
因为数据是面向整体的,所以数据可以被多个用户、多个应用程序共享使用,可以大大减少数据冗余,节约存储空间,避免数据之间的不相容性与不一致性。
独立性
1、数据独立性高
数据独立性包括数据的物理独立性和逻辑独立性。
物理独立性是指数据在磁盘上的数据库中如何存储是由DBMS管理的,用户程序不需要了解,应用程序要处理的只是数据的逻辑结构,这样一来当数据的物理存储结构改变时,用户的程序不用改变。
逻辑独立性是指用户的应用程序与数据库的逻辑结构是相互独立的,也就是说,数据的逻辑结构改变了,用户程序也可以不改变。
数据与程序的独立,把数据的定义从程序中分离出去,加上存取数据的由DBMS负责提供,从而简化了应用程序的编制,大大减少了应用程序的维护和修改。 [1]
2.数据由DBMS统一管理和控制
数据库的共享是并发的(concurrency)共享,即多个用户可以同时存取数据库中的数据,甚至可以同时存取数据库中的同一个数据。
DBMS必须提供以下几方面的数据控制功能:
数据的安全性保护(security)
数据的完整性检查(integrity)
数据库的并发访问控制(concurrency)
数据库的故障恢复(recovery)
3.数据库系统的体系结构特征是什么?
三级模式结构和两级映象,即:外模式、模式、内模式、外模式/模式映象、模式/内模式映象。
数据库系统的体系结构是指数据库系统的整个体系的结构。数据库系统的体系结构从不同的角度可有不同的划分方式。从数据库管理系统的角度可分为三层,从外到内依次为外模式、模式和内模式。 模式是所有数据库用户的公共数据视图,是数据库中全部数据的逻辑结构和特征的描述。模式(schema)又可细分为概念模式(conceptual schema)和逻辑模式(109ical schema)。
一、数据库的三级模式结构
数据库系统的三级模式结构是指模式、外模式、内模式。下面分别介绍:
模式
模式也称逻辑模式或概念模式,是数据库中全体数据的逻辑结构和特征的描述。是所有用户的公共数据视图。一个数据库只有一个模式。模式处于三级结构的中间层。定义模式时不仅要定义数据的逻辑结构、而且要定义数据之间的联系,定义与数据有关的安全性、完整性要求。
外模式
外模式也称用户模式、它是数据库用户(包括应用程序员和最终用户)能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。外模式是模式的子集,一个数据库可以有多个模式。
内模式
内模式也称存储模式、一个数据库只有一个内模式。它是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式。
二、三级模式之间的映射
为了能在在内部实现数据库的三个抽象层次的联系和转换,数据库管理系统在三级模式之间提供了两层映射,分别是外模式/模式映射和模式/内模式映射,下面分别介绍:
外模式/模式映射
对于同一个模式可以有任意多个外模式,对于每一个外模式,数据库系统都有一个外模式/模式映射。当模式被改变时,数据库管理员对各个外模式/模式映射做出相应的改变,可以使外模式保持不变。这样,依据数据外模式边写的应用程序就不用修改,保证了数据与程序的逻辑独立性。
模式/内模式映射
数据库只有一个模式和一个内模式、所以模式/内模式的映射是唯一的,它定义了数据库的全局逻辑结构与存储结构之间的对应关系。当数据库的存储结构被改变时,数据库管理员对模式/内模式映射做相应的改变、可以使模式保持改变,应用程序相应地也不做变动。这样保证了数据与程序的独立性。
4.DBMS的主要功能有哪些?
(1)数据定义功能。DBMS提供相应数据语言来定义(DDL)数据库结构,它们是刻画数据库框架,并被保存在数据字典中。
(2)数据存取功能。DBMS提供数据操纵语言(DML),实现对数据库数据的基本存取操作:检索,插入,修改和删除。
(3)数据库运行管理功能。DBMS提供数据控制功能,即是数据的安全性、完整性和并发控制等对数据库运行进行有效地控制和管理,以确保数据正确有效。
(4)数据库的建立和维护功能。包括数据库初始数据的装入,数据库的转储、恢复、重组织,系统性能监视、分析等功能。
(5)数据库的传输。DBMS提供处理数据的传输,实现用户程序与DBMS之间的通信,通常与操作系统协调完成。
5.数据库系统的三级模式结构、二级映象功能与数据独立性
数据库系统的三级模式结构
三级模式:外模式、模式、内模式
模式
又称逻辑模式,DB的全局逻辑模式,即DB中全体数据的逻辑结构和特征的描述。
模式只涉及到型的描述,不涉及具体的值,反映的是数据的结构及其联系;模式承上启下,是DB设计的关键;DBS提供模式DDL来定义模式;一个数据库只有一个模式。
模式定义的任务:定义全局逻辑结构;定义有关的安全性、完整性的要求;定义记录间的联系。
外模式
又称子模式或用户模式。DB的局部逻辑结构
外模式是某个用于的数据视图,模式是所有用户的公共数据视图;独立于存储模式和存储设备;一个DB只能有一个模式,但可以有多个外模式;外模式是模式的子集。
外模式的用途:保证数据库安全性的一个有力措施;每个用户只能看见和访问所对应的外模式中的数据。
内模式
又称存储模式。数据的物理结构和存储方式的描述,即DB中数据的内部表示方式。
一个数据库只有一个内模式,DBS提供内模式DDL;独立于具体的存储设备
内模式定义的任务:记录存储格式;索引组织方式;数据是否具有压缩、是否加密等。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CWbHnnwu-1610285858839)(file:///C:\Users\阿怪\AppData\Local\Temp\ksohtml16620\wps1.jpg)]
数据库的二级映像及其数据的独立性
二级映像在数据库管理系统内部实现这三个抽象层次的联系转换
外模式/模式 映像
对于同一个模式可以有任意多个外模式,对于每一个外模式,数据库系统都有一个外模式/模式映像。
当模式改变时,由数据库管理员对各个外模式/模式的映像作相应的改变,可以使外模式保持不变。应用程序是一局数据的外模式编写的,从而应用程序不必修改,保证了数据与程序的独立性,简称数据的逻辑独立性。
模式/内模式 映像
数据库中只有一个模式,也只有一个内模式,所以模式/内模式映像是唯一的。该映像定义通常包括在模式描述中,当数据库的存储机构改变了(即内模式发生改变),数据库管理员修改模式/内模式映像,使模式保持不变。应用程序不受影响,保证了数据与程序的物理独立性,简称数据的物理独立性。
6.什么是数据库系统的逻辑独立性和物理独立性?DBMS是如何实现的?
数据与程序的的逻辑独立性:
当模式改变时(例如增加新的关系,新的属性,改变属性的数据类型等),由数据库管理员对各个外模式/模式的映像做相应的改变,可以使外模式保持不变。应用程序是依据数据的外模式编写的,从而应用程序不必修改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性。
数据于程序的物理独立性:
当数据库的存储结构改变了,由数据库管理员对模式/内模式映像做响应的改变,可以使模式保持不变,从而应用程序也不必改变,保证了数据与程序的物理独立性,简称数据的物理独立性。
数据库管理系统在三级模式之间提供的两层映像保证了数据库系统中的数据能够具有较高的逻辑独立性和物理独立性。
7.掌握用关系代数表达式写查询
8. 常见的数据逻辑模型有哪些?
层次模型、网状模型、关系模型
1、层次模型:
①有且只有一个结点没有双亲结点(这个结点叫根结点)。
②除根结点外的其他结点有且只有一个双亲结点。
层次模型中的记录只能组织成树的集合而不能是任意图的集合。在层次模型中,记录的组织不再是一张杂乱无章的图,而是一棵"倒长"的树。
2、网状模型 :
①允许一个以上的结点没有双亲结点。
②一个结点可以有多个双亲结点。
网状模型中的数据用记录的集合来表示,数据间的联系用链接(可看作指针)来表示。数据库中的记录可被组织成任意图的集合。
3、关系模型:
①关系模型用表的集合来表示数据和数据间的联系。
②每个表有多个列,每列有唯一的列名。
在关系模型中,无论是从客观事物中抽象出的实体,还是实体之间的联系,都用单一的结构类型。
9.数据模型的构成要素有哪三个?
数据模型所描述的内容有3个部分,分别是数据结构、数据操作和数据约束。
1、数据结构
数据结构用于描述系统的静态特征,包括数据的类型、内容、性质及数据之间的联系等。它是数据模型的基础,也是刻画一个数据模型性质最重要的方面。在数据库系统中,人们通常按照其数据结构的类型来命名数据模型。例如,层次模型和关系模型的数据结构就分别是层次结构和关系结构。
2、数据操作
数据操作用于描述系统的动态特征,包括数据的插入、修改、删除和查询等。数据模型必须定义这些操作的确切含义、操作符号、操作规则及实现操作的语言。
3、数据约束
数据的约束条件实际上是一组完整性规则的集合。完整性规则是指给定数据模型中的数据及其联系所具有的制约和存储规则,用以限定符合数据模型的数据库及其状态的变化,以保证数据的正确性、有效性和相容性。例如,限制一个表中学号不能重复,或者年龄的取值不能为负,都属于完整性规则。
10.SQL语言有哪些功能和特点?
sql语言的功能
**1、sql数据定义功能:**能够定义数据库的三级模式结构,即外模式、全局模式和内模式结构。在sql中,外模式有叫做视图(View),全局模式简称模式( Schema),内模式由系统根据数据库模式自动实现,一般无需用户过问。
**2、sql数据操纵功能:**包括对基本表和视图的数据插入、删除和修改,特别是具有很强的数据查询功能。
**3、sql的数据控制功能:**主要是对用户的访问权限加以控制,以保证系统的安全性。
sql语言特点
1、sql风格统一
sql可以独立完成数据库生命周期中的全部活动,包括定义关系模式、录人数据、建立数据库、査询、更新、维护、数据库重构、数据库安全性控制等一系列操作
这为数据库应用系统开发提供了良好的环境,在数据库投入运行后,还可根据需要随时逐步修改模式,且不影响数据库的运行,从而使系统具有良好的可扩充性。
2、高度非过程化
非关系数据模型的数据操纵语言是面向过程的语言,用其完成用户请求时,必须指定存取路径。
sql进行数据操作,用户只需提出“做什么”,而不必指明“怎么做”,因此用户无须了解存取路径,存取路径的选择以及sql语句的操作过程由系统自动完成。这不但大大减轻了用户负担,而且有利于提高数据独立性。
3、面向集合的操作方式
sql采用集合操作方式,不仅查找结果可以是元组的集合,而且一次插入、删除、更新操作的对象也可以是元组的集合。
4、以同一种语法结构提供两种使用方式
sql既是自含式语言,又是嵌人式语言。
作为自含式语言,它能够独立地用于联机交互的使用方式,用户可以在终端键盘上直接输入sql命令对数据库进行操作。
作为嵌入式语言,sql语句能够嵌入到高级语言(如C、 C#、JAVA)程序中,供程序员设计程序时使用。而在两种不同的使用方式下,sql的语法结构基本上是一致的。
这种以统一的语法结构提供两种不同的操作方式,为用户提供了极大的灵活性与方便性。
5、语言简洁,易学易用
sql功能极强,但由于设计巧妙,语言十分简洁,完成数据定义、数据操纵、数据控制的核心功能只用了9个动词:
CREATE、 ALTER、DROP
SELECT、 INSERT、 UPDATE
DELETE、GRANT、 REVOKE
且sql语言语法简单,接近英语口语,因此容易学习,也容易使用。
11. 专门的关系运算有哪些?
1、选择运算
从关系中找出满足给定条件的那些元组称为选择。其中的条件是以逻辑表达式给出的,值为真的元组将被选取。这种运算是从水平方向抽取元组。 在FOXPRO中的短语FOR和WHILE均相当于选择运算。
如:LIST FOR 出版单位=‘高等教育出版社’ AND 单价<=20
2、投影运算
从关系模式中挑选若干属性组成新的关系称为投影。这是从列的角度进行的运算,相当于对关系进行垂直分解。在FOXPRO中短语FIELDS相当于投影运算。 如: LIST FIELDS 单位,姓名
3、连接运算
连接运算是从两个关系的笛卡尔积中选择属性间满足一定条件的元组。
4、除法运算
设被除关系R为m元关系,除关系S为n元关系,那么它们的商为m-n元关系,记为R÷S。商的构成原则是:将被除关系R中的m-n列,按其值分成若干组,检查每一组的n列值的集合是否包含除关系S,若包含则取m-n列的值作为商的一个元组,否则不取。
5、外连接运算
运算:
选择和投影运算都是属于一目运算,它们的操作对象只是一个关系。联接运算是二目运算,需要两个关系作为操作对象。
1、联接
联接是将两个关系模式通过公共的属性名拼接成一个更宽的关系模式,生成的新关系中包含满足联接条件的元组。运算过程是通过联接条件来控制的,联接条件中将出现两个关系中的公共属性名,或者具有相同语义、可比的属性。联接是对关系的结合。在FOXPRO中有单独一条命令JOIN实现两个关系的联接运算。如:
SELE 1
USE 定单
SELE 2
USE 商品
JOIN WITH A TO XGX FOR A->货号=货 号 AND 库存量>=A->定购量
设关系R和S分别有m和n个元组,则R与S的联接过程要访问m×n个元组。由此可见,涉及到联接的查询应当考虑优化,以便提高查询效率。
2、自然联接
自然联接是去掉重复属性的等值联接。它属于联接运算的一个特例,是最常用的联接运算,在关系运算中起着重要作用。
如果需要两个以上的关系进行联接,应当两两进行。利用关系的这三种专门运算可以方便地构造新的关系。
3、外关键字
如果一个关系中的属性或属性组并非该关系的关键字,但它们是另外一个关系的关键字,则称为该关系的外关键字。
综上所述,关系数据库系统有如下特点:
(1)数据库中的全部数据及其相互联系都被组织成关系,即二维表的形式。
(2)关系数据库系统提供一种完备的高级关系运算,支持对数据库的各种操作。
(3)关系模型有严格的数学理论,使数据库的研究建立在比较坚实的数学基础上。
12. 关系的除法运算。
1、定义
给定关系R(X,Y)和S(Y,Z),其中X、Y、Z是属性组,做除运算的前提是两个关系具有相同的属性或属性组。可以看出关系R和关系S的相同属性组是Y。R中的Y与S中的可以有不同的属性名,但必须出自相同的域集(相同的数据类型)。
以下根据像集来定义:关系R除以关系S是一个新关系P(X),P是R中满足下列条件的元组:在X上分量值x的像集Yx包含S在Y上投影的集合。其中Yx为值x在R中的像集,有x=tr[x]。
R与S的除运算为:R÷S={tr[X]|tr∈RΛΠY(S)⊆Yx}
运算的结果是为了找出来tr[x],tr∈表示tr的条件是它本身属于R,πY(S)表示而且tr属于S关系对于Y属性组的投影,⊆Yx表示还要包含于分量值x的像集Yx。x=tr[x]表示运算后发现要找出来的关系组就是在X上的分量值x。
除操作是同时从行和列角度进行运算。 在进行除运算时,将被除关系R的属性分成两部分:与除关系相同的部分Y和不同的部分X。在被除关系中按X分组,即相同的X值的元组分为一组。出发的运算是求包括除关系中全部Y值的组,这些族中的X将做为除结果的元组。
2、像集
当t[X]=x时,x在R中的象集(Images Set)为:
Zx={ t[Z] | t ∈ R,t[X]=x }
它表示R中属性组为X上值为x的诸元组在Z上分量的集合,实际上就是所有值等于x的元组(或记录),然后在Z上的投影。
3、计算步骤
计算关系R除以关系S的步骤
- 将被除关系R的属性分像集属性和结果属性两部分:与除关系S相同的属性属于像集属性,不相同的属性属于结果属性。
- 求出被除关系R中X的各个分量的象集Yx(将被除关系分组,结果属性值X一样的元组分为一组。);
- 在除关系S中,求出与被除关系相同的属性(像集属性)Y的投影,得到除目标数据集合ΠY(S);
- 逐一考察每个组,比较像集Yx和除目标数据集合ΠY(S),选取满足ΠY(S)⊇Yx(像集属性值包括除目标属性集合),则对应的结果属性值应该属于该除法运算结果集。 [4]
4、性质
两个关系的除法运算可表示为:
R÷S=Πx®-Πx((Πx®×S)-R) [5]
5、示例
设关系R、S分别如下表所示。
A | B | C |
---|---|---|
a1 | b1 | c2 |
a2 | b3 | c7 |
a3 | b4 | c6 |
a1 | b2 | c3 |
a4 | b6 | c6 |
a2 | b2 | c3 |
a1 | b2 | c1 |
a1在R中的象集为{(b1,c2),(b2,c3),(b2,c1)}
a2在R中的象集为{(b3,c7), (b2,c3)}
a3在R中的象集为{(b4,c6)}
a4在R中的象集为{(b6,c6}
B | C | D |
---|---|---|
b1 | c2 | d1 |
b2 | c1 | d1 |
b2 | c3 | d2 |
S在(B,C)上的投影为{(b1,c2),(b2,c1),(b2,c3)},所以只有a1的像集(B,C)a1包含S在(B,C)属性组上的投影,即:R÷S={a1} [1]
A |
---|
a1 |
6、应用
学号Sno | 课程号Cno | 成绩Grade |
---|---|---|