局域网图书资料查询系统.docx
- 文档编号:10648647
- 上传时间:2023-02-22
- 格式:DOCX
- 页数:26
- 大小:33.32KB
局域网图书资料查询系统.docx
《局域网图书资料查询系统.docx》由会员分享,可在线阅读,更多相关《局域网图书资料查询系统.docx(26页珍藏版)》请在冰豆网上搜索。
局域网图书资料查询系统
图书资料查询系统
摘要:
随着社会经济的迅速发展和科学技术的全面进步,计算机事业的飞速发展,以计算机与通信技术为基础的信息系统正处于蓬勃发展的时期。
随着经济文化水平的显著提高,人们对生活质量及工作环境的要求也越来越高。
书籍做为人类的精神食粮,在现代社会中越来越受到重视,大量的书籍出现在市场上,人们有了各种各样不同的选择。
与此同时,为了管理大量的图书,图书仓库也大量的出现,仓库的管理问题也就提上了日程。
随着图书的大量增加,其管理难度也越来越大,如何优化仓库的日常管理也就成为了一个大众化的课题。
关键词:
C/S结构,局域网,数据库,SQL语言,PowerBuilder6.5
第一章绪论
§1.1 数据库技术
数据库技术作为数据管理技术,是计算机软件领域的一个重要分支,产生于60年代末。
现已形成相当规模的理论体系和实用技术。
优秀的数据库设计是应用成功的基石。
万万丈高楼平地起,数据库设计如同高楼的基石,是开发高品质应用的前提。
1.1.1数据库的体系结构
数据的体系结构分成三级:
内部级(Internal),概念级(Conceptual)和外部级(External)。
这个三级结构有时也称为“三级模式结构”。
外部级:
最接近用户,是单个用户所能看到的数据特性。
单个用户使用的数据视图的描述称为“外模式”。
概念级:
涉及到所有用户的数据定义、是全局的数据视图。
全局视图的描述称为“概念模式”。
内部级:
最接近于物理存储设备,涉及到实际数据存储的结构物理存储数据视图的描述称为“内模式”。
数据库的三级模式结构是数据的三个抽象级别。
它把数据的具体组织留给DBMS
去做,用户只要抽象地处理数据,而不必关心数据在计算机中的表示和存储,这样就减轻了用户使用系统的负担。
1.1.2数据库管理系统(DBMS)
数据库管理系统(DBMS)是指数据库系统中管理数据的软件系统。
DBMS是数据库系统的核心组成部分。
对数据库的一切操作,包括定义、查询、更新及各种控制,都是通过DBMS进行的。
在不同的计算机系统中,由于缺乏统一的标准,即使同种数据模型的DBMS,它们在用户接口、系统功能方面也常常是不相同的。
用户对数据库进行操作,是由DBMS把操作从应用程序带到外部级、概念级、再导向内部级,进而操作存储器中的数据。
DBMS的主要目标,是使数据作为一种可管理的资源处理。
DBMS的主要功能为:
l数据库定义功能:
DBMS提供数据定义语言(DDL)定义数据库的三级结构,包括外模式、概念模式、内模式及基相互之间的映象,定义数据的完整性、安全控制等约束。
因此,在DBMS中应包括DDL的编译程序。
l数据库的操纵功能:
DBMS提供数据操纵语言(DML)实现对数据库中数据的操作。
基本的数据操作分成两类四种:
2检索(查询)
2更新(插入、删除、修改)
l数据库的保护功能:
数据库中的数据是信息社会的战略资源,对数据的保护是至关重要的大事。
DBMS对数据库的保护主要通过四个方面实现:
2数据库的恢复:
在数据库被破坏或数据不正确时,系统有能力把数据库恢复到正确的状态。
2数据库的并发控制:
DBMS的并发控制子系统能防止错误发生,正确处理好多用户、多任务环境下的并发操作。
2数据库的完整性控制:
保证数据库中数据及语义的正确性和有效性,防止任何对数据造成错误的操作。
2数据库的安全性控制:
防止XX的用户蓄谋或无意地存取数据库中的数据,以免数据的泄露、更改或破坏。
2数据库的存储管理:
把各种DML语句转换成低层的文件系统命令,起到数据的存储、检索和更新的作用。
2数据库的维护功能:
它有许多实用程序提供给数据库管理员:
?
数据装载程序
?
备份程序
?
文件重组织程序
?
性能监控程序
2数据字典:
数据库系统中存放三级结构定义的数据库称为数据字典(DD)。
对数据库的操作都要通过访问DD才能实现,通常DD中还存放数据库运行时的统计信息。
1.1.3PowerBuilder与数据库
PowerBuilder与数据库是“配合”与“协调”的关系。
PowerBuilder是客户/服务器体系结构下客户端的开发工具,用于开发客户应用程序。
这个程序首先建立一个与数据库的通信渠道,然后将用户的需求以某种方式传送给数据库服务器。
在应用程序接收到数据库服务器返回的数据后,它分析返回的数据并呈现给用户。
因此我们说,客户应用程序只完成请求和表现数据的工作,是用户操作计算机的人机界面,大多数数据处理是由服务器完成的。
数据库数据器是一个存取数据和管理数据的软件,它针对客户的请求为客户提供数据服务。
这些服务包括数据插入、修改和查询等。
客户对数据库服务器提出请求用的语言是SQL(StrucruredQueryLanguage)。
SQL是大多数数据库服务器使用的查询语言。
因此我们说,PowerBuilder与数据库的关系是“配合”与“协调”的关系。
PowerBuilder完成数据请求、数据表现、菜单、界面等表象方面的工作,而数据库服务器完成数据库的存储管理、并发控制、事务管理、完整性维护、查询优化等工作。
§1.2局域网图书资料查询系统
局域网(LAN)
计算机网络是指将多台具有独立功能的计算机,通过通信线路和通信设备连接起来,在网络软件的支持下实现数据通信和资源共享的计算机系统。
计算机网络的规模有大有小,大的可以覆盖全球,小的仅局限于一个办公室。
现在一般按照网络覆盖的地理范围将计算机网络分为三类:
局域网(LAN)、城域网(MAN)、广域网(WAN)。
局域网是覆盖范围在10公里以内的计算机网络。
局域网传输速度快,一般局限在一个单位内部,例如一所学校或一家企业。
应用程序开发背景
一个数十人的科研或开发小组,搜集了上千册有用的图书资料,其中有一部分分布在个人手中,为了方便大家查阅,需要对每本书的状态进行跟踪,另新进和丢失的图书资料必须得到及时的反映。
系统功能
l图书分类查询,多条件查询,模糊查询
l用户必须登录方能执行各种操作,允许用户在客户机或浏览器修改,添加
删除图书资料,实行松散管理,这建立在用户高度自觉的基础之上,当然也可由管理员在服务器上直接对数据库操作。
l能将查询结果生成报表,并打印输出。
系统运行环境
该系统采用Client/Server模式进行设计:
局域网中有一台服务器,其上运行服务器程序,操作系统为windows2000server,客户机操作为Windows98,其上运行客户端程序。
系统开发工具
该系统采用PowerBuilder6.5进行开发,数据库服务器端为SQLAnywhere5.0 Server;客户端则为SQLAnywhereclient,整个系统在SQLAnywhereLocal端调试完成。
第二章数据库理论基础
§2.1关系型数据库
2.1.1关系模型的基本概念
用二维表格结构表示实体集,外键表示实体间联系的数据模型称为关系模型。
1.二维表格
表2-1是一张职工登记表,这是二维表格
工号姓名年龄性别工资
0001Zhang26男1000
0002Li25女1500
0003Liu29男1000
0004Wang22女1500
表2-1 二维表格实例
为简单起见,对表格数学化,用字母表示表格的内容。
表2-1可用图2-1表示:
2.键(KEY)键由一个或几个属性组成,在实际使用中,有下列几种键:
1)超键(SuperKey):
在关系中能惟一标识元组的属性集称为关系模式的超键。
2)候选键(CandidateKey):
不含有多余属性的超键称为候选键。
也就是在候选键中,若要再删除属性,就不是键了。
3)主键:
(PrimaryKey):
用户选作元组标识的一个侯选键称为主键。
一般,如不加说明,则键是指主键。
3.关系的定义和性质
我们可以用集合的观点定义关系。
关系是一个元数为K(K>=1)的元组的集合。
把关系看成是一个集合,集合中的元素是元组,每个元组的属性个数应相同。
在关系模型中,对关系作了下列规范性限制:
1)关系中每一个属性值都是不可分解的。
2)关系中允许出现相同的元组(没有重复元组)
3)由于关系是一个集合,因此不考虑元组间的顺序,即没有行序。
4)元组中,属性在理论上也是无序的,但在使用时按习惯考虑列的顺序。
2.1.2数据库的设计理论
关系数据库的设计理论主要包括三个方面的内容:
数据依赖、范式,模式设计方法。
其中数据依赖起着核心的作用。
1.函数依赖(Functionaldependency,FD)的定义
设R(U)是一个关系模式,U是R的属性集合,X和Y是U的子集。
对于R(U)的任何一个可能的关系r,如果r中不存在两个元组,它们在X上的属性值相同,而在Y上的属性值不同,则称“Y函数依赖于X”,记作X→Y。
如果X→Y,并且对于X的任一真子集X',都有Y不函数依赖于X',则称“Y完全函数依赖于X”,记作XfY。
若X→Y,但Y不完全函数依赖于X,则称“Y部分函数依赖于X”,记作XPY。
如果X→Y,Y→Z,且Y≮X,X不函数依赖于Y,则称“Z传递函数依赖于X”。
2.范式
在对表的形式进行了规范化定义后,数据结构还有五种规范化定义,定名为规范化模式,称为范式。
在这五种范式中,一般只用前三种,对于常用系统就足够了。
而且这五种范式是“向上兼容”的,即满足第五范式的数据结构自动满足一、二、三、四范式,满足第四范式的数据结构自动满足第一、二、三范式,……,依此类推。
第一范式(firstnormalform,简称1stNF)就是指在同一表中没有重复项出现,如果有则应将重复项去掉。
这个去掉重复项的过程就称之为规范化处理。
在本文所讨论的开发方法里,1stNF实际上是没有什么意义的。
因为我们按规范化建立的指标体系和表的过程都自动保证了所有表都满足1stNF。
第二范式(secondnormalform,简称2ndNF)是指每个表必须有一个(而且仅一个)数据元素为主关键字(primarykey),其它数据元素与主关键字一一对应。
例如,在图l9.7中如果我们将合同号定义为主关键字(其它数据元素中的记录数据都有可能重名,故不能作为主关键字),故只要知道了一个合同记录的合同号,就可以唯一地在同一行中找到该合同的任何一项具体信息。
通常我们称这种关系为函数依赖(functionaldepEndence)关系。
即表中其它数据元素都依赖于主关键字,或称该数据元素唯一地被主关键字所标识。
第三范式(thirdnormalform,简称3rdNF)就是指表中的所有数据元素不但要能够唯一地被主关键字所标识,而且它们之间还必须相互独立,不存在其它的函数关系。
也就是说对于一个满足了2ndNF的数据结构来说,表中有可能存在某些数据元素依赖于其它非关键宇数据元素的现象,必须加以消除。
为防止数据库出现更新异常、插入异常、删除异常、数据冗余太大等现象,关系型数据库要尽量按关系规范化要求进行数据库设计。
下面以教务管理信息系统为例来进行分析。
3.模式设计方法
一个好的模式设计方法应符合下列三条原则:
l表达性:
涉及到两个数据库模式的等价性问题,即数据等价和依赖等价,分别用无损联接和保持函数依赖来衡量。
l分离性:
是指属性间的“独立关系”应该用不同的关系模式表达。
独立联系是我们所考虑的“基本信息单位”。
实际上分离就是清除存储异常和数据冗余现象。
如果能达到这个目的,就分离。
分离的基准就是一系列范式,分离与依赖等价有时是不可兼容的。
l最小冗余性:
要求在分解后的数据库能表达原来数据库的所有信息这个前提下实现。
目的就是节省存储空间,提高对关系的操作效率,清除不必要的冗余。
但要注意,在实际使用中,并不一定要达到最小宙余。
因为有时带点冗余对于查询处理是有好处的。
关系模式的方法基本上可以分为分解与合成两大类。
分解型算法要求输入一个
初始模式集和依赖集,而结果满足数据等价要求。
对于合成型算法只要求输入初始依赖集,结果满足依赖等要求。
但它们依据的基本思想是共同的,即独立的联系独立表示。
§2.2 SQL语言介绍
SQL(StructuredQueryLanguage)即“结构式查询语言”。
SQL虽然名为查询语言,但实际上具有定义、查询、更新和控制等多种功能。
由于它使用方便、功能丰富、语言简单易学,很快得到应用和推广。
从20世纪70年代末起,在推出的关系数据库系统产品ORACLE、SQL/DS、DB2、SYBASE上实现了SQL语言。
很快,SQL语言被整个计算机界认可。
1987年6月,国际标准化组织(ISO)采纳为国际标准。
随后,ISO对标准进行了大量的修改和扩充。
在1992年推出了新的标准-SQL2。
SQL的标准化工作还在继续,新的标准已被命名为SQL3,将包括许多新的数据库概念,正在不征求意见和进行修改
这里将简单介绍基于SQL89和SQL2的语言使用概貌:
2.2.1 SQL的组成
SQL主要分成四个部分:
1)数据定义:
这一部分也称为“SQL DDL”,用于定义SQL模式、基本表、视图和索引。
2)数据操纵:
这一部分也称为“SQL DML”。
它分为数据查询和数据更新两类。
其中数据更新又分成插入、删除、和修改三种操作。
3)数据控制:
这一部分包括对基本表和视图的授权,完整性规则的描述,事务控制等内容。
4)嵌入式SQL的使用规定:
这一部分内容涉及到SQL语句嵌入在宿主语言程序中使用的规则。
2.2.2 SQL的数据查询
nSELECT语句的语法
SELECT 目标表的列名或列表达式序列
FROM 基本表和(或)视图序列
[WHERE行条件表达式]
[GROUPBY列名序列
[HAVING组条件表达式]]
[ORDERBY列名[ASC|DESC]…]
句法中[]表示该成分可有,也可无。
整个语句的执行过程如下:
a)读取FROM子句中基本表、视图的数据,执行笛卡尔积操作。
b)读取满足WHERE子句中给出的条件表达式的元组。
c)按GROUP子句中指定列的值分组,同时提取满足HAVING子句中组条件表达式的那些组。
d)按SELECT子句中给出的列名或列表达式求值输出。
e)ORDER子句对输出的目标表进行排序,按附加说明ASC升序排列,或按DESC降序排列。
SELECT语句中,WHERE子句称为“行条件子句”,GROUP子句称为“分组子句”,HAVING子句称为“组条件子句”,ORDER子句称为“排序子句”。
2.2.3SQL的数据更新
SQL的数据更新包括数据插入、删除和修改等三种操作
1)数据插入
a)元组值的插入
INSERT INTO 基本表名(列名表)
VALUES(元组值)
或者 INSERT INTO 基本表名(列名表)
(TABLE(元组值),
(元组值),
……)
前一种格式只能插入一个元组,后一种格式可以插入多个元组。
2)数据删除
SQL的删除操作是指从基本表删除元组,其语法如下:
DELETE FROM 基本表名
[WHERE条件表达式]
其语义是从基本表中删除满足条件表达式的元组。
3)数据修改
当需要修改基本表中元组的某些列值时,可以用UPDATE语句实现,其句法如下:
UPDATE 基本表名
SET 列名=值表达式[,列名=值表达式…]
[WHERE条件表达式]
其语义是:
修改基本表中满足条件表达式的那些元组中的列值,需修改的列值在SET子句中指出。
§2.3PB6.5对数据库的操作
PowerBuilder对数据库的操作即可以通过数据窗口完成(本质上是数据窗口把在屏幕上对数据库的操作转化成SQL语句),又可以在PowerScript语言中直接调用SQL或存储过程(本质上仍是SQL语句)完成。
下面通过列举两个简单实例来描述在PowerScript程序调用SQL的方式:
1、SELECT语句查询返回一行
如果SQL SELECT语句返回的结果只有一行,可以在PowerScript中书写以下的SQL语句:
SELECT 列名1,列名2,列名3,…
INTO:
变量1,:
变量2,:
变量3…
FROM 表名1,表名2,表名3,…
WHERE…
其中,“变量1”,“变量2”和“变量3”等都是PowerScript语言的变量。
该语句的作用是把数据库表的“列名1”,“列名2”和“列名3”等列的值从数据库中取出,然后放入对应的“变量1”,“变量2”和“变量3”等变量中。
例如:
Stringname,extrace
SELECTname,extractINTO:
name,:
extracefromauths
Whereauthor_code='A00001';
该语句仅仅适合于查询到一条记录的情况。
如果查询到的记录是多条,则要用下面的方法。
2、查询多行
SELECT是描述型语言,它面向的是集合,是一组记录。
而PowerScript语言却是面向过程的,它要一条条地接收并处理记录。
PowerScript通过描述型光标(CURSOR)在这组记录上游动的方法,给Script语句逐个地传送记录,建立了集合与记录间的内在联系。
请看下例:
Stringname
StringV1='A%'
DECLARECURSORFORfile:
//定义光标,光标名为C1
SELECTnameFROMauths file:
//光标对应的SELECT语句
WHEREauthor_codelike:
V1; file:
//SELECT语句中用到了变量V1
OPENC1;//打开光标,此时执行此光标对应的SQL SELECT语句。
Lab1:
FETCHC1INTO:
name; file:
//取记录,光标下移一条
IfSQLCA.SQLCode=0then file:
//取记录成功
Gotolab1 file:
//如果成功取出记录,则取下一条
Endif
打开光标的时候,变量V1被其值“A%”替换,因此最后执行的SQL SELECT语句为:
SELECTnameFROMauths
WHEREauthor_codelike'A%'
执行完这条语句后,把光标C1定位到了查询出的第一条记录上。
每执行一次语句:
FECTCH C1 INTO :
name;
则取出一条记录送给变量name,然后光标移到下一条记录。
如果想控制查询结果的次序,必须在SELECT语句中用ORDER BY子句,否则,没有其它的办法。
我们不可能一下子把光标定位在某条记录上,只能从第一条开始,一个个地移。
第三章PB6.5及其数据库编程
§3.1开发工具PowerBuilder6.5
PowerBuilder6.5特点及功能
要适应企业环境不断变化的需求,成功地开发出高质量的应用系统,必须采用先进的应用开发工具。
这对于减轻应用开发人员的开发负担,提高开发速度和质量都有十分重要的意义。
Sybase公司推出的PowerBUilder6.0/6.5是用于Client/Server、Web及组件开发的企业级应用开发工具。
它占全球开发工具市场近50%,是当前最优秀的开发工具之一。
它具有以下优异的功能和特点:
1、内置的关系数据库
PowerBuilder本身带有一套数据库系统SybaseSQLAnywhere。
这样做的好处是, PowerBuilder可以脱离网络数据库服务器独立运行,从而在开发阶段脱离网络服务器上的数据库。
当然,利用这一功能也可以开发和调试单用户的独立的数据库应用。
下图显示了内置数据库的工作原理:
如果没有内置的数据库SybaseSQLAnywhere,开发时则不能脱离网络服务器上的数据库(如图3-2所示):
2、数据窗口(Datawindow)对象
PowerBuilder拥有数据窗口这个具有专利技术的智能对象,利用该对象可以操作关系数据库的数据而无需编写SQL语句。
用户可以查询、修改、插入、删除、浏览、打印、以多种文件格式打开和存储数据,或在数据窗口中直接定义功能按钮实现预定义的系统功能,如插入、删除数据的操作。
它还支持数据库事务管理和并发控制等机制。
其工作机理如下图所示:
3、丰富的数据窗口数据源和多种样式的数据显示格式
数据窗口可以用来维护数据和显示数据,可定义多种显示风格和数据显示格式;并且还可以与TreeView控制、ListView控制配合使用,创建出更丰富的数据显示格式
4、支持多种商业图形,包括多种类型的二维和三维的图形
5、支持组件的开发和调用
用PowerBuilder开发的组件,可以在其它应用中调用,可以由多种事务管理服务器管理。
6、具有面向对象的特征
PowerBuilder采用了面向对象的开方式,这可以使系统开发人员在无需精通专用语言的情况下就可以迅速转向面向对象的开发。
PowerBuilder应用是由一系列对象组成的,包括窗口、菜单、函数、数据窗口和各种控制等对象,它支持对象的继承、封装和多态性。
7、有机结合的集成开发环境
8、完全支持Windows的窗口信息和控制
9、强有力的PowerScript编程语言
它能使开发人员很容易地将简单或复杂的事务逻辑与应用相配合。
该语言还有几百个函数用于操纵对象、处理数字、文本、字符串、日期和应用分布,进行文件处理、报表打印,用DDE和OLE2.0进行程序之间的通信,直接调用SQL语句操纵数据库等等。
10、PowerBuilder提供了多种流行软件的接口库
NetwareLibrary
PenComputingLibrary
LotusNotesLibrary
MicrosoftMAPI
11、PowerBuilder支持多种平台
目前,PowerBuilder能够在MicrosoftWindows3.X、Windows95WindowsNTAlpha/IntelAppleMacSunSalorisIBMAIXHPUnix等多种平台上开发和运行应用程序,并能够不加改动地应用于其它平台上。
12、支持Internet/Intranet下的Web应用开发
13、支持团体开发
14、对多种数据库的支持
PowerBuilder几乎支持所有的数据库,它提供了到多种数据库的专用接口和ODBC接口。
§3.2PowerBuilder与Client/Server体系结构
3.2.1Client/Server模式
在C/S结构中,存在着几个非常重要的基本概念,它们是:
主机、终端、客户机、工作站和服务器。
在分析C/S网络结构之前,必须搞清楚它们之间的区别。
最早的计算机网络是伴随着主机(Host)和终端(Terminal)这两个概念的出现而产生的。
当时的主机通常是指具有中央处理单元(CPU)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 局域网 图书资料 查询 系统