Delphi数据库编程侯太平着习题答案.docx
《Delphi数据库编程侯太平着习题答案.docx》由会员分享,可在线阅读,更多相关《Delphi数据库编程侯太平着习题答案.docx(14页珍藏版)》请在冰豆网上搜索。
Delphi数据库编程侯太平着习题答案
第一章 数据库系统基础
1.模型中,同一个关系中的不同属性,其属性名__B__。
A.可以相同 B.不能相同 C.可以相同,但数据类型不同 D.必须相同
2.数据库系统由数据库、 A 组成。
A.DBMS、应用程序、支持数据库运行的软硬件环境和DBA
3.计算机数据管理技术的发展可以划分为三个阶段,在某个阶段数据是以文件形式长期存储在辅助存储器中,程序和数据之间具有相对的独立性,数据不再属于某个特定的应用程序,数据可以重复使用,该阶段是 B 。
B.文件管理阶段 C.数据库管理阶段 D.信息管理系统阶段
4.在数据库的三级体系结构中,数据库的模式对应于数据库的 D B.内部视图 C.存储视图 D.概念视图
5.在数据库的三级体系结构中,数据的逻辑独立性是通过 D 来实现的。
D.外模式-模式映射
6.三层C/S结构包括客户机、 应用服务器 和数据库服务器三部分。
7.DDL是指 数据描述语言 ,DML是指 数据操纵-查询语言 ,DBMS是指 数据库管理系统 ,DD是指 数据字典 。
8.在SPARC结构中,定义的数据库三层结构分别是 外模式 、 模式 和内模式。
9.数据的独立性包括 物理独立性 和 逻辑独立性 两个方面。
10.实体集之间的联系有三种,分别是一对一的联系,一对多的联系,多对多的联系
11.试说明数据管理的数据库阶段的主要特点。
答:
数据库管理的数据库阶段主要特点是:
1、数据共享性;2、具有较高的数据与程序的独立性;3、便于对数据实行集中统一的控制。
12.试说明DBMS的组成。
答:
DBMS是由一系列软件构成的复杂系统,一般来说DBMS由下列三类软件组成:
语言系统;控制数据库运行的程序;数据库维护程序;13.数据模型的三要素是什么?
答:
数据模型的三要素是数据结构、数据操作、数据的约束条件。
14.关系模型有什么特点?
答:
关系模型有什么特点:
1、关系模型与非关系模型不同,它是建立在严格的数学概念基础上的;2、关系模型的概念单一,无论实体或实体之间的联系都用关系表示3、存取路径对用户透明。
4、关系必须是规范化的关系。
第二章 关系数据库基本理论
1.下列不属于关系代数运算的是 A。
A.查询 B.投影 C.选择 D.联结
2.在关系数据模型中,利用关系运算对两个关系进行操作,得到的结果是 B 。
A.属性 B.关系 C.元组
3.下列的 C 运算不是关系运算中的传统的集合运算。
A.并 B.差 C.投影 D.交
4.关系A中有5个属性,关系B中的7个属性,且关系A中有两个属性名与关系B中相同,那么关系A和关系B自然联结的运算结果有 A 属性。
A.10个 B.12个 C.8个 D.无法进行自然连接运算
5.下列关于关键字的说法不正确的是 D 。
C.可以有很多个 D.不可以是所有字段
6.在关系运算中,根据具有相同属性名的字段相同进行联结,且在联结结果中去掉重复属性,这样的运算是 D 。
D.自然联结
7.具有两个元组五个属性的关系和具有三个元组四个属性的关系的笛卡尔积,共有 6 元组,___9___属性。
8.从关系R1中挑选出符合条件F的元组的“姓名”和“年龄”字段,使用的关系代数表达式为 π姓名,年龄(σF(R1)) 。
9.两个具有相同结构的关系R和S,它们的 交 运算是由既属于R又属于S的元组组成的集合。
10.从关系中找出满足给定条件的元组的操作称为 选择运算 。
11.在某数据库中的一个学生表,表中有一个字段“学号”能够惟一地区分每一个记录。
数据库中还有一个成绩表,表中也有一个“学号”字段,但不能惟一区分每条记录,此处的“学号”字段称为 外部关键字 。
12.专门的关系运算中的 投影 运算是对关系的垂直分解,它是在关系R中选择出若干个属性组成新的关系。
13.关系规范化的过程是通过关系中属性的分解和关系模式的分解来实现的。
关系规范化的条件可以分为几级,每级称为一个 范式 (NormalForm),记作nNF。
其中,n表示范式的级别,范式的级别越高条件越严格的数学定义。
14.造成关系修改麻烦的原因是 关系范式级别低 。
第三章 实体-联系模型
1.下列的四个模型中, D 和其他的三个不是一类。
D.E-R模型
2.数据世界的记录对应信息世界的 B 。
A.实体集 B.实体 C.属性 D.主关系键字
3.下列 D 不是E-R模型的基本要素。
A.实体 B.属性 C.联系 D.外部关键字
4.把E-R模型转换为关系模型时,实体之间多对多联系在关系模型中是通过 C 。
C.建立新的关系来实现 D.建立新的实体来实现
5.在E-R图中,用 方框 表示实体集,用 椭圆表示属性,用 菱形框 表示联系。
6.对于E-R图中每个实体集,都应转换为一个 关系 ,该 关系 应包括对应实体的全部属性,并应根据关系所表达的语义确定哪个属性或哪几个属性组作为“主关键字”。
7.在把E-R图转换为关系模型时,若两实体集之间是1:
n联系,可将 “一方” 实体的主关键字纳入 “n方” 实体集对应的关系中作为“外部关键字”,同时把联系的属性也一并纳入 “n方” 对应的关系中。
8.在把E-R图转换为关系模型时,若两实体集之间是m:
n联系,必须对“联系”单独建立一个关系。
9.在把E-R图转换为关系模型时,若两实体集之间是1:
1联系,有 三 种转换方法。
10.一个图书馆借阅管理数据库要求提供下述服务。
(1)构造满足要求的E-R图。
(2)根据E-R图转换为等价的关系模式。
借书人(借书证号,姓名,单位)
图书(书号,书名,数量,位置,出版社名)
出版社(出版社名,电报,电话,邮编,地址)
借阅(借书证号,书号,借书日期,还书日期)。
第四章数据库设计
1.下列的D不是数据库设计的内容.C.数据库的物理模式设计 D.应用程序设计
2.下列的 D 不是逻辑设计第一阶段(分析用户需求)产生的. D.局部E-R图
3.数据流图的基本成分不包括 D . D.实体
4.在数据库设计过程中,下列文档产生的先后关系正确的是 A .A.用户活动图、数据流图、数据字典、局部E-R图
5.数据库系统的技术文档指的是 A 。
A.系统说明书、技术说明书和和使用说明书
6.数据流图的主要成分有四个,分别是 数据流 、 加工 、 文件 、和 源点和终点 ,分别用 箭头 、 圆形 、 横线 、和 方框 表示。
7.数据库设计的逻辑设计阶段的概念模型设计可由两个步骤组成,分别是 局部E-R模型设计和总体E-R模型设计。
8.数据字典产生于 数据流图 ,是对 数据流图 中的四个成分进行描述的产物。
9.数据库系统的技术文档包括 系统说明书 、 技术说明书 、和 使用说明书 。
10.数据库设计的特点是 反复探寻,逐步求精 。
第六章Delphi7与数据库
1.应用程序用以请求一个连到ODBC数据源的连接(Connection)的名字是A。
A.DSN
2.在ODBC层次结构中,D包含在ODBC32.dll中,其任务是管理ODBC驱动程序,是ODBC中最重要的部件。
D.驱动程序管理器
3.在DatabaseDesktop程序中,A就是数据表所在的子目录或数据库文件名的替代名称。
A.数据库别名
4.使用DatabaseDesktop程序,不能完成下列的D功能。
C.执行SQL语句D.创建三层结构的数据库程序
5.请说出下名词的含义。
BDEOLEDBDSNADO数据库别名工作目录私有目录
BDE:
是BORLAND数据库引擎的缩写,利用它应用程序可以用统一的方法访问和操作数据库。
OLEDB:
是一个低层的数据访问接口,它向应用程序提供了一个统一的数据访问方法,用它可以访问各种资源,包括传统的关系型数据库、电子邮件系统及自定义的商业对象。
DSN:
是“应用程序用以请求一个连到ODBC数据源的连接(Connection)的名字
ADO:
是微软公司设计的最新的数据访问技术,用来与OLEDB一起协同工作,以提供通用数据访问。
数据库别名:
是数据表所在的子目录或数据库文件名的替代名称。
工作目录:
是系统默认的打开和保存文件的目录,也是打开文件对话框和保存文件对话框的默认路径,各为WorkDir的目录作为默认的工作目录。
私有目录:
私有目录通常在多用户环境中使用,用来存放当前用户的中间结果,如临时创建的表格等。
6.DSN可以分成三种,分别是系统DSN、用户DSN和文档DSN。
其中系统DSN可以被登录到系统中的所有用户使用。
7.第七章关系数据库标准语言-----SQL选择题1~9题使用的表7-7和表7-8所示。
表7-7学生信息表(表名为STUDENT)
学号
姓名
性别
籍贯
年龄
980001
王吉兵
男
江苏
22
980002
张晓春
女
安徽
21
980003
左燕
女
江苏
25
980004
赵华
男
安徽
22
980005
李宁
男
山东
20
表7-8选课信息表(表名为SKB)
学号
课号
成绩
980001
0001
98
980002
0002
76
980001
0002
80
980002
0003
69
980003
0001
75
980003
0003
68
980004
0001
89
980005
0001
76
980004
0002
65
980003
0002
90
1.给出选课信息表(SKB)增加一行,值分别为“980005”、“0002”、93,使用的语句正确的是B。
B.INSERTINTOSKBVALUES(“980005”,“0002”,93)
2.要选出平均成绩超过80分的学生的学号和平均成绩,下列正确的语句是C。
C.SELECT学号,AVG(成绩)AS平均成绩FROMSKB
GROUPBY学号HAVING平均成绩>=80
3.要求选出学生中平均成绩最高的人的学号、姓名和平均分,下列语句中正确的是C。
C.SELECTTOPlSTUDENT.学号,STUDENT.姓名,AVG(SKB.成绩)AS
FROMSTUDENTINNERJOINSKB.DBF
ONSTUDENT.学号=SKB.学号
GROUPBYSTUDENT.学号
ORDERBY3DESC
4.下列语句执行后,结果中将包含A条记录。
SELECT课号,MAX(成绩)AS最高成绩FROMSKB
GROUPBY课号A.3B.4C.5D.6
5.下列语句执行后,结果中将包含A条记录。
SELECT籍贯,MAX(年龄)AS最大年龄FROMSTUDENTGROUPBY籍贯
HAVING最大年龄>22A.1B.2C.3D.4
6.下列程序执行后,结果中将包含C条记录。
SELECTSTUDENT.学号,STUDENT.姓名FROMSTUDENTINNERJOINSKB
ONSTUDENT.学号=SKB.学号WHERESKB.成绩BETWEEN80ANDl00C.4D.6
7.给所有的选修课号为”0001”的女生的该课成绩增加5分,使用的语句为C.
C.UPDATESKBSET成绩=成绩+5WHERE课号=”0001”AND学号IN(SELECT学号FROMSTUDENTWHERE性别=”女”)
8.要给学生信息表(STUDENT)增加一个出生日期字段(日期型),下面正确的是C.
C.ALTERTABLESTUDENTADDCOLUMN出生日期DATETIME
9.创建一个名为RS的视图,用来显示所有学生的学号、姓名和平均成绩,下面正确语句是____D___。
D.CREATEVIEWRSAS
SELECTSTUDENT.学号,STUDENT.姓名,AVG(SKB.成绩)AS平均成绩
WHERESTUDENT.学号=SKB.学号GROUPBYSTUDENT.学号
10.SQL是StructQueryLanguage的缩写。
11.SQL定义表的命令是Createtable、修改表结构的命令是altertable、删除表的命令是droptable.
12.SELECT语句的HAVING子句一般跟在groupby 子句后面。
13.SQL语言中,实现数据控制功能的语句主要有grant和revoke。
第八章使用BDE组件开发数据库应用程序
1.下列的4个组件中,D和其他的三个不是一类。
D.TDataSource
2.在数据库桌面中已经建立了一个数据库别名“MYALIAS”,现在要让TTable组件能够访问该别名下的数据表,应把它的 B 属性设置为该别名值。
A.DatabaseB.DatabaseNameC.TableNameD.TableType
3.要使TDataSource组件与TTable组件相联系,应把它的A属性设置为TTable组件的名称。
A.DataSet
4.要使TDBNavigator组件能够浏览某个数据表中的记录,应把它的DataSource属性设置为___B____组件名。
B.TDataSource
5.要使TDBText组件能够显示数据表中的某一字段的内容,除应设置它的DataSource属性外,还应把它的A属性设置为对应的字段名。
A.DataField
6.TDBLookListBox组件中显示的列表项由B决定。
A.DataFieldB.ListField
7.TTable组件位于BDE组件页中。
TDBGrid组件位于Datacontrols组件页中。
为使TDBGrid组件能够显示TT'able组件连接的数据表的内容,应该在它们的中间添加一个___TDataSource____组件。
8.要把记录指针移到数据集的首记录,应执行TTable组件的first方法;要把记录指
针移到数据集的末记录,应执行TTable组件的last方法;要把记录指针移到数据集的下
一条记录,应执行TTable组件的next方法;要把记录指针移到数据集的前一条记录,应执行TTable组件的prior方法;要为数据集增加一条新记录,应执行TTable组件的___insert方法或 append方法;要删除数据集的当前记录,应执行TTable组件的 delete 方法;要编辑修改当前记录,应执行TTable组件的 edit 方法;要想把对当前记录的修改或添加的新记录存放到数据表中,应执行TTTable组件的 post 方法;要想取消对当前记录的修改或添加的新记录,应执行TTable组件的 cancel 方法。
9.TDataSource组件是通过 Dataset 属性与TTable组件建立联系的。
10.数据控制组件要访问数据集中的某个字段,首先应通过设置它的 DataSource 属性以便和TDataSource组件建立联系,然后应设置它的datafield属性以使和具体的字段建立联系。
11.正确设置TTable组件的DatabaseName和TTableName属性后,要想TTTable组件能够
显示数据集的内容,还应把它的 active 属性设置为True。
12.当记录指针位于 最后一条记录 位置时,TTable组件的Eof属性为True,当记录指针位于 第一条记录 位置时,TTable组件的Bof属性为True。
13.TTable组件和TQuery组件在功能上有什么区别?
答:
前者通常是返回一个简单的单表数据集。
而后者可以写复杂的SQL语句返回数据集外,还可以只执行SQL命令不返回数据集。
第九章使用TQuery组件和SQL语言编程
1.TQuery组件的A属性用来与数据库相连接。
A.DatabaseNameB.TableNameC.DataSourceD.SQL
2.TQuery组件主要用于执行SQL语句,它执行的SQL语句存放在D属性中。
A.DatabaseNameB.TableNameC.DataSourceD.SQL
3.要使TQuery组件中的SQL语句执行后返回一个结果数据集,应调用TQuery组件的B方法。
A.AddB.OpenC.ExecSQL
4.可通过把TQuery组件的Active属性值设置为True来执行存放在SQL属性中的SQL语句。
5.调用TQuery组件的Prepare方法,Delphi会将带参数的SQL语句传送给对应的数据库引擎,对SQL语句进行语法分析和优化,从而大大提高动态SQL语句的执行性能。
6.调用TQuery语句的SQL属性的Clear方法可以清除SQL属性中存放的字符串。
7.在TQuery组件的Open方法和ExecSQL方法有什么区别?
答:
前者有返回数据集,后者则没有。
第十章 ADO数据库编程
1.Delphi通过把ADO的对象封装在相应的组件中来实现对ADO的支持,通常可使用 A 组件来建立与物理数据库的连接,其他组件能够通过该组件来访问数据库。
A.TADOCormection B.TADOTable C.TADOCommand D.TADOQuery
2.在开发较为复杂的ADO数据库应用程序时,其他ADO组件(如ADOTable组件)最好还是通过TADOConnection组件来连接数据库,若想通过TADOConnection组件连接数据库,应把它的 D 属性设置为TADOConnection组件名。
D.Connection
3.下列 B 组件能够执行SQL命令。
A.TADOConnectionB.TADOCommand
4.下列 B 组件最适合执行SQL的DML语句。
A.TADOConnectionB.TADOCommandC.TADOTableD.TADOQuery
5.下列 D 组件最适合执行SQL的SELECT语句。
A.TADOConnectionB.TADOCommandC.TADOTableD.TADOQuery
6.下列 C 组件不适合执行不返回结果的SQL语句。
A.TADOConnectionB.TADOCommandC.TADODataSetD.TADOQuery
7.通过TADOTable组件的 A 属性,可以设定正在被操作的数据表的名字。
A.TableNameB.TableDirectC.CommandType
8.要对记录集进行批更新,应把记录集的LockType属性设置为ltBatchOptimistic。
在进行批更新操作时,修改的数据被放入缓存中,直到调用方法 A 后,在缓存中标记为修改的记录才正式写入到数据库中,标记为删除的记录才被删除。
A.UDdateBatchB.CancelUpdateC.Post
9.TADOConnection组件对象的连接字符串创建完成后并没有建立实际的连接,要创建实际的连接,可以通过把TADOConnection对象的CONNECTED属性设置为True来完成,也可以通过调用TADOConnection组件的open方法来实现。
10.TADODataSet组件通过执行CommandText属性中存放的命令以形成记录集,在该属性中可以指定一个数据表名,也可以写入SQL—SELECT查询语句。
11.使用TADOQuery组件,在运行阶段执行该组件的SQL属性中语句方法有两种:
如果
SQL语句是返回结果的SELECT语句,则应使用Open方法,否则应该使用ExecSql方法。
12.TADOStoredProc组件通过ProcedureName属性指定存放在服务器上的一个存储过程,应用程序可以执行这个存储过程。
13.调用TADOCommand对象Execute方法,可以执行存放在该对象的CommandText属性中的命令,命令的执行可能返回一个结果记录集,为存取该记录集必须通过一个TADODataSet组件,存取的前提是调用该方法时把返回值赋值给TADODataSet组件的__Recordset___属性。
14.编写一个ADO应用程序在一个列表框中列出“教学.MDB”数据库中的所有表名,当
选中相应的表名后,该表中的内容会自动显示在一个TDBGrid组件中。
1、选择控件TADOQuery、TDataSource、TADOConnection、TDBGridTButton、TComboBox
2、绑定控件DBGrid1.DataSource=DataSource1DataSource1.DataSet=ADOQuery1ADOQuery1.Connection=ADOConnection1
3、设定控件属性ADOConnection1.loginPrompt:
=FalseButton1.Caption:
=‘ConnectDataBase’Button2.Caption:
=‘Show’
4、Button1.Click事件(连络数据库,把数据库中的表名显示在ComboBox1中)
//==========读取INI配置文件===========
functiongReadFromAppIniFile(Sec,Item,Default:
String):
String;
varSYSIni:
TIniFile;
sRtn,FileName:
String;
begin
FileName:
=Copy(Application.ExeName,1,Length(Application.ExeName)-3)+'ini';
ifnotFileExists(FileName)then
FileCreate(FileName);
sRtn:
='';
SYSIni:
=TIniFile.Create(FileName);
try
sRtn:
=SYSIni.ReadString(Sec,Item,Default);
finally
SYSIni.Free;
end;
Result:
=trim(sRtn);
end;
//==========click事件===========
procedureTForm1.Button1Click(Sender:
TObject);
varconnectStr:
String;
begin
ifnotADOConnection1.Connectedthen
begin
connectStr:
=gReadFromAppIniFile('DB','ConnectString','');
ADOConnection1.ConnectionString:
=connectStr;
ADO