西华大学数据库系统概论重点.docx
《西华大学数据库系统概论重点.docx》由会员分享,可在线阅读,更多相关《西华大学数据库系统概论重点.docx(14页珍藏版)》请在冰豆网上搜索。
西华大学数据库系统概论重点
第一章绪论
(1)DB、DBMS和DBS的定义
(2)数据管理技术的发展阶段
人工管理阶段、文件系统阶段、数据库系统阶段的特点。
(3)数据描述
概念设计、逻辑设计和物理设计等各阶段中数据描述的术语,概念设计中实体间二元联系的描述(1:
1,1:
N,M:
N)。
(4)数据模型
数据模型的定义,两类数据模型,逻辑模型的形式定义,ER模型,层次模型、网状模型、关系模型和面向对象模型的数据结构以及联系的实现方式。
(5)DB的体系结构
三级结构,两级映像,两级数据独立性
(6)DBMS
DBMS的工作模式、主要功能和模块组成。
(7)DBS
DBS的组成,DBA,DBS的全局结构,DBS结构的分类。
小结
●数据管理技术经历了人工管理、文件系统、数据库三个阶段。
数据库系统是在文件系统的基础上发展而成的,同时又克服了文件系统的三个缺陷:
数据的冗余、不一致性和联系弱。
●在数据库领域,应该准确使用术语,深刻了解实体间1:
1、1:
N和M:
M三种联系的意义。
数据库系统的特点
1.面向全组织的复杂的数据结构
2.数据的冗余度小,易扩充
3.具有较高的数据和程序的独立性
4.统一的数据控制功能,数据共享程度高
实体-联系模型
基本概念
实体、联系、属性、码、超码、候选码、主码
一对一联系,一对多联系,多对多联系
特殊化、概括、聚集
E-R图表示方法
E-R图向关系模式的转换
数据模型是对现实世界进行抽象的工具,用于描述现实世界的数据、数据联系、数据语义和数据约束等方面内容。
数据模型分成概念模型和逻辑模型两大类。
前者的代表是实体联系模型,后者的代表是层次、网状、关系和面向对象模型。
关系模型是当今的主流模型,面向对象模型是今后发展的方向。
数据库是存储在一起集中管理的相关数据的集合。
数据库的体系结构是对数据的三个抽象级别。
它把数据的具体组织留给DBMS去做,用户只需抽象地处理逻辑数据,而不必关心数据在计算机中的存储,减轻了用户使用系统的负担。
由于三级结构之间往往差别很大,存在着两级映象,因此使DBS具有较高的数据独立性:
物理数据独立性和逻辑数据独立性。
数据独立性是指在某个层次上修改模式而不影响较高一层模式的能力。
DBMS是位于用户与OS之间的一层数据管理软件。
数据库语言分成DDL和DML两类。
DBMS主要由查询处理器和存储管理器两大部分组成。
DBS是包含DB和DBMS的计算机系统。
DBS的全局结构体现了DBS的模块功能结构。
第二章关系数据库
重要概念
(1)基本概念
关系模型,关键码(主键和外键),关系的定义和性质,三类完整性规则
(2)关系代数
选择、投影、笛卡儿积、集合并、差、交、自然连接、除
小结
(1)一般规则
·对于只涉及到选择、投影、联接的查询可用下列表达式表示:
π…(σ…(R×S))或者π…(σ…(R⋈S))
·对于否定的操作,一般要用差操作表示,例如“检索不学C2课的学生姓名”。
·对于检索具有“全部”特征的操作,一般要用除法操作表示,例如“检索学习全部课程的学生姓名”。
(2)“检索不学C2课的学生姓名”,决不能用下式表示:
πSNAME,AGE(σC#≠'C2'(S⋈SC))
一定要用“差”的形式:
πSNAME,AGE(S)-πSNAME,AGE(σC#='C2'(S⋈SC))
(3)“检索学习全部课程的学生学号”,要用πS#,C#(SC)÷πC#(C)表示,
而不能写成πS#(SC÷πC#(C))形式。
这是因为一个学生学的课程的成绩可能是不一样的。
第三章SQL
重要概念
(1)SQL数据库的体系结构,SQL的组成。
(2)SQL的数据定义:
SQL模式、基本表和索引的创建和撤销。
(3)SQL的数据查询;SELECT语句的句法,SELECT语句的三种形式及各种限定,基本表的联接操作,SQL3中的递归查询。
(4)SQL的数据更新:
插入、删除和修改语句。
(5)视图的创建和撤消,对视图更新操作的限制。
小结
●SQL的数据定义部分包括对SQL模式、基本表、视图、索引的创建和撤消。
●SQL的数据操纵分成数据查询和数据更新两部分。
●SQL的数据查询是用SELECT语句实现,兼有关系代数和元组演算的特点。
●SQL的数据更新包括插入、删除和修改等三种操作,在视图中只有行列子集视图是可以更新的。
SELECT语句是SQL的核心内容,对于该语句考生应掌握下列内容。
1.SELECT语句的来历
在关系代数中最常用的式子是下列表达式:
πA1,…,An(σF(R1×…×Rm))
这里R1、…、Rm为关系,F是公式,A1、…、An为属性。
针对上述表达式,SQL为此设计了SELECT—FROM—WHERE句型:
SELECTA1,…,An
FROMR1,…,Rm
WHEREF
这个句型是从关系代数表达式演变来的,但WHERE子句中的条件表达式F要比关系代数中公式更灵活。
2.SELECT语句中出现的基本表名,应理解为基本表中的元组变量,而列名应理解为元组分量。
3.SELECT语句的语义有三种情况,下面以学生表S(S#,SNAME,AGE,SEX)为例说明。
第一种情况:
SELECT语句中未使用分组子句,也未使用聚合操作,那么SELECT子句的语义是对查询的结果执行投影操作。
譬如:
SELECTS#,SNAME
FROMS
WHERESEX='M';
第二种情况:
SELECT语句中未使用分组子句,
但在SELECT子句中使用了聚合操作,此时SELECT子句的语义是对查询结果执行聚合操作。
譬如:
SELECTCOUNT(*),AVG(AGE)
FROMS
WHERESEX='M';
该语句是求男同学的人数和平均年龄。
第三种情况:
SELECT语句使用了分组子句和聚合操作(有分组子句时必有聚合操作),此时SELECT子句的语义是对查询结果的每一分组去做聚合操作。
譬如:
SELECTAGE,COUNT(*)
FROMS
WHERESEX='M'
GROUPBYAGE;
该语句是求男同学每一年龄的人数。
4.SELECT语句中使用分组子句的先决条件是要有聚合操作。
但执行聚合操作不一定要用分组子句。
譬如求男同学的人数,此时聚合值只有一个,因此不必分组。
但同一个聚合操作的值有多个时,必须使用分组子句。
譬如求每一年龄的学生人数。
此时聚合值有多个,与年龄有关,因此必须分组。
第六章关系数据理论
重要概念
(1)理解概念
函数依赖、部分函数依赖、完全函数依赖、传递函数依赖、多值依赖
主码、主属性、全码
(2)关系模式的冗余和异常问题。
(3)FD的定义
(4)关系模式的范式:
1NF,2NF,3NF,BCNF。
分解成2NF、3NF模式集的算法。
关系数据库的规范化设计是指面对一个现实问题,如何选择一个比较好的关系模式集合。
规范化设计理论主要包括三个方面的内容:
数据依赖、范式和模式设计方法。
其中数据依赖起着核心的作用。
数据依赖研究数据之间的联系,范式是关系模式的标准,模式设计方法是自动化设计的基础。
规范化设计理论对关系数据库结构的设计起着重要的作用。
小结
本章讨论如何设计关系模式问题。
关系模式设计得好与坏,直接影响到数据冗余度、数据一致性等问题。
要设计好的数据库模式,必须有一定的理论为基础。
这就是模式规范化理论。
在数据库中,数据冗余是指同一个数据存储了多次,由数据冗余将会引起各种操作异常。
通过把模式分解成若干比较小的关系模式可以消除冗余。
函数依赖X→Y是数据之间最基本的一种联系,在关系中有两个元组,如果X值相等那么要求Y值也相等。
范式是衡量模式优劣的标准,范式表达了模式中数据依赖之间应满足的联系。
范式的级别越高,其数据冗余和操作异常现象就越少。
关系模式的规范化过程实际上是一个“分解”过程:
把逻辑上独立的信息放在独立的关系模式中。
分解是解决数据冗余的主要方法,也是规范化的一条原则:
“关系模式有冗余问题就分解它”。
第七章数据库设计
重要概念
(1)DBS生存期及其7个阶段的任务和工作,DBD过程的输入和输出。
(2)概念设计的重要性、主要步骤。
逻辑设计阶段的主要步骤。
(3)ER模型的基本元素,属性的分类,联系的元数。
采用ER方法的概念设计步骤。
(4)ER模型到关系模型的转换规则。
采用ER方法的逻辑设计步骤。
小结
●数据库的生命周期
●数据库设计的步骤
●ER模型
⏹基本概念和引进对象后的扩展
⏹ER模型的设计方法
⏹ER模型向关系模型的转换
对ER模型的理解
ER模型是人们认识客观世界的一种方法、工具。
ER模型具有客观性和主观性两重含义。
ER模型是在客观事物或系统的基础上形成的,在某种程度上反映了客观现实,反映了用户的需求,因此ER模型具有客观性。
但ER模型又不等同于客观事物的本身,它往往反映事物的某一方面,至于选取哪个方面或哪些属性,如何表达则决定于观察者本身的目的与状态,从这个意义上说,ER模型又具有主观性。
ER模型的设计过程,基本上是两大步:
·先设计实体类型(此时不要涉及到“联系”);
·再设计联系类型(考虑实体间的联系)。
具体设计时,有时“实体”与“联系”两者之间的界线是模糊的。
数据库设计者的任务就是要把现实世界中的数据以及数据间的联系抽象出来,用“实体”与“联系”来表示。
另外,设计者应注意,ER模型应该充分反映用户需求,ER模型要得到用户的认可才能确定下来。
系统篇小结
(1)事务的定义,COMMIT和ROLLBACK的语义,事务的ACID性质。
(2)恢复的定义、基本原则和实现方法,故障的类型,检查点技术,REDO和UNDO操作,运行记录优先原则。
(3)并发操作带来的三个问题,X锁、S锁、活锁、死锁,并发调度,串行调度,并发调度的可串行化,两段封锁法。
(4)完整性的定义,完整性子系统的功能,完整性规则的组成。
SQL中的三大类完整性约束,SQL3中的触发器技术。
(5)安全性的定义、级别,权限,SQL中的安全性机制,几种常用的安全性措施,自然环境的安全性。
小结
1.事务以及事务的四个性质
2.数据库数据的恢复原理、常用技术、故障类型和恢复方法
3.检查点技术
4.封锁操作以及封锁带来的问题
5.并发操作和可串行化
6.数据库的完整性以及SQL中相应的语句
例题讲解
设教学数据库有三个表:
学生表:
S(S#,SNAME,AGE,SEX)
选课表:
SC(S#,C#,GRADE)
课程表:
C(C#,CNAME,TEACHER)
(1)试写出下列查询语句的关系代数表达式
检索不学课程号为C8课程的学生学号和姓名
(2)试写出
(1)的SELECT语句表达形式
(3)假设S和C已建立,试用CREATE语句创建表SC(需建立主键和外键)。
表中字段类型、长度按常规定义。
(4)试写出下列删除操作的SQL语句
从SC表中把课程名为“PASCAL”女学生选课元组全部删除
(1)
∏S#,SNAME(S)-∏S#,SNAME(C#=‘C8’(SSC))
(2)
selectS#,SNAME
fromS
whereS#notin
(selectS#
fromSC
whereC#=‘C8’)
(3)
CREATETABLESC
(S#CHAR(4),
C#CHAR(4),
GRADESAMLLINT,
PRIMARYKEY(S#,C#),
FOREIGNKEY(S#)
REFERENCESS(S#),
FOREIGNKEY(C#)
REFERENCESC(S#));
(4)
deletefromSC
whereC#in
(selectC#
fromC
whereCNAME=‘PASCAL’)
andS#in
(selectS#
fromS
whereSEX=‘F’);
设某商业集团数据库中有三个实体。
一是“公司”实体集,属性有公司编号、公司名、地址等;二是“仓库”实体集,属性有仓库编号、仓库名、地址等;三是“职工”实体集,属性有职工编号、姓名、性别等。
公司与仓库间存在“隶属”联系,每个公司管辖若干个仓库,每个仓库只能属于一个公司管辖;仓库与职工之间存在“聘用”联系,每个仓库可聘用多个职工,每个职工只能在一个仓库工作,仓库聘用职工有聘期和工资。
(1)试画出ER图,并在图上注明属性、联系的类型
(2)将ER图转换成关系模型,并注明主键和外键。
(1)ER图
(2)关系模型有三个表(带下划线的为主键,红色的为外键)
公司(公司编号,公司名,地址)
仓库(仓库编号,仓库名,地址,公司编号)
职工(职工编号,姓名,性别,仓库编号,聘期,工资)
设关系模式R(S#,C#,GRADE,TNAME,TADDR),其属性分别表示学生学号、选修课程的编号、成绩、任课教师姓名、教师地址等意义。
如果规定,每个学生每学一门课只有一个成绩;每门课只有一个任课教师;每个教师只有一个地址(此处不允许教师同名同姓)。
(1)试写出关系模式R基本的FD和候选码。
(2)试把R分解成2NF模式集,并说明理由
(3)试把R分解成3NF模式集,并说明理由
(1)根据“每个学生每学一门课只有一个成绩”的语义,可写出FD(S#,C#)→GRADE
根据“每门课只有一个任课教师”的语义,可写出FDC#→TNAME
根据“每个教师只有一个地址”的语义,可写出FDTNAME→TADDR
候选码是(S#,C#),因为从(S#,C#)可函数决定全部属性。
(2)由于R中存在下列两个FD:
(S#,C#)→GRADE和C#→TNAME
因此,(S#,C#)→TNAME是一个局部FD,即TNAME部分依赖候选码(S#,C#),所以R不是2NF。
此时,R中就会存在数据冗余和数据异常,如果一门课程有50个学生选修,那么在关系中就会出现50个元组,即这门课程的任课教师姓名和地址就要重复出现50次。
这就是数据冗余,随之就会出现各种操作异常。
如果把R分解成R1(S#,C#,GRADE)和R2(C#,TNAME,TADDR),就能消除上面提到的局部FD和数据冗余问题,并且R1和R2都是2NF模式。
因此R分解成的2NF模式集是{R1,R2}。
(3)前面R1已是3NF了,但R2还不是3NF。
因为在R2中的候选码是C#,并且存在下列两个FD:
C#→TNAME和TNAME→GRADE
即TADDR传递依赖于候选码C#,所以R2不是3NF。
此时,R2中也会出现数据冗余和操作异常。
如果一个教师开设5门课,那么在关系中就会出现5个元组,即这个教师的地址就要重复出现5次。
这也是数据冗余,随之也会产生各种操作异常。
如果把R2分解成R21(C#,TNAME)和R22(TNAME,TADDR),就会消除上面提到的传递依赖和数据冗余问题,并且R21和R22都是3NF模式。
因此R分解成的3NF模式集是{R1,R21,R22}。
(1)T1、T2、T3有如左图所示的调度,执行过程中数据不一致的类型有(),在以下回答中选择正确的答案答案:
a、c
a、丢失修改数据b、不可重读数据c、读脏数据
(2)要使数据一致,就必须对数据加锁,试说明解决办法
(3)写出一个可串行调度,并给出执行结果(3分)
答:
(2)的解决办法就是一个可串行调度
若T1、T2、T3三个事务允许并发执行,则有多少种可能正确的执行结果,并写出调度情况和执行结果。
(3分)
答:
共六种:
T1T2T3执行结果64T1T3T2执行结果32T2T1T3执行结果36
T2T3T1执行结果18T3T1T2执行结果12T3T2T1执行结果10
设有一教师工资管理系统的E-R图如图所示(回答问题时只用图中字符属性)
1.请对下列数据库设计阶段排列先后顺序
a、概念结构设计、b.需求分析、c.数据库物理结构设计、
d.数据库逻辑结构设计、e.数据库的维护、f.数据库的实施
2.对一数据设计,E-R图应该在哪个阶段设计
3.试使用E-R图转换为关系模型的原则,将教师工资管理系统的E-R图转换为关系模型
4.写出下列问题的SQL语句
(1).将本题中3小题的关系模型转换为数据库的基本表
(2).查询教师姓名中有“中”字符的教师姓名、工资总额的记录
(3).查询女副教授的姓名、工资总额的记录
(4).在表中增加一教师记录“012王中一男教授计算机”
(5).在表中删除一教师记录“012王中一男教授计算机”
(6).将所有教师的姓名,工资总额按工资总额的降序排序
1.答案:
需求分析、概念结构设计、数据库逻辑结构设计、数据库物理结构设计、数据库的实施、数据库的维护。
2.答案:
E-R图应该在概念结构设计阶段设计
3.答案:
教师(编号、姓名、性别、职称、所在系)
工资(编号、工资总额、补贴、福利、奖金、教师编号、水电费、房租费)
或
Teacher(Bh、Xm、Xb、Zc、Szm)
Wages(Bh、Gz、Bt、Fl、Jj、Jsbh、Sd、Fz)
4
(1)答案:
createtableteacher(
bhchar(3)notnull,
xmchar(10)notnull,
xbchar
(2),
zcchar(10),
szxchar(10)
)
createtablewages(
bhchar(3)notnull,
jsbhchar(10),
gzdecimal(7,2),
btdecimal(5,2),
fldecimal(5,2),
jjdecimal(7,2),
sddecimal(5,2),
fzdecimal(5,2)
)
4
(2)答案:
selectteacher.xm,wages.gzfromteacher,wageswhereteacher.bh=wages.jsbhANDteacher.xmlike‘%中%’
4(3)答案:
selectteacher.xm,wages.gzfromteacher,wageswhereteacher.bh=wages.jsbhANDteacher.xb=‘女’ANDteacher.zc=‘副教授’
4(4)答案:
Insertintoteacher(bh,xm,xb,zc,szm)values(‘012’,‘王中一’,‘男’,‘教授’,‘计算机’)
4(5)答案:
deletefromteacherwherebh=‘012’
4(6)答案:
selectteacher.xm,wages.gz
fromteacher,wages
whereteacher.bh=wages.jsbh
orderbywages.gzDESC