文档库 最新最全的文档下载
当前位置:文档库 › 数据库的应用

数据库的应用

数据库的应用
数据库的应用

1.查询数据库

这部分介绍能够通过SQL语句访问数据库的TQuery构件。

在客户端运行的封装了SQL语句的TQuery构件可以检索、插入、更新和删除数据。SQL是符合工业标准的关系数据库语言,可以用于远程的基于服务器的数据库,如Sybase、Oracle、InterBase和Microsoft SQL Server,也可以用于本地数据库如Paradox、dBASE、FoxPro和Access以及符合ODBC的数据库这部分主要包含以下的内容:

(1)有效地使用查询

(2)使用TQuey构件可以查询哪些数据库

(3)如何使用使用TQuery构件

(4)指定要执行的SQL语句

(5)设置查询的参数

(6)执行查询

(7)准备查询

(8)释放SQL语句占用的资源

(9)异构查询

(10)提高查询的效率

(11)查询结果

2.有效地使用查询

要有效地使用查询,必须熟悉以下的内容

(1)标准的SQL语言以及所使用的服务器对SQL-92的限制和扩展

(2)熟悉BDE。

如果你已经是一个熟练的桌面数据库使用者,现在希望开发基于服务器的应用程序,可以参考“基于桌面的查询”。如果从来没有使用过SQL,需要学习这方面的知识。

如果你已经是一个熟练的基于数据库服务器的开发者,现在想使用Delphi开发客户端应用程序。

此时虽然你对SQL和服务器比较熟悉,但也许不熟悉BDE,那么就需要学习一些BDE方面的资料。

本部分包括以下内容

(1)基于桌面的查询

(2)查询远程数据库

2.1查询桌面数据库

作为一个桌面开发者,已经对数据表、记录和字段的概念有所了解。可以使用TTable构件访问任何数据表中的任何记录和每一个字段。设置了TTable构件的TableName属性,就可以访问数据表中的数据了。

还可以使用TTable的范围和过滤功能在数据表中选择一部分记录。“范围”用于选择一块记录的值在一个特定的范围内的记录,比如选择雇员的名字大于Boll小于Smith的记录;“过滤”用于选择符合特定条件的非连续记录,比如选择客户编号的E-mail地址是California的。

查询非常类似于“过滤”。不同的是,查询要用到TQuery构件和SQL属性,有时可能用到Params 属性,来返回,增加,删除,修改数据。从功能上讲,查询比“过滤”功能更强大,主要体现在:(1)可以同时查询几个数据表

(2)可以让查询结果中只返回部分字段,而“过滤”将返回所有字段。这样的话提高了查询的效率和安全。内存不再消耗在无用的数据上,也防止了访问那些不允许用户查看和修改的数据。

查询也可以带参数,此时称为参数化查询。所谓参数,类似于变量,它的实际的值由BDE在执行

SQL语句之前赋值。参数化查询的好处是,不需要修改SQL语句,只要修改参数的值,就能执行不同的查询功能,因此查询具有很大的灵活性。大部分情况下,使用TQuery构件是为了在数据表中选择一部分字段和记录(这和TTable构件相似),但也可以使用SQL语句实现更新、插入和删除记录的功能,并且查询通常不返回记录,这是与TTable构件的一个区别。

要了解使用SQL属性指定SQL语句,可参看“指定要执行的SQL语句”.要了解使用参数化查询,可参看“设置查询参数”,要了解如何执行查询,可查看“查询的执行”

2.2查询远程数据库

作为数据库的设计者,你对SQL已经很熟悉了。所谓的查询就是可以用来访问数据的SQL语句。

SQL属性和其参数是TQuery语句中最重要的组成部分。TQuery构件的SQL属性用于指定要执行的SQL语句,Params属性用于提供参数。TQuery构件的功能并不只限于SQL语句和参数,它还是BDE与应用程序之间的接口。

客户端应用程序使用TQuery构件形成SQL语句和参数,指定要查询的数据库,执行查询。TQuery 构件调用BDE执行查询,与数据库服务器建立联系(主要是SQL Links),远程服务器把查询结果返回给BDE,再由BDE返回给客户端应用程序。

当使用TQuey构件的时候,必须意识到用来描述BDE的一些术语可以造成错觉。比如说,BDE 经常使用“别名”来描述数据库服务器的标准名称。其实,BDE别名是保存在一个配置文件中,是在TQuery构件的DatabaseName属性中设置

同时,BDE的帮助文件(位于\Borland\Common Files\BDE\BDE32.HLP)中建议使用查询的时候最好使用参数查询。

要了解使用SQL属性指定SQL语句,可参看“指定要执行的SQL语句”。要了解使用参数化查询,可参看“设置查询参数”;要了解如何准备查询,可参看“查询的准备”;要了解如何执行查询,可查看“查询的执行”。

3.使用TQuey构件可以查询哪些数据库

TQuery构件可以访问以下的数据库:

(1)Paradox或dBASE,这是通过BDE内置的Local SQL实现的。Local SQL是SQL-92标准的一个子集,支持大部分DML和DDL。可参看“LOCALSQL.HLP”查询更详细的内容。

(2)本地InterBase Server(通过InterBase引擎实现)

(3)远程数据库,如Oracle、Sybase、MS-SQL Server、InFormix、DB2和InterBase。但是,必须安装相应的SQL Links驱动程序和客户端软件。不同的服务器对标准SQL都有不同的限制和扩展,在查询远程数据库之前,务必要查阅它的相关文档。

(4)Delphi 4还支持异构查询。可以同时查询几个不同类型的数据库(比如说,从Oracle和Paradox 数据表之间进行查询)。当创建了异构查询的时候,BDE使用本地的SQL执行查询。可参看“创建异构查询”

4.如何使用TQuery构件

要在设计期间使用TQuery构件,需要:

(1)把一个TQuery构件放到数据模块(TDataModule)上,设置它的Name属性

(2)设置TQuery构件的DatabaseName属性为指定要查询的数据库。对于Paradox和dBASE来说,DatabaseName属性可以设为BDE别名或者数据表所在的路径,或者是TDatabase构件的DatabaseName 属性中设定的值。

(3)在SQL属性指定要执行的SQL语句,有必要的话还可以在Params属性设置相关的参数。可查看“在设计期间指定TQuery构件的SQL属性”。

(4)如果要把查询的结果显示在数据控件上,需要把TDataSource构件放到数据模块上,设置它的DataSet属性为指定的TQuery构件。TDataSource构件是用来从查询构件中返回查询的结果,并且

把查询的结果显示在数据控件中。最后,需要设置数据控件的DataSource和DataField属性。

(5)执行SQL语句。如果希望查询返回结果,需要把Active属性设为True,或者运行期调用Open;

如果不需要返回查询结果,调用ExecSQL。在调用Open或ExecSQL之前,最好先调用Prepare通知服务器作好准备。

在运行期间第一次执行查询,需要:

(1)关闭TQuery构件

(2)在SQL属性中提供SQL语句。如果在设计期间没有设置SQL属性或者在运行的时候需要修改SQL语句都必须这样做。如果要使用设计期间提供的SQL语句,此步可以忽略。要了解如何设置SQL属性,可参看“指定要执行的SQL语句”。

(3)直接在Params属性中或者调用ParamByName方法设置相关的参数和参数的值。如果查询不包含参数,或者不需要改变设计期间指定的参数和参数的值,那么此步可以忽略。可参看“设置查询参数”

(4)调用Prepare方法初始化BDE和把参数的值绑定到查询中。虽然是强烈建议这样做,但是此步也是可以忽略的。可参看“准备查询”。

(5)调用Open执行查询并且返回结果,或者调用ExecSQL执行查询但不返回结果。可参看“查询的执行”。

在已经执行了一次查询后,只要不改变SQL语句,应用程序将在关闭查询和重新打开,重新执行查询执行之间循环,此时,不再需要“准备”查询。可参看“查询的执行”。

5.指定要执行的SQL语句

设置SQL属性指定要执行的SQL语句。在设计期间,只要把Active属性设为True,就会自动执行SQL语句。在运行期间,首先要调用Prepare通知服务器,然后调用Open或ExecSQL执行SQL语句。

SQL属性本身是一个TStrings对象,是一个字符串数组和一系列属性,事件,方法的集合。SQL 属性可以分成几行写,TQuery构件会自动把几行字符串合并成一条可执行的SQL语句。把SQL语句分成几行写的好处是,可以把SQL语句分割成几个“逻辑单元”,逻辑结构比较清楚,有利于今后维护和调试。因此,SQL语句的SELECT部分和WHERE部分一般都不在同一行上。

SQL语句可以不带参数,把字段名称和值固定在SQL语句中。SQL语句也可是一个参数化查询,其中包含有可在执行时指定替换值的参数。例如,下面这个SQL语句就是硬写(Hard-Coded)的:SELECT * FROM Customer WHERE CustNo = 1231

“硬写”语句对那些需要执行确定的,每次运行已知的查询是非常有用的。在设计期间或者运行期间,可以很容易地使用另外一个“硬写”语句或者参数化查询代替原来的“硬写”语句。每当SQL属性发生变化的时候,查询自动关闭。

注意:如果要查询的是本地数据库(使用BDE引擎),并且SQL语句中的字段名包含空格或其他特殊符号,必须用引号括起来,前面还要加上数据表名称和小圆点。

如果用参数的话,查询就灵活得多。使用参数查询,应用程序不需要改写SQL语句本身,只要修改参数的值,就能使SQL语句执行不同的查询功能。在执行SQL语句之前,TQuery构件会自动把实际的值替换SQL语句中的参数,即使并没有显式地调用Prepare函数。

下面这条SQL语句是典型的参数化查询:

SELECT * FROM Customer WHERE CustNo = :Number

其中,Number就是一个参数,它的前面必须加冒号。在运行期间,应用程序必须提供Number参数的值,每次执行SQL语句时,Number参数的值可以不同。

实际赋给Number参数的值是通过TQuery的Params属性提供的。

技巧:最好把参数的名称和实际字段的名称设置为相同

可参看:

在设计期间指定SQL属性

在运行期间指定SQL属性

5.1在设计期间指定SQL属性

在设计期间,要指定SQL语句,可以在“对象观察器”中单击SQL属性边上的省略号按钮,弹出一个字符串列表编辑器。

SQL语句可以分成几行写,但同一单词不能分开。分成几行写的好处是易读,易改,易调试。

一般情况下,SQL属性只能包含一条完整的SQL语句,虽然这些SQL语句是相当复杂的(比如:在Where语句中包含多个And Or逻辑编辑符)。但有些服务器允许同时执行几条SQL语句,这种情况下,可以输入多条SQL语句。

提示:如果使用Delphi 4的C/S版本或Enterprise版本,可以使用SQLBuilder这个可视化的工具来建立SQL语句。要使用SQL Builder,选中TQuery构件,单击鼠标右键,在弹出的菜单中选择“SQL Builder”。如何使用"SQL Builder",需要查在线帮助。

5.2在运行期间设置SQL属性

在运行期间,要指定SQL属性有三种方式:

(1)直接设置SQL属性

(2)调用LoadFromFile从文件中读取SQL语句

(3)从另一个TStrings对象中获得SQL语句

5.3直接设置SQL属性(运行期间)

(1)调用Close函数。即使在改变SQL属性的时候会自动关闭查询,不过最好在修改SQL语句之前调用Close方法

(2)如果原来的SQL语句不再有用,调用Clear方法。

(3)如果创建新的SQL语句或者向SQL语句中增加一行,可以调用Add方法;如果要修改某行,需要使用使用SQL属性,并且把索引号设置为要修改的行号,给这行赋予新值。比如:CustomerQuery.SQL[1] := 'WHERE Company = "Light Shopp"';

把CustomerQuery的SQL语句的第2行内容修改为Light Shopp

(4)调用Open或者ExecSQL执行查询

举例:

with CustomerQuery do

begin

Close; { close the query if it's active }

with SQL

do begin

Clear; { delete the current SQL statement, if any }

Add('SELECT * FROM Customer'); { add first line of SQL... }

Add('WHERE Company = Light Diver'); { ... and second line }

end;

Open; { activate the query }

end;

提示:

如果带有参数查询,必须在打开或者执行查询之前调用Prepare方法设置这些参数的初始值。显式地调用Prepare方法对于同一个SQL语句被多次重复调用是非常有用的,否则的话这个SQL会自动由TQuery构件调用。

5.4调用LoadFromFile从文件中读取SQL语句

也可以调用LoadFromFile从文件中获取SQL语句,这主要是因为TStrings对象支持文件操作。

LoadFromFile会自动把原来的SQL语句清掉。比如:

CustomerQuery.Close;

CustomerQuery.SQL.LoadFromFile('c:\orders.txt');

CustomerQuery.Open;

5.5从另一个TStrings对象中获得SQL语句

还可以从另一个TStrings对象中获取SQL语句,需要调用TStrings的Assign方法。Assign 会自动把原来的SQL语句清空。比如:

CustomerQuery.Close;

CustomerQuery.SQL.Assign(Memo1.Lines);

CustomerQuery.Open

6.

设置查询的参数

参数化查询的SQL语句中包含了参数(或者称为变量),而参数的值可以在设计期间或者运行期间指定。通常,参数代表传递到SQL语句中的数据的值(类同于函数或者过程中的参数的含义)。比如,INSERT INTO Country (Name, Capital, Population)

V ALUES (:Name, :Capital, :Population)

其中,:Name、:Capital和:Population是三个参数。而这三个参数的实际值是在运行期间由应用程序来提供。在第一次执行查询之前,应用程序必须调用Prepare方法把参数的当前值绑定到SQL语句中。“绑定”意味着BDE和服务器预先为SQL语句及其参数分配好资源,以加快查询速度。比如:

with Query1 do

begin

Close;

Unprepare;

ParamByName('Name').AsString := 'Japan';

ParamByName('Capital').AsString := 'Tokyo';

ParamByName('Population').AsInteger := 40000;

Prepare;

Open;

end;

可参看

(1)在设计期间提供参数

(2)在运行期间提供参数

(3)从另一个数据表获得参数

6.1 在设计期间提供参数

在设计期间,SQL语句中出现的参数(必须先在SQL语句中先指定参数)是在TQuery构件的Params 属性中保存的,其本身是一个TParam对象。可以使用“对象观察器”设置其相关的属性。而如果SQL语句中没有任何参数的话,在Params属性中是没有任何内容的。但是也可以运行期间动态增加参数。

要在设计期间访问参数

(1)选中TQuery构件

(2)单击Params属性边上的省略号按钮,弹出如下图所示的“参数编辑器”。

(3)在“参数编辑器”中,选中需要设置的参数

(4)在“对象观察器”中浏览或者修改参数的属性

如果SQL语句中没有包含任何参数,则上图所示的编辑器就是空白的。这个编辑器的工具栏总是禁止的。如果在SQL中已经定义了参数,那么所有的参数都会出现在“参数编辑器”中

注意:当在“参数编辑器”中单击右键的时候,也会出现"Add"和"Delete",但是我们注意到在TQuery 构件,永远也不可以选择这两项。也就是说,要在设计期间添加和删除参数必须通过SQL属性

在”参数编辑器“选择其中一个参数(TParam对象),在对象观察器中设置它的属性和事件,或者建立事件句柄。TParam的主要属性有:

(1)DataType:指定参数数据类型,初始值是ftUnknown,必须设置每个参数的数据类型。

(2)ParamType:指定参数的使用类型,它的初始值也是ptUnknown,必须设置每个参数的使用类型。(3)Value:给出参数的值。当然,这个属性不是必须在设计期间指定的。如果希望在运行期间设置参数的值,那么这个属性可以不设置。

6.2在运行期间提供参数

要在运行期访问参数,有三种方式可以选择:

(1)ParamByName:按名称设置参数的值

(2)Params:按序号设置参数的值

(3)Params.ParamValues属性按名称设置参数的值。这种方法可以在一行中设置一个或者多个参数的值

假设一条SQL语句有三个参数:

INSERT INTO "COUNTRY.DB"

(Name, Capital, Continent)

V ALUES (:Name, :Capital, :Continent)

下面这行代码通过ParamByName来设置其中的Capital参数:

Query1.ParamByName('Capital').AsString := Edit1.Text;

下面这行代码通过Params来设置其中的Capital参数(因为Capital参数的索引号是1,即SQL语句的第2个参数):

Query1.Params[1].AsString := Edit1.Text;

下面这行代码通过Params.ParamValues属性来同时设置三个参数:

Query1.Params.ParamValues['Country;Capital;Continent'] := VarArrayOf([Edit1.Text,Edit2.Text, Edit3.Text]);

6.3从另一个数据表获得参数

如果参数的值既不是在设计期间指定,也不是在运行期间指定,就可以使用TQuery构件的DataSource 属性用于指定一个数据源(TDataSource构件),在这个数据源中查找与参数名匹配的字段,然后用这个字段的值作为参数的值。

假设一个数据模块LinkModule,上面有一个TQuery构件叫OrdersQuery,它的SQL语句如下:

SELECT CustNo, OrderNo, SaleDate FROM Orders

WHERE CustNo = :CustNo

另外,数据模块上还有下列构件:

(1)一个TTable构件叫CustomersTable,它的TableName属性设为CUSTOMER.DB。

(2)一个TDataSource构件叫OrdersSource,它的DataSet属性设为OrdersQuery。

(3)一个TDataSource构件叫CustomersSource,它的DataSet属性设为CustomersTable。

(4)OrdersQuery的DataSource属性也设为CustomersSource。

(5)窗体上有两个TDBGrid构件,它们的DataSource属性分别指定CustomersSource和OrdersSource。如果编译和运行这个应用程序,将看到如图所示的效果:

因为运行的时候没有对SQL语句中的:CustNo参数赋值,OrdersQuery将试图从CustomersSource指定的数据集中查找匹配的字段。由于CustomersSource是从CUSTOMER.DB中获取数据的,而CUSTOMER.DB 中恰好有一个CustNo字段,所以,:CustNo参数的值就是CustNo字段的值。如果您在显示CUSTOMER.DB 的数据表中选择了另一条记录,将导致:CustNo参数的值跟着变化。也就是说,两个TDBGrid已经建立的主从关系。因此,每次在Customers数据表中选择一条记录,OrdersQuery的Select语句执行,从Orders数据表中返回CustNo等于当前Customer数据表的CustNo的所有记录。

7.执行查询

当指定了SQL语句并且提供了参数后,就可以执行查询了。当执行查询的时候,BDE接受和处理从应用程序传递过来的SQL语句。

(1)如果查询是基于”本地数据库“(dBASE and Paradox),那么BDE引擎处理SQL语句,并且返回查询的结果。

(2)如果查询是基于SQL Server并且TQuery的RequestLive属性为False,那么此时的SQL语句并不由BDE来理解和处理,而是直接传递到数据库中进行处理。

(3)如果查询是基于SQL Server并且RequestLive属性为True,那么SQL语句必须遵守SQL标准,这是因为BDE必须使用SQL标准来反映数据表中的数据变化。

提示:如果是第一次执行查询,最好调用Prepare通知BDE或服务器做好准备,这样能加快查询的速度。

可参看:

(1)在设计期间执行查询(静态查询)

(2)在运行期间执行查询(动态查询)

7.1在设计期间执行查询(静态查询)

要在设计期间执行查询,只要把Active属性设为True。此时,如果查询返回结果,会在相应的数据控件中显示

注意:不过,在设计期能执行的SQL语句,仅限于SELECT语句,不能是INSERT、UPDATE或DELETE 语句。

7.2在运行期间执行查询(动态查询)

要在运行期执行查询,可以:

(1)调用Open:适合于返回查询结果的查询,比如执行SELECT语句

(2)调用ExecSQL:适合于执行不返回结果的查询,比如执行INSERT、UPDATE或DELETE语句。

注意:如果在设计期间无法确定是否要返回查询结果,可以用Try...Except结构把这两个过程都写进去,一般Open在Try部分调用,而ExecSQL在Except部分调用,这样,即使Open调用失败,也能执行到ExecSQL。可以在Except部分截获异常的类型。如果这个异常不是ENoResult异常,那么这个异常一定是其他原因引起的,必须被处理。

程序示例如下:

try

Query2.Open;

except

on E: Exception do

if not (E is ENoResultSet) then

raise;

end;

可参看:

(1)执行返回结果的查询

(2)执行不返回结果的查询

7.2.1执行返回结果的查询

要执行返回结果的查询,需要:

(1)调用Close,保证关闭查询。如果一个查询已经打开,那么如果没有关闭的话,再打开是不可能的。关闭一个查询,重新打开查询将会返回一个新的查询出来的数据。

(2)调用Open执行查询

例如:

CustomerQuery.Close;

CustomerQuery.Open; { query returns a result set }

关于如何在查询结果中”导航(Navigate)“,可参看”Disabling bi-directional cursors“;关于如何编辑和修改结果数据,可参看”查询结果“。

执行不返回结果的查询

要执行不返回结果的查询(比如INSERT, UPDA TE, or DELETE),直接调用ExecSQL好了。比如:CustomerQuery.ExecSQL; { query does not return a result set }

8. 查询的准备

查询的准备是处理查询的执行,这一步是可有可无。“准备查询”把SQL语句,参数传递到BDE进行解析,分配资源,进行优化处理。BDE然后通知数据库服务器为查询作好准备。服务器接收到从BDE传递过来的“通知”,也要为查询分配资源。所有这些操作提高了查询的效率,使得应用程序查询速度更快,尤其在进行数据修改的时候更是如此。

应用程序可以通过调用Prepare方法实现“准备查询”。如果在执行查询之前“不准备查询”,那么在每次调用Open或ExecSQL方法的时候,Delphi自动“准备查询”。即使这样,建议最好进行显式地“准备查询”。

比如:

CustomerQuery.Close;

if not (CustomerQuery.Prepared) then

CustomerQuery.Prepare;

CustomerQuery.Open;

这个例子首先检查TQuery构件的Prepared属性,决定查询是否已经“准备”好。如果查询没有准备好,在调用Open打开查询之前调用Prepare进行“准备查询”。

9. 释放SQL语句占用的资源

UnPrepare方法设置Prepared为False。它的工作主要是:

(1)再进行查询之前保证SQL属性已经准备好

(2)“通知”BDE释放掉为SQL语句分配的内部资源

(3)“通知”数据库服务器释放掉为SQL语句分配的内部资源

要释放资源,只需要调用Unprepare。比如:

CustomerQuery.UnPrepare;

提示:在改变TQuery的SQL属性的时候,TQuery构件自动关闭和释放占用的资源

10. 异构查询

Delphi支持异构查询。所谓异构查询,就是同时查询几个不同的数据库。这些数据库可以位于不同的服务器上,甚至服务器的类型也可以不同。比如,可以同时查询Oracle数据库、Sybase数据库和本地的dBASE 表。当程序执行异构查询的时候,BDE通过Local SQL来分析和处理这个查询。正因为如此,所以与服务器相关的特定的SQL语法不支持。

要执行异构查询,可以:

(1)为查询要访问的数据库建立不同的BDE别名。把一个TQuery构件放到数据模块上,DatabaseName 属性为空。查询要使用的不同数据库将在SQL属性中指定。

(2)在SQL属性中指定要执行的SQL语句。在SQL语句中,每个数据表的名称前要加数据库的别名。别名和数据表之间要加冒号,并且用双引号括起来。

(3)在Params属性中指定查询的参数

(4)调用Prepare通知BDE或服务器做好准备

(5)调用Open或ExecSQL执行查询

比如,在Oracle数据库中有一个CUSTOMER数据表,Oracle数据库的别名是Oracle1;在Sybase数据库中有一个Orders数据表,Sybase数据库的别名是Sybase1;那么,一个简单的异构查询如下所示:SELECT Customer.CustNo, Orders.OrderNo

FROM "Oracle1:CUSTOMER"

JOIN "Sybase1:ORDERS"

ON (Customer.CustNo = Orders.CustNo)

WHERE (Customer.CustNo = 1503)

在异构查询中除了使用“别名”外,也可以指定一个数据库。可以使用一个TDatabase构件,设置TDatabase 构件的DatabaseName属性为应用程序专用的别名,在SQL语句中可以用专用的别名代替BDE别名。

11.提高查询的效率

提高查询效率方法:

(1)如果不需要在查询的结果之间进行导航(navigate)的时候,设置TQuery的UniDirectional的属性为True(但注意SQL-92不支持这一点)。由于BDE支持在查询结果之间导航,因此UniDirectional的缺省值是False。可参看“Disabling bi-directional cursors”

(2)在执行查询之前“准备查询”。对于一个查询需要执行好多次的时候,这点十分有用。可参看“准备查询”。

12.查询结果

缺省情况下,查询出来的结果是只读的。应用程序可以使用数据控件去显示查询结果,但用户不能编辑数据。那么,如何让用户可以编辑查询出来的结果呢?

可参看:

(1)让用户可以编辑查询结果

(2)要返回本地SQL“实时结果集”的要求

(3)要返回“实时结果集”对于远程SQL的要求

(4)限制对“实时结果集”的修改

(5)对只读结果集的修改

12.1让用户可以编辑查询结果

要让用户可以在数据控件中编辑查询出来的结果,需要设置TQuery的RequestLive:= True。设置RequestLive:= True并不能保证“实时数据结果集”,但是BDE会尽可能地满足这个请求。“实时数据结果集”是受查询使用“本地SQL解析”还是“数据库服务器解析”来决定的。对于Paradox或dBASE的异构联合和查询是由“本地SQ L”通过BDE来解析的,而对于远程数据库服务器的查询是由远程数据库服务器解析的。

如果应用程序请求和返回“实时数据结果集”,那么TQuery构件的CanModify是设置为True。

如果应用程序希望返回“实时数据结果集”,但是Select语句不允许这样做,因此BDE将返回:

(1)对Paradox or dBASE数据表的查询返回“只读结果集”

(2)对于远程数据库服务器通过SQL语句进行查询返回错误。

12.2要返回本地SQL“实时结果集”的要求

对于使用本地SQL解析的查询,BDE为修改提供了扩展的支持,无论是对单数据表还是多数据表查询都是如此。当查询本地的dBASE or Paradox数据表,或者在查询的远程服务器数据表前面带有BDE别名,这两种情况都使用“本地BDE解析”。要返回“实时结果集”,对于本地的SQL有以下的限制:对于实时的限制

12.3对于实时查询的限制

对于单个数据表的查询,如果不包含以下的内容,就可以返回“实时结果集”:

(1)在Select语句中不包含DISTINCT

(2)Join

(3)Aggregate

(4)Base tables or views that are not updatable.

(5)Subqueries.

(6)ORDER BY clauses not based on an index.

12.4要返回“实时结果集”对于远程SQL的要求

对于通过passthrough SQ的查询,包括对于一个远程数据库服务器的查询,是否能返回“实时结果集”是受SQL-92标准和其他的与服务器有关的标准限制的。

如果查询中不包含以下的语句,就可以从远程数据库服务器返回“实时结果集”:

(1)A DISTINCT clause in the SELECT statement.

(2)Aggregate functions, with or without GROUP BY or HA VING clauses.

(3)References to more than one base table or updatable views (i.e. joins).

(4)Subqueries that reference the table in the FROM clause or other tables.

12.5限制对“实时结果集”的修改

如果查询返回“实时结果集”,并且“结果集”中包含了关联的字段,就不可能对“结果集”进行修改。这样的话,“结果集”只能是一个“只读结果集”。

对只读结果集的修改

如果使用“缓冲修改”,那么应用程序就可以对返回的“只读结果集”进行修改。要改变与TQuery构件相关的“只读结果集”:

(1)在数据模板上放置一个TUpdateSQL构件

(2)在ModifySQL,InsertSQL和DeleteSQL属性中输入相应的SQL语句

(3)设置TQuery构件的CachedUpdate属性为True

数据库及其应用

数据库及其应用 1、名词解释(英文一定要写全称!) DB:即数据库(Database),是统一管理的相关数据的集合。DB能为各种用户共享具有最小冗余度数据间联系密切而又有较高的数据独立性。 DBS:即数据库系统(Database System),是实现有组织地、动态地存储大量关联数据方便多用户访问的计算机软件、硬件和数据资源组成的系统即采用了数据库技术的计算机系统。 DBMS:即数据库管理系统(Database Management System),对数据库进行管理的系统软件,是与数据库之间的接口。DBA:即数据库管理员(Database Administrator),是数据库系统中的高级用户,全面负责数据库系统的管理、维护、正常使用等工作。 ODBC:即开放数据库互连(Open Database Connectivity),是微软公司开放服务结构(WOSA,Windows Open Services Architecture)中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准API(应用程序编程接口)。 SQL:结构化查询语言(Structured Query Language),是美国国家标准局ANSI确认的关系数据库语音的标准。OOP:即面向对象的程序设计(Object Oriented Programming),是一种计算机编程架构,由单个能起到子程序作用的单元或者对象组合而成。 E-R图:是E-R模型的图形表示法,它是直接表示概念模型的有力工具。 数据模型:表示实体类型及实体类型间联系的模型称为“数据模型”。它可分为概念数据模型和结构数据模型两种类型。 主关键字:所有字段中最重要的,唯一能确定其他字段值的关键字。 外部关键字:关系表中某个属性或属性组合并非关键字,但却是另一个关系表的主关键字。 元数据:是最小数据,不可再分割的数据就是元数据。 数据处理:对各种数据的进行收集、存储、分类、计算、加工、检索和传输的过程。 面向对象的概念 类:把具有相关性的一类对象的整体的总和。 基类:即基本类,系统提供的内部定义的类,可用作其他用户自定义类的基础。 子类:在基类上派生出来的类。 对象:是类的实例化的产物,并具有相关的成员变量和成员函数(方法)。 属性:描述对象特性的字段称为属性。 15:20事件:是单一的一个动作 方法:是事件如何运行的操作手段 工作区:work space 在内存里单独存储一张表的区域,一张表对应一个工作区。 主控索引:当前起作用的索引称为主控索引。 关系模型:是用二维表结构来表示实体以及实体间联系的模型。 参照完整性:对关系数据库中建立关联关系的关系间数据参照引用的约束,也就是对外键的约束。准确的说,参照完整性是指关系中的外键必须是另一个关系的主键有效值,或者是Null。 2、文件的扩展名:(t都是备用选择填空题) ●项目文件:.PJX 、.PJT ●表文件:.DBF 、.FPT 、.CDX ●数据库:.DBC 、.DCT 、.DCX

数据库应用技术复习试题

一、选择题 1.SQL*PLUS在ORACLE数据库系统中的作用,以下叙述正确的是(C) A.是ORACLE数据库服务器的主要组成部分,是服务器运行的基础构件。B.是ORACLE数据库系统底层网络通信协议,为所有的ORACLE应用程序提供一个公共的通信平台。 C.是ORACLE客户端访问服务器的一个工具,通过它可以向服务器发送SQL命令。 D.是ORACLE客户端到客户端的点对点的通信工具,用来传递各个客户端的数据。 2.命令sqlplus /nolog的作用是(C ) A.仅创建一个ORACLE实例,但并不打开数据库. B.仅创建一个ORACLE实例,但并不登录数据库. C.启动sqlplus,但并不登录数据库 D.以nolog用户身份启动sqlplus 3.在SQL*PLUS中显示EMP表结构的命令是( B) A.LIST EMP B.DESC EMP C.SHOW DESC EMP D.STRUCTURE EMP 4.在SQL*PLUS环境中可以利用DBMS_OUTPUT包中的PUT_LINE方法来回显服务器端变量的值 但在此之前要利用一个命令打开服务器的回显功能,这一命令是( D) A.set server on B.set serverecho on C.set servershow on D.set serveroutput on 5.在SQL*PLUS中执行刚输入的一条命令用(A ) (A) 正斜杠(/) (B) 反斜杠(\) (C) 感叹号(!) (D) 句号(.) 6.在SQL*PLUS中显示当前用户的命令是(C ) (A) show account (B) show accountname (C) show user

数据库应用

单选题
机考 201802 数据库应用
1、下面哪个命令可以关闭当前表文件( )(2 分)
A.CLOSE B.CLEAR C.USE D.SET CLEAR OFF
我的答案:C
得分:2 分
2、在“学生”表中建立各项索引,操作步骤是( ) ①选择“索引”选项卡; ②在项目管理器中选定“学生”表,单击“修改”按钮; ③建立各项索引,即输入“索引名”、“类型”、“表达式”等内容; ④单击“确定”按钮。(6 分)
A.①②③④ B.②③①④ C.②①③④ D.①③②④

我的答案:C 得分:6 分
3、在 Visual FoxPro 中,非当前工作区中字段的引用格式是( )(2 分) A.工作区别名!字段名 B.工作区别名 字段名 C.工作区别名*字段名 D.工作区别名.字段名
我的答案:D 得分:2 分
4、下列说法正确的是( )(2 分) A.视图文件的扩展名是 .vcx B.查询文件中保存的是查询结果 C.“查询设计器”实质上是 SQL-SELECT 命令的可视化设计方法 D.查询是基于数据库的虚拟的表
我的答案:C 得分:2 分

5、在命令窗口中键入下面哪个命令并按回车,可以退出 Visual FoxPro( )(2 分) A.CLOSE B.CLEAR C.QUIT D.CANCEL
我的答案:C
得分:2 分
6、在“成绩管理”项目中,使用“查询向导”创建查询的操作步骤是( ) ①在“新建查询”对话框中,单击“查询向导”图片按钮; ②在“向导选取”对话框中,选择“查询向导”,并单击“确定”; ③按照“查询向导”提示的步骤完成各项设置; ④在“另存为”对话框中保存查询; ⑤打开“成绩管理”项目,选择“数据”选项卡上的“查询”,然后单击“新建”命令 按钮;(6 分) A.①②③④⑤ B.①②③⑤④ C.⑤①②③④ D.⑤②③①④
我的答案:C

数据库及其应用

数据库及其应用重考复习资料 一、名词解释 1、数据处理:对各种数据的进行收集、存储、分类、计算、加工、检索和传输的过程 2、对象:是类的实例,类是对于拥有数据和一定行为特征的对象集合的描述。每个对象都有其属性和方法,并能响应特定的事件。可以通过对象的事件、属性和方法来处理对象 3、ODBC:开放式数据库互连ODBC是一种用于数据库服务器的标准协议,通过ODBC可访问多种数据库中的数据,可安装多种数据库的ODBC驱动程序,从而使VFP可以与该数据库相连,访问数据库中的数据。 4、超关键字:二维表中能唯一确定记录的一个或几个列的组称为“超关键字后(superkey)”。如果是用单一的列构成关键字,则称其为“单一关键字(Single Key)”;如果是用两个或两个以上的列构成关键字,则称其为“合成关键字(Composite Key)”。 5、主控索引:在复合索引的多个索引中,在某一时刻只有一个索引对表起作用,这个索引标志称为主控索引。 6、事件 7、类 8、数据处理 二、单项选择题 1、表单文件的扩展名是( B )。 A. PRG B. SCX C. MPR D. VCX 2、Visual FoxPro是一个(D )。 A. 数据库管理员 B. 数据库 C. 数据库系统 D. 数据库管理系统 3、在Visual FoxPro环境下,运行表单的命令是( A )。 A. DO FORM <表单名> B. DO <表单名> C. CREATE FORM <表单名> D. REPORT FORM <表单名> 4、检测数据库文件指针是否已到文件头的函数是(D )。

A. BOF() B. EOF() C. END() D. FIEL() 5、逻辑运算符的优先顺序是(a )。 A. .NOT.、 .AND. 、.OR. B. .NOT.、 .OR.、 .AND. C. .AN D.、 .OR. 、.NOT. D. .AND.、 .NOT.、 .OR. 6、设S=“南京大学计算机基础教学部”,从变量S中取出“计算机”三个字的表达式是()。 A. SUBS(S,5,3 ) B. SUBS(S,9,6) C. SUBS(S,9,3) D. SUBS(S,5,6) 7、下列字符中不能做变量名的开头的是( d )。 A. 英文字母 B. 下划线 C. 汉字 D. 数字 8、将当前表ZGB.DBF中男职工的工号、姓名、工资、奖金四个字段的数据复制成GZB1 .DBF表文件,应使用命令()。 A. COPY TO GZB1 FIEL工号,姓名,工资,奖金FOR 性别="男" B. COPY GZB1 FIEL工号,姓名,工资,奖金FOR 性别="男" C. COPY TO GZB1 FOR性别="男" D. COPY TO GZB1 FIEL工号,姓名,工资,奖金 9、根据需要,可以把查询的结果输出到不同的目的地。以下不可以作为查询的输出类型的是(D)。 A. 自由表 B. 报表 C. 临时表 D. 表单 10、关系模型的基本结构是(A )。 A. 二维表 B. 树形结构 C. 无向图 D. 有向图 11、表单的前景色由属性( C )的值确定。 A. BackColor B. Picture C. ForeColor D. Caption 12、在数据库表字段的扩展属性中,通过对()可以限定字段内容取值的范围。 A. 字段格式 B. 输入掩码 C. 字段标题和注释 D. 字段级规则 13、DBA是()。 A. 数据库管理员 B. 数据库 C. 数据库系统 D. 数据库管理系统 14、页框(PageFrame)能包容的对象是()。 A. 列(Column) B. 标头(Header) C. 页面(Page) D. 表单集(FormSet) 15、下列说法正确的是()。 A. 当数据库打开时,该库中的表将自动打开。

数据库原理与应用考试试题及答案

1.消除了非主属性对码的部分函数依赖的1NF的关系模式,必定是()。 A.1NF B.2NF C.3NF D.BCNF 2 .下列关于数据库恢复说法不正确的是() A.事物故障恢复采用日志文件 B.系统故障恢复采用日志文件 C.介质故障恢复采用日志文件 D.以上故障恢复均不采用日志文件 3.下面()不是常用的数据模型? A.关系模型 B.线性模型 C.层次模型 D.网状模型 4 .在数据库设计中,将E-R图转换成关系数据模型的过程属于()A.需求分析阶段B.概念设计阶段 C.逻辑设计阶段 D.物理设计阶段 5 .DBMS中实现事务持久性的子系统是() A.安全性管理子系统 B.完整性管理子系统 C.并发控制子系统 D.恢复管理子系统 6.数据库与文件系统的根本区别在于() A.提高了系统效率 B.方便了用户使用 C.数据的结构化 D.节省了存储空间 7.SQL语言是()的语言,容易学习。 A.过程化 B.非过程化 C.格式化 D.导航式 8.为了防止一个用户的工作不适当地影响另一个用户,应该采取()。 A.完整性控制 B.访问控制

C.安全性控制 D.并发控制 9.DBMS普遍采用()方法来保证调度的正确性。 A.索引 B.授权 C.封锁 D.日志 10.事务T在修改数据R之前必须先对其加X锁,直到事务结束才释放,这是()。 A.一级封锁协议 B.二级封锁协议 C.三级封锁协议 D.零级封锁协议 11.下面的选项不是关系数据库基本特征的是()。 A.不同的列应有不同的数据类型 B.不同的列应有不同的列名 C.与行的次序无关 D.与列的次序无关 12.关系模型中实现实体间N:M联系是通过增加一个()。 A.关系实现 B.属性实现 C.关系或一个属性实现 D.关系和一个属性实现 13.关系代数运算是以()为基础的运算。 A.关系运算 B.谓词演算 C.集合运算 D.代数运算 14.数据库设计可划分为七个阶段,每个阶段都有自己的设计内容,“为哪些关系,在哪些属性上、键什么样的索引”这一设计内容应该属于()设计阶段。 A.概念设计 B.逻辑设计 C.物理设计 D.全局设计 15.SQL语言中的COMMIT语句的主要作用是()。 A.结束程序 B.返回系统 C.提交事务 D.存储数据 16.一个事务的执行,要么全部完成,要么全部不做,一个事务中对数据库的所有操作都是一个不可分割的操作序列的属性是()。 A.原子性 B.一致性 C.独立性 D.持久性 17.关系的主属性不能取空值,属于()

数据库的发展与应用

数据库的发展与应用 数据库是指长期保存在计算机的存储设备上、并按照某种模型组织起来的、可以被各种用户或应用共享的数据的集合。数据库管理系统是指提供各种数据管理服务的计算机软件系统,这种服务包括数据对象定义、数据存储与备份、数据访问与更新、数据统计与分析、数据安全保护、数据库运行管理以及数据库建立和维护等。 由于企业信息化的目的就是要以现代信息技术为手段,对伴随着企业生产和经营过程而产生的数据进行收集、加工、管理和利用,以改善企业生产经营的整体效率,增强企业的竞争力。所以,数据库是企业信息化不可缺少的工具,是绝大部分企业信息系统的核心。 数据库技术的发展,已经成为先进信息技术的重要组成部分,是现代计算机信息系统和计算机应用系统的基础和核心。数据库技术最初产生于20世纪60年代中期,根据数据模型的发展,可以划分为三个阶段:第一代的网状、层次数据库系统;第二代的关系数据库系统;第三代的以面向对象模型为主要特征的数据库系统。 第一代数据库的代表是1969年IBM公司研制的层次模型的数据库管理系统IMS和70年代美国数据库系统语言协商CODASYL下属数据库任务组DBTG提议的网状模型。层次数据库的数据模型是有根的定向有序树,网状模型对应的是有向图。这两种数据库奠定了现代数据库发展的基础。这两种数据库具有如下共同点:都支持三级模式,如外模式、模式、内模式。保证数据库系统具有数据与程序的物理独立性和一定的逻辑独立性;都用存取路径来表示数据之间的联系;都有独立的数据定义语言;都是导航式的数据操纵语言。 第二代数据库的主要特征是支持关系数据模型,包括数据结构、关系操作、数据完整性。他们具有以下特点:关系模型的概念单一,实体和实体之间的连系用关系来表示;以关系数学为基础;数据的物理存储和存取路径对用户不透明;关系数据库语言是非过程化的。 第三代数据库产生于80年代,随着科学技术的不断进步,各个行业领域对数据库技术提出了更多的需求,关系型数据库已经不能完全满足需求,于是产生了第三代数据库。主要有以下特征:1.支持数据管理、对象管理和知识管理;2.保持和继承了第二代数据库系统的技术;3.对其它系统开放,支持数据库语言标准,支持标准网络协议,有良好的可移植性、可连接性、可扩展性和互操作性等。第三代数据库支持多种数据模型(比如关系模型和面向对象的模型),并和诸多新技术相结合(比如分布处理技术、并行计算技术、人工智能技术、多媒体技术、模糊技术),广泛应用于多个领域(商业管理、GIS、计划统计等),由此也衍生出多种新的数据库技术。 分布式数据库允许用户开发的应用程序把多个物理分开的、通过网络互联的数据库当作一个完整的数据库看待。并行数据库通过cluster技术把一个大的事务分散到cluster中的多个节点去执行,提高了数据库的吞吐和容错性。多媒体数据库提供了一系列用来存储图像、音频和视频对象类型,更好地对多媒体数据进行存储、管理、查询。模糊数据库是存储、组织、管理和操纵模糊数据库的数据库,可以用于模糊知识处理。 在现在的社会经济发展形势下,数据库的应用更为广泛,作用也更为重要。可以说数据、计算机硬件和数据库应用,这三者推动着数据库技术与系统的发展。数据库要管理的数据的复杂度和数据量都在迅速增长;计算机硬件平台的发展仍然实践着摩尔定律;数据库应用迅速向深度、广度扩展。尤其是互联网的出现,极大地改变了数据库的应用环境,向数据库领域提出了前所未有的技术挑战。这些因素的变化推动着数据库技术的进步,出现了一批新的数据库技术,如Web数据库技术、并行数据库技术、数据仓库与联机分析技术、数据挖掘与商务智能技术、内容管理技术、海量数据管理技术等。限于篇幅,本文不可能逐一去展开来阐述这些方面的变化,只是从这些变化中归纳出数据库技术发展呈现出的突出特点。

数据库及其应用(选择题)

测验1 一、单选 1、 下列四项中说法不正确的是( )。 (分数:2 分) A. 数据库减少了数据冗余 B. 数据库中的数据可以共享 C. 数据库避免了一切数据的重复 D. 数据库具有较高的数据独立性 标准答案是:C。 2、 单个用户使用的数据视图的描述称为()。 (分数:2 分) A. 外模式 B. 概念模式 C. 内模式 D. 存储模式 标准答案是:A。 3、 数据库物理存储方式的描述称为( ) 。

(分数:2 分) A. 外模式 B. 内模式 C. 概念模式 D. 逻辑模式 标准答案是:B。 4、 在下面给出的内容中,不属于DBA职责的是( ) 。 (分数:2 分) A. 定义概念模式 B. 修改模式结构 C. 编写应用程序 D. 编写完整性规则 标准答案是:C。 5、 在数据库三级模式间引入二级映象的主要作用是( ) 。 (分数:2 分) A. 提高数据与程序的独立性 B. 提高数据与程序的安全性

C. 保持数据与程序的一致性 D. 提高数据与程序的可移植性 标准答案是:A。 6、 DB、DBMS和DBS三者之间的关系是( ) 。 (分数:2 分) A. DB包括DBMS和DBS B. DBS包括DB和DBMS C. DBMS包括DB和DBS D. 不能相互包括 标准答案是:B。 7、位于用户和操作系统之间的一层数据管理软件是()。(分数:2 分) A. DBS B. DB C. DBMS D. MIS 标准答案是:C。 8、数据库的三级模式中,数据的全局逻辑结构用()来描述。(分数:2 分) A. 子模式 B. 用户模式 C. 模式

数据库及软件开发部分知识讲解

数据库及软件开发部分 1.Assess中,想建立自定义数据库应选择进入(空数据库) 2.Assess中,数据库的输入,显示和更新都在(数据表视图)中完成。 3.Assess中,用于存放某一类型数据的是。答:表 4.Assess中,要修改表结构就选择的按钮答:设计 5.一般会计核算软件的财务数据是()文件答:数据库 6.目前应用最广泛的数据库类型是答:关系型 7.Assess是()的数据库答:小型 8.Assess97数据库包括几个对象答:6 9.Assess可以通过()方式从外部获取数据答:导入 10.会计软件开发需要几个阶段答:6 11.会计软件开发中系统测试是从()全面测试和检验是否符合系统分析目标和总体设计方案 答:上到下 12.结构化分析方法的主要特点是答:自顶向下,逐层分解 13.数据流程图共有几种基本符号答:4 14.在数据库应用领域中,Assess数据库属于()答:关系型数据库 15.下列关于数据库系统的正确叙述是()答:数据库系统减少了数据冗余 16.Assess数据库文件的扩展名为答:.Mdb 17.下列数据库对象中()是数据库的基础答:表 18.在Assess数据库中,通过()搜索符合指定条件的信息答:查询 19.在Assess数据库可以使用()完成自动化动作答:宏 20.在Assess数据库中,表的一行称为()答:记录 21.在Assess数据库中,向数据表中输入数据时限制字段数据取值范围称为()答:有效性规则 22.软件需求分析是开发会计信息系统的第()阶段答:2 23.会计软件开发中是由()提供系统测试标准,制定测试确定测试方法答:系统分析员 24.系统开发过程中最关键阶段()答:分析与设计 25.在需求分析阶段,强调的是()答:逻辑描述 26.数据表中“字段中”的正确叙述是()答:在一个数据表中, 必须有一个字段名所代表的列魏主关键字段 27.在Assess数据库中,向数据表中输入数据时限制字段称为()答:有效性规则 28.建立数据表之间的关系后,如果要修改关键字,必须删除关系是为了保证()答:引用完整 性 29.能经常使用的文件组合一起存在磁盘上,从而提高文件文件读写速度的是()答:磁盘碎片 整理程序 30.在复杂信息系统开发过程中,采用的方法是()答:面向对象法 多选题 1.Assess数据类型包括(ACD ) A文本B字母C货币D数字 2.Access 中实现报表输出功能的办法(AB ) A和报表向导建立报表B从多个表产生报表 C 导入报表D数据报表 3.以下各项属于大型数据库的有(BCD )

数据库原理和应用教程第4版习题与解析

习题参考答案 第1章习题参考答案 一、选择题 1. C 2. B 3. D 4. C 5. D 6. B 7. A 8. B 9. D 10. B 11. C 12. D 13. D 14. D 15. B 16. C 17. D 18. A 19. D 20. A 21. D 22. D 23. C 24. A 25. C 二、填空题 1. 数据库系统阶段 2. 关系 3. 物理独立性 4. 操作系统 5. 数据库管理系统(DBMS) 6. 一对多 7. 独立性 8. 完整性控制 9. 逻辑独立性 10. 关系模型 11. 概念结构(逻辑) 12. 树有向图二维表嵌套和递归 13. 宿主语言(或主语言) 14. 数据字典 15. 单用户结构主从式结构分布式结构客户/服务器结构浏览器/服务器结构 16. 现实世界信息世界计算机世界 三、简答题 1、简述数据库管理技术发展的三个阶段。各阶段的特点是什么? 答:数据库管理技术经历了人工管理阶段、文件系统阶段和数据库系统阶段。 (1)、人工管理数据的特点: A、数据不保存。 B、系统没有专用的软件对数据进行管理。 C、数据不共

享。D、数据不具有独立性。 (2)、文件系统阶段的特点: A、数据以文件的形式长期保存。 B、由文件系统管理数据。 C、程序与数据之间有一定的独立性。 D、文件的形式已经多样化 E、数据具有一定的共享性 (3)、数据库系统管理阶段特点: A、数据结构化。 B、数据共享性高、冗余度底。 C、数据独立性高。 D、有统一的数据控制功能。 2、从程序和数据之间的关系来分析文件系统和数据库系统之间的区别和联系 答:数据管理的规模日趋增大,数据量急剧增加,文件管理系统已不能适应要求,数据库管理技术为用户提供了更广泛的数据共享和更高的数据独立性,进一步减少了数据的余度,并为用户提供了方便的操作使用接口。数据库系统对数据的管理方式与文件管理系统不同,它把所有应用程序中使用的数据汇集起来,以记录为单位存储,在数据库管理系统的监督和管理下使用,因此数据库中的数据是集成的,每个用户享用其中的一部分。 3、简述数据库、数据库管理系统、数据库系统三个概念的含义和联系。 答:数据库是指存储在计算机内、有组织的、可共享的数据集合。 数据库管理系统是软件系统的一个重要组成部分,它通过借助操作系统完成对硬件的访问,并对数据库的数据进行存取、维护和管理。 数据库系统是指计算机系统中引入数据库后的系统构成。它主要由数据库、数据库用户、计算机硬件系统和计算机软件系统几部分组成。 三者的联系是:数据库系统包括数据库和数据库管理系统。数据库系统主要通过数据库管理系统对数据库进行管理的。 4、数据库系统包括哪几个主要组成部分?各部分的功能是什么?画出整个数据库系统的层次结构图。 答:数据库系统包括:数据库、数据库用户、软件系统和硬件系统。 数据库主要是来保存数据的。 数据库用户是对数据库进行使用的人,主要对数据库进行存储、维护和检索等操作。 软件系统主要完成对数据库的资源管理、完成各种操作请求。 硬件系统主要完成数据库的一些物理上的操作,如物理存储、输入输出等。

当前数据库应用领域的调查

当前数据库应用领域的调查 学号:姓名:冯冠玺 数据库的应用领域非常广泛,不管是家庭、公司或大型企业,还是政府部门,都需要使用数据库来存储数据信息。传统数据库中的很大一部分用于商务领域,如证券行业、银行、销售部门、医院、公司或企业单位,以及国家政府部门、国防军工领域、科技发展领域等。 随着信息时代的发展,数据库也相应产生了一些新的应用领域。主要表现在下面6个方面。 1.多媒体数据库 这类数据库主要存储与多媒体相关的数据,如声音、图像和视频等数据。多媒体数据最大的特点是数据连续,而且数据量比较大,存储需要的空间较大。 2.移动数据库 该类数据库是在移动计算机系统上发展起来的,如笔记本电脑、掌上计算机等。该数据库最大的特点是通过无线数字通信网络传输的。移动数据库可以随时随地地获取和访问数据,为一些商务应用和一些紧急情况带来了很大的便利。 3.空间数据库 这类数据库目前发展比较迅速。它主要包括地理信息数据库(又称为地理信息系统,即GIS)和计算机辅助设计(CAD)数据库。其中地理信息数据库一般存储与地图相关的信息数据;计算机辅助设计数据库一般存储设计信息的空间数据库,如机械、集成电路以及电子设备设计图等。 4.信息检索系统 信息检索就是根据用户输入的信息,从数据库中查找相关的文档或信息,并把查找的信息反馈给用户。信息检索领域和数据库是同步发展的,它是一种典型的联机文档管理系统或者联机图书目录。 5.分布式信息检索 ; 这类数据库是随着Internet的发展而产生的数据库。它一般用于因特网及远距离计算机网络系统中。特别是随着电子商务的发展,这类数据库发展更加迅猛。许多网络用户(如个人、公司或企业等)在自己的计算机中存储信息,同时希望通过网络使用发送电子邮件、文件传输、远程登录方式和别人共享这些信息。分布式信息检索满足了这一要求。

简单数据库设计实例

数据库设计实例 数据库设计是数据库应用系统设计的一个组成部分,其核心是针对于特定的应用环境,设计合理的数据模型,创建数据库及其应用系统,使之能够有效地存储和处理数据,以满足用户的应用需求。从实用角度出发,数据库设计可分为如下几个步骤: 第一步:创建概念数据模型 ◆确定实体和关系 ◆确定属性 ◆规化数据 第二步:生成物理数据模型 第三步:验证设计 为便于学习者理解和掌握,下面结合具体的实例来讲解和展示数据库设计的详细过程。假定我们要开发一个小型的ERP系统,以管理公司部资源,其应用业务场景描述如下: v512工作室由IT业界专业人士组成,在提供高端IT培训业务的同时,还自主制作并免费发布大量公益性学习资源,工作室以公司形式运营,目前共拥有18名员工,这些员工分属于4个部门,且员工之间存在上下级管理关系。计划将来根据业务的发展设立更多的部门,聘用更多的员工。为保证质量,工作室对其成员的各项专业技能进行了级别评定。 8.5.1 确定实体和关系 1. 确定高级别的活动 要确定本ERP系统数据库设计中的实体和实体间关系,首先应明确要基于该数据库执行的高级别活动,这里所谓的高级别活动是指从用户的视角出发,确定本数据库设计中系统所涉及到的业务活动。比如,存储和维护员工的个人信息等。 在前述的应用业务场景中,v512工作室需要考虑的高级别活动包括: -聘用新员工 -解雇现有员工 -维护员工的个人信息 -增设新部门 -裁撤现有部门 -维护部门信息 -维护工作室业务相关的技能信息 -维护各员工的业务技能掌握情况 2. 确定实体 接下来要确定的是,针对上述的高级别活动需要记录和维护有关哪些事物的信息,这些事物将被转换为实体。其中,员工相关信息可抽象为“Employee”实体、部门相关信息可抽象为“Department”实体、技能相关信息抽象为“Skill”实体,为规和方便起见,这些实体均采用英文命名,并尽量在名称中体现其含义。 3. 确定关系 进一步对上述高级活动进行分析,以确定实体间存在何种关系。具体包括: -Employee-Department实体之间存在隶属关系 员工必须且只能隶属于某一个特定的部门,一个部门可以包含0~多名员工,此为一对多关系。 这种从两个方向上对同一个关系的细化描述被称为关系的角色,每个关系都对应两种角色。

数据库及其应用(选择题)

一、单选 1、 下列四项中说法不正确的是( )。 (分数:2 分) A. 数据库减少了数据冗余 B. 数据库中的数据可以共享 C. 数据库避免了一切数据的重复 D. 数据库具有较高的数据独立性 标准答案是:C。 2、 单个用户使用的数据视图的描述称为()。 (分数:2 分) A. 外模式 B. 概念模式 C. 内模式 D. 存储模式 标准答案是:A。 3、 数据库物理存储方式的描述称为( ) 。 (分数:2 分) A. 外模式

C. 概念模式 D. 逻辑模式 标准答案是:B。 4、 在下面给出的内容中,不属于DBA职责的是( ) 。 (分数:2 分) A. 定义概念模式 B. 修改模式结构 C. 编写应用程序 D. 编写完整性规则 标准答案是:C。 5、 在数据库三级模式间引入二级映象的主要作用是( ) 。 (分数:2 分) A. 提高数据与程序的独立性 B. 提高数据与程序的安全性 C. 保持数据与程序的一致性 D. 提高数据与程序的可移植性 标准答案是:A。 6、 DB、DBMS和DBS三者之间的关系是( ) 。

(分数:2 分) A. DB包括DBMS和DBS B. DBS包括DB和DBMS C. DBMS包括DB和DBS D. 不能相互包括 标准答案是:B。 7、位于用户和操作系统之间的一层数据管理软件是()。(分数:2 分) A. DBS B. DB C. DBMS D. MIS 标准答案是:C。 8、数据库的三级模式中,数据的全局逻辑结构用()来描述。(分数:2 分) A. 子模式 B. 用户模式 C. 模式 D. 存储模式 标准答案是:C。 9、用户涉及的数据逻辑结构用()描述。(分数:2 分) A. 模式 B. 存储模式 C. 概念模式 D. 子模式 标准答案是:D。 10、

《数据库及应用》(自考)课后习题参考答案(部分)

《数据库及应用》课后习题参考答案(部分) 第一章 数据库基础知识 1、实体标识符 2、记录(元组),属性(字段) 3、表、字段 4、数据的正确性和一致性 5、可作为键的属性 6、对关系逐步分解的过程 7、书号 8、3NF 、2NF 9、 R S R S 2=2(R ×S) 第二章 Access2000综述 1、一、.mdb 2、表、查询、报表、窗体、数据访问页 3、外面 4、打开数据库 5、查询 1=1

第三章数据库的创建与管理 1、详细信息、小图标 2、关闭Access 3、删除、删除 4、数据库 5、工具、数据库使用工具 第四章表与关系 1、设计 2、导入 3、链接 4、链接 5、like”W?????” “专科”or “本科” or “研究生” >=1000 and <=2000 >=#1960-01-01# and <=#2000-01-01# “男” or “女” >=1011 and <=1999 >=10 6、空值、空格 7、空、空格 8、自动编号 9、一个、多个 10、空值、升序11、提高查询效率12、参照完整性 第五章查询 1、1)select 姓名from student where 年龄>=19 and 年龄<=20 and 性别=“男” 2)select 课程名,学时数from course where 课程名=“英语” 3)select 姓名,课程名,成绩from student,course,grade where student.学号=grade.学号and course.课程号=grade.课程号 4)select 姓名,性别,年龄+1 from student 5) select * from student order by 年龄 6)select 姓名,课程名,成绩from student,course,grade where student.学号=grade.

数据库及其应用补考复习资料(一)

《数据库及其应用》补考复习资料(一) 一、单项选择题:(每题2分,共20题,共40分) 1、下列描述的实体联系方式中错误的是()。 A、一对一 B、一对二 C、一对多 D、多对多 2、文件系统与数据库系统的主要区别是()。 A、文件系统简单,而数据库系统复杂 B、文件系统不能解决数据冗余和数据独立性问题,而数据库系统可以解决 C、文件系统管理的数据量少,而数据库系统可以管理大量数据 D、文件系统只能管理数据文件,而数据库系统可以管理各种类型文件 3、不同实体之所以不同是根据()的不同加以区分的。 A、主键 B、外键 C、属性的语义、类型和个数 D、名称 4、存放金额数据,不能使用的字段数据类型是()。 A、文本型 B、单精度数字型 C、双精度数字型 D、货币型 5、存放身份证号码最好采用()。 A、数字型中的字节型 B、数字型中的整型 C、数字型中的长整型 D、文本型并设置字段大小为15 6、下列字段的数据类型中,不能作为主键的数据类型是()。 A、文本 B、是/否 C、自动编号 D、数字 7、在表的设计视图中创建表,必须对每个字段进行定义的是()。 A、字段名称和说明 B、字段名称、数据类型和说明 C、字段名称和标题 D、字段名称和数据类型 8、通过输入数据创建表,下列说法中错误的是()。 A、系统自动提供10列21行的空表供用户输入数据

B、在一列中可以输入不同类型的数据 C、用户可以更改字段名 D、在空表的一列中均输入日期值,则该列字段将被指定为日期型 9、建立关系的两个表,主表与相关表()。 A、具有相同的主键 B、主表的主键字段必须出现在相关表的字段中 C、相关表没有重复的值 D、主表可以有重复的值 10、Access中的基本查询类型是()。 A、选择 B、交叉表 C、参数 D、操作 11、在查询设计视图窗口中设置()行,可以使该字段只用于设置准则,而查询结果并不出现在查询数据表视图中。 A、准则 B、排序 C、显示 D、字段 12、如果在查询准则中输入Like张[小中大]军,能查到的是()。 A、张伟军 B、张广军 C、张利军 D、张大军 13、下列关于选择查询论述中错误的是()。 A、查询数据源可以来自于一个表 B、查询数据源可以来自于多个表或其他查询 C、查询数据源可以来自于一个数据库 D、查询数据源可以来自于网络数据库服务器中的某个表 14、下列设置的查询工资在1500元到2000元之间的准则正确的是()。 A、>=1500 or <=2000 B、1500 and 2000 C、Between 1500 and 2000 D、Between >=1500 and <=2000 15、假定职工表只含姓名和出生日期两个字段,现要求在查询中建立一个年龄字段并计算出职工的年龄,下列设置中错误的是()。 A、年龄Year(Date())-Year([]生日期]) B、年龄Year(Date())-Year(出生日期) C、年龄Year(Now())-Year([]生日期]) D、年龄Date()-Year(出生日期)

数据库应用考试题目+答案

1.在安装SQL Server 2000时,“仅客户端工具”、“服务器和客户端工具”及“仅连接”等安装定义有什么差别? 答: ●仅客户端工具:仅安装客户端关系数据库管理工具。此选项包含管理 SQL Server 的 客户端工具和客户端连接组件。 ●服务器和客户端工具:执行安装服务器和客户端工具以创建具有管理能力的关系数 据库服务器。 ●仅连接:仅安装关系数据库客户端连接组件,包括连接 SQL Server 2000 命名实例 所需的 MDAC 2.6(Microsoft 数据访问组件)。该选项只提供连接工具,不提供客户端工具或其它组件。 2.一个数据库中包含哪几种文件? 答: ●主数据库文件:用来存储数据库的启动信息以及部分或者全部数据,是所有数据库文 件的起点,包含指向其它数据库文件的指针。一个数据库只能有一个主数据库文件。 ●辅助数据库文件:用于存储主数据库文件中未存储的剩余数据和数据库对象,一个数 据库可以没有辅助数据库文件,但也可以同时拥有多个辅助数据库文件 ●事务日志文件:一个存储数据库的更新情况等事务日志信息,当数据库损坏时,管理 员使用事务日志恢复数据库;每一个数据库至少必须拥有一个事务日志文件,而且允许拥有多个日志文件。 3.事务文件和数据文件分开存放有什么好处? 答: ●因为利用事务日志备份可以将数据库恢复到特定的即时点(如输入不想要的数据之前 的那一点)或故障发生点。在媒体恢复策略中应考虑利用事务日志备份。 4.什么是批处理?使用批处理有何限制? 答: ●包含一个或多个T-SQL语句的组,从应用程序将一次性发送到SQL Server执行,SQL Server批处理语句作为整体编译成一个可执行单元。 ●限制:如不能够在同一个批处理中更改表,然后引用新列。如在一个批处理程序中, 有两条语句。第一条语句用来在一张表中插入一个字段,如在User表中插入员工的出生年月;第二条语句则用来引用这个列,如根据身份证号码来推算出这个员工的出身年月并把这个值赋值给这个第一条语句创建的出身年月字段。 5.数据检索时,COMPUTE和COMPUTE BY产生的结果有何不同? 答: ●当 COMPUTE 带 BY 子句时,符合 SELECT 条件的每个组都有两个结果集: ?每个组的第一个结果集是明细行集,其中包含该组的选择列表信息。 ?每个组的第二个结果集有一行,其中包含该组的 COMPUTE 子句中所指定的聚合 函数的小计。 ●当 COMPUTE 不带 BY 子句时,SELECT 语句有两个结果集: ?每个组的第一个结果集是包含选择列表信息的所有明细行。 ?第二个结果集有一行,其中包含 COMPUTE 子句中所指定的聚合函数的合计。6.什么是索引?索引分为哪两种?各有什么特点? 答: ●数据库中的索引与书籍中的目录类似。在一本书中,利用目录可以快速查找所需信息, 无须阅读整本书。在数据库中,索引使数据库程序无须对整个表进行扫描,就可以在其中找到所需数据。

数据库技术及其应用

? ?

《数据库技术及应用》课程标准 学分:2 参考学时:28学时 一、课程概述 1.课程性质 本课程是软件技术专业的专业必修课程,是基于C/S与B/S结构的应用软件开发技术的必修课,为.NET应用程序、JA V A应用程序等开发提供后台数据服务,是大型数据库Oracle应用系统开发的基础。本课程是理论与实践并重的课程,既要掌握概念,又要动手实践。主要培养学生数据库管理和应用的能力,以及结合高级程序设计语言进行数据库应用系统、管理信息系统开发的能力,是软件技术专业中.NET课程系列中的一门基础课程,是《.NET软件开发技术1-C#》、《.NET软件开发技术https://www.wendangku.net/doc/1510725603.html,》、.NET方向的学习型实训和生产性实训的前导课程,本课程在以核心职业能力为 培养目标的课程体系中,起到承前启后的基础作用。 2.设计思路 本课程在针对软件编程、软件测试、软件技术支持等岗位职业能力分析的基础上,为培养学生“能够按照任务需求进行设计程序的工作,能够按照程序设计文档编写程序,能够按照任务的测试计划测试程序)”等核心职业能力而设置。本课程根据“使学生能够熟练使用中英文操作系统平台及软件开发工具,具备初步的系统分析、设计及独立开发技能,并成为具有严格、规范的程序开发能力的合格程序员”的目标要求选定课程内容。该门课程以形成数据库管理能力和利用高级编程语言进行数据库编程能力为基本目标,紧紧围绕完成工作任务的需要来选择和组织课程内容,突出工作任务与知识的联系,让学生在学习、实践活动的基础上掌握知识,增强课程内容与职业能力要求的相关性,提高学生的就业能力。 本课程的教学任务是按照知识结构、认知规律和项目进行分割的,教师应根据每个教学任务的知识点的要求,讲授基本概念、专业技术,采用教学案例演示等教学法,使学生充分理解基本概念和技术,用案例作为学生的训练项目。 二、课程目标 本课程的教学目标是使学生学习完本课程后,应当能够掌握数据库系统应用、设计、开发的基

数据库原理与应用答案

《数据库原理与应用》(第三版)习题参考答案 第 1 章数据库概述 1.试说明数据、数据库、数据库管理系统和数据库系统的概念。 答:数据是描述事物的符号记录。 数据库是长期存储在计算机中的有组织的、可共享的大量数据的集合。 数据库管理系统是一个专门用于实现对数据进行管理和维护的系统软件。 数据库系统是指在计算机中引入数据库后的系统,一般由数据库、数据库管理系统(及相关的实用工具)、应用程序、数据库管理员组成。 2.数据管理技术的发展主要经历了哪几个阶段? 答:文件管理和数据库管理。 3.与文件管理相比,数据库管理有哪些优点? 答:与文件系统管理数据相比,数据库系统管理数据带来了如下好处:将相互关联的数据集成在一起,较少的数据冗余,程序与数据相互独立,保证数据的安全可靠,最大限度地保证数据的正确性,数据可以共享并能保证数据的一致性。 4.在数据库管理方式中,应用程序是否需要关心数据的存储位置和存储结构?为什么? 答:不需要。因为数据库管理系统提供了逻辑独立性和物理独立性。 5.在数据库系统中,数据库的作用是什么? 答:数据库是数据的汇集,它以一定的组织形式保存在存储介质上。 6.在数据库系统中,应用程序可以不通过数据库管理系统而直接访问数据文件吗? 答:不能 7.数据独立性指的是什么?它能带来哪些好处? 答:数据独立性是指应用程序不会因数据的物理表示方式和访问技术的改变而改变,即应用程序不依赖于任何特定的物理表示方式和访问技术,它包含两个方面:逻辑独立性和物理独立性。 物理独立性是指当数据的存储位置或存储结构发生变化时,不影响应用程序的特性; 逻辑独立性是指当表达现实世界的信息内容发生变化时,不影响应用程序的特性。 8.数据库系统由哪几部分组成,每一部分在数据库系统中的作用大致是什么? 答:数据库系统一般包括数据库、数据库管理系统(及相应的实用工具)、应用程序和数据库管理员四个部分。数据库是数据的汇集,它以一定的组织形式保存在存储介质上;数据库管理系统是管理数据库的系统软件,它可以实现数据库系统的各种功能;应用程序专指以数据库数据为基础的程序,数据库管理员负责整个数据库系统的正常运行。 第2章数据模型与数据库结构 1.解释数据模型的概念,为什么要将数据模型分成两个层次? 答:答:数据模型是对现实世界数据特征的抽象。数据模型一般要满足三个条件:第一是数

相关文档
相关文档 最新文档