1、Delphi数据库编程侯太平着习题答案第一章数据库系统基础1模型中,同一个关系中的不同属性,其属性名 _B_。A. 可以相同 B. 不能相同C. 可以相同,但数据类型不同 D. 必须相同2数据库系统由数据库、A组成。ADBMS、应用程序、支持数据库运行的软硬件环境和DBA3计算机数据管理技术的发展可以划分为三个阶段,在某个阶段数据是以文件形式长期存储在辅助存储器中,程序和数据之间具有相对的独立性,数据不再属于某个特定的应用程序,数据可以重复使用,该阶段是B。B文件管理阶段C数据库管理阶段D信息管理系统阶段4在数据库的三级体系结构中,数据库的模式对应于数据库的DB内部视图C存储视图D概念视图5在
2、数据库的三级体系结构中,数据的逻辑独立性是通过D来实现的。D外模式模式映射6三层C/S结构包括客户机、应用服务器和数据库服务器三部分。7DDL是指数据描述语言,DML是指数据操纵-查询语言,DBMS是指数据库管理系统,DD是指数据字典。8在SPARC结构中,定义的数据库三层结构分别是外模式、模式和内模式。9数据的独立性包括物理独立性和逻辑独立性两个方面。10实体集之间的联系有三种,分别是 一对一的联系,一对多的联系,多对多的联系11试说明数据管理的数据库阶段的主要特点。答:数据库管理的数据库阶段主要特点是:1、数据共享性;2、具有较高的数据与程序的独立性;3、便于对数据实行集中统一的控制。12
3、试说明DBMS的组成。答:DBMS是由一系列软件构成的复杂系统,一般来说DBMS由下列三类软件组成:语言系统;控制数据库运行的程序;数据库维护程序;13数据模型的三要素是什么?答:数据模型的三要素是数据结构、数据操作、数据的约束条件。14关系模型有什么特点?答:关系模型有什么特点:1、关系模型与非关系模型不同,它是建立在严格的数学概念基础上的;2、关系模型的概念单一,无论实体或实体之间的联系都用关系表示3、存取路径对用户透明。4、关系必须是规范化的关系。第二章关系数据库基本理论1下列不属于关系代数运算的是A 。A查询B投影C选择D联结2在关系数据模型中,利用关系运算对两个关系进行操作,得到的结
4、果是B。A属性B关系C元组3下列的C运算不是关系运算中的传统的集合运算。A并B差C投影D交4关系A中有5个属性,关系B中的7个属性,且关系A中有两个属性名与关系B中相同,那么关系A和关系B自然联结的运算结果有A属性。A10个B12个C8个D无法进行自然连接运算5下列关于关键字的说法不正确的是D。C可以有很多个D不可以是所有字段6在关系运算中,根据具有相同属性名的字段相同进行联结,且在联结结果中去掉重复属性,这样的运算是D。D自然联结7具有两个元组五个属性的关系和具有三个元组四个属性的关系的笛卡尔积,共有6元组,_9_属性。8从关系R1中挑选出符合条件F的元组的“姓名”和“年龄”字段,使用的关系
5、代数表达式为姓名,年龄(F(R1)。9两个具有相同结构的关系R和S,它们的交运算是由既属于R又属于S的元组组成的集合。10从关系中找出满足给定条件的元组的操作称为选择运算。11在某数据库中的一个学生表,表中有一个字段“学号”能够惟一地区分每一个记录。数据库中还有一个成绩表,表中也有一个“学号”字段,但不能惟一区分每条记录,此处的“学号”字段称为外部关键字。12专门的关系运算中的投影运算是对关系的垂直分解,它是在关系R中选择出若干个属性组成新的关系。13关系规范化的过程是通过关系中属性的分解和关系模式的分解来实现的。关系规范化的条件可以分为几级,每级称为一个范式(Normal Form),记作n
6、NF。其中,n表示范式的级别,范式的级别越高条件越严格的数学定义。14造成关系修改麻烦的原因是关系范式级别低。第三章实体联系模型1下列的四个模型中,D和其他的三个不是一类。DER模型2数据世界的记录对应信息世界的B。A实体集B实体C属性D主关系键字3.下列D不是ER模型的基本要素。A实体B属性C联系D外部关键字4把ER模型转换为关系模型时,实体之间多对多联系在关系模型中是通过C。C建立新的关系来实现D建立新的实体来实现5在ER图中,用方框表示实体集,用椭圆 表示属性,用菱形框表示联系。6对于ER图中每个实体集,都应转换为一个关系,该关系应包括对应实体的全部属性,并应根据关系所表达的语义确定哪个
7、属性或哪几个属性组作为“主关键字”。7在把ER图转换为关系模型时,若两实体集之间是1:n联系,可将“一方”实体的主关键字纳入“n方”实体集对应的关系中作为“外部关键字”,同时把联系的属性也一并纳入“n方”对应的关系中。8在把ER图转换为关系模型时,若两实体集之间是m:n联系,必须对“联系” 单独建立一个关系 。9在把ER图转换为关系模型时,若两实体集之间是1:1联系,有三种转换方法。10一个图书馆借阅管理数据库要求提供下述服务。(1)构造满足要求的ER图。 (2)根据ER图转换为等价的关系模式。 借书人(借书证号,姓名,单位) 图书(书号,书名,数量,位置,出版社名) 出版社(出版社名,电报,
8、电话,邮编,地址) 借阅(借书证号,书号,借书日期,还书日期)。第四章 数据库设计1下列的 D 不是数据库设计的内容数据库的物理模式设计应用程序设计2下列的D不是逻辑设计第一阶段(分析用户需求)产生的局部图数据流图的基本成分不包括D实体在数据库设计过程中,下列文档产生的先后关系正确的是A用户活动图、数据流图、数据字典、局部图数据库系统的技术文档指的是A。系统说明书、技术说明书和和使用说明书数据流图的主要成分有四个,分别是数据流、加工、文件、和源点和终点,分别用箭头、圆形、横线、和方框表示。数据库设计的逻辑设计阶段的概念模型设计可由两个步骤组成,分别是局部E-R模型设计 和 总体E-R模型设计
9、。8数据字典产生于数据流图,是对数据流图中的四个成分进行描述的产物。9数据库系统的技术文档包括系统说明书、技术说明书、和使用说明书。10数据库设计的特点是反复探寻,逐步求精。第六章 Delphi 7 与数据库1应用程序用以请求一个连到数据源的连接(Connection)的名字是 A 。ADSN 2在ODBC层次结构中, D 包含在ODBC32.dll中,其任务是管理ODBC驱动程序,是ODBC中最重要的部件。D驱动程序管理器3在Database Desktop程序中, A 就是数据表所在的子目录或数据库文件名的替代名称。A数据库别名 4使用Database Desktop程序,不能完成下列的
10、D 功能。 C执行SQL语句 D创建三层结构的数据库程序5请说出下名词的含义。BDE OLE DB DSN ADO 数据库别名 工作目录 私有目录 BDE: 是BORLAND 数据库引擎的缩写,利用它应用程序可以用统一的方法访问和操作数据库。OLE DB:是一个低层的数据访问接口,它向应用程序提供了一个统一的数据访问方法,用它可以访问各种资源,包括传统的关系型数据库、电子邮件系统及自定义的商业对象。DSN: 是“应用程序用以请求一个连到ODBC数据源的连接(Connection)的名字 ADO: 是微软公司设计的最新的数据访问技术,用来与OLEDB一起协同工作,以提供通用数据访问。数据库别名:
11、是数据表所在的子目录或数据库文件名的替代名称。工作目录: 是系统默认的打开和保存文件的目录,也是打开文件对话框和保存文件对话框的默认路径,各为WorkDir的目录作为默认的工作目录。私有目录: 私有目录通常在多用户环境中使用,用来存放当前用户的中间结果,如临时创建的表格等。6DSN可以分成三种,分别是 系统DSN 、 用户DSN 和 文档DSN 。其中 系统DSN 可以被登录到系统中的所有用户使用。7第七章 关系数据库标准语言-SQL选择题19题使用的表7-7和表7-8所示。 表7-7 学生信息表(表名为STUDENT) 学 号姓 名性 别籍 贯年 龄980001王吉兵男江苏22980002张
12、晓春女安徽21980003左燕女江苏25980004赵华男安徽22980005李宁男山东20表7-8 选课信息表(表名为SKB)学 号课 号成 绩9800010001989800020002769800010002809800020003699800030001759800030003689800040001899800050001769800040002659800030002901给出选课信息表(SKB)增加一行,值分别为“980005”、“0002”、93,使用的语句正确的是 B 。BINSERT INTO SKB VALUES(“980005”,“0002”,93)2要选出平均成绩超过
13、80分的学生的学号和平均成绩,下列正确的语句是 C 。CSELECT 学号,AVG(成绩) AS 平均成绩 FROM SKB GROUP BY 学号 HAVING 平均成绩=803要求选出学生中平均成绩最高的人的学号、姓名和平均分,下列语句中正确的是 C 。 CSELECT TOP l STUDENT.学号,STUDENT.姓名,AVG(SKB.成绩)AS FROM STUDENT INNER JOIN SKB.DBF ON STUDENT.学号=SKB.学号 GROUP BY STUDENT.学号 ORDERBY 3 DESC4下列语句执行后,结果中将包含 A 条记录。SELECT 课号,M
14、AX(成绩) AS 最高成绩 FROM SKB GROUP BY课号A3 B4 C5 D65下列语句执行后,结果中将包含 A 条记录。SELECT籍贯,MAX(年龄)AS最大年龄FROM STUDENTGROUP BY 籍贯HAVING 最大年龄22A1 B2 C3 D46下列程序执行后,结果中将包含 C 条记录。SELECT STUDENT.学号,STUDENT.姓名FROM STUDENT INNER JOIN SKB ON STUDENT.学号=SKB.学号WHERE SKB.成绩BETWEEN 80 AND l 00 C4 D67给所有的选修课号为”0001”的女生的该课成绩增加5分,
15、使用的语句为 C .CUPDATE SKB SET成绩=成绩+5 WHERE课号=”0001”AND学号IN (SELECT 学号 FROM STUDENT WHERE性别=”女”)8要给学生信息表(STUDENT)增加一个出生日期字段(日期型),下面正确的是 C . CALTER TABLE STUDENT ADD COLUMN 出生日期 DATETIME 9创建一个名为RS的视图,用来显示所有学生的学号、姓名和平均成绩,下面正确语句是_D_。DCREATE VIEW RS AS SELECT STUDENT.学号,STUDENT.姓名,AVG(SKB.成绩) AS平均成绩 WHERE ST
16、UDENT.学号=SKB.学号GROUP BY STUDENT.学号10SQL是 Struct Query Language 的缩写。11SQL定义表的命令是Create table 、修改表结构的命令是 alter table 、删除表的命令是 drop table .12SELECT语句的HAVING子句一般跟在 group by子句后面。13SQL语言中,实现数据控制功能的语句主要有 grant 和 revoke 。第八章 使用BDE组件开发数据库应用程序1下列的4个组件中, D 和其他的三个不是一类。D.TDataSource2在数据库桌面中已经建立了一个数据库别名“MYALIAS”,
17、现在要让TTable组件能够访问该别名下的数据表,应把它的B属性设置为该别名值。ADatabase BDatabaseName CTableName D.TableType3要使TDataSource组件与TTable组件相联系,应把它的 A 属性设置为TTable组件的名称。 ADataSet 4要使TDBNavigator组件能够浏览某个数据表中的记录,应把它的DataSource属性设置为_B_组件名。 BTDataSource 5要使TDBText组件能够显示数据表中的某一字段的内容,除应设置它的DataSource属性外,还应把它的 A 属性设置为对应的字段名。ADataField
18、6TDBLookListBox组件中显示的列表项由 B 决定。ADataField BListField 7TTable组件位于 BDE 组件页中。TDBGrid组件位于 Datacontrols 组件页中。为使TDBGrid组件能够显示TTable组件连接的数据表的内容,应该在它们的中间添加一个_TDataSource_组件。8要把记录指针移到数据集的首记录,应执行TTable组件的 first 方法;要把记录指针移到数据集的末记录,应执行TTable组件的 last 方法;要把记录指针移到数据集的下一条记录,应执行TTable组件的 next 方法;要把记录指针移到数据集的前一条记录,应执
19、行TTable组件的 prior 方法;要为数据集增加一条新记录,应执行TTable组件的_insert 方法或 append 方法;要删除数据集的当前记录,应执行TTable组件的delete方法;要编辑修改当前记录,应执行TTable组件的edit方法;要想把对当前记录的修改或添加的新记录存放到数据表中,应执行TTTable组件的post方法;要想取消对当前记录的修改或添加的新记录,应执行TTable组件的cancel方法。9TDataSource组件是通过Dataset属性与TTable组件建立联系的。10数据控制组件要访问数据集中的某个字段,首先应通过设置它的DataSource属性以
20、便和TDataSource组件建立联系,然后应设置它的 datafield 属性以使和具体的字段建立联系。11正确设置TTable组件的DatabaseName和TTableName属性后,要想TTTable组件能够显示数据集的内容,还应把它的active属性设置为True。12当记录指针位于最后一条记录位置时,TTable组件的Eof属性为True,当记录指针位于第一条记录位置时,TTable组件的Bof属性为True。13TTable组件和TQuery组件在功能上有什么区别?答:前者通常是返回一个简单的单表数据集。 而后者可以写复杂的SQL语句返回数据集外,还可以只执行SQL命令不返回数据
21、集。第九章 使用TQuery组件和SQL语言编程1TQuery组件的 A 属性用来与数据库相连接。ADatabaseName BTableName CDataSource DSQL2TQuery组件主要用于执行SQL语句,它执行的SQL语句存放在 D 属性中。ADatabaseName BTableName CDataSource DSQL3要使TQuery组件中的SQL语句执行后返回一个结果数据集,应调用TQuery组件的B方法。 AAdd BOpen CExecSQL 4可通过把TQuery组件的Active 属性值设置为True来执行存放在SQL属性中的SQL语句。5调用TQuery组件
22、的 Prepare 方法,Delphi会将带参数的SQL语句传送给对应的数据库引擎,对SQL语句进行语法分析和优化,从而大大提高动态SQL语句的执行性能。6调用TQuery语句的SQL属性的 Clear 方法可以清除SQL属性中存放的字符串。7在TQuery组件的Open方法和ExecSQL方法有什么区别?答:前者有返回数据集,后者则没有。第十章ADO数据库编程1Delphi通过把ADO的对象封装在相应的组件中来实现对ADO的支持,通常可使用A组件来建立与物理数据库的连接,其他组件能够通过该组件来访问数据库。ATADOCormection BTADOTable CTADOCommand DTA
23、DOQuery2在开发较为复杂的ADO数据库应用程序时,其他ADO组件(如ADOTable组件)最好还是通过TADOConnection组件来连接数据库,若想通过TADOConnection组件连接数据库,应把它的D属性设置为TADOConnection组件名。DConnection3下列B组件能够执行SQL命令。ATADOConnection BTADOCommand 4下列B组件最适合执行SQL的DML语句。ATADOConnection BTADOCommand CTADOTable DTADOQuery5下列D组件最适合执行SQL的SELECT语句。 ATADOConnection B
24、TADOCommand CTADOTable DTADOQuery6下列C组件不适合执行不返回结果的SQL语句。ATADOConnection BTADOCommand CTADODataSet DTADOQuery7通过TADOTable组件的A属性,可以设定正在被操作的数据表的名字。ATableName BTableDirect CCommandType 8要对记录集进行批更新,应把记录集的LockType属性设置为ltBatchOptimistic。在进行批更新操作时,修改的数据被放入缓存中,直到调用方法A后,在缓存中标记为修改的记录才正式写入到数据库中,标记为删除的记录才被删除。AUD
25、dateBatch BCancelUpdate CPost 9TADOConnection组件对象的连接字符串创建完成后并没有建立实际的连接,要创建实际的连接,可以通过把TADOConnection对象的 CONNECTED 属性设置为True来完成,也可以通过调用TADOConnection组件的 open 方法来实现。10TADODataSet组件通过执行 CommandText 属性中存放的命令以形成记录集,在该属性中可以指定一个数据表名,也可以写入SQLSELECT查询语句。11使用TADOQuery组件,在运行阶段执行该组件的SQL属性中语句方法有两种:如果SQL语句是返回结果的SE
26、LECT语句,则应使用 Open 方法,否则应该使用ExecSql 方法。12TADOStoredProc组件通过 ProcedureName 属性指定存放在服务器上的一个存储过程,应用程序可以执行这个存储过程。13调用TADOCommand对象 Execute 方法,可以执行存放在该对象的CommandText属性中的命令,命令的执行可能返回一个结果记录集,为存取该记录集必须通过一个TADODataSet组件,存取的前提是调用该方法时把返回值赋值给TADODataSet组件的_ Recordset _属性。14编写一个ADO应用程序在一个列表框中列出“教学.MDB”数据库中的所有表名,当选中
27、相应的表名后,该表中的内容会自动显示在一个TDBGrid组件中。1、 选择控件TADOQuery 、TDataSource、TADOConnection、TDBGrid TButton、TComboBox2、 绑定控件DBGrid1.DataSource = DataSource1 DataSource1.DataSet=ADOQuery1 ADOQuery1. Connection = ADOConnection13、 设定控件属性 ADOConnection1.loginPrompt := False Button1.Caption := Connect DataBaseButton2.C
28、aption := Show4、 Button1.Click事件(连络数据库,把数据库中的表名显示在ComboBox1中)/=读取INI配置文件=function gReadFromAppIniFile(Sec,Item,Default:String):String;var SYSIni: TIniFile; sRtn,FileName:String;begin FileName:=Copy(Application.ExeName,1,Length(Application.ExeName)-3) + ini; if not FileExists(FileName) then FileCreat
29、e(FileName); sRtn := ; SYSIni:= TIniFile.Create(FileName); try sRtn := SYSIni.ReadString(Sec,Item,Default); finally SYSIni.Free; end; Result := trim(sRtn);end;/=click事件 =procedure TForm1.Button1Click(Sender: TObject);var connectStr:String;begin if not ADOConnection1.Connected then begin connectStr:=gReadFromAppIniFile(DB,ConnectString,); ADOConnection1.ConnectionString:=connectStr; ADO
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1