数据库系统原理与实践题库及答案
1.简要说明数据、数据库、数据库管理系统和数据库系统的概念。
答:数据:数据库中存储的基本对象是数据(Data),从计算机的角度来看,数据是指能够被计算机存储和处理的符号。数据的表现形式多种多样,不仅有数字、文字,还可以是图
形、图像和声音等。
数据库:数据库是指长期存储在计算内的、有组织的、可共享的数据集合。
数据库管理系统:数据库管理系统(Database Management System,DBMS)是专门用来管理数据库的计算机软件,以实现对数据库的统一管理和控制。数据库管理系统是计算机系统的重要基础软件。
数据库系统:数据库系统(Database System,DBS)是指引入数据库技术后的计算机系统。一般由数据库、数据库管理系统(及相关实用工具) 、应用系统和数据库管理员构成。
2.数据管理技术的发展主要经历了哪几个阶段?
答:在应用需求的推动下,在计算机硬件、软件发展的基础上,数据管理技术经历了人工管理、文件系统和数据库系统 3 个阶段。
3.与文件系统相比,数据库系统有哪些优点?
答:从文件系统到数据库系统,标志着数据管理技术的飞跃。与人工管理和文件系统相比,
数据库系统具有以下优点:
(1)数据结构化
数据库系统实现了整体数据的结构化,这是数据库的主要特征之一,也是数据库系统与
文件系统的本质区别。 在文件系统中,每个文件内部是有结构的,但文件与文件之间是毫无结构化的。在数据库系统中,不仅数据内部实现了结构化,整体也是结构化的,数据之间具有联系,从而实现了数据的真正结构化。
(2)数据的共享性高、冗余度低,易扩充
数据库系统从整体角度看待和描述数据,数据面向整个系统,可以被多个用户、多个应
用共享使用。数据共享有利于减少数据冗余,节约存储空间;可以避免数据之间的不相容性
与不一致性,且使系统易于扩充。
(3)数据独立性高
数据库系统采用三级模式结构,三级模式之间形成两级映像,保证了数据具有较高的逻辑独立性和物理独立性。
(4)数据由 DBMS 统一管理和控制
数据库系统关于数据控制的功能几乎都由 DBMS 提供,主要包括: 数据的安全性保护、数据的完整性检查、并发控制和数据库恢复。
4.什么是数据库系统的三级模式结构?数据库系统的三级模式结构如何形成两级映像?
答:数据库系统的三级模式结构是指数据库系统由外模式、模式和内模式三级构成。
(1)外模式又称用户模式,它是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一具体应用有关的数据的逻辑表示。一个数据库可以有多个外模式。
(2)模式也称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述。它是数据库系统模式结构的中间层,既不涉及数据的物理存储细节和硬件环境,也与具体应用程序无关。一个数据库只有一个模式。
(3)内模式也称存储模式,它是数据库中数据的物理结构和存储方式的描述,是数据在数据库内部的表示方式。一个数据库只有一个内模式。
三级模式之间提供两级映像,以实现这 3 个层次的联系与转换。
(1)外模式/模式映像。外模式/模式映像定义了该外模式与模式之间的对应关系,对于
每一个外模式,都有一个对应的外模式/模式映像。
(2)模式/内模式映像。由于数据库只有一个内模式,所以模式/内模式映像是唯一的。
它定义了数据库的全局逻辑结构与存储结构之间的对应关系。
5.什么是数据独立性?为什么说数据库系统中的数据具有较高的数据独立性?
数据独立性包括数据的物理独立性和数据的逻辑独立性。
(1)物理独立性是指用户的应用程序与存储在磁盘上的数据库中数据是相互独立的。当数据的物理存储改变时,应用程序不用改变。
(2)逻辑独立性是指用户的应用程序与数据库的逻辑结构是相互独立的。数据的逻辑结构改变了,用户程序可以不变。
数据库系统采用三级模式结构,在三级模式之间提供两级映像功能。当模式改变时,由数据库管理员对各个外模式/模式映像做相应的改变,可使外模式保持不变,由于应用程序是依据数据的外模式编写的,可以不必修改,从而实现了程序与数据的逻辑独立性;当数据库的存储结构改变时,只需要通过改变模式/内模式映像保持模式不变,应用程序不必修改,从而实现程序与数据的物理独立性。
6.简述数据库系统的组成。
答:数据库系统是引入数据库技术的计算机系统,一般由数据库、数据库管理系统(及相应
的实用工具) 、应用程序和数据库管理员组成。数据库是按照一定的组织形式保存在某种存储介质上的数据集合;数据库管理系统是管理数据库的专门软件;应用程序是指以数据库中的数据为基础的程序;数据库管理员负责整个数据库系统的正常运行。
7.DBA 的主要职责是什么?
答:负责整个系统的正常运行,负责保证数据库安全可靠地运行。
第二章
1、什么是概念模型?简述概念模型的作用。
答:
概念模型,也称信息模型,是按用户的观点来对数据和信息建模,主要用于数据库设计。
概念模型实际上是现实世界到机器世界的一个中间层次。概念模型用于信息世界的建模,是现实世界到信息世界的一层抽象,是数据库设计人员进行数据库设计的有力工具,也是数据库设计人员和用户进行交流的语言
2、请简述数据模型的三要素。
答:
三要素是数据结构、数据操作、数据约束。
数据结构是所研究的对象类型的集合。这些对象是数据库的组成成分,数据结构指对象和对象间联系的表达和实现,是对系统静态特征的描述。
数据操作是对数据库中对象的实例允许执行的操作集合,主要指检索和更新(插入、删除、修改)两类操作。数据模型必须定义这些操作的确切含义、操作符号、操作规则(如优先级)以及实现操作的语言。数据操作是对系统动态特性的描述。
数据完整性约束是一组完整性规则的集合,规定数据库状态及状态变化所应满足的条件,以保证数据的正确性、有效性和相容性。
3、目前数据库领域中,常见的数据模型有哪 些?请简述各模型的优缺点。
数据库领域中最常用的逻辑模型有:层次模型(树状图)、网状模型(网,图)、关系模型。
答:
层次模型:
优点:
1.结构清晰,便于观看实体间的联系
2.操作简单
3.查询效率高
缺点:
1.结构灵活性低,当需要更新或修改一个实体时,会影响到其他的数据
2.加大了DBMS的管理负担
网状模型:
优点:
1.允许单个节点存在多于一个父亲节点
2.可以存在俩个或多个节点没有父节点
3.真实反映现实世界
缺点:
1.联系复杂,难以实现,数据库维护重建难度大
关系模型:
优点:
1.结构简单明了
2.独立性比较强
3.操作方便
4.有坚实的数学理论做基础
缺点:
模型比查询效率低,加大了系统的查询负担
第三章
1、试述关系模型的3个组成部分
答:
关系型的三个组成部分分别是:
1.关系数据模型的数据结构
2.关系数据模型的操作集合
3.关系数据模型的完整性约束
2、试述关系操作的特点和关系操作语言的分类。
答:
关系数据语言可以分为三类:
1) 关系代数语言,例如 ISBL 。
2) 关系演算语言:元组关系演算语言,例如 APLHA ,QUEL ;域关系演算语言,例如:QBE 。
3) 具有关系代数和关系演算双重特点的语言,例如 SQL。
这些关系数据语言的共同特点是:具有完备的表达能力;是非过程化的集合操作语言;
功能强;能够嵌入高级语言中使用。
3.定义并理解下列术语,说明它们之间的联系与区别。
答:
(1)域:域是一组具有相同数据类型的值的集合。
笛卡尔积:给定一组域 D1,D2,⋯ ,Dn,这些域可以有相同的。这组域的笛卡
尔积为D1 × D2× , × Dn={( d1,d2, , ,dn )|di ∈Di,i=1,2, , ,n}
其中每一个元素 (d1,d2, , ,dn )叫做一个 n 元组或简称元组。 元素中的每一个值 di 叫做一个分量。
关系:在域 D1, D2,, , Dn上笛卡尔积 D1× D2× , × Dn的子集称为关系,表示为 R( D1,D2,, , Dn)。
元组:关系中的每一个元素是关系中的元组。
属性:关系也是一个二维表,表的每行对应一个元组,表的每列对应一个域。由于域可以相同,为了加以区分,必须对每列起一个名字,称为属性。
(2)候选码:若关系中的某一属性组的值能惟一地标识一个元组,则称该属性组为候选码。
主码:若一个关系有多个候选码,则选定其中一个为主码。
外部码: 设 F 是基本关系 R 的一个或一组属性, 但不是关系 R 的码, 如果 F 与基本关系 S 的主码 Ks 相对应,则称 F 是基本关系 R 的外部码,简称外码。基本关系 R称为参 照关系,基本关系 S称为被参照关系或目标关系。关系 R 和 S 可以是相同的关系。
(3)关系模式:关系的描述称为关系模式。它可以形式化地表示为 R( U,D,dom,F), 其中 R 为关系名, U 为组成该关系的属性名集合, D 为属性组 U 中属性所来自得域, Dom为 属性向域的映像集合, F 为属性间数据的依赖关系集合。
关系数据库:关系数据库有型和值之分。关系数据库的型也称为关系数据库模式,是对关系数据库的描述, 它包括若干域的定义以及在这些域上定义的若干关系模式。 关系数
据库的值是这些关系模式在某一时刻对应的关系的集合,通常称为关系数据库。
4、简述关系模型的实体完整性规则。
答:
关系模型的完整性规则是对关系的某种约束条件。 关系模型中可以有三类完整性约束:实体完整性、参照完整性和用户定义的完整性。
实体完整性规则:若属性 A 是基本关系 R 的主属性,则属性 A 不能取空值。
5、试述关系模型的完整性规则。在参照完整性中,为什么外部码属性的值也可以为空?什么情况下才可以为空?
答:
实体完整性规则:若属性 A 是基本关系 R 的主属性,则属性 A不能取空值。
参照完整性规则:若属性(或属性组) F 是基本关系 R 的外码,它与基本关系S的主码Ks 相对应(基本关系 R 和 S 不一定是不同的关系),则对于 R 中每个元组在 F 上的值必须为: 1)或者取空值; 2)或者等于S中某个元组的主码值。
用户定义的完整性是针对某一具体关系数据库的约束条件。它反映某一具体应用所涉及的数据必须满足的语义要求。
在参照完整性中, 外部码属性的值可以为空, 它表示该属性的值尚未确定,但前提条件 是该外部码属性不是其所在关系的主属性。
6. 试述等值连接与自然连接的区别和联系。
答:
连接运算中有两种最为常用的连接,一种是等值连接,另一种是自然连接。 θ 为“ =” 的连接运算,称为等值连接。它是从关系 R 与 S的笛卡尔积中选取 A、 B 属性值相等的那些元组。
自然连接是一种特殊的等值连接, 它要求两个关系中进行比较的分量必须是相同的属性 组,并且在结果中把重复的属性列去掉。
答:
并、差、笛卡尔积、投影和选择5种运算为基本的运算。其他三种运算,即交、链接和除,均可以用这5种运算来表达。
(1)交(∩)
R∩S ≡ R-(R-S) ≡ S-(S-R)
(2)自然连接(⋈)
R⋈S ≡ π(R∪S)(σpredicate(R x S))
(3)θ连接(⋈AθB,也叫等值连接)
R⋈AθBS ≡ σ(R.AθS.B)(R×S)
(4)除(÷)
设R的属性集为{X, Y},S的属性集为{Y}
R÷S ≡ π(X)(R) - π(X)((T×S)-R)
第四章:
1.解释下列术语
A. 基本表:实际存放数据的表
B.视图: 视图是从一个或几个基本表(或视图)导出的表,它与基本表不同,数据库中只存放视
图的定义,而不存放视图对应的数据,这些数据仍存放在原来的基本表中.
C.行列子集视图:若一个视图是从单个表中导出,并且只是去掉了基本表的某些行和某些列,但保留了主码,则这类视图称为行列子集视图。
D.派生表:如果子查询出现在 FROM 子句中,相当于该子查询的结果作为一个临时
的表,也称派生表。
E.嵌套查询:在 SQL 语言中,一个 SELECT-FROM-WHERE 语句称为一个查询块。将一个查询块嵌套在另一个查询块的 WHERE 子句或 WHERE 短语的条件中的查询称为嵌套查询
F.相关嵌套查询:如果嵌套查询中子查询的条件与父查询相关,称为相关子查询
G.分组查询:使用GROUP BY 子句将查询结果按照分组表达式中的值进行分组,分组表达式的值
相同的记录为同一组,通常会在分组中进行统计运算,这类的查询叫分组查询。
H.索引:在数据库中,索引是对数据库表中一列或多列的值进行排序的一种数据结构,建立索引是加快查询速度的有效手段。
I.聚簇索引:在聚簇索引中,表中行的物理顺序与键值的逻辑(索引)顺序相同。一个表只能包含一 个聚簇索引。
J.视图消解:从数据字典中取出视图的定义,把定义中的子查询和用户查询结合起来,转换成等价的对基本表的查询,然后再执行修正了的查询。这一转换过程称为视图的消解。
K.连接查询:若一个查询同时涉及两个以上的表,则称为连接查询。连接查询是关系数据库中最主要的查询,包括普通连接查询、自身连接查询、外连接查询和多表连接查询等
L.外连接查询:外连接包括左外连接、右外连接或全外连接,左外连接的结果集包括连接左表的所有行,而不仅仅是连接列所匹配的行。如果左表的某行在右表中没有匹配行,则在相关联的结果集行中右表的所有选择列均为空值。同理右外连接保证连接的右边所有记录行出现在结果集中。
2.什么是 DDL、DML 和 DCL,它们有何功能和用途?
答:DDL 数据定义语言,主要由是create, alter ,drop等语句组成
DML数据操作语言,由Insert,update,delete,select等语句组成
DCL数据控制语句,由grant,revoke等语句组成。
答:SELECT 语句中共包含 5 个子句:SELECT 子句、FROM 子句、WHERE 子句、GROUP BY
子句和 ORDER BY 子句。各子句的功能如下:
(1)SELECT 子句包含可选关键字 DISTINCT 和 ALL。在需要过滤查询结果中的重复行
时,使用关键字 DISTINCT;在需要返回所有查询结果记录时使用 ALL,默认 ALL 查询返回
所有的结果记录。
(2)FROM 子句包含一个或多个基本表、视图或者派生表(子查询)。
(3)WHERE 子句列出检索的条件,用于筛选符合要求的记录。如果没有 WHERE 子句,
代表所有目标表中的所有记录都满足条件。
(4)GROUP BY 子句用于将查询结果按照分组表达式中的值进行分组,分组表达式的值
相同的记录为同一组,通常会在分组中进行统计运算。如果 GROUP BY 子句带有 HAVING
子句,则只有满足指定条件的组才会输出。
(5)ORDER BY 子句接受 SELECT 子句的输出,对查询的结果进行排序。ASC 关键字
代表升序,DESC 关键字代表降序,默认为升序。排序表达式根据排序表达式的值进行升序
或者降序排列
答:Insert主要由三部分组成 Insert into <表名> 插入的列的列表和值列表values()组成。
UPDATE 语句主要包括 3 个部分:要修改的表名;修改的列和对应的新值;选择需要更
新的记录的条件。
Delete 语句主要包括 2 个部分:要的删除记录的表名;选择需要删除的记录的条件。
5.比较 B+树索引、哈希索引、位图索引及各自适用的条件。
答:哈希索引适用于等值查询;位图索引的使用情况比较局限,适合值的类型很少并且需要复合查询的字段;B+树索引适用于范围查询和单值查询,是最常用的索引,一般情况下“索引”指的是 B+树索引。
6.试述视图的优点。
答:(1)提供数据的逻辑独立性。视图作为虚表,它的定义实际上是外模式到模式的映像。
当数据的模式发生变化时,可以通过仅修改视图的定义(即外模式\模式映像)来保持数据库
的外模式不变,从而实现数据的逻辑独立性。
(2)简化用户操作。视图不仅可以简化用户对数据的理解,也可以简化它们的操作。那
些被经常使用的查询可以被定义为视图,从而使得用户不必为以后的操作每次指定都全部的
条件。
(3)提供数据的安全性保护。视图机制还能够为数据提供一定的安全保护功能。
1.什么是数据库安全?它与操作系统安全性有什么关系?
答:数据库安全性是指保护数据库以防止不合法的使用造成的数据泄露、更改或破坏。
安全性问题不是数据库系统所独有的,它与计算机系统的安全性紧密联系、相互支持。
2.数据库用户权限中,针对数据的权限有哪些?
答:针对数据本身的权限主要有:
(1)SELECT:允许用户读取表和视图中的数据。
(2)INSERT:允许用户在表和视图中插入数据。
(3)UPDATE:允许用户修改表或视图中的数据,可能只允许修改某一个属性。
(4)DELETE:允许用户删除表和视图中的数据。
3.保证数据库安全性的措施有哪些?
答:保证数据库安全性的措施主要有:用户管理、存取控制、视图机制、数据加密、审计等。
4.什么是数据库的存取控制机制?主要包括哪几种?
答:存取控制机制是数据库安全性的重要机制,主要内容是为不同用户规定对不同数据对象的不同存取权限,限制用户的操作不会超过已定义好的权限范围。存取控制机制主要包括两方面功能:
(1)定义功能。数据库管理系统提供适当的语言定义用户的权限,将这些定义编译后存
放在数据目录中,被称为安全规则或授权规则。
(2)检查功能。用户发出存取数据库的操作请求后,数据库管理系统检查该用户是否具
有执行该操作的权限,若有,则执行;若没有,则操作被拒绝。
主要包括自主存取控制和强制存取控制:
(1)自主存取控制(Discretionary Access Control,DAC)。自主存取控制非常灵活,用户对不同的数据对象有不同的存取权限,不同用户对同一数据对象也有不同的权限,且用户
还可以将其拥有的存取权限授权给其他用户。目前,大型数据库管理系统几乎都支持自主存
取控制。
(2)强制存取控制(Mandatory Sccess Control,MAC) 。在强制存取控制方法中,每个数据对象被标以一定的密级,每一个用户也被授予一个级别的许可证。对于任意一个数据对象,只有具有合法许可证的用户才可以对它进行存取。 这种方法适用于对数据库安全性要求较高,且对数据有严格而固定的密级分类的部门,如军事部门和政府部门等。
5.试述数据库安全领域中的审计功能。
答:审计功能就是一种事后监视措施,它将用户对数据库的所有操作自动记录下来,存放在审计日志中。数据库管理员可以通过对审计跟踪信息进行分析,发现对数据库的非法操作,进而找出非法存取数据的人、时间和内容等。审计一般分为用户级审计和系统级审计,前者是任何用户都可以设置的审计,主要针对用户自己创建的表和视图进行审计;后者只针对数据库管理员设置,用以监测成功或失败的登录及各种操作。
第六章:
答:数据库完整性是指数据库中存放的数据的正确性和相容性。数据的正确性是指数据是符
合现实世界语义的、反映当前实际状况的;数据的相容性是指数据库同一对象在不同关系表
中的数据是符合逻辑的。
答:
实体完整性:检查记录中的主键值是否唯一,检查主键的各个属性是否为空
参照完整性:利用外键的将两个表中的相应元组联系起来。对被参照表和参照表进行增加、删除和修改操作时都有可能破坏参照完整性,必须进行检查以保证这两个表的相容性.
用户自定义完整性:当往表中插入元组或修改元组的值时,关系数据库管理系统会自动检查定义的约束条件是否被满足,如果不满足则操作拒绝执行。包括非空约束(NOT NULL)、唯一值约束(UNIQUE)、默认值约束(DEFAULT)和 CHECK 约束。
3.在关系数据库系统中,当操作违反实体完整性、参照完整性和用户定义完整性约束条
件时,该如何进行处理?
答:数据库管理系统若发现用户的操作违反了完整性约束条件将采取一定的动作,如拒绝(NO ACTION)执行该操作或级联(CASCADE)删除修改,设置为空值等方法以保证数据的完整性
4.什么是触发器?触发器有什么作用?
答:触发器是一种特殊的对象,其特殊性在于不需要用户调用执行,而是在用户对表中的数
据进行 UPDATE、INSERT 或 DELETE 操作时自动触发执行。触发器通常用于保证业务规则和数据完整性,其主要优点是用户可以用编程的方法来实现复杂的处理逻辑和商业规则,增
强了数据完整性约束的功能。
第7章
1、解释下列名词:
函数依赖、部分函数依赖、完全函数依赖、传递函数依赖、侯选码、主码、1NF、2NF、3NF、BCNF、多值依赖、4NF、最小函数依赖集。
答:
函数依赖:设R(U)是一个关系模式,U是R的属性集合,X和Y是U的子集。对于R(U)的任意一个可能的关系r,如果r中不存在两个元组,它们在X上的属性值相同,而在Y上的属性值不同,则称“X函数确定Y”或“Y函数依赖于X”,记作X→Y。非平凡的函数依赖:X→ Y ,但 Y 不是 X 的子集,则称 X→ Y 是非平凡的函数依赖。若不特别声明,总是讨论非平凡的函数依赖。
在关系模式R(U)中,如果X→Y,并且对于X的任何一个真子集X′,都有X′\→ Y,则称Y完全函数依赖(Full Functional Dependency)于X,记作X —→F Y。若X→Y,但Y不完全函数依赖于X,则称Y部分函数依赖(Partial Functional Dependency)于X,记作X —→P Y。
在关系模式R(U)中,如果X→Y,Y→Z,且Y\→X,则称Z传递函数依赖(Transitive Functional Dependency)于X,记作Z—→T X。
如果关系模式R中不包含多值属性(每个属性必须是不可分的数据项),则 R 满足第一范式(First Normal Form),记作1NF。
若R1NF,且每一个非主属性完全函数依赖于码,则R2NF。R满足第二范式(Second Normal Form),记作2NF。
关系模式R(U,F)中若不存在这样的码X,属性组Y及非主属性Z(ZY)使得X→Y,Y→Z成立,Y→X,则称R(U,F)3NF。则R满足第三范式(Third Normal Form),记作3NF。
关系系模式R∈1NF,对任何非平凡的函数依赖X→Y(Y\ÍX),X均包含码,则R∈BCNF。
多值依赖:设有关系模式R(U),U是属性全集,X、Y、Z是U的子集,且Z = U-X-Y。如果对R(U)的任一关系r,给定一对(X, Z)值,都有一组Y值与之对应,这组Y值仅仅决定于X值而与Z值无关,则称Y多值依赖于X,或X多值决定Y,记作X→→Y。
第四范式:如果关系模式 R∈1NF,对于R 的每个非平凡的多值依赖X→→Y(Y 不包含在X 中),X 含有码,则R 满足第四范式(Forth Normal Form),记作R∈4NF。
如果函数依赖集F满足下列条件,则称F为最小函数依赖集或最小覆盖。
① F中的任何一个函数依赖的右部仅含有一个属性;
② F中不存在这样一个函数依赖X→A,使得F与F-{X→A}等价;
③ F中不存在这样一个函数依赖X→A,X有真子集Z使得F-{X→A}∪{Z→A}与F等价。
2、已知关系模式R(U,F),其中U={A,B,C,D,E},F={AB→C,B→D,C→E,EC→B,AC→B },求(AB)F+。
答:
(1) 令X={AB},X(0)=AB
(2)在F中寻找尚未使用过的左边是AB的子集的函数依赖,结果是: B→D所以 X(1)=X(0)D=ABCD, 显然 X(1)≠X(0).
(3) 在F中寻找尚未使用过的左边是ABCD的子集的函数依赖, 结果是: C→E;所以 X(2)=X(1)I=ABCDE。虽然X(2)≠X(1),但F中寻找尚未使用过函数依赖的左边已经没有X(2)的子集,所以不必再计算下去,即(AB)+= ABCDE
3.关系模式R(A,B,C,D),函数依赖集F={A→C,C→A,B→AC,D→AC,BD→A}。
求出R的候选码;
求出F的最小函数依赖集;
将R分解为3NF,使其既具有无损连接性又具有函数依赖保持性
答:
1) R的候选码为BD;
2) 将F中的函数依赖都分解为右部为单属性的函数依赖.;
F={A→C,C→A,B→A,B→C,D→A,D→C,BD→A}
3) 去掉F中冗余的函数依赖.
判断A→C是否冗余.
设:G1={C→A,B→A,B→C,D→A,D→C,BD→A},得(A)G1+=A
∵C不属于(A)G1+ ∴ A→C不冗余
判断C→A是否冗余.
设:G2={A→C,B→A,B→C,D→A,D→C,BD→A},得(A)G2+=C
∵A不属于(C)G1+ ∴ C→A不冗余
判断B→A是否冗余.
设:G3={A→C,C→A,B→C,D→A,D→C,BD→A},得(B)G3+=BCA
∵A属于(B)G3+ ∴ B→A冗余
判断B→C是否冗余.
设:G4={A→C,C→A,D→A,D→C,BD→A},得(B)G4+=B
∵C不属于(B)G4+ ∴ B→C不冗余
判断D→A是否冗余.
设:G5={A→C,C→A,B→C,D→C,BD→A},得(D)G5+=DCA
∵A不属于(D)G5+ ∴ D→A冗余
判断A→C是否冗余.
设:G6={A→C,C→A,B→C,BD→A},得(D)G6+=D
∵C不属于(D)G6+ ∴ D→C不冗余
判断BD→A是否冗余.
设:G7={A→C,C→A,B→C,D→C},得(BD)G7+=BDCA
∵A不属于(BD)G7+ ∴ BD→A冗余
F={A→C,C→A,B→C,D→C}
由于各函数依赖左部都为单属性,故:
Fm={A→C,C→A,B→C,D→C}
(3)τ={AC,BC,DC,BD}
4、指出下列关系模式是第几范式,并说明理由。
① R ( X,Y,Z ) F = { XY→Z }。
答:XY→Z是完全函数依赖,XY是码,是BCNF
② R ( X,Y,Z ) F = { Y→Z,XZ→Y }。
答:是3NF。候选关键字为XY和XZ,所有属性都是主属性,不存在非主属性对候选关键字的传递依抄赖。
③ R ( X,Y,Z ) F = { Y→Z,Y→X,X→YZ }。
答:是BCNF。候选关键字为X和Y,所有属性都是主属性,决定方都有候选关键字。
④ R ( X,Y,Z ) F = { X→Y,Y→Z }。
答:是2NF。候选关键字为X,X→Y,Y→Z是传递函数依赖。
5、现要建立关于系、学生、班级、学会等信息的一个关系数据库。语义为:一个系有若干专业,每个专业每年只招一个班,每个班有若干学生,一个系的学生住在同一个宿舍区,每个学生可参加若干学会,每个学会有若干学生。
描述学生的属性有:学号、姓名、出生日期、系名、班号、宿舍区;
描述班级的属性有:班号、专业名、系名、人数、入校年份;
描述系的属性有:系名、系号、系办公室地点、人数;
描述学会的属性有:学会名、成立年份、地点、人数、学生参加某会有一个入会年份。
⑴ 请写出关系模式。
⑵ 写出每个关系模式的最小函数依赖集,指出是否存在传递依赖,在函数依赖左部是多属性的情况下,讨论函数依赖是完全依赖,还是部分依赖。
⑶ 指出各个关系模式的候选关键字、外部关键字,有没有全关键字。
答:
(1)关系模式如下:
学生: S(Sno, Sname, Sbirth, Dept,Class, Rno)
班级: C(Class,Pname, Dept, Cnum, Cyear)
系: D(Dept , Dno, Office , Dnum)
学会: M(Mname , Myear , Maddr , Mnum)
(2)每个关系模式的最小函数依赖集如下:
A、学生 S (Sno,Sname, Sbirth ,Dept , Class, Rno) 的最小函数依赖集如 下:Sno→ Sname, Sno→ Sbirth, Sno→ Class,Class→Dept, DEPT→ Rno
传递依赖如下:
由于 Sno→Dept,而 Dept→ Sno , Dept→Rno(宿舍区)
所以 Sno 与 Rno 之间存在着传递函数依赖。
由于 Class→ Dept,Dept → Class,Dept→ Rno
所以 Class 与 Rno 之间存在着传递函数依赖。
由于 Sno→Class,Class→ Sno,Class→Dept
所以 Sno 与 Dept 之间存在着传递函数依赖。
B、班级 C(Class, Pname, Dept, Cnum, Cyear)的最小函数依赖集如下 : Class→Pname, Class→ Cnum, Class→ Cyear,Pname→ Dept.
由于 Class→ Pname,Pname→ Class, Pname→ Dept
所以 C1ass 与 Dept 之间存在着传递函数依赖。
C、系 D(Dept ,Dno ,Office , Dnum) 的最小函数依赖集如下:
Dept→ Dno, Dno→ Dept, Dno→ Office , Dno→ Dnum
根据上述函数依赖可知, Dept 与 Office , Dept 与 Dnum 之间不存在传递依赖。 D、学会 M(Mname , Myear , Maddr , Mnum) 的最小函数依赖集如下: Mname→Myear , Mname→ Maddr , Mname→ Mnum
该模式不存在传递依赖。
(3)各关系模式的候选码、外部码,全码如下:
A、学生 S 候选码: Sno;外部码: Dept、 Class;无全码
B、班级 C 候选码: Class;外部码: Dept;无全码
C、系 D 候选码: Dept 或 Dno;无外部码;无全码
D、学会 M 候选码: Mname;无外部码;无全码
1.简述数据库设计过程。
答:一般来说,按照规范化的设计方法,数据库设计可以划分为 5 个阶段:
需求分析阶段:准确收集用户信息需求和处理需求,对收集的结果进行整理和分析,形
成需求文档。需求分析是整个设计活动的基础,也是最困难和最耗时的一步。如果需求分析
不准确或不充分,可能导致整个数据库设计的返工。
概念结构设计阶段:是整个数据库设计的关键,它通过对用户需求进行综合、归纳和抽
象,形成一个独立于具体数据库管理系统的概念模型。
逻辑结构设计阶段:将概念结构转换为某个数据库管理系统所支持的数据库模型,并对其进行优化。
物理结构设计阶段:为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结
构和存取方法) 。
实施、运行和维护阶段:使用数据库管理系统提供的数据定义语言建立数据模式,并将
实际数据载入数据库,建立真正的数据库;在数据库上建立应用系统,并经过测试、试运行
后正式投入使用。维护阶段是对运行中的数据进行评价、调整和修改。
2.需求分析阶段的设计目标是什么?调查的内容是什么?
答:需求分析阶段的设计目标是通过详细调查,获取原有系统(或手工作业)的工作过程和业务逻辑,明确用户的各种需求,确定新系统的功能。在用户需求分析过程中,除了充分考虑现有系统的需求外,还需要充分考虑系统将来可能的扩充和修改,从而让系统具有可扩充性。
调查的重点是数据和功能,通过调查、收集和分析,获取用户对数据库的如下要求:
(1)信息要求:指用户需要从数据库中获得的内容与性质。由信息可以导出数据要求,
即数据库需要存储哪些数据。
(2)处理要求:指用户要完成的数据处理功能,对处理性能的要求。
(3)安全性与完整性要求。
3.数据字典的内容和作用是什么?
答:数据字典包括数据项、数据结构、数据流、数据存储和处理过程几部分。其中数据项是
数据的最小组成单位,若干数据项可以组成一个数据结构。数据字典通过对数据项和数据结
构的定义来描述数据流、数据存储的逻辑内容。
数据字典是进行详细的数据收集和数据分析所获得的主要成果。它是关于数据库中数据
的描述,在数据库设计中占有重要地位。
4.什么是数据库的概念结构?简述其特点及设计步骤。
答:数据的概念结构是指将在需求分析阶段所得到的应用需求抽象为信息世界的结构,以便更好、更准确地用某一数据库管理系统实现这些需求。
概念模型的主要特点是:
(1)能真实、充分反映现实世界、包括事务和事务之间的联系,能满足用户对数据库的
处理要求,是现实世界的一个真实模型。
(2)易于理解,可以用它和不熟悉计算机的用户交换意见。用户的积极参与是数据库设
计的关键。
(3)易于更改,当应用环境和应用要求改变时容易对概念模型修改和扩充。
(4)易于向关系模型、层次模型、网状模型等转换。
设计步骤:
(1)第一步就是对需求分析阶段收到的数据进行分类、组织,确定实体、实体的属性、实体之间的联系类型,形成 E-R 图;
(2)第二步将各子系统的分 E-R 模型图,然后将它们集成起来,得到全局E-R 图。E-R 的集成一般需要为两步:
(a)合并。解决各分 E-R 图之间的冲突,将分 E-R 图合并起来生成初步 E-R 图。
(b)修改和重构。消除不必要的冗余,生成基本 E-R 图。
5.什么是数据库的逻辑结构设计?简述其设计步骤。
答:数据库的逻辑结构设计是指把概念结构设计阶段设计好的 E-R 模型转换为与选用数据库管理系统所支持的数据模型相符合的逻辑结构。
以关系模型为例,逻辑结构设计的主要步骤包括:
(1)将实体型和实体间的联系转换成关系模式;
(2)根据应用需要适当修改、调整数据模型的结构,这就是模型的优化;
(3)根据局部应用需求,结合具体关系数据库管理系统的特点设计用户的外模式(即视图)。
6.简述数据库物理设计的内容和步骤。
答:数据库物理设计的内容是为一个给定的逻辑结构选择一个最适合应用要求的物理结构。
数据库的物理结构设计包括两个步骤:
(1)确定数据库的物理结构,在关系数据库中主要是存储结构和存储方法。
(2)对物理结构进行评价,评价的重点是时间和空间效率。
1.什么是 T-SQL?它与 SQL 是什么关系?
答:结构化查询语言(Structured Query Language,SQL)因其功能丰富,面向集合的操作、使用方式灵活、语言简洁易学等特点,已成为关系数据库管理系统(Relational Database Management System,RDBMS)的主流查询语言和行业标准。但各数据库厂商为了更好地完善其 RDBMS 产品,都对 SQL 标准做出了不同的解释、实现和扩展。 Transact-SQL(简称 T-SQL)是微软(Microsoft)公司实现的 SQL,并被广泛应用于Microsoft SQL Server 中。
2.T-SQL 中包括哪些流程控制结构?请分别对它们的功能和用法加以说明。
答:T-SQL中主要的流程控制结构包括:
(1)BEGIN…END:定义语句块,这些语句块作为一组语句执行,允许语句块嵌套。
(2)BREAK:跳出 WHILE 语句。
(3)CONTINUE:新开始循环,CONTINUE 关键字之后的任何语句将被忽略。
(4)GOTO
(5)IF…ELSE :条件分支语句。当 IF 后面的判断条件为真时,则执行 IF 后面的语句或语句块,否则执行 ELSE 之后的语句或语句块。
(6)WHILE:循环语句。当 WHILE 后面的判断条件为真时,重复执行该语句 。
(7)WAITFOR: 在达到指定时间或时间间隔之前,阻止执行批处理、存储过程或事务。
(8)RETURN:返回语句。从查询或过程中无条件退出,不执行 RETURN 之后的任何语句。
3.简述游标的概念和使用流程。
答: 游标(Cursor)提供了一种对结果集进行一次一行或多行、向前或向后处理的机制,满足了应用程序的需求。可以将游标看成一种指针,它可以方便地指向当前结果集中的任何位置并允许应用程序对当前指向的行进行相应的操作。
使用游标的基本流程包括以下 5 个步骤:声明游标、打开游标、存取游标、关闭游标和
释放游标。
4.简述用户自定义函数的类型及定义语法。
答:SQL Server 支持 3 种用户自定义函数:标量函数(Scalar) 、内联表值函数(inline-table-valued)和多语句表值函数(multi-statement table-valued)。
(1)标量函数
CREATE FUNCTION 函数名
([{@参数名 [AS] 参数数据类型 [=默认值]}[,…n]])
RETURNS 返回值数据类型
[AS]
BEGIN
函数体
RETURN 标量表达式
END
(2)内联表值函数
CREATE FUNCTION 函数名
([{@参数名 [AS] 参数数据类型 [=默认值]}[,…n]])
RETURNS TABLE
[AS]
RETURN [ ()SELECT 语句[] ]
(3)多语句表值函数
CREATE FUNCTION 函数名
([{@参数名 [AS] 参数数据类型 [=默认值]}[,…n]])
RETURNS @返回变量名 TABLE<表定义>
[AS]
BEGIN
函数体
RETURN 标量表达式
END
5.简述存储过程的概念及优点。
答:在使用 T-SQL 语言编程中,可以将某些需要多次调用的实现某个特定任务的代码段编
写成一个过程,将其保存在数据库中,并由 SQL Server 服务器通过过程名来调用它们,这些过程就称为存储过程。
使用存储过程有很多优点,具体如下:
(1)实现了模块化编程。一个存储过程可以被多个用户共享和重用,从而减少数据库开
发人员的工作量。
(2)存储过程具有对数据库立即访问的功能。
(3)加快程序的运行速度。存储过程只有在创建时进行编译,以后每次执行存储过程都
不需要再重新编译。
(4)可以减少网络流量。一个需要数百行的 T-SQL 代码的操作可以通过一条执行存储
过程的语句来执行,而不需要在网络中发送数百行代码。
(5)可以提高数据库的安全性。用户可以调用存储过程实现对表中数据的有限操作,但
可以不赋予它们直接修改数据表的权限,这提高了表中数据的安全性。
(6)自动完成需要预先执行的任务。存储过程可以在系统启动时自动执行,而不必系统
启动后再手动操作。
1.简述查询优化在关系数据库系统中的重要性和可能性。
答:查询优化在关系数据库系统中有着非常重要的地位。关系数据库系统和非过程化的 SQL
之所以能够取得巨大的成功,关键是得益于查询优化技术的发展。关系查询优化是影响关系
数据库管理系统性能的关键因素。
优化对关系系统来说既是机遇又是挑战。所谓挑战,是指关系系统为了达到用户可接受
的性能必须进行查询优化。由于关系表达式的语义级别很高,使关系系统可以从关系表达式
中分析查询语义,提供了执行查询优化的可能性。这就为关系系统在性能上接近甚至超过非
关系系统提供了机遇。
2.简述关系数据库管理系统查询优化的一般步骤。
答:关系数据库管理系统查询优化一般包含代数优化和物理优化。
(1)代数优化:是指SQL 语句经过查询分析、查询检查后变换为查询树,然后基于关系代数表达式等价变换规则对查询树进行优化。
(2)物理优化:代数优化改变查询语句中操作的次序和组合,但不涉及底层的存取路径。实际上,对于每一种操作有多种执行这个操作的算法,有多条存取路径,对于一个查询语句有许多存取方案,它们的执行效率不同,其结果会相差很大,因此,仅仅进行代数优化是不够的。物理优化就是要选择高效合理的操作算法或存取路径,求得优化的查询计划,达到查询优化的目标。选择的方法可以是:基于规则的启发式优化、基于代价估算的优化和两者结合的优化方法。
3.假设关系 R(A,B)和 S(B,C,D)的情况如下:R 有 20 000 个元组,S 有 1 200 个元组,
一个块能装下 40 个 R 元组,能装下 30 个 S 元组,能装下 20 个 R⋈S 运算后的元组。估算下列操作需要多少次磁盘块读写。
(1)R 上没有索引,SELECT * FROM R。
(2)R 中 A 为主码,A 上有 3 层 R+树索引,SELECT * FROM R WHERE A=10。
(3)嵌套循环 R⋈S。
(4)排序合并连接 R⋈S,区分 R 与 S 在属性 B 上已经有序和无序的两种情况。
答:(1)由于R上没有索引,且查询全部数据,需要使用全表扫描:20 000/40=500 次。
(2)由于R上有主码索引,使用索引:3(查找索引)+1(取元组) =4次。
(3)R的磁盘块数:20 000/40=500 块,S的磁盘块数:1200/30= 40 块。
假设连接操作可用内存总块数为K,连接的选择率为Frs。选取S作为外表,使用嵌套循环,读取磁盘次数为:
40+500*40/(K-1)+(Frs*40*500)/20
(4)R的磁盘块数:20 000/40=500 块,S的磁盘块数:1200/30= 40 块。假设连接操作可用内存总块数为K,连接的选择率为Frs。
(a)如果R 与 S 在属性 B 上已经有序,则读写磁盘的次数为:40+500+(Frs*40*500)/20
(b)如果R 与 S 在属性 B 上已经无序,则还需加上排序过程中读写磁盘的代价
R排序的代价为:(2*500)+2*500*log2500
S排序的代表为:(2*40)+2*40*log240
总读写磁盘次数为:(2*500)+2*500*log2500+(2*40)+2*40*log240+40+500+(Frs*40*500)/20
4.查询网上商城(bookstore)数据库中已完成订单中包含的理工类图书的名称。
SELECT DISTINCT title FROM book,orderInfo,orderBook
WHERE book.bookID=orderBook.bookID AND orderInfo.orderID=orderBook.orderID
AND orderInfo.orderState='已完成' AND book.categoryID=1
试画出用关系代数表示的语法树,并用关系代数表达式优化算法对原始的语法树进行优
化处理,画出优化后的语法树。
答:用关系代数表示的语法树
优化后的语法树:
第十一章:
答:并发控制机制就是要用正确的方式调度并发操作,使一个用户事务的执行不受其他事务的干扰,从而避免造成数据的不一致性。保证事务的原子性(Atomic)、一致性(Consistency)、隔离性(Isolation)
和持久性(Durability),这四个特性简称为 ACID 特性。
答:可能产生的数据不一致有:丢失修改,不可重复读,读“脏”数据.
避免并发访问导致的数据不一致问题的主要技术有封锁、时间戳、乐观控制法和多版本并发控制等,而封锁是实现并发控制的常用技术。
答:排它锁(Exclusive Locks,X 锁)和共享锁(Share Locks,S 锁)
排它锁又称写锁。若事务 T 对数据对象 A 加上 X 锁,则只允许 T 读取和修改 A,其他任
何事务都不能再对 A 加任何类型的锁,直到 T 释放 A 上的锁。这就保证了其他事务在 T 释
放 A 上的锁之前不能再读取和修改 A。
共享锁又称读锁。若事务 T 对数据对象 A 加上 S 锁,则事务 T 可以读 A 但不能修改 A,
其他事务只能再对 A 加 S 锁,而不能加 X 锁,直到 T 释放 A 上的 S 锁。这就保证了其他事
务可以读 A,但在 T 释放 A 上的 S 锁之前不能对 A 做任何修改。
答:一级封锁协议是指,事务 T 在修改数据 R 之前必须先对其加 X 锁,直到事务结束才释放。
事务结束包括正常结束(COMMIT)和非正常结束(ROLLBACK)。一级封锁协议可以防止丢失修改,并保证事务 T 是可恢复的。
二级封锁协议是指,在一级封锁协议的基础上增加事务 T 在读取数据 R 之前必须先对其
加 S 锁,读完后即可释放 S 锁。二级封锁协议除了防止丢失修改,还可进一步防止读“脏”数据。
三级封锁协议是指,在一级封锁协议的基础上增加事务 T 在读取数据 R 之前必须先对其
加 S 锁,直到事务结束才释放。三级封锁协议除了防止丢失修改和读“脏”数据外,还可进一步防止了不可重复读。
事务的隔离级别:
READ UNCOMMITTED读取数据不需要加S锁,这样就不会跟被修改的数据上的X锁冲突,READ COMMITTED该级别通过指定语句不能读取其他事务已修改但是尚未提交的数据值,禁止执行脏读
REPEATABLE READ该级别包括READ COMMITTED,并且另外指定了在当前事务提交之前,其他任何事务均不可以修改或删除当前事务已读取的数据。
SERIALIZABLE该级别包括REPEATABLE READ,并增加了在事务完成之前,其他事务不能向事务已读取的范围插入新行的限制。
答:意向锁的含义是如果对一个结点加意向锁,则说明该结点的下层结点正在被加锁;对任
一结点加锁时,必须先对它的上层结点加意向锁。具有意向锁的多粒度封锁方法提高了系统的并发度,减少了加锁和解锁的开销, 己经在实际的数据库管理系统产品中得到广泛应用。
第十二章
1、数据库系统发生的故障主要有哪几个类型?
答:
可以分为三类:1.事务故障、2.系统故障3.介质故障
事务故障:事务故障是由于程序执行错误而引起事务非预期的、异常终止的故障。它发生在单个事务的局部范围内,实际上就是程序的故障。有的事务故障可以通过事务程序本身发现。
系统故障:若系统在运行过程中版,由于某种原因,造成系统停止运行,以致事务在执行过程中以非正常的方式终止,这是内存中的信息丢失,而存储在外存上的数据未受影响,这种情况称为系统故障。
介质故障:介质故障是指外存储设备故障,主权要有磁盘损坏,磁头碰撞盘面,突然的强磁场干扰,数据传输部件出错,磁盘控制器出错等。
2、简述数据库恢复的基本原理。
答:
要使数据库具有可恢复性,基本原理就是 “冗余”,即数据的重复存储。
数据库恢复实现方法:
(1) 数据转储(dump) 转储是指DBA将整个数据库复制到磁带或另 一个磁盘上保存起来的度过程。这些备用的数 据文本称为后备副本或后援副本。发生故障,可以将后备副本重新装入。
(2) 建立“日志”文件(logging)。 日志文件是用来记录事务对数据库的更新操作的文件。对于数据库的每次插入、删除或 修改,记下改变前后的值,写到““日志” 文件,以便有案可查。
3、数据转储有哪几种类型?
答:
数据转储是数据库恢复中采用的基本技术。所谓转储即DBA 定期地将数据库复制到磁带或另一个磁盘上保存起来的过程。当数据库遭到破坏后可以将后备副本重新装入,将数据库恢复到转储时的状态。有以下几种类型:
静态转储:在系统中无运行事务时进行的转储操作,如上图所示。静态转储简单,但必须等待正运行的用户事务结束才能进行。同样,新的事务必须等待转储结束才能执行。显然,这会降低数据库的可用性。
动态转储:指转储期间允许对数据库进行存取或修改。动态转储可克服静态转储的缺点,它不用等待正在运行的用户事务结束,也不会影响新事务的运行。但是,转储结束时后援副本上的数据并不能保证正确有效。因为转储期间运行的事务可能修改了某些数据,使得后援副本上的数据不是数据库的一致版本。为此,必须把转储期间各事务对数据库的修改活动登
记下来,建立日志文件。这样,后援副本加上日志文件就能得到数据库某一时刻的正确状态。
海量转储:是指每次转储全部数据库。
增量转储:指每次只转储上一次转储后更新过的数据。
从恢复角度看,使用海量转储得到的后备副本进行恢复一般说来更简单些。但如果数据库很大,事务处理又十分频繁,则增量转储方式更实用更有效。
4、登记日志文件时为什么必须先写日志文件,后写数据库?
答:
先写日志文知件为保证数据库的可恢复性,日志文件能够用来进行事务故障恢复、系统故障恢复,并能够协助后备副本进行介质故障道恢复。当数据库文件毁坏后,可重新装入后援副本把数据库恢复到转储结束时刻的正确状态,再利用建立的日志文件,可以把已完成的事务进行重做处理,而对于回故障发生时尚未完成的事务则进行撤消处理,这样不用运行应用程序就可把数据库恢复到故障答前某一时刻的正确状态。
1.简述 ODBC 体系结构各组成部分及其作用。
答:ODBC 体系结构主要包括:
(1)应用程序:接受用户查询并调用 ODBC 函数,执行该查询,最终获取检索结果。
(2)Driver Manager:根据应用程序加载并卸载驱动程序,处理 ODBC 函数调用或把它
们传送到驱动程序。
(3)驱动程序:处理 ODBC 函数调用,提交 SQL 请求到一个指针的数据源,并把结果
返回给应用程序。
(4)数据源:包括用户要访问的数据及相关的操作系统、DBM 及用于访问 DBMS 的网
络平台。
2.简述基于 ODBC 应用程序的一般工作流程。
答:基于ODBC应用程序的一般工作流程包括:连接至数据源、初始化、建立和执行 SQL 语句、获取结果集、断开连接。
3.什么是 JDBC?JDBC 的主要功能是什么?
答:JDBC(Java Database Connectivity)是由 Java 语言编写、用于执行 SQL 语句的应用程序编程接口。
主要功能:为数据库开发人员提供了标准的 Java API 进行数据库应用程序的开发。
4.简述 JDBC 提供的连接数据库的几种方法。
答:DBC 提供的连接数据库的方法主要包括 JDBC-ODBC 桥驱动、本地 API 驱动、网络协议驱动和本地协议驱动。
(1)JDBC-ODBC桥驱动:将 JDBC对数据库的操作转换为 ODBC操作,从而实现 JDBC
对数据库的访问。
(2)本地 API 驱动:在客户端利用数据库厂商提供的本地应用程序接口(API) ,将 JDBC 调用转换为标准的数据库调用,从而实现 Java 对数据库的访问。
(3)网络协议驱动:这类驱动程序是用纯 Java 实现的,基于网络中间件服务器的 Java 数据库访问驱动程序。JDBC 先将对数据库的访问发送到网络中的中间件服务器,然后由中间件服务器转换为符号规范的数据库调用并传递给数据库服务器,从而实现 Java 对数据库的访问。
(4)本地协议驱动:这类驱动同样是用纯 Java 实现的,用于将 JDBC 直接转换为符合规范数据库访问请求,即在客户端直接访问数据库服务器。基于本地协议的 JDBC 驱动程序不需要在客户端加载任何程序, 可以根据需要对不同数据库的驱动程序进行下载以支持对数据库的访问。
5.简述编写 JDBC 程序的一般过程。
答:编写JDBC程序的一般过程:加载驱动程序、建立数据库连接、执行数据库操作、关闭连接。
6.ADO.NET 的体系结构包括哪些对象,它们具有哪些功能?
答:ADO.NET的体系结构主要包括以下对象:
(1)Connection 对象:提供了到数据源的连接;
(2)Command 对象:用来执行 SQL 语句或调用存储过程;
(3)DataReader 对象:执行 SQL 语句并且得到结果集时,可以调用 Command 对象的 ExecuteReader 对象,调用该方法将产生一个DataReader对象的实例。DataReader对象只能向前读取数据源中的数据。
(4)DataAdapter 对象:可以对数据源执行插入、删除、修改等各种操作,通常与 DataSet 对象协同工作,负责将数据源中的数据填充到 DataSet 对象中。
7.简述 ADO.NET 应用程序的主要设计步骤。
答:主要步骤:实例化Connection对象、打开数据库连接、构造Command对象、构造DataReader对象执行相应操作(或构造DataAdapter 对象填充DataSet)、关闭连接。
第14章
答:ORM 技术是随着面向对象的软件开发方法发展而产生的,主要实现关系数据库与业务实
体对象之间的映射。ORM 技术是在对象和关系之间提供了一条桥梁,应用程序中的对象型数
据和数据库中的关系型的数据通过这个桥梁来相互转化。ORM 框架采用元数据来描述对象—关系映射细节,元数据主要有两种形式:一种采用 XML 格式,在专门的 XML 配置文件中存放实体对象和数据库表的映射关系。一种采用声明 注解的方式(C#的 Atrribute、Java 的 Annotation),在实体对象的声明中,加入注解描述对象与数据库关系表的映射的关系。通过以上形式提供的持久化类与表的映射关系,ORM 框架在运行时就能参照对象与关系表的映射信息,自动地从关系表读取对象信息,并把对象的修改持久化到关系数据库中,完成面向对象编程语言和关系型数据库的映射。
答:Java 系列:Apache OJB、Cayenne、Jaxor、Hibernate、iBatis、jRelationalFramework、
mirage、SMYLE、TopLink 等。.Net 系列:Entity Framework、Nhibernate、Nbear、Castle ActiveRecord、iBATIS.NET、 DAAB 等。
答:Session Factory(会话工厂类),Session(会话),Persistent Object(持久化对象),Transient Object(瞬态对象和脱管对象),Transaction(事务),Connection Provider(连接工厂):Transaction Factory(事务工厂)
答:映射类(Persistent Objects):它的作用是描述数据库表的结构,表中的字段在类中
被描述成属性,将来就可以实现把表中的记录映射成为该类的对象。
映射文件(XML Mapping):它的作用是指定数据库表和映射类之间的关系,包括
映射类和数据库表的对应关系、表字段和类属性类型的对应关系以及表字段和类属性名称的
对应关系等。
数据库配置文件(Hibernate.properties):它的作用是指定与数据库连接时需要的连
接信息,比如连接哪种数据库、登录用户名、登录密码以及连接字符串等。
答:Database-First(数据库优先),Model-First(模型优先),Code-First(代码优先)
6.Entity FrameWork 中 DbContext 类和 Entity 类的主要作用是什么?
答:DbContext 是 EntityFramework 重要的组成部分,连接域模型与数据库的桥梁,是与数据库
通信的主要类。Entity Framework 的实体类是简单 C#类型,称为 POCO Entity,它不依赖于任何
Framework 的类,为 Entity Data Model 生成 CRUD 命令服务。
第15章:
1.本章的案例程序采用 MVC 框架技术,MVC 框架的特点是什么,有什么优势?
答:MVC 是一种软件设计典范,它采用业务逻辑和数据显示代码分离的方法,将业务逻辑放在一个部件里面,而将界面以及用户围绕数据展开的操作单独分离开来。MVC 减弱了业务逻辑接口和数据接口的耦合,以及让视图层更富有变化。
2.本章案例中 MVC 三层各用什么技术实现,这些技术的在框架中的作用是什么?
答:统视图层采用 JSP 技术,包括 EL 表达式、JSP 动作、JSTL 标准标签技术;控制层
采用 Servlet 技术,解析用户的操作请求,封装数据将用户的操作传递到业务逻辑层,并根据
操作结果确定哪个视图来展示;业务逻辑层采用 JavaBean 技术,封装了业务逻辑和数据库相应的操作;各层使用值对象(Model 类)传递业务数据。
3.为展示软件开发的过程本案例采用几种图表,它们的作用各是什么?
答:用例图:作用业务需求分析分析;
E-R 图:数据库的概念模型;
数据库关系图:数据库的数据库逻辑模型;
模块划分图:软件结构设计 等
CSDN话题挑战赛第1期
活动详情地址:CSDN