专升本数据库系统概论总复习.docx

上传人:b****0 文档编号:12829935 上传时间:2023-04-22 格式:DOCX 页数:25 大小:300.38KB
下载 相关 举报
专升本数据库系统概论总复习.docx_第1页
第1页 / 共25页
专升本数据库系统概论总复习.docx_第2页
第2页 / 共25页
专升本数据库系统概论总复习.docx_第3页
第3页 / 共25页
专升本数据库系统概论总复习.docx_第4页
第4页 / 共25页
专升本数据库系统概论总复习.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

专升本数据库系统概论总复习.docx

《专升本数据库系统概论总复习.docx》由会员分享,可在线阅读,更多相关《专升本数据库系统概论总复习.docx(25页珍藏版)》请在冰豆网上搜索。

专升本数据库系统概论总复习.docx

专升本数据库系统概论总复习

数据库系统概论总复习

一数据库概论

一)概论

1数据、数据库、数据库系统、数据库管理系统的概念

数据:

描述事物的符号记录称为数据。

数据的种类有文字、图形、图象、声音、正文等等。

数据与其语义是不可分的。

  数据库:

数据库是长期储存在计算机内、有组织的、可共享的数据集合。

数据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。

  数据库系统:

数据库系统(DBS)是指在计算机系统中引入数据库后的系统构成。

数据库系统由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员构成。

数据库管理系统:

数据库管理系统(DBMS)是位于用户与操作系统之间的一层数据管理软件。

用于科学地组织和存储数据、高效地获取和维护数据。

DBMS主要功能包括数据定义功能、数据操纵功能、数据库的运行管理功能、数据库的建立和维护功能。

2数据库的特征

数据按一定的数据模型组织、描述和储存

可为各种用户共享

冗余度较小

数据独立性较高

易扩展

3数据管理技术的发展过程

人工管理阶段、文件系统阶段、数据库系统阶段

4简述数据库的数据独立性

数据物理独立性:

指用户的应用程序与存储在磁盘上的数据库中数据是相互独立的,由模式/内模式映像来控制。

数据逻辑独立性:

指用户的应用程序与数据库的逻辑结构是相互独立的,由外模式/模式映像来控制。

5DBMS对数据的控制功能(数据库保护问题包括)

数据的安全性保护、数据的完整性检查、并发控制、数据库恢复

二)数据模型

1数据模型:

在数据库中用数据模型这个工具来抽象、表示和处理现实世界中的数据和信息。

通俗地讲数据模型就是现实世界的模拟

2数据模型分成两个不同的层次(概念模型和数据模型)

3数据模型的组成要素:

数据结构、数据操作、数据的约束条件

4概念模型的基本概念:

(1)实体:

客观存在并可相互区别的事物称为实体。

可以是具体的人、事、物或抽象的概念。

(2)属性:

实体所具有的某一特性称为属性。

一个实体可以由若干个属性来刻画。

(3)码:

唯一标识实体的属性集称为码。

(4)域:

属性的取值范围称为该属性的域。

(5)实体型:

用实体名及其属性名集合来抽象和刻画的同类实体称为实体型

(6)实体集:

同型实体的集合称为实体集

(7)联系:

现实世界中事物内部以及事物之间的联系在信息世界

中反映为实体内部的联系和实体之间的联系

实体型间联系:

一对一联系(1:

1)、一对多联系(1:

n)、多对多联系(m:

n)

5概念模型的表示方法:

实体-联系方法(E-R方法)

1)实体型:

用矩形表示,矩形框内写明实体名

2)属性:

用椭圆形表示,并用无向边将其与相应的实体连接起来

3)联系:

联系本身:

用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(1:

1、1:

n或m:

n)

E-R图实例:

真题:

图书数据库管理数据库要求提供如下服务:

1)可随时查阅图书的基本信息,包括:

书号、书名、价格、作者、出版社、数量、存放位置

2)借阅人的信息包括:

借书证号、姓名、单位、办证日期

3)借阅信息包括借书日期、还书日期

一个借阅者可以同时借阅多本书,一种书可以被多个人借阅

要求:

1)为本系统设计E-R图

2)转换为等价的关系模式,并指出每个关系的码。

6数据库系统的三级模式结构与二级映象

数据库系统的三级模式结构为内模式、模式、外模式

模式(也称逻辑模式)

数据库中全体数据的逻辑结构和特征的描述

所有用户的公共数据视图,综合了所有用户的需求

一个数据库只有一个模式

外模式(也称子模式或用户模式)

数据库用户(包括应用程序员和最终用户)使用的局部数据的逻辑结构和特征的描述,数据库用户的数据视图,是与某一应用有关的数据的逻辑表示,一个数据库可以有多个外模式,模式与外模式的关系:

一对多

内模式(也称存储模式)

是数据物理结构和存储方式的描述

是数据在数据库内部的表示方式

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

三级模式是对数据的三个抽象级别

二级映象在DBMS内部实现这三个抽象层次的联系和转换

外模式/模式映象

定义外模式与模式之间的对应关系

每一个外模式都对应一个外模式/模式映象

映象定义通常包含在各自外模式的描述中

外模式/模式映象的用途

保证数据的逻辑独立性

当模式改变时,数据库管理员修改有关的外模式/模式映象,使外模式保持不变

应用程序是依据数据的外模式编写的,从而应用程序不必修改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性。

模式/内模式映象

模式/内模式映象定义了数据全局逻辑结构与存储结构之间的对应关系

数据库中模式/内模式映象是唯一的

该映象定义通常包含在模式描述中

模式/内模式映象的用途

保证数据的物理独立性

当数据库的存储结构改变了(例如选用了另一种存储结构),数据库管理员修改模式/内模式映象,使模式保持不变

应用程序不受影响。

保证了数据与程序的物理独立性,简称数据的物理独立性。

7数据库系统的组成

数据库

数据库管理系统(及其开发工具)

应用系统

数据库管理员

(用户)

数据库概论习题

二关系数据库

一)关系的基本术语、关系的定义及关系的性质

1常用的关系操作

查询:

选择、投影、连接、除、并、交、差

数据更新:

插入、删除、修改

2关系数据语言的种类

关系代数语言

关系演算语言

具有关系代数和关系演算双重特点的语言

3关系的三类完整性约束(关系模型完整性规则)

实体完整性

参照完整性

用户定义的完整性

4关系的基本概念

1)域:

是一组具有相同数据类型的值的集合整数、实数

2)笛卡尔积:

给定一组域D1,D2,…,Dn,这些域中可以是相同的域。

D1,D2,…,Dn的笛卡尔积为:

D1×D2×…×Dn={(d1,d2,…,dn)|diDi,i=1,2,…,n}

所有域的所有取值的一个组合

不能重复

3)元组(Tuple)

笛卡尔积中每一个元素(d1,d2,…,dn)叫作一个n元组(n-tuple)或简称元组。

关系中的每个元素是关系中的元组,通常用t表示。

4)分量(Component)

笛卡尔积元素(d1,d2,…,dn)中的每一个值di叫作一个分量。

5)基数

若Di(i=1,2,…,n)为有限集,其基数为mi(i=1,2,…,n),则D1×D2×…×Dn的基数M为:

在上例中,基数:

2×2×3=12,即D1×D2×D3共有2×2×3=12个元组

6)笛卡尔积的表示方法

笛卡尔积可表示为一个二维表。

表中的每行对应一个元组,表中的每列对应一个域。

7)关系

D1×D2×…×Dn的子集叫作在域D1,D2,…,Dn上的关系,表示为

R(D1,D2,…,Dn)

R:

关系名

n:

关系的目或度

关系是笛卡尔积的有限子集

8)属性

关系中不同列可以对应相同的域,为了加以区分,必须对每列起一个名字,称为属性(Attribute)。

n目关系必有n个属性

9)候选码(Candidatekey)

若关系中的某一属性组的值能唯一地标识

一个元组,则称该属性组为候选码

在最简单的情况下,候选码只包含一个属性。

在最极端的情况下,关系模式的所有属性组

是这个关系模式的候选码,称为全码(All-key)

10)主码

若一个关系有多个候选码,则选定其中一个

为主码(Primarykey)

主码的诸属性称为主属性。

不包含在任何侯选码中的属性称为非码属性

5三类关系

基本表(基表):

实际存在的表,实际存储数据的逻辑表示(基本关系)

查询表:

查询结果对应的表

视图表:

由基本表或其他视图表导出的表,是虚表,不对应实际存储的数据

6基本关系的性质

①列是同质的,每一列中的分量是同一类型的数据,来自同一个域

②不同的列可出自同一个域

其中的每一列称为一个属性

不同的属性要给予不同的属性名

③列的顺序无所谓,列的次序可以任意交换

④任意两个元组不能完全相同由笛卡尔积的性质决定

⑤行的顺序无所谓行的次序可以任意交换

⑥分量必须取原子值每一个分量都必须是不可分的数据项。

这是规范条件中最基本的一条

7关系模式

关系模式(RelationSchema)是型,关系是值,关系模式是对关系的描述

关系模式可以形式化地表示为:

R(U,D,dom,F)

R关系名

U组成该关系的属性名集合

D属性组U中属性所来自的域

dom属性向域的映象集合

F属性间的数据依赖关系集合

关系模式通常可以简记为

R(U)或R(A1,A2,…,An)

R关系名

A1,A2,…,An属性名

8关系模式与关系

关系模式:

对关系的描述,静态的、稳定的

关系:

关系模式在某一时刻的状态或内容

动态的、随时间不断变化的

关系模式和关系往往统称为关系

9关系数据库

在一个给定的应用领域中,所有实体及实体之间联系的关系的集合构成一个关系数据库。

二)关系的完整性

关系模型的完整性规则是对关系的某种约束条件。

1关系模型中三类完整性约束:

实体完整性

参照完整性

用户定义的完整性

2实体完整性和参照完整性是关系模型必须满足的完整性约束条件,被称作是关系的两个不变性

3实体完整性

实体完整性规则:

若属性A是基本关系R的主属性,则属性

A不能取空值(空值就是“不知道”或“无意义”的值)

注意:

实体完整性规则规定基本关系的所有主属性都不能取空值

4外码

设F是基本关系R的一个或一组属性,但不是关系R的码。

如果F与基本关系S的主码Ks相对应,则称F是基本关系R的外码。

基本关系R称为参照关系,基本关系S称为被参照关系

目标关系S的主码Ks和参照关系的外码F必须定义在同一个(或一组)域上外码并不一定要与相应的主码同名,当外码与相应的主码属于不同关系时,往往取相同的名字,以便于识别

5参照完整性规则

若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为:

或者取空值(F的每个属性值均为空值)

或者等于S中某个元组的主码值。

例:

学生关系中每个元组的“专业号”属性只取下面两类值:

(1)空值,表示尚未给该学生分配专业

(2)非空值,这时该值必须是专业关系中某个元组的“专业号”值,表示该学生不可能分配到一个不存在的专业中

6用户定义的完整性

用户定义的完整性是针对某一具体关系数据库的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求

例:

课程(课程号,课程名,学分)

“课程号”属性必须取唯一值

非主属性“课程名”也不能取空值

“学分”属性只能取值{1,2,3,4}

三)关系代数

传统的集合运算

专门的关系运算

1关系代数:

一种抽象的查询语言,用对关系的运算来表达查询

2关系代数运算的三个要素

运算对象:

关系

运算结果:

关系

运算符:

四类

3关系代数运算符

4关系代数运算的分类

传统的集合运算:

并、差、交、广义笛卡尔积

专门的关系运算:

选择、投影、连接、除

5并

R和S(并差交运算中)

具有相同的目n(即两个关系都有n个属性)

相应的属性取自同一个域

R∪S

仍为n目关系,由属于R或属于S的元组组成

R∪S={t|tR∨tS}

6差

R-S

仍为n目关系,由属于R而不属于S的所有元组组成

 R-S={t|tR∧tS}

7交

R∩S

⏹仍为n目关系,由既属于R又属于S的元组组成

R∩S={t|tR∧tS}

R∩S=R–(R-S)

8广义笛卡尔积

R:

n目关系,k1个元组

S:

m目关系,k2个元组

R×S

列:

(n+m)列的元组的集合

元组的前n列是关系R的一个元组

后m列是关系S的一个元组

行:

k1×k2个元组

R×S={trts|trR∧tsS}

专门的关系运算

选择投影连接除

1选择

选择运算符的含义

在关系R中选择满足给定条件的诸元组

σF(R)={t|tR∧F(t)='真'}

选择运算是从行的角度进行的运算

σSdept='IS'(Student)

或σ5='IS'(Student)

σSage<20(Student)

或σ4<20(Student)

2投影

投影运算符的含义

从R中选择出若干属性列组成新的关系

πA(R)={t[A]|tR}

A:

R中的属性列

投影操作主要是从列的角度进行运算

但投影之后不仅取消了原关系中的某些列,而且还可能取消某些元组(避免重复行)

3连接

连接运算的含义

从两个关系的笛卡尔积中选取属性间满足一定条件的元组

A和B:

分别为R和S上度数相等且可比的属性组

θ:

比较运算符 

连接运算从R和S的广义笛卡尔积R×S中选取(R关系)在A属性组上的值与(S关系)在B属性组上值满足比较关系的元组。

两类常用连接运算

等值连接(equijoin):

θ为“=”的连接运算称为等值连接

等值连接的含义:

从关系R与S的广义笛卡尔积中选取A、B属性值相等的那些元组,即等值连接为:

自然连接(Naturaljoin)

什么是自然连接:

自然连接是一种特殊的等值连接

两个关系中进行比较的分量必须是相同的属性组

在结果中把重复的属性列去掉

自然连接的含义

R和S具有相同的属性组B

一般的连接操作是从行的角度进行运算。

自然连接还需要取消重复列,所以是同时从行和列的角度进行运算

4除

给定关系R(X,Y)和S(Y,Z),其中X,Y,Z为属性组。

R中的Y与S中的Y可以有不同的属性名,但必须出自相同

的域集。

R与S的除运算得到一个新的关系P(X),P是R中

满足下列条件的元组在X属性列上的投影:

元组在X上分

量值x的象集Yx包含S在Y上投影的集合。

R÷S={tr[X]|trR∧πY(S)Yx}

Yx:

x在R中的象集,x=tr[X]

除操作是同时从行和列角度进行运算

在关系R中,A可以取四个值{a1,a2,a3,a4}

a1的象集为{(b1,c2),(b2,c3),(b2,c1)}

 a2的象集为{(b3,c7),(b2,c3)}

 a3的象集为{(b4,c6)}

 a4的象集为{(b6,c6)}

S在(B,C)上的投影为

{(b1,c2),(b2,c1),(b2,c3)}

只有a1的象集包含了S在(B,C)属性组上的投影

所以R÷S={a1}

 

三关系数据库标准语言SQL

一基本表的建立与修改

1定义语句格式

CREATETABLE<表名>

2常用完整性约束

主码约束:

PRIMARYKEY

唯一性约束:

UNIQUE

非空值约束:

NOTNULL

参照完整性约束

3[例2]建立一个“学生选课”表SC,它由学号Sno、课程号Cno,修课成绩Grade组成,其中(Sno,Cno)为主码。

CREATETABLESC(

SnoCHAR(5),

CnoCHAR(3),

Gradeint,

Primarykey(Sno,Cno));

4删除基本表

DROPTABLE<表名>;

5修改基本表

ALTERTABLE<表名>

[ADD<新列名><数据类型>[完整性约束]]

[DROP<完整性约束名>]

[MODIFY<列名><数据类型>];

6建立与删除索引

⏹聚簇索引

⏹建立聚簇索引后,基表中数据也需要按指定的聚簇属性值的升序或降序存放。

也即聚簇索引的索引项顺序与表中记录的物理顺序一致

⏹在一个基本表上最多只能建立一个聚簇索引

⏹聚簇索引的用途:

对于某些类型的查询,可以提高查询效率

7删除索引

DROPINDEX<索引名>;

二查询

1语句格式

SELECT[ALL|DISTINCT]<目标列表达式>[,<目标列表达式>]…

FROM<表名或视图名>[,<表名或视图名>]…

[WHERE<条件表达式>]

[GROUPBY<列名1>[HAVING<条件表达式>]]

[ORDERBY<列名2>[ASC|DESC]];

SELECT子句:

指定要显示的属性列

FROM子句:

指定查询对象(基本表或视图)

WHERE子句:

指定查询条件

GROUPBY子句:

对查询结果按指定列的值分组,该属性列值相等的元组为一个组。

通常会在每组中作用集函数。

HAVING短语:

筛选出只有满足指定条件的组

ORDERBY子句:

对查询结果表按指定列值的升序或降序排序

3示例数据库

学生-课程数据库

学生表:

Student(Sno,Sname,Ssex,Sage,Sdept)

课程表:

Course(Cno,Cname,Cpno,Ccredit)

学生选课表:

SC(Sno,Cno,Grade)

4单表查询

查询仅涉及一个表,是一种最简单的查询操作

选择表中的若干列,选择表中的若干元组,对查询结果排序

1)选择表中的若干列

查询全体学生的学号与姓名。

SELECTSno,SnameFROMStudent; 

查询全体学生的姓名、学号、所在系。

SELECTSname,Sno,SdeptFROMStudent;

查询全体学生的详细记录。

SELECTSno,Sname,Ssex,Sage,Sdept

FROMStudent;或SELECT*FROMStudent;

查全体学生的姓名及其出生年份

SELECTSname,2000-SageFROMStudent; 

2)选择表中的若干元组

消除取值重复的行:

DISTINCT短语

DISTINCT短语的作用范围是所有目标列

SELECTDISTINCTSnoFROMSC

查询满足条件的元组

常用查询条件

%(百分号)代表任意长度

_(下横线)代表任意单个字符

3)对查询结果排序

使用ORDERBY子句

可以按一个或多个属性列排序

升序:

ASC;降序:

DESC;缺省值为升序

4)使用集函数:

COUNT()函数应用:

主要用作计数器,统计满足某种条件的行数

例列出在授课表中有多少位教师(不能重复统计)

SELECTCOUNT(DISTINCT教师名)FROM授课表

SELECTCOUNT(DISTINCT教师名)‘教师人数’FROM授课表

例统计学生表中一共有多少位19岁以上的女同学

SELECTCOUNT(*)FROM学生表WHERE年龄>=19.AND.性别=’女’

MIN()和MAX()、AVG()函数的应用:

找出表中的最大值和最小值以及平均值

例SELECTMAX(年龄)‘年龄最大’,MIN(年龄)‘年龄最小’FROM学生表

SELECTAVG(年龄)‘平均年龄’FROM学生表

SUM()的应用

对指定字段列求和

例SELECTSUM(年龄+1)‘1年后年龄总和’FROM学生表

SELECTSUM(年龄)‘女生年龄总和’FROM学生表WHERE性别=‘女’

5)对查询结果分组

使用GROUPBY子句分组

细化集函数的作用对象

未对查询结果分组,集函数将作用于整个查询结果

对查询结果分组后,集函数将分别作用于每个组

*使用GROUPBY子句后,SELECT子句的列名列表中只能出现分组属性和集函数

使用HAVING短语筛选最终输出结果

例查询有3门以上课程是90分以上的学生的学号及(90分以上的)课程数

SELECTSno,COUNT(*)

FROMSC

WHEREGrade>=90

GROUPBYSno

HAVINGCOUNT(*)>=3;

只有满足HAVING短语指定条件的组才输出

HAVING短语与WHERE子句的区别:

作用对象不同

WHERE子句作用于基表或视图,从中选择满足条件的元组。

HAVING短语作用于组,从中选择满足条件的组。

5连接查询

同时涉及多个表的查询

用来连接两个表的条件称为连接条件或连接谓词

等值连接、自然连接、自身连接、嵌套查询

例查询每个学生的学号、姓名、选修的课程名及成绩。

SELECTStudent.Sno,Sname,Cname,Grade

FROMStudent,SC,Course

WHEREStudent.Sno=SC.Sno

andSC.Cno=Course.Cno;

SELECTSname

FROMStudent

WHERESnoIN

(SELECTSnoFROMSCWHERECno='2');

将下列关系代数查询转换为用SQL语句实现查询:

1)σsname=‘刘丽’(S)

2)ΠXDM,XHM(W)

3)ΠXDM,XHM(σsname=‘李红’(W)

1)select*fromSwheresname=‘刘丽’

2)selectdistinctXDM,XHMfrom(W)

3)selectdistinctXDM,XHMfrom(W)

wheresname=‘李红’

6数据更新

例1

INSERTINTOStudent

VALUES('95020','陈冬','男','IS',18);

例2

UPDATEStudent

SETSage=22

WHERESno='95001';

例3

DELETE

FROMStudent

WHERESno='95019';

 

四关系数据库理论

1规范化

规范化理论正是用来改造关系模式,通过分解关系模式来消除其中不合适的数据依赖,以解决插入异常、删除异常、更新异常和数据冗余问题。

2函数依赖

设R(U)是一个属性集U上的关系模式,X和Y是U的子集。

若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等,则称“X函数确定Y”或“Y函数依赖于X”,记作X→Y。

X称为这个函数依赖的决定属性集(Determinant)。

Y=f(x)

3完全函数依赖与部分函数依赖

在关系模式R(U)中,如果X→Y,并且对于X的任何一个真子集X’,都有

4传递函数依赖

在关系模式R(U)中,如果X→Y,Y→Z,且YX,Y→X,则称Z传递函数依赖于X。

注:

如果Y→X,即X←→Y,则Z直接依赖于X

5各种范式之间存在联系:

61NF的定义

如果一个关系模式R的所有属性都是不可分的基本数据项,则R∈1NF。

72NF的定义

若关系模式R∈1NF,并且每一个非主属性都完全函数依赖

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

当前位置:首页 > 工程科技 > 纺织轻工业

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

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