1、第1章 数据库概论1.1 基本内容分析1.1.1 本章的重要概念(1)DB、DBMS和DBS的定义(2)数据管理技术的发展阶段人工管理阶段、文件系统阶段、数据库系统阶段和高级数据库技术阶段等各阶段的特点。(3)数据描述概念设计、逻辑设计和物理设计等各阶段中数据描述的术语,概念设计中实体间二元联系的描述(1:1,1:N,M:N)。(4)数据模型数据模型的定义,两类数据模型,逻辑模型的形式定义,ER模型,层次模型、网状模型、关系模型和面向对象模型的数据结构以及联系的实现方式。(5)DB的体系结构三级结构,两级映像,两级数据独立性,体系结构各个层次中记录的联系。(6)DBMSDBMS的工作模式、主要
2、功能和模块组成。(7)DBSDBS的组成,DBA,DBS的全局结构,DBS结构的分类。1.1.2本章的重点篇幅(1)教材P23的图1.24(四种逻辑数据模型的比较)。(2)教材P25的图1.27(DB的体系结构)。(3)教材P28的图1.29(DBMS的工作模式)。(4)教材P33的图1.31(DBS的全局结构)。1.3 自测题1.3.1 填空题1数据管理技术的发展,与_、_和_有密切的联系。2文件系统中的数据独立性是指_独立性。3文件系统的缺陷是:_、_和_。4就信息处理的方式而言,在文件系统阶段,_处于主导地位,_只起着服从程序设计需要的作用;而在数据库方式下,_占据了中心位置。5对现实世
3、界进行第一层抽象的模型,称为_模型;对现实世界进行第二层抽象的模型,称为_模型。6层次模型的数据结构是_结构;网状模型的数据结构是_结构;关系模型的数据结构是_结构;面向对象模型的数据结构之间可以_。7在层次、网状模型中,用_导航数据;而在关系模型中,用_导航数据。8数据库的三级模式结构是对_的三个抽象级别。9DBMS为应用程序运行时开辟的DB系统缓冲区,主要用于_和_。10在数据库技术中,编写应用程序的语言仍然是C一类高级语言,这些语言被称为_语言。11在DB的三级模式结构中,数据按_的描述提供给用户,按_的描述存储在磁盘中,而_提供了连接这两级的相对稳定的中间观点,并使得两级中的任何一级的
4、改变都不受另一级的牵制。12层次、网状的DML属于_语言,而关系型DML属于_语言。13DBS中存放三级结构定义的DB称为_。14从模块结构考察,DBMS由两大部分组成:_和_。15DBA有两个很重要的工具:_和_。16DBS是_、_、_和_的集合体。17DBS的全局结构体现了其_结构。18在DBS中,DB在磁盘上的基本组织形式是_,这样可以充分利用OS _的功能。19根据计算机的系统结构,DBS可分成四种类型:_、_、_和_。20数据独立性使得修改DB结构时尽量不影响已有的_。1.3.2 单项选择题(在备选答案中选出一个正确答案)1在DBS中,DBMS和OS之间关系是A并发运行B相互调用CO
5、S调用DBMSDDBMS调用OS2在数据库方式下,信息处理中占据中心位置的是A磁盘B.程序C.数据D.内存3DB的三级体系结构是对_抽象的三个级别。A.存储器B.数据C.程序D. 外存4DB的三级模式结构中最接近外部存储器的是A.子模式B.外模式C.概念模式D.内模式5DBS具有“数据独立性”特点的原因是因为在DBS中A.采用磁盘作为外存B.采用三级模式结构C.使用OS来访问数据D.用宿主语言编写应用程序6在DBS中,“数据独立性”和“数据联系”这两个概念之间联系是A没有必然的联系B同时成立或不成立C前者蕴涵后者D后者蕴涵前者7数据独立性是指A数据之间相互独立B应用程序与DB的结构之间相互独立
6、C数据的逻辑结构与物理结构相互独立D数据与磁盘之间相互独立8DB中数据导航是指A数据之间联系B数据之间指针联系C从已知数据找未知数据的过程D数据的组合方式9用户使用DML语句对数据进行操作,实际上操作的是A数据库的记录B内模式的内部记录C外模式的外部记录D数据库的内部记录值10对DB中数据的操作分成两大类:A查询和更新B检索和修改C查询和修改D插入和修改1.3.3 问答题1试对数据管理技术三个发展阶段作一详细的比较。2在用户访问数据库中数据的过程中,DBMS起着什么作用?3什么是“DB的系统缓冲区”?4DBS中有哪些系统软件?1.4 自测题答案1.4.1 填空题答案1硬件 软件 计算机应用2设
7、备3数据冗余数据不一致数据联系弱4程序设计数据数据5概念 结构(或逻辑)6树 有向图 二维表 嵌套和递归7指针 关键码(或外键与主键) 8数据9数据的传输 格式的转换10宿主语言(或主语言,host language)11外模式 内模式 概念模式12过程性非过程性13数据字典(DD)14查询处理器 存储管理器15一系列实用程序 DD系统16数据库 硬件 软件 DBA17模块功能18. 文件管理外存(或文件系统)19集中式C/S式并行式分布式20应用程序1.4.2 单项选择题答案1D2C3B 4D 5B6A7B8C 9C10. A1.4.3 问答题答案1.答:数据管理技术三个发展阶段的详细比较见
8、图1.1。人工管理阶段文件系统阶段数据库阶段时 间20世纪50年代60年代70年代环外存纸带、卡片、磁带磁盘大容量磁盘境软件汇编语言3GL、OSDBMS计算机应用科学计算进入企业管理企业管理数据的管理者用户(程序员)文件系统DBS数据的针对者面向某一应用程序面向某一应用面向现实世界数据的共享程度无共享共享性差、冗余度大共享性高、冗余度小数据独立性无独立性,独立性差,有高度的物理独立性,数据完全依赖于程序有设备独立性一定的逻辑独立性数据的结构化无结构记录内有结构,整体结构化,整体结构性差用数据模型描述图1.12答:在用户访问数据的过程中,DBMS起着核心的作用,实现“数据三级结构转换”的工作。3
9、答:在应用程序运行时,DBMS在内存为其开辟一个程序工作区,称为“DB的系统缓冲区”。这个工作区主要用于“数据的传输和格式的转换”。4答:DBS应包括DBMS、OS、宿主语言和应用开发支撑软件等四部分系统软件。DBMS是管理DB的软件系统,但对硬盘的管理是由OS实现的,因此DBS中应包括DBMS和OS这两个主要的系统软件。编写应用程序仍然是用C一类高级程序设计语言,这些语言在DBS中称为宿主语言。为提高应用程序开发效率,需要像Dephi、PowerBuilder一类软件开发工具(即应用开发支撑软件)开发应用程序。这些软件属于4GL范畴,可使应用系统开发生产率提高20100倍。第2章 关系模型和
10、关系运算理论2.1 基本内容分析2.1.1 本章重要概念(1)基本概念关系模型,关键码(主键和外键),关系的定义和性质,三类完整性规则,ER模型到关系模型的转换规则,过程性语言与非过程性语言。(2)关系代数五个基本操作,四个组合操作,七个扩充操作。(3)关系演算元组关系演算和域关系演算的原子公式、公式的定义。关系演算的安全性和等价性。(4)关系代数表达式的优化关系代数表达式的等价及等价转换规则,启化式优化算法。(5)关系逻辑谓词、原子、规则和查询,规则的安全性,用规则模拟关系代数表达式。2.1.2 本章的重点篇幅(1)教材中P56的例2.7(关系代数表达式的应用实例)。(2)教材中P63的例2
11、.19(元组表达式的应用实例)。(3)教材中P81的例2.36(关系逻辑的规则表示)。2.1.3 重要内容分析1关系代数表达式的运用技巧(1)一般规则对于只涉及到选择、投影、联接的查询可用下列表达式表示:(RS) 或者(RS)对于否定的操作,一般要用差操作表示,例如“检索不学C2课的学生姓名”。对于检索具有“全部”特征的操作,一般要用除法操作表示,例如“检索学习全部课程的学生姓名”。(2)“检索不学C2课的学生姓名”,决不能用下式表示: SNAME,AGE(C#C2(SSC)一定要用“差”的形式: SNAME,AGE(S)SNAME,AGE(C#=C2(SSC)(3)“检索学习全部课程的学生学
12、号”,要用S#,C#(SC)C#(C)表示,而不能写成S# (SCC#(C)形式。这是因为一个学生学的课程的成绩可能是不一样的。(4)对于教材P56的例2.7的8个查询语句的关系代数表达式,考生一定要掌握,这是基础。2非过程性语言与过程性语言的区别编程时必须指出“干什么”及“怎么干”的语言,称为过程性语言;编程时只须指出“干什么”,不必指出“怎么干”的语言,称为非过程性语言。两种语言的主要区别见图2.1。过程性语言非过程性语言编程时,必须指出“怎么干”编程时,不必指出“怎么干”由用户进行数据导航由系统进行数据导航单记录处理方式集合处理方式属于3GL范畴属于4GL范畴C语言,层次、网状DML等关
13、系DML,软件开发工具等图2.12.3 自测题2.3.1 填空题1关系中没有行序的原因是_。2.3关系模型的基本数据结构是_,其数据库存储时的基本组织方式是_。4实体完整性规则是对_的约束,参照完整性规则是对_的约束。5关系代数的理论基础是_,关系演算的理论基础是_,关系逻辑的理论基础是_。6关系代数的基本操作是_。7安全运算是指不产生_和_的运算。8等式R S = RS成立的条件是_。9关系的并、差、交操作,要求两个关系具有_。10一般,在关系代数运算中,当查询涉及到“否定”时,就要用到_操作;当查询涉及到“全部值”时,就要用到_操作。11如果关系R和S做自然联接时,只把R中原该舍去的元组放
14、到新关系中,那么这种操作称为_操作。12等式L(F(E)=F(L(E)成立的条件是_。13等式L1(L2(E)=L1(E)成立的条件是_。14等式F(E1E2)= E1F(E2)成立的条件是_。15等式F(E1E2)= F(E1)F(E2)成立的条件是_。16.关系逻辑中,外延谓词是指_,内涵谓词是指_。17.关系逻辑中的“安全条件”是指_。18.设有关系R(A,B,C),那么与规则W(c,a) R(a,b,c)等价的关系代数操作是_。19.设有关系R(A,B,C),那么与规则W(a,b) R(a,b,18)b15等价的关系代数操作是_。20.设有关系R(A,B,C)和S(B,C,D),那么与
15、规则W(a,d) R(a,b,c) S(b,c,d)等价的关系代数操作是_。2.3.2 单项选择题(在备选答案中选出一个正确答案)1在关系中,“元数”(arity)是指A行数 B元组个数 C关系个数 D列数2在关系中,“基数”(cardinality)是指A行数 B属性个数 C关系个数 D列数3由系统进行数据导航的语言称为A第三代语言B高级程序设计语言C过程性语言D非过程性语言4设关系R、S、W各有10个元组,那么这三个关系的自然联接的元组个数为A10 B30 C1000 D不确定(与计算结果有关)ij5设W = R S,且W、R、S的元组个数分别为p、m、n,那么三者之间满足Ap(m+n)
16、Bp(m+n) Cp(mn) Dp(mn)6设关系R和S的结构相同,且各有10个元组,那么这两个关系的并操作结果的元组个数为A10 B小于等于10 C20 D小于等于20127设关系R和S的属性个数分别为2和3,那么 R S等价于A12(RS)B14(RS)C12(R S)D1P2等价的公式是AP1P2BP2P1 CP1P2DP2P214与域演算表达式ab | R(ab) R(ba)不等价的关系代数表达式是1=22=1A1,2(1=42=3(RR)B1,2(R R)CR2,1(R)D1=2(R)15设R和S都是二元关系,那么与元组演算表达式 t | ($u) ($v) (R(u)S(v)u2=
17、v2t1=u1t2=v1)等价的关系代数表达式是A1,3(2=4(RS)B1,3(2=2(RS)2224C1,3(RS)D1,3(RS)16设有关系R(A,B,C)和S(B,C,D),那么与RS等价的关系代数表达式是2=12=1A3=5(RS)B1,2,3,6(3=5(R S)C3=52=4(RS)D1,2,3,6(3=22=1(RS)17设R和S都是二元关系,那么与元组演算表达式 t | R(t) ($u) (S(u) u1 t2)不等价的关系代数表达式是A1,2(23(RS)B1,2(21(RS)21C1,2(RS)D3,4(14(SR)18在关系代数表达式的查询优化中,不正确的叙述是A尽
18、可能早地执行联接B尽可能早地执行选择C尽可能早地执行投影D把笛卡尔积和随后的选择合并成联接运算2.3.3 计算题1设有关系R和S:RABCSBCD642449653425568526538684 133=2 2=1试计算:RS,RS,RS,RS。2设有关系R和S:RABCSDEF246369321345744447试计算下面四个元组表达式的值:R1= t | R(t) t23 R2= t | ($u) (R(t) S(u) t1u1 )R3= t | (u) (R(t) S(u) t3w )R3= xyz | ($u)(v) (R(xyz) S(uyv) xSOME(集合)”的语义是_。10操
19、作“元组ALL(集合)”的语义是_。11SQL有两种使用方式:_和_。12嵌入式SQL的预处理方式,是指预处理程序先对源程序进行扫描,识别出_,并处理成宿主语言的_形式。13为保证嵌入式SQL的实现,通常DBMS制造商提供一个_,供编译时使用。14SQL语句嵌入在C语言程序中时,必须加上前缀标识_和结束标志_。15“卷游标”是指_。3.3.2 单项选择题(在备选答案中选出一个正确答案)1在SQL中,用户可以直接进行查询操作的是A实表和虚表B基本表和实表C视图和虚表D基本表2SQL中,聚合函数COUNT(列名)用于A计算元组个数B计算属性的个数C对一列中的非空值计算个数D对一列中的非空值和空值计
20、算个数3SQL中,与“NOT IN”等价的操作符是A=SOME BSOME C=ALL DALL4元组比较操作(a1,a2)(b1,b2)的意义是A(a1b1)OR(a1=b1)AND(a2=b2)B(a1=b1)OR(a1=b1)AND(a2=b2)C(a1b1)OR(a1=b1)AND(a2b2)D(a1=b1)OR(a1=b1)AND(a2b2)5SQL中,谓词EXISTS可用来测试一个集合是否A有重复元组B有重复的列名C为非空集合D有空值6对于基本表EMP(ENO,ENAME,SALARY,DNO)其属性表示职工的工号、姓名、工资和所在部门的编号。基本表DEPT(DNO,DNAME)其
21、属性表示部门的编号和部门名。有一SQL语句:SELECT COUNT(DISTINCT DNO)FROM EMP;其等价的查询语句是A统计职工的总人数B统计每一部门的职工人数C统计职工服务的部门数目D统计每一职工服务的部门数目7对于第6题的两个基本表,有一个SQL语句: SELECT ENO,ENAME FROM EMP WHERE DNO NOT IN(SELECT DNO FROM DEPT WHERE DNAME=金工车间;其等价的关系代数表达式是:AENO,ENAME(DNAME金工车间(EMPDEPT)DNAME金工车间BENO,ENAME(EMP DEPT)CENO,ENAME(E
22、MP)ENO,ENAME(DNAME=金工车间(EMPDEPT)DENO,ENAME(EMP)ENO,ENAME(DNAME金工车间(EMPDEPT)8对于第6题的两个基本表,有一个SQL语句:UPDATE EMPSET SALARY=SALARY*1.05WHERE DNO=D6AND SALARY(SELECT AVG(SALARY)FROM EMP);其等价的修改语句为A为工资低于D6部门平均工资的所有职工加薪5%B为工资低于整个企业平均工资的职工加薪5%C为在D6部门工作、工资低于整个企业平均工资的职工加薪5%D为在D6部门工作、工资低于本部门平均工资的职工加薪5%9有关嵌入式SQL的
23、叙述,不正确的是A宿主语言是指C一类高级程序设计语言B宿主语言是指SQL语言C在程序中要区分SQL语句和宿主语言语句DSQL有交互式和嵌入式两种使用方式10嵌入式SQL实现时,采用预处理方式是A把SQL语句和主语言语句区分开来B为SQL语句加前缀标识和结束标志C识别出SQL语句,并处理成函数调用形式D把SQL语句编译成二进制码11允许在嵌入的SQL语句中,引用宿主语言的程序变量,在引用时A直接引用B这些变量前必须加符号“*”C这些变量前必须加符号“:”D这些变量前必须加符号“&”12如果嵌入的SELECT语句的查询结果肯定是单元组,那么嵌入时A肯定不涉及游标机制B必须使用游标机制C是否使用游标
24、,由应用程序员决定D是否使用游标,与DBMS有关13卷游标的推进语句“EXEC SQL FETCH RELATIVE -4”表示A把游标移向查询结果的第4行B把游标移向查询结果的倒数第4行C把游标从当前位置推进4行D把游标从当前位置返回4行14卷游标的推进语句“EXEC SQL FETCH ABSOLUTE -3”表示A把游标移向查询结果的第3行B把游标移向查询结果的倒数第3行C把游标从当前位置推进3行D把游标从当前位置返回3行3.3.3 简答题1试叙述SQL的关系代数特点和元组演算特点。2SQL语言对于“查询结果是否允许存在重复元组”是如何实现的?3试对SELECT语句中使用的基本表名和列名的语义作详细的解释。4SELECT语句中,何时使用分组子句,何时不必使用分组子句?3.4 练习题答案3.4.1 填空题答案1基本表 视图 行 列2基本表 视图 实表 虚表3应用程序 终端用户4视图5基本表、视图、索引、完整性规则等6惟一 非空7若元组在集合中,其值为true,否则为false8与零个或多个字符组