聪明文档网

聪明文档网

最新最全的文档下载
当前位置: 首页> 数据库原理及应用基础开发技术实践习题参考答案

数据库原理及应用基础开发技术实践习题参考答案

时间:2011-02-26 08:57:05    下载该word文档

习题1

一、单项选择题

1A 2B 3A 4B 5C 6D 7B 8B 9A 10D

11C 12D 13D 14C 15D

16 A 17 D 18 D 19 D 20 C 21 A 22 B 23 A

24 D 25 D 26 A 27 A 28 C 29 C

二、填空题

1.①人工管理 ②文件系统 ③数据库系统

2.①组织 ②共享

3.①数据库管理系统 ②用户 ③操作系统

4.①数据定义功能 ②数据操纵功能

5.①逻辑数据独立性 ②物理数据独立性

6.物理独立性。

7.①层次模型 ②网状模型 ③关系模型

8.根

9 1

10.关系模型

11.①现实世界 ②信息世界 ③计算机世界(或数据世界)

12. DBA

13. 实体

14.数据模型

15.文件

16.关系模型

17.二维表

18.主码

19.关系模式

三、简答题

1.答:数据库长期存储在计算机内、有组织的、可共享的数据集合。数据库是按某种数据模型进行组织的、存放在外存储器上,且可被多个用户同时使用。因此,数据库具有较小的冗余度,较高的数据独立性和易扩展性。

2.答:数据库管理系统(DBMS)是操纵和管理数据库的一组软件,它是数据库系统(DBS)的重要组成部分。不同的数据库系统都配有各自的DBMS,而不同的DBMS各支持一种数据库模型,虽然它们的功能强弱不同,但大多数DBMS的构成相同,功能相似。

一般说来,DBMS具有定义、建立、维护和使用数据库的功能,它通常由三部分构成数据描述语言及其翻译程序、数据操纵语言及其处理程序和数据库管理的例行程序。

1)数据描述语言(DDL

数据描述语言对应数据库系统的三级模式(外模式、概念模式和内械式)分别有三种不同的DDL:外模式DDL和内模式DDL,它们是专门提供给DBA使用的,一般用户不必去关心。

外模式DDL是专门定义外视图的,外视图是用户观点的数据库描述,它是数据库的局部逻辑结构。

概念模式DDL是用来定义内视图的数据描述语言。内视图是从物理层中分离出来的,但不是物理视图。虽然它有存储记录和块的概念,但它不受任何存储设备和设备规格(如柱面大小、磁道容量等)的限制。它包括对存储记录类型、索引方法等方面的描述。

3.答:数据库管理系统(DBMS)是位于操作系统与用户之间的一个数据管理软件,它的主要功能包括以下几个方面:

·数据定义功能 DBMS提供数据描述语言(DDL),用户可通过它来定义数据。

·数据操纵功能 DBMS还提供数据操纵语言(DML),实现对数据库的基本操作:查询、插入、删除和修改。

·数据库的运行管理 这是DBMS运行时的核心部分,它包括开发控制,安全性检查,完整性约束条件的检查和执行,数据库的内容维护等。

·数据库的建立和维护功能 它包括数据库初始数据的输入及转换,数据库的转储与恢复,数据库的重组功能和性能的监视与分析功能等。

4.答:数据独立性表示应用程序与数据库中存储的数据不存在依赖关系,包括逻辑数据独立性和物理数据独立性。

逻辑数据独立性是指局部逻辑数据结构(外视图即用户的逻辑文件)与全局逻辑数据结构(概念视图)之间的独立性。当数据库的全局逻辑数据结构(概念视图)发生变化(数据定义的修改、数据之间联系的变更或增加新的数据类型等)时,它不影响某些局部的逻辑结构的性质,应用程序不必修改。

物理数据独立性是指数据的存储结构与存取方法(内视图)改变时,对数据库的全局逻辑结构(概念视图)和应用程序不必作修改的一种特性,也就是说,数据库数据的存储结构与存取方法独立。

物理数据独立性的好处是,数据的物理存储设备更新了,物理表示及存取方法改变了,但数据的逻辑模式可以不改变。数据的逻辑模式改变了,但用户的模式可以不改变,因此应用程序也可以不变。这将使程序维护容易,另外,对同一数据库的逻辑模式,可以建立不同的用户模式,从而提高数据共享性,使数据库系统有较好的可扩充性,给DBA维护、改变数据库的物理存储提供了方便。

5.为了用计算机处理现实世界中的具体事物,人们必须事先对具体事物加以抽象,提取主要特征,归纳形成一个简单清晰的轮廓,转换成计算机能够处理的数据,这就是“数据建模”。通俗地讲数据模型就是现实世界的模型。数据模型是用来抽象、表示和处理现实世界中的数据和信息的。

数据模型通常都应包含数据结构、数据操作和完整性约束三个部分,它们是数据模型的三要素。

6

习题2

一、单项选择题

1 C 2 A 3 A 4 D 5 B 6.①B A C

7 D 8 A 9 C 10 D 11C

12 A 13 B 14 A 15 D 16 C 17 B 18 C 19 A 20 B

21 B 22 B 23.①C B 24 C 25 B 26 D 27C

28.①E B E E B

二、填空题

1.关系名(属性名1,属性名2,…,属性名n

2.属性名

3.能惟一标误用实体的属性或属性组

4.①选择 ②投影 ③连接

5.①关系代数 ②关系演算

6.交

7.①系编号 ②无 ③学号 ④系编号

8.控制冗余,避免插入和删除异常,从而增强数据库结构的稳定性和灵活性。

9.外键

10.不部分函数依赖于

三、简答题

1.答:假如有如图所示的两个关系表,在成绩表中,学号是关键字,课程号是处关键字;在课程表中课程号是关键字,根据关系参照完整性的定义,R2是成绩表,R1是课程表,也就是成绩表中课程号的值或者为空或者在课程表中的课程号中能够找到。

2.解:本题各小题的结果如图所示

3 解:本题各小题的结果如图所示。

4.

1

Π学号,姓名(δ成绩<60(学生选课))

2

Π学号,姓名(δ课程名=‘数据库’(学生选课课程))

3

Π学号,姓名(δ课程名=‘数据库’成绩<60(学生选课课程))

4

Π学号,姓名(δ课程名=‘数据库’(学生选课课程))∩Π学号,姓名(δ课程名=‘数据结构’(学生选课课程))

5

Π学号,姓名(δ课程名=‘数据库’(学生选课课程))∪Π学号,姓名(δ课程名=‘数据结构’(学生选课课程))

6

Π学号(学生)-Π学号(δ课程名=‘数据库’(选课课程))

7

Π学号(δ课程名=‘数据库’(选课课程))

选课.课程号=课程.先行课

8

Π学号,姓名,课程号(学生选课)÷Π课程号(课程)

Π学号,姓名(Π学号,课程号(选课)÷Π课程号(课程)(学生))

5.解:经分析有:

候选关键字:学号(每个学生只有惟一的学号)

最小依赖集:{学生→姓名,学号→出生日期,学号→班号,系名→宿舍区,班号→系名}

存在传递函数依赖:

学号→系名→宿舍区,∴有学号宿舍区;

班号→系名→宿舍区,∴有班号宿舍区;

学号→班号→系名,∴有学号系名;

6.解:

1RBCNFR候选关键字为XYF中只有一个函数依赖,而该函数依赖的左部包含了R的候选关键字XY

2R3NFR候选关键字为XYXZR中所有属性都是主属性,不存在非主属性对的候选关键字的传递依赖。

3RBCNFR候选关键字为XY,∵XYZ,∴XYXZ,由于F中有YZYX,因此Z是直接函数依赖于X,而不是传递依赖于X。又∴F的每一函数依赖的左部都包含了任一候选关键字,∴RBCNF

4RBCNFR的候选关键字为X,而且F中每一个函数依赖的左部都包含了候选关键字X

5RBCNFR的候选关键字为XY,而且F中函数依赖的左部包含了候选关键字XY

6R1NFR的候选关键字为WX,则YZ为非主属性,又由于XZ,因此F中存在非主属性对候选关键字的部分函数依赖。

7.解:

1)它是2NF

R的候选关键字为课程名,而课程名→教师名,教师名→课程名,教师名→教师地址,∴课程名教师地址,即存在非主属性教师地址对候选关键字课程名的传递函数依赖,因此R不是3NF

又∵不存在非主属性对候选关键字的部分函数依赖,∴R2NF

2)存在。当删除某门课程时会删除不该删除的教师的有关信息。

3)分解为高一级范式如图所示。

分解后,若删除课程数据时,仅对关系R1操作,教师地址信息在关系R2中仍然保留,不会丢失教师方面的信息。

8.解:R不属于3NF,它是2NF

R的候选关键字为职工号和职工名,而:

职工号→单位号,单位号→职工号,单位号→单位名

∴职工号单位名,即存在非主属性单位名对候选关键字职工号的传递函数依赖。

规范化后的关系子模式为如图所示的关系R1R2

习题3

一、单项选择题

1 B 2 C 3 B 4 A 5 C 6 A

7 A 8 A 9 D 10 C 11 B 12 B 13 B

二、填空题

1.结构化查询语言

2.①定义数据库 ②定义基本表 ③定义视图 ④定义索引

3.①一个或几个基本表 ②定义 ③视图对应数据

4.①INSERT INTO RVALUES(25,"李明","男",21,"95031)

INSERT INTO R(NONAME CLASS)VALUES(30,"郑和","95031)

UPDATE RSET NAME="王华"WHERE NO=10

UPDATE R SET CLASS=95091WHERE CLASS=95101

DELETE FROM RWHERE NO=20

DELETE FROM RWHERE NAME LIKE"王%

三、简答题

1.答:SQL语言支持的三级逻辑结构如图所示。

2.(1)找出店员人数超过100人或者在长沙市的所有商店的代号和商店名。

SELECT A#ANAME FROM A

WHERE WQTY<=100 OR CITY="长沙"

2)找出供应书包的商店名。

SELECT A.ANAME FROM WBAB

WHERE A.A#=AB.A# AND B.B# AND B.BNAME="书包"

3)找出至少供应代号为256的商店所供应的全部商品名和所在城市。

SELECT A.ANAMEA.CITY FROMAB

WHERE A.A#=AB.B#INSELECT AB.B#

FROM AB WHERE A#=256")

5.2 关系ABAB

3.(1)按图书馆编号BNO建立TS表的索引ITS

2)查询按出版社统计其出版图书总数。

3)删除索引ITS

1USE TS

INDEX ON BNO TO ITS

2SELECT PUBCOUNTBNO

FROM TS

GROUP BY RUB

3DELETE FILE ITS.IDX

4.解:(1CREATE SQL VIEW R-S-T

AS SELECT R.SBC S.DEF

FROMRST

WHERE R.A=S.A AND S.DEF

FROM RST

WHERE R.A=S.A AND S.D=T.D

2SELECT AVG(C)AVG(E)

FROM R-S-T

GROUP BY A

5 解:

1SELECT B

FROM S

WHERE R.A=S.A WND C>50

2UPDATE R

SET B=b4

WHERE A IN

(SELECT A

FROMS

WHERE C=40)

6.解:(1)SELECT DISTINCT PROV

FROMS

WHERE SD=“信息系”

(2)SELECT SN GR

FRON SSC

WHERE SD="英语系"AND CD="计算机"AND S.SNO=SC.SNO

ORDER BY GR DESC

7.解:(1)CREATE SQL VIEW V-SSC(SNOSNCNOCNG)

AS SELECT S.SNOS.SNSNOSC.CN,SC.G

FROM SSC

WHERE S.SNO=SC.SNO

ORDER BY CNO

(2)SELECT SNCN G

FROM V-SSC

GROUP BY SNO

HAVING AVG(G)>90

习题4

一、填空题

1.主数据文件 二级数据文件 日志文件

2.主文件组 自定义文件组 默认文件组

3.查询 操纵

4NULL/NOT NULL UNIQUE PRIMARY KEY

二、简答题

1.答:Server 2005数据平台包括以下工具。

(1) 关系型数据库

(2) 复制服务

(3) 通知服务

(4) 集成服务

(5) 分析服务

(6) 报表服务

(7) 管理工具

(8) 开发工具

2.答:主要包括企业版(Enterprise Edition)、标准版(Standard Edition)、开发版(Developer Edition)、工作组版(Workgroup Edition)和精简版(Express Edition)

3.答:SQL Server 2005数据库使用的操作系统文件分为主数据文件、二级数据文件和日志文件。

(1) 主数据文件。主数据文件是所有数据库文件的起点,包含指向其他数据库文件的指针。每个数据库都必须包含一个也只能包含一个数据文件。默认扩展名是.mdf

(2) 二级数据文件。除主数据文件以外的其他数据文件。数据库可以有0个或多个二级数据文件。默认扩展名是.ndf

(3) 日志文件。日志文件用于存放恢复数据库用的所有日志信息。每个数据库至少拥有一个日志文件,也可以拥有多个日志文件。默认扩展名是.ldf

企业版(Enterprise Edition)、标准版(Standard Edition)、开发版(Developer Edition)、工作组版(Workgroup Edition)和精简版(Express Edition)。答:SQL Server 2005数据库使用的操作系统文件分为主数据文件、二级数据文件和日志文件。

(1) 主数据文件。主数据文件是所有数据库文件的起点,包含指向其他数据库文件的指针。每个数据库都必须包含一个也只能包含一个数据文件。默认扩展名是.mdf

(2) 二级数据文件。除主数据文件以外的其他数据文件。数据库可以有0个或多个二级数据文件。默认扩展名是.ndf

(3) 日志文件。日志文件用于存放恢复数据库用的所有日志信息。每个数据库至少拥有一个日志文件,也可以拥有多个日志文件。默认扩展名是.ldf

为了便于分配和管理,SQL Server允许将多个文件归纳为同一组,并赋予此组一个名称,这就是文件组。SQL Server 2005提供了3种文件组类型,分别是主文件组、用户自定义文件组、默认文件组。

(1) 主文件组:包含主数据文件和所有没有被包含在其他文件组里的文件。数据库的系统表都包含在主文件组里。

(2) 自定义文件组:包括所有在CREATE DATABASEALTER DATABASE中使用FILEGROUP关键字来进行约束的文件。

(3) 默认文件组:容纳所有在创建时没有指定文件组的表、索引以及textntextimage数据类型的数据。任何时候,只能有一个文件组被指定为默认文件组。在默认情况下,主文件组被当成默认文件组。

4.答:CREATE DATABASE Company

ON

(NAME = 'Company_data ',

FILENAME = 'f:\tsql\ Company.mdf',

SIZE = 10,

MAXSIZE = UNLIMITED,

FILEGROWTH = 10%)

LOG ON

(NAME = 'Company_log',

FILENAME = 'f:\tsql\ Company.ldf',

SIZE = 1 MB,

MAXSIZE = 5 MB,

FILEGROWTH = 1 MB)

5.答:CREATE DATABASE employees

ON PRIMARY

(NAME = 'employee1',

FILENAME = 'f:\tsql\employee1.mdf',

SIZE = 10,

MAXSIZE = UNLIMITED,

FILEGROWTH = 10%),

(NAME = 'employee2',

FILENAME = 'f:\tsql\employee2.mdf',

SIZE = 20,

MAXSIZE = 100MB,

FILEGROWTH = 1MB)

LOG ON

(NAME = ' employeelog1',

FILENAME = 'f:\tsql\ employeelog1.ldf',

SIZE = 10 MB,

MAXSIZE = 50 MB,

FILEGROWTH = 1 MB),

(NAME = ' employeelog2',

FILENAME = 'f:\tsql\ employeelog2.ldf',

SIZE = 10 MB,

MAXSIZE = 50 MB,

FILEGROWTH = 1 MB)

6.答:Create table employee

(id char(20) not null primary key,

name varchar(50) not null,

department varchar(30) null,

age int null ,

memo varchar(40) null

)

7.答:(1alter table employee add salary decimal(10,2)

2alter table employee drop column age

3alter table employee alter column memo varchar(50)

习题5

1. 答:为了提高程序的执行效率,在Transact_SQL语言编写的程序中,还可以使用GO语句将多条SQL语句进行分隔,两个GO之间的SQL语句可作为一个批处理。在一个批处理中可包含一条或多条Transact_SQL语句,成为一个语句组。这样的语句组从应用程序一次性的发送到SQL Server服务器进行执行。SQL Server服务器将批处理编译成一个可执行单元,称为执行计划。

2. 答:

a. 注释:

单行注释:使用两个连在一起的减号“--”作为注释符。

多行注释:使用“/**/ 作为注释符。

b. 变量:

全局变量:以两个@@字符开头,由系统定义和维护。全局变量中通常存储的是一些SQL Server的配置设定值和统计数据。

局部变量:局部变量在定义和引用时要在其前面加上@,而且必需先用Declare命令定义后才可以使用。

c. 运算符:算术运算符、赋值运算符、位运算符、比较运算符、逻辑运算符、字符串运算符、连接运算符

d.函数:系统函数、字符串函数、 日期和时间函数、数学函数、转换函数、用户自定义函数

e.流程控制语句:BEGIN .end语句、if.else语句、case语句、

while.continue.break语句、goto语句、waitfor语句、return语句

3. 答:全局变量以两个@@字符开头,由系统定义和维护。

SQL Server使用全局变量来记录SQL Server服务器的活动状态。全局变量的作用范围不仅仅局限于某一个程序,它们可以在整个SQL Server系统内使用,任何程序都可以随时调用它。全局变量中通常存储的是一些SQL Server的配置设定值和统计数据。用户可以在程序中使用全局变量来测试系统的设定值或Transact—SQL命令执行后的状态值。

4. 答:Declare @变量名 数据类型

Set @变量名=表达式

select @变量名=表达式 @变量名=表达式……

5.答:存储过程是一系列预先编辑好的、能实现特定数据操作功能的SQL代码集,它与特定的数据库相关联,存储在SQL Server服务器上。用户可以像使用函数一样重复调用这些存储过程,实现它所定义的操作。

存储过程分为3类:系统提供的存储过程、用户定义的存储过程和扩展存储过程。

使用存储过程有如下好处:

1)存储过程提供了处理复杂任务的能力:存储过程提供了许多标准SQL语言所没有的高级特性,通过传递参数和执行逻辑表达式,能够处理复杂任务。

2)增强代码的重用性和共享性:每一个存储过程可以在系统中重复地调用,可以被多个有访问权限的用户访问。存储过程可以增强代码的重用性和共享性,加快应用系统的开发速度,提高开发质量和效率。

3)减少网络数据流量:存储过程是存放在服务器中并在服务器运行的,应用系统调用存储时只有触发执行过程的命令和执行结束返回的结果在网络中传输。所以,使用存储过程可以减少网络中的数据流量。

4)加快系统运行速度:第一次执行后的存储过程会驻留在内存中,以后可以直接运行,从而加快应用系统的处理速度。

5)加强系统安全性:SQL Server可以不授予用户某些表、视图的访问权限,但授予用户执行存储过程的权限,通过存储过程来对这些表或视图进行访问操作。从而保证表中数据的安全性。

6答:修改存储过程有两种方法:一种方法是把旧的存储过程删除,然后再重新建立该存储过程。另一种方法是用单个的步骤更改该存储过程。使用前一种方法修改存储过程,所有与该存储过程相关联的权限都将丢失。而使用后一种方法可以更改过程或参数定义,但为该存储过程定义的权限将保留。所以要修改一个存储过程但又不希望影响现有的权限可使用后一种方法。使用的语句为ALTER PROCEDURE

7答:触发器(Trigger)是一种实施复杂数据完整性的特殊存储过程,在对表或视图执行UPDATEINSERTDELETE语句时自动触发执行,以防止对数据进行不正确、未授权或不一致的修改。

触发器有3种类型:INSERT类型触发器、UPDATE类型触发器、DELETE类型触发器。


当向触发器表中插入数据时,如果该触发器表有INSERT类型触发器时,INSERT触发器就被触发执行。同样的道理,UPDATE触发器会被数据更新触发执行、DELETE触发器会被数据删除触发执行。

习题6

一、单项选择题

1 B 2 A 3 C 4 B 5 D 6 C 7 C 8 C

二、填空题

1.需求分析,概念设计,逻辑设计,物理设计,编码和调试

2.物理

3.数据字典

4.属性和码

5.数据库应用

三、简答题

1.答:(1)学生与课程的联系类型是多对多联系。

2)课程与教师的联系类型是多对多联系。

3)学生与教师的联系类型是一对多联系。

4)完善本题E-R图的结果如图所示。

2.解:本题的E-R图转换为如下关系模式:

单位(单位号,地址,电话)

职工(职工号,姓名,性别,年龄,单位号)

3.解:本题对应的E-R图如图所示。

4.解:

1)学生选课局部E-R图如图1所示,教师任课局部E-R图如图2所示。

2)合并的合局E-R图如图3所示。

为避免图形复杂,下面给出各实体属性:

单位:单位名、电话

学生:学号、姓名、性别、年龄

教师:教师号、姓名、性别、职称

课程:编号、课程名

3)该全局E-R图转换为等价的关系模型表示的数据库逻辑结构如下:

单位(单位名,电话)

教师(教师号,姓名,性别,职称,单位名)

1 学生选课局部E-R

2 教师任课局部E-R

3 合并的全局E-R

课程(课程编号,课程名,单位名)

学生(学号,姓名,性别,年龄,单位名)

讲授(教师号,课程编号)

选修(学号,课程编号)

5.解:

1)该系统的E-R图如图所示。

2)相应的关系数据模型如下:

工厂(厂名,厂长姓名)

车间(车间号,主任姓名,地址,电话,厂名)

工人(职工号,姓名,年龄,性别,工种,车间号)

仓库(仓库号,主任姓名,电话,厂名)

产品(产品号,价格,车间号,仓库号)

零件(零件号,重量,价格,仓库号)

制造(车间号,零件号)

装配(产品号,零件号)

3)该系统的层次模型图如图所示。

习题7

一、 单项选择题

1-5 BBDAB 6-12 DCBBCDB 13 BD 14-19 CCCADD

二、填空题

1.访问数据的权限 修改数据库结构的权限

2.事务

3排它锁(X锁) 共享锁(S锁)

4.丢失修改 读脏数据 不能重复读

5封锁 排它锁(X锁) 共享锁(S锁)

6S X

7.数据的正确性(Correctness)和相容性(Consistency)

8主属性不能取空值

9Grant Revoke

10.可预期故障

11非预期故障

12系统故障

13.事务故障 系统故障 计算机病毒

三、简答题

1答:要实现数据库完整性的检查,系统要提供定义完整性约束条件的机制,和提供检查是否违背完整性约束条件的方法。当DBMS发现用户的操作违背了完整性约束条件时,就采取一定的控制。具体的控制是随系统而定的。

2.答:事务是DBMS的基本工作单位。它是用户定义的一组逻辑一致的程序序列。它是一个不可分开的工作单位,其中包含的所有操作,要么都执行,要么都不执行。

3.答:事务中的提交(COMMIT)是提交事务的所有操作。具体说就是将事务中所有对数据库的更新写回到磁盘上的物理数据库中去,事务正常结束。

事务中的回滚(ROLLBACK)是数据库滚回到事务开始时的状态。具体地说就是,在事务运行的过程中发生了某种故障,事务不能继续执行,系统将事务中对数据库的所有已完成的更新操作全部撤消,使数据库回滚到事务开始时的状态。

4.答:当系统故障发生时,造成数据库处于不一致状态的原因有两个,一个是一些未完成事务对数据库的部分更新已写入数据库中,另一个是一些已提交事务对数据库的更新还留在内存缓冲区,没来得及写回数据库。因此,基本的恢复分为以下两步:

1)根据日志文件建立重做队列和撤消队列
    从头扫描日志文件,找出故障前已提交的事务记录,将其事务标识放入重做队列;还要找出故障前尚未完成的事务,将该事务放入撤消队列。

2)对重做队列中的事务进行重做处理,对撤消队列中的事务进行撤消处理

对于重做处理(REDO),正向扫描日志文件,再根据重做队列,将已完成的事务的所有操作重新执行;对于撤消处理(UNDO),反向扫描日志文件,再根据撤消队列,将未完成的事务的更新操作执行逆操作。

5答:死锁产生的原因:

封锁可以引起死锁。比如事务T1封锁了数据A,事务T2封锁了数据BT1又申请封锁数据B,但因BT2封锁,所以T1只能等待。T2又申请封锁数据A,但A己被T1封锁,所以也处于等待状态。这样,TIT2处于相互等待状态而均不能结束,这就形成了死锁。解决死锁的常用方法有如下三种:

1)要求每个事务一次就要将它所需要的数据全部加锁。

2)预先规定一个封锁顺序,所有的事务都要按这个顺序实行封锁。

3)允许死锁发生,当死锁发生时,系统就选择一个处理死锁代价小的事务,将其撤消,释放此事务持有的所有的锁,使其他事务能继续运行下去。

6答:数据库是一个共享资源,它允许多个用户程序并行地存取数据库中的数据,但是,如果系统对并行执行的操作不加以控制就会存取和存储不正确的数据,破坏数据库的完整性。

    并发控制的主要方法是采用封锁机制。封锁是事务T在对某个数据对象操作之前,先向系统发出请求对其加锁。基本的封锁类型有两种:排它锁(X锁)和共享锁(S锁)。所谓X锁,是事务T对数据A加上X锁时,只允许事务T读取和修改数据A,其他任何事务都不能再对A加任何类型的锁,直到T释放A上的锁。所谓S锁,是事务T对数据A加上S锁时,其他事务只能再对数据AS锁,而不能加X锁,直T释放A上的S锁。

7答:如果直接按时间顺序执行甲乙两个事务,则最后的x800,而不是正确的500。为此,采用封锁的方法,将甲事务修改为:

WHILEx己建立排它锁)

 {

    等待

 

 x建立排它锁

x

更新xx-300

 释放排它锁

将乙事务修改为:

    WHILE x已建立排它锁)

  {

    等待

  

  X建立排它锁

  x

  更新 xx-200

   释放排它锁

8答:采用封锁的方法,将事务A修改为:

建立一个共享锁

打开stud数据库

读取最后一条记录

释放共享锁

WHILEstud数据库已建立排它锁)

{

    等待

 建立排它锁

 添加一条新记录

 释放排它锁

关闭stud数据库

将事务B修改为:

 建立一个共享锁

 打开stud数据库

 读取最后一条记录

 释放共享锁

 WHILEstud数据库已建立排它锁)

 {

  等待

 

建立排它锁

添加一条新记录

 释放排它锁

关闭stud数据库

习题8

1答:ODBC由下列几个部件组成:

1)应用程序。

2ODBC管理器:该程序主要任务是管理安装的ODBC驱动程序和管理数据源。

3)驱动程序管理器:驱动程序管理器包含在ODBC32.DLL中,对用户是透明的。其任务是管理ODBC驱动程序,是ODBC中最重要的部件。

4ODBC API。访问数据库的应用程序接口,利用ODBC API,每个应用程序利用相同的源代码就可以访问不同的数据库系统。

5ODBC 驱动程序:是一些DLL,提供了ODBC和数据库之间的接口。

6)数据源:数据源包含了数据库位置和数据库类型等信息,实际上是一种数据连接的抽象。

2答:系统数据源:这种数据源可以被任何登录到系统中的用户使用。

用户数据源:是为特定用户建立的数据源,只有建立这个数据源的用户才能看到并使用它。

文件数据源:这种数据源用于从文本文件中获取表格,提供了对多用户的访问。

3略。

4答:ADO主要由以下七个对象组成:

Connection:连接对象,建立一个与数据源的连接。

Command:命令对象,定义对数据源进行操作的命令,以执行相应的动作,该命令对象可以在数据源中添加、删除或更改数据,也可以检索数据,还可完成较复杂的查询功能;

Recordset:记录集对象,用于表示来自数据库或命令执行结果集的对象,并可通过该对象控制对数据源数据的增、删、改。

Error:错误对象,用来描述数据访问错误的细节。

Field:字段(域)对象,用来表示Recordset对象的字段。

Parameter:参数对象,表示Command对象的命令参数。

Property:属性对象,用来描述对象的属性,每个ADO对象都有一组惟一的属性来描述或控制对象的行为。

5ADO.NET是由一系列的数据库相关类和接口组成的,通过ADO.Net不仅能访问关系型数据库中的数据,而且还能访问层次化的XML数据。

ADO.NET提供了两种数据访问的模式:一种为连接模式(Connected),另一种为非连接模式(Disconnected)。与传统的数据库访问模式相比,非连接的模式为我们提供了更大的可升级性和灵活性。

ADO.NET中的DataSet类是非连接模式的核心,数据集对象(DataSet)以XML的形式存放数据。从用户的角度来看,数据源在哪里并不重要,也是无需关心的。这样一个统一的编程模型就可被运用于任何使用了数据集对象的应用程序。

ADO.NET体系结构中还有一个非常重要的部分就是数据提供者对象(Data Provider),它是访问数据库的必备条件。通过它,可以产生相应的数据集对象;同时它还提供了连接模式下的数据库访问支持。

6答:

1SQL Server .NET Framework 数据提供程序

适合于访问 SQL Server数据库,并具有良好的性能。

2OLE DB .NET Framework 数据提供程序

使用本机 OLE DB 启用数据访问。通用的数据库访问程序,可以访问SQL Server Oracle Access等数据库。

3ODBC .NET Framework 数据提供程序

使用本机 ODBC 驱动程序管理器启用数据访问。通用的数据库访问程序,可以访问SQL ServerOracle Access等数据库。

4Oracle .NET Framework 数据提供程序

通过 Oracle 客户端连接软件启用对 Oracle 数据库的访问,并具有良好的性能

习题9

一、选择题

1.A 2.C 3. C

二、填空题

1.交互式SQL 2、嵌入式SQL

三、简答题

1、答:1声明游标

例如:EXEC SQL DECLARE C1 CURSOR FOR

SELECT id, name, dept, job, years, salary, comm FROM staff;

2打开游标

例如:EXEC SQL OPEN c1;

完整语法为:OPEN 游标名 [USING 主变量名 | DESCRIPTOR 描述名]

3取一行值

例如EXEC SQL FETCH c1 INTO :id, :name, :dept, :job, :years, :salary, :comm;

4关闭游标

例如:EXEC SQL CLOSE c1;

2答:一种是扩充宿主语言的编译程序,使之能处理SQL语句;

另一种是采用预处理方式。目前多数系统采用后一种。

习题10

一.简答题

1答:以连接数据库northwind为例:

SqlConnection myConnection = new SqlConnection();

myConnection.ConnectionString="Persist Security Info=False;

Integrated Security=SSPI;database=northwind;

server=mySQLServer;Connect Timeout=30";

myConnection.Open()

Persist Security Info:默认值为'false',当该值设置为 false安全敏感信息(如密码)将不会作为连接的一部分返回。

Integrated Security:默认值为 'false',当为 false 时,将在连接中指定用户 ID 和密码。当为 true 时,将使用当前的 Windows 帐户进行身份验证。sspi(强烈推荐)与 true 等效。

Server:指定要连接的 SQL Server 实例的名称或网络地址。

Database:指定数据库的名称。

OleDbConnectionOdbcConnection OracleConnectionSqlConnection类似,请读者自己回答。)

2答:Command对象是对数据存储执行命令的对象。它既可以执行普通的SQL命令又可以执行存储过程。使用Command对象允许指定参数的细节。

(具体操作方法参照教材。)

3答:DataReader有两种方法访问字段的值。第一种是Item属性,此属性返回字段索引或者字段名字对应的字段的值。第二种是Get方法,此方法返回由字段索引指定的字段的值。

1Item属性

每个DataReader类都定义一个Item属性。假如现有一个DataReader实例dr,对应的sql语句是select Fid,Fname from friend,则可以使用下面的方法取得返回的值:

object ID = dr[Fid];

object Name = dr[Fname];

或者:

object ID = dr[0];

object Name = dr[1];

注意索引总是从0开始的。

2Get方法

每个DataReader都定义了一组Get方法, Get方法可以按字段类型访问,如:

int ID = dr.GetInt32(0);

string Name = dr.GetString(1);

4答:DataReader(数据阅读器)提供了从一个数据源中选择某些数据的方法。

(实现程序略,可参照本章例题)

5答:强类型 DataSet 的好处包括设计时类型检查,使用强类型 DataSet 时,可以批注 DataSet XML 架构定义语言架构,以确保强类型 DataSet 正确处理空引用。类型化访问不但更易于读取,而且完全受 Visual Studio 代码编辑器中智能感知的支持。除了更易于使用外,类型化数据集的语法还在编译时提供类型检查,从而大大降低了为数据集成员赋值时发生错误的可能性。在运行时对类型化数据集中的表和列的访问也略为快一些,因为访问是在编译时确定的,而不是在运行时通过集合确定。

尽管类型化数据集有许多优点,但在许多情况下需要使用非类型化数据集。最显而易见的情形是数据集无架构可用。有些时候使用的数据不具有静态的可预知结构,这种情况下使用类型化数据集是不切实际的做法,因为对于数据结构中的每个更改,都必须重新生成类型化数据集类。更常见的是,许多时候可能需要动态创建无可用架构的数据集。这种情况下,数据集只是一种方便的、可用来保留信息的结构(只要数据可以用关系方法表示)。

6答: DataSet 对象表示数据的缓存,具有类似数据库的结构,如表、列、关系和约束。但是,尽管 DataSet 可以并的确像数据库那样运行,但重要的是:DataSet 对象不直接与数据或其他源数据进行交互。

DataAdapter 是连接到数据库以填充 DataSet 的对象。然后,它又连接回数据库,根据 DataSet 保留数据时所执行的操作来更新数据库中的该数据。

(操作方法参照本章例题。)

习题11

一、填空题

1JDBC应用程序、JDBC驱动管理器、JDBC驱动程序、JDBC-ODBC

2JDBC-ODBC桥加ODBC驱动程序、本地API,部分是java的驱动程序、JDBC网络纯Java驱动程序、本地协议纯Java驱动程序

3java.sql javax.sql

4Class.fornameDriver DriverManager

5Connection

6PreparedStatement

7ResultSet

二、选择题

1A 2B 3C 4A 5C 6B 7C

三、简答题

1答:Class.forName(xxx.xx.xx) 返回的是一个类,如在Java中,JDBC连接数据库操作,用该方法加载驱动类。

作用是要求JVM查找并加载指定的类,也就是说JVM会执行该类的静态代码段。最熟悉的就是JDBC连接数据库的时候加载驱动类。

2答:1java.sql.DriverManager接口(2java.sql.Connection接口(3 java.sql.Statement接口(4java.sql.ResultSet接口

3答:

使用JDBC操作数据库,一般要经过如下步骤。

(1) 加载驱动程序:Class.forName(driver);

(2) 建立连接:Connection con=DriverManager.getConnection(url);

(3) 创建语句对象:Statement stmt=con.createStatement( );

(4) 执行查询语句:ResultSet rs=stmt.executeQuery(sql);

(5) 对查询结果进行处理及关闭结果集对象:rs.close( );

(6) 关闭语句对象:stmt.close( );

(7) 关闭连接:con.close( );

四、

参照11.5例题

习题12

1答:分布式数据库应具有以下特点:

1)数据的物理分布性

数据库中的数据不是集中存储在一个场地的一台计算机上,而是分布的在不同场地多台计算机上。它不同于通过计算机网络共享的集中式数据库系统。

2)数据的逻辑整体性

数据库虽然在物理上是分布的,但这些数据并不是互不相关的,它们在逻辑上是相联系的整体。它不同于通过计算机网络互连的多个独立的数据库系统。

3)数据的分布独立性(也称分布透明性)

分布式数据库中除了数据的物理独立性和数据的逻辑独立性外,还有数据的分布独立性。即在用户看来,整个数据库仍然是一个集中的数据库,用户不必关心数据的分片,不必关心数据物理位置分布的细节,不必关心数据副本的一致性,分布的实现完全由分布式数据库管理系统来完成。

4)场地自治和协调

系统中的每个结点都具有独立性,能执行局部的应用请求;每个结点又是整个系统的一部分,可通过网络处理全局的应用请求。

5)数据的冗余及冗余透明性

与集中式数据库不同,分布式数据库中应存在适当冗余以适合分布处理的特点,提高系统处理效率和可靠性。因此,数据复制技术是分布式数据库的重要技术。但分布式数据库中的这种数据冗余对用户是透明的,即用户不必知道冗余数据的存在,维护各副本的一致性也由系统来负责。

2答:根据构成各个局部数据库的DBMS及其数据模型,可将分布式数据库系统分为两类:

1)同构型(HomogeneousDDBS:也有的称为同质型DDBS。如果各个站点上的数据库的数据模型都是同一类型的,则称该数据库系统是同构型DDBS。但是,具有相同类型的数据模型若为不同公司的产品,它的性质也可能并不完全相同。

因此,同构型DDBS又可以分为两种:

①同构质质型DDBS:如果各个站点都采用同一类型的数据模型,并且都采用同一型号的数据库管理系统,则称该分布式数据库系统为同构同质型DDBS

②同构异质型DDBS:如果各个站点都采用同一类型的数据模型,但是采用了不同型号的数据库管理系统(例如分别采用了SYBASEORACLE等),则称该分布式数据库系统为同构异质型DDBS

2)异构型(HeterogeneousDDBS:如果各个站点采用不同类型的数据模型,则称该分布式数据库系统是异构DDBS

按构成各个局部数据库的DBMS及其数据模型进行分类是一种常见的方法,此外,还可以按照分布式数据库控制系统的类型对分布式数据库系统进行分类,分为集中型DDBS、分散型DDBS和可变型DDBS

①如果DDBS中的全局控制信息位于一个中心站点则称为集中型DDBS

②如果在每一个站点上包含全局控制信息的一个副本,则称为分散型DDBS

③在可变型DDBS中,将DDBS系统中的站点分成两组,一组站点包含全局控制信息副本,称为主站点。另一组站点不包含全局控制信息副本,称为辅站点,如果主站点数目为1时为集中型DDBS,如果全部站点都是主站点时为分散型DDBS

3 解:从数据仓库的定义可知,数据仓库有以下几个特点:

1)面向主题。操作型数据库的数据组织面向事务处理任务,各个业务系统之间各自分离,而数据仓库中的数据是按照一定的主题进行组织。主题是一个抽象的概念,是指用户使用数据仓库进行决策时所关心的重点方面,一个主题通常与多个操作型信息系统相关。主题可以不止一个,但是不需要存储与主题无关的数据。

2)集成性。操作型数据库通常与某些特定的应用相关,数据库之间相互独立,并且往往是异构的。而数据仓库中的数据是在对原有分散的数据库数据抽取、清理的基础上经过系统加工、汇总和整理得到的,消除了源数据中的不一致性,以统一的规范经过整理后存储在一起,所谓统一的规范指的是相同的数据类型、格式、度量等。

3)相对稳定性。操作型数据库中的数据通常实时更新,数据根据需要及时发生变化。数据仓库的数据一旦进入数据仓库,一般情况下将被长期保留,一般情况下不需要加以更新。在数据仓库中一般有大量的查询操作,有关数据的修改和删除操作相对来说很少,通常只需要定期的加载、刷新。

4)反映历史变化。操作型数据库主要关心当前某一个时间段内的数据,而数据仓库中的数据通常包含历史信息,数据仓库的建设是面向企业的,是以现有企业业务系统和大量业务数据的积累为基础。数据仓库不是静态的概念,只有把信息及时交给需要这些信息的使用者,供他们做出改善其业务经营的决策,信息才能发挥作用,信息才有意义。而把信息加以整理归纳和重组,并及时提供给相应的管理决策人员,是数据仓库的根本任务。

数据仓库的种类很多,从不同的角度有不同的种类,我们从其规模与应用范围来加以区分,大致可以分为下列几种:

1)标准数据仓库

2)数据集市(Data mart

3)多层数据仓库(Multi-tier Data Warehouse

4)联合式数据仓库(Federated Data Warehouse

4答:从两个不同角度对数据挖掘加以定义。

1)技术上的定义及含义

数据挖掘(Data Mining)就是从大量的、不完全的、有噪声的、模糊的、随机的实际应用数据中,提取隐含在其中的、人们事先不知道的、但又是潜在有用的信息和知识的过程。与数据挖掘相近的同义词有数据融合、知识发现、知识抽取、数据分析和决策支持等。这个定义包括好几层含义:数据源必需是真实的、大量的、含噪声的;发现的是用户感兴趣的知识;发现的知识要可接受、可理解、可运用;并不要求发现放之四海皆准的知识,仅支持特定的发现问题。

这里所说的知识发现,不是要求发现放之四海而皆准的真理,也不是要去发现崭新的自然科学定理和纯数学公式,更不是什么机器定理证明。实际上,所有发现的知识都是相对的,是有特定前提和约束条件,面向特定领域的,同时还要能够易于被用户理解。最好能用自然语言表达所发现的结果。

2 商业角度的定义

数据挖掘是一种新的商业信息处理技术,其主要特点是对商业数据库中的大量业务数据进行抽取、转换、分析和其他模型化处理,从中提取辅助商业决策的关键性数据。

简而言之,数据挖掘其实是一类深层次的数据分析方法。数据分析本身已经有很多年的历史,只不过在过去数据收集和分析的目的是用于科学研究。分析这些数据也不再是单纯为了研究的需要,更主要是为商业决策提供真正有价值的信息,进而获得利润。但所有企业面临的一个共同问题是:企业数据量非常大,而其中真正有价值的信息却很少,因此从大量的数据中经过深层分析,获得有利于商业运作、提高竞争力的信息。

目前,数据挖掘的数据来源有关系数据库、事务数据库、及空间数据库等高级数据库

  • 29.8

    ¥45 每天只需1.0元
    1个月 推荐
  • 9.9

    ¥15
    1天
  • 59.8

    ¥90
    3个月

选择支付方式

  • 微信付款
郑重提醒:支付后,系统自动为您完成注册

请使用微信扫码支付(元)

订单号:
支付后,系统自动为您完成注册
遇到问题请联系 在线客服

常用手机号:
用于找回密码
图片验证码:
看不清?点击更换
短信验证码:
新密码:
 
绑定后可用手机号登录
请不要关闭本页面,支付完成后请点击【支付完成】按钮
遇到问题请联系 在线客服