2023年图书仓库管理系统_第1页
2023年图书仓库管理系统_第2页
2023年图书仓库管理系统_第3页
2023年图书仓库管理系统_第4页
2023年图书仓库管理系统_第5页
已阅读5页,还剩60页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

图书仓库管理系统

摘要

本系统主要完成对图书仓库的库存管理,包括图书入库、出库、库存,员工信息,

供应商信息以及密码管理等六个方面。系统可以完成对各类信息的浏览、查询、

添加、删除、修改、报表等功能。

系统的核心是入库、库存和出库三者之间的联系,每一个表的修改都将联动的影

响其它的表,当完成入库或出库操作时系统会自动地完成库存的修改。查询功能

也是系统的核心之一,在系统中即有单条件查询和多条件查询,也有精确查询和

模糊查询,系统不仅有静态的条件查询,也有动态生成的条件查询,其目的都是

为了方便用户使用。系统有完整的用户添加、删除和密码修改功能,并具备报表

打印功能。

系统采用MicrosoftOffice中的Access2000来设计数据库,并使用当前优秀

的开发工具一Delphi6.0,它有着最为灵活的数据库结构,对数据库应用有着

良好的支持。

论文主要介绍了本课题的开发背景,所要完成的功能和开发的过程。重点的说明

了系统设计的重点、设计思想、难点技术和解决方案。

关键字:数据库,SQL语言,Delph6,数据库组件,仓库管理

目录

第一章引

编号:

时间:2021年X月X日书山有路勤为径,学海无涯苦作舟页码:第2页共65页

言..........................................................1

1.1课题来源...................................................1

1.2开发工具的选择.............................................2

1.3所做的主要工作.............................................3

第二章数据库概

论...................................................4

2.1数据库的发展...............................................4

2.1.1数据库的发展..........................................4

2.1.2数据库阶段的特点......................................5

2.1.3数据库技术.............................................6

2.2数据库理论基础.............................................7

2.2.1数据库模型..............................................7

2.2.2数据库体系结

构........................................10

2.2.3数据的独立性..........................................11

2.2.4范式..................................................11

2.3SQL语言基础..............................................13

2.3.1SQL简介..............................................13

2.3.2SQL查询..............................................13

2.3.3SQL数据更新.........................................14

第三章数据库开发工

具.............................................16

3.1Delphi6.0简

介.............................................16

第2页共65页

编号:

时间:2021年X月X日书山有路勤为径,学海无涯苦作舟页码:第3页共65页

3.2Delphi6.0控件.............................................

17

3.2.1AD0数据访问组件....................................17

3.2.2数据控制类

DataControl..................................18

3.2.3数据访问类

DataAccess..................................18

3.2.4SQL语言在Delphi中的应

用.............................19

3.3Access简

介...............................................21

第四章系统总体设

计...............................................23

4.1系统需求分析.............................................23

4.2系统概要设计............................................25

4.2.1系统结构设

计.........................................25

4.2.2数据库设

计...........................................27

4.2.2.1ER图设计.......................................27

4.2.2.2数据库表格设计...................................29

4.3系统详细设计...............................................34

第五章系统应用程序设

计...........................................37

第3页共65页

编号:

时间:2021年X月X日书山有路勤为径,学海无涯苦作舟页码:第4页共65页

5.1系统窗体模块组成...........................................37

5.2数据模块窗体设置...........................................38

5.3主窗体功能模块的实现.......................................39

5.4入库、出库窗体模块的实现...................................43

5.5查询功能的实现.............................................51

5.6系统登陆窗体模块的实现.....................................52

5.7用户管理功能的实现.........................................54

5.7.1用户管理主窗体.......................................54

5.7.2密码修改窗体模块的实现...............................54

5.7.3用户注册窗体模块的实

现...............................55

5.7.4用户注销窗体模块的实

现...............................57

结束

语.............................................................59

谢...............................................................60

参考文

献...........................................................61

第一章引言

§1.1课题来源

随着社会经济的迅速发展和科学技术的全面进步,计算机事业的飞速发展,以计

算机与通信技术为基础的信息系统正处于蓬勃发展的时期。随着经济文化水平的

显著提高,人们对生活质量及工作环境的要求也越来越高。书籍做为人类的精神

第4页共65页

编号:

时间:2021年X月X日书山有路勤为径,学海无涯苦作舟页码:第5页共65页

食粮,在现代社会中越来越受到重视,大量的书籍出现在市场上,人们有了各种

各样不同的选择。与此同时,为了管理大量的图书,图书仓库也大量的出现,仓

库的管理问题也就提上了日程。随着图书的大量增加,其管理难度也越来越大,

如何优化仓库的日常管理也就成为了一个大众化的课题。

在计算机飞速发展的今无将计算机这一信息处理利器应用于仓库的日常管理已

是势必所然,而且这也将为仓库管理带来前所未有的改变,它可以带来意想不到

的效益,同时也会为企业的飞速发展提供无限潜力。采用计算机管理信息系统已

成为仓库管理科学化和现代化的重要标志,它给企业管理来了明显的经济效益和

社会效益。主要体现在:

极大提高了仓库工作人员的工作效率,大大减少了以往入出存流程繁琐,杂乱,

周期长的弊端。

基于仓库管理的全面自动化可以减少入库管理出库管理及库存管理中的漏洞,

可以节约不少管理开支,增加企业收入。

仓库的管理的操作自动化和信息的电子化,全面提高了仓库的管理水平。

随着我国改革开放的不断深入,经济飞速的发展,企业要想生存、发展,要想在

激烈的市场竞争中立于不败之地,没有现代化的管理是万万不行的,仓库管理的

全面自动化信息化则是其中极其重要的部分;为了加快仓库管理自动化的步伐

提高仓库的管理业务处理效率,建立仓库管理系统已变得十分心要。

入库、库存、出库还是现在企业图书仓库管理的常规基本模式,虽然,最近又出

现了很多新的管理模式,如:基于零库存思想的沃尔玛特管理方式,但这些新的

思想在中国大部分企业的管理中还是难以实现的。所以如何设计好仓库管理系统,

尽可能地减少仓库管理的重复性和低效性就成为当前最为重要的问题。图书仓库

管理的核心是入库、库存和出库之间的联系,如何处理好三者之间的关系是系统

最为关键的部分。另外,员工信息和供应商信息管理也是仓库管理中一个必不可

第5页共65页

编号:

时间:2021年X月X日书山有路勤为径,学海无涯苦作舟页码:第6页共65页

少的部分,它提供着与入库和出库相关的地一些信息,使得整个系统更加完整,

更加实用。

通过对仓库管理日常工作的详细调查,搜集了大量的资料,从系统结构的组织,

功能的实现,技术的要求以及可行性等多方面进行考虑,认为本课题是一个适应

现今图书仓库管理需求的计算机信息管理系统具有一定的实际开发价值和使用

价值。

§1.2开发工具的选择

自Java诞生以来,随着Internet技术的普及和应用需求的变化,以第四代语言

为主的应用开发产品发生了较大的变化它们不仅已成为人们开发应用的开发工

具,而且很多产品已发展成为一种强有力的应用开发环境。这些新型的开发工具

通常以一种集成软件包的形式提供给开发人员被称为Studio(工作室)或Suite

(程序组)。例如,微软的VisualStudio6.0,Borland公司的Delphi6.0等

数据库辅助开发工具。

现在,市场上可以选购的应用开发产品很多,流行的也有数十种。目前在我国

市场上最为流行、使用最多、最为先进的可用作企业级开发工具的产品有:

Microsoft公司的VisualBasic6.0版

Microsoft公司的VisualC++6.0版

Borland公司的Delphi6.0版

在目前市场上这些众多的程序开发工具中,有些强调程语言的弹性与执行效率;

有些则偏重于可视化程序开发工具所带来的便利性与效率的得高,各有各的优点

和特色,也满足了不同用户的需求。然而,语言的弹性和工具的便利性是密不可

分的,只有便利的工具,却没有弹性的语言作支持,许多特殊化的处理动作必需

要耗费数倍的工夫来处理使得原来所标榜的效率提高的优点失去了作用相反

如果只强调程语言的弹性,却没有便利的工具作配合,会使一些即使非常简单的

第6页共65页

编号:

时间:2021年X月X日书山有路勤为径,学海无涯苦作舟页码:第7页共65页

界面处理动作,也会严重地浪费程序设计师的宝贵时间。

而Delphi是一个非常理想选择。Delphi6是操作系统中快速应用开发环境的最

新版本它也是当前Windows平台上第一个全面支持最新Web服务的快速开发工

具。无论是企业级用户,还是个人开发者,都能够利用Delphi6轻松、快捷地

构建新一代电子商务应用。Delphi6是惟一支持所有新出现的工业标准的RAD

环境,包括XML(扩展标记语言)/XSL(可扩展样式语言),SOAP(简单对象存

取协议)和WSDL(Web服务器描述语言)等。

Delphi6是可视化的快速应用程序开发语言它提供了可视化的集成开发环境,

这一环境为应用程序设计人员提供了一系列灵活而先进的工具可以广泛地用于

种类应用程序设计。在Delphi6的集成开发环境中,用户可以设计程序代码、

运行程序、进行程序错误的调试等,可视化的开发方法降低了应用程序开发的难

度。Delphi的基础编程语言是具有面向对象特性的Pascal语言,即Object

PascaloObjectPascal具有代码稳定、可读性好、编译速度快等优点,并将

面向对象的概念移植到了Pascal语言中,使这种基础语言有了新的发展空间。

使用Delphi6.0,我们几乎可以作任何事情,还可以撰写种各种类型的应用程

序,动态链接库(DLL)、CON、或CORBA对象,CGI/ISAPI程序,MicrosoftBack

Office应用程序。程序的规模小到简单的个人数据库应用,大到复杂的企业的

多层次分布式系统,都可以使用Delphi进行开发,其友好的集成开发界面,可

视化的双向开发模式,良好的数据库应用支持高效的程序开发和程序运行,备受

广大程序开发人员的好评。尤其是Delphi对数据库应用的强大支持,大大提高

了数据库应用软件开发的效率,缩短了开发周期,深受广大数据库应用程序设计

人员的喜爱。Delphi为数据库应用开发人员提供了丰富的数据库开发组件,使

数据库应用开发功能更强大,控制更灵活,编译后的程序运行速度更快。

§1.3本文所做工作

第7页共65页

编号:

时间:2021年X月X日书山有路勤为径,学海无涯苦作舟页码:第8页共65页

引言部分介绍了本系统的课题来源以及对数据库开发工具的选择。

第二章介绍了数据库的发展,关系数据库,数据库体系结构,并系统介绍了SQL

语言,为设计和理解应用程序做了铺垫。

第三章系统介绍了Delphi6.0及其部分控件SQL语言在Delphi6.0中的应用,

以及Access等。

第四章是本文的主体,按照软件工程的要求,从需求分析开始,经过概要设计最

后到详细设计,完成对整个系统的设计。

第五章根据第四章的设计结果利用Access2000和Delphi6.0进行了具体的窗

体和应用程序设计。

总结部分介绍了设计体会和编程体会并指出了系统设计中的不足和改进的方向

第二章数据库概论

§2.1数据库的发展

数据库处理在信息系统的研究中一直是非常重要的主题,然而,近年来,随着

WorldWideWeb(WW)的猛增及Internet技术的迅速发展,使得数据库技术之时

成为最热门技术之一。数据库技术能使Internet应用超越具有早期应用特点的

简单的发布。同时,Internet技术提供了一种向用户发布数据库内容的标准化

的访问方法。这些技术没有脱离经典数据库技术的要求。它们只是加重了数据库

技术的重要性。

数据库的设计和开发及包括艺术有包括工程。理解用户的需求,然后,把它们转

变为有效的数据库设计是一个艺术过程。把设计转变为实际的数据库,并且这些

数据库带有功能完备、高效能的应用,是一个工程过程。

数据库的目的是帮助人们跟踪事务。经典的数据库应用涉及诸如订单、顾客、工

作、员工、学生、电话之类的项,或其它数据量较大、需要密起关注的事务。最

第8页共65页

编号:

时间:2021年X月X日书山有路勤为径,学海无涯苦作舟页码:第9页共65页

近,由于数据库的普及数据库技术已经被应用到了新的领域诸如用于Intemet

的数据库或用于公司内联网的数据库。数据库也被越来越多地应用于生成和维护

多媒体应用程序上。

计算机的数据处理应用,首先要把大量的信息以数据形式存放在存储器中。存储

器的容量、存储速率直接影响到数据管理技术的发展。从1956年生产出第一台

计算机到现在,存储器的发展,为数据库技术提供了良好的物质基础。

使用计算机以后,数据处理的速度和规模,无论是相对于手工方式,还是机械方

式,都有无可比拟的优势。通常在数据处理中,计算是比较简单的而数据的管理

却比较复杂。数据管理是指数据的收集、整理、组织、存储、维护、检索、传送

等操作,这部分操作是数据处理业务的基本环节,而且是任何数据处理业务中必

不可少的共有部分。数据管理技术的优劣,将直接影响数据处理的效率。

2.1.1数据库的发展

数据管理技术的发展,与硬件(主要是外存)、软件、计算机应用的范围有密切

的联系。数据管理技术的发展经过三个阶段:人工管理阶段、文件系统阶段和数

据库阶段。

人工管理阶段和文件系统阶段都有着相当多的缺陷,诸如数据冗余性,数据不

一致性以及数据联系弱等等。也正是由于这些原因,促使人们研究新的数据管理

技术,从而产生了数据库技术。

20世纪60年代末发生的三件大事层次模型IMS系统的推出关于网状模型DBTG

报告的发表以及关于关系模型论文的连续发表标志着数据管理技术进入数据库

阶段。进入70年代以后,数据库技术得到迅速发展,开发了许多有效的产品并

投入运行。数据库系统克服了文件系统的缺陷,提供了对数据更高级更有效的管

理。

当进入数据库阶段后,随着数据管理规模一再扩大,数据量急剧增加,为了提高

第9页共65页

编号:

时间:2021年X月X日书山有路勤为径,学海无涯苦作舟页码:第1。页共65页

效率,开始时,人们只是对文件系统加以扩充,在应用文件中建立了许多辅助索

引,形成倒排文件系统。但这并不能最终解决问题。在20世纪60年代末,磁盘

技术取得重要进展,具有数百兆容量和快速存取的磁盘陆续进入市场,成本也不

高,为数据库技术的产生提供了良好的物质条件。

2.1.2数据库阶段的特点

(1)减少数据的重复(Redundancycanbereduced)

当在一个非数据库系统当中,每一个应用程序都有属于他们自己的文件,由于无

法有系统建立的数据,因此常常会造成存储数据的重复与浪费。例如:在一家公

司当中,人事管理程序与工资管理程序或许都会使用到职员与部门的信息或文件,

而我们可以运用数据库的方法,把这两个文件整理起来,以减少多余的数据,过

度地占用存储空间。

(2)避免数据的不一致(Inconsistencycanavoid)

本项的特色,可以说是延伸前项的一个特点,要说明这样的一个现象,我们可以

从下面这个实例来看:若是在同一家公司当中,职员甲在策划部门工作,且职员

甲的记录同时被存放在数据库的两个地方,而数据库管理系统却没有对这样重要

的情况加以控制,当其中一条数据库被修改时,便会造成数据的不一致,但是,

对于一个健全的数据库管理系统而言,将会对这样的情况加以控制,但有时并不

需要刻意消除这种情形,应当视该数据库的需求与效率来决定。

(3)数据共享(Datashared)

对于数据共享的意义,并不是只有针对数据库设计的应用程序,可以使用数据库

中的数据,对于其他撰写好的应用程序,同样可以对相同数据库当中的数据进行

处理,进而达到数据共享的目的。

(4)强化数据的标准化(Standardcanbeenforced)

由数据库管理系统,对数据做出统筹性的管理,对于数据的格式与一些存储上的

第10页共65页

编号:

时间:2021年X月X日书山有路勤为径,学海无涯苦作舟页码:第11页共65页

标准进行控制,如此一来,对于不同的环境的数据交换(DataInterchange)上

将有很大的帮助,也能提高数据处理的效率。

(5)实践安全性的管理(Securityrestrictioncanbeapplied)

通过对数据库完整的权限控制,数据库管理者可以确认所有可供用户存取数据的

合法途径渠道,并且可以事先对一些较重要或关键性的数据进行安全检查,以确

保数据存取时,能够将任何不当损毁的情形降至最低。

(6)完整性的维护(Integritycanbemaintained)

所谓完整性的问题就是要确认某条数据在数据库当中,是正确无误的。正如(2)

所述,若是无法控制数据的不一致性,便会产生完整性不足的问题,所以,我们

会发现,当数据重复性高的时候,数据不完整的情形也会增加,当然,若是数据

库的功能完整,将会大大地提高数据完整性,也会增加数据库的维护能力与维护

简便性。

(7)需求冲突会获得平衡(Conflictingrequirementscanbebalance)

在一个较大型的企业当中,用户不同的需求,往往会造成系统或数据库在设计上

的困扰,但是一个合适的数据库系统,可以通过数据库管理员的管理,将会有效

地整理各方面的信息,对于一些较重要的应用程序,可以适时地提供较快速的数

据存取方法与格式,以平衡多个用户在需求上的冲突。

上述七个方面构成了数据库系统的主要特征。这个阶段的程序和数据间的联系可

用下图表示:

2.1.3数据库技术

从文件系统发展到数据库系统是信息处理领域的一个重大变化。在文件系统阶段,

人们关注的中心问题是系统功能的设计,因而程序设计处于主导地位,数据只起

着服从程序需要的作用。在数据库方式下,信息处理观念已为新体系所取代,数

据占据了中心位置。数据结构的设计成为信息系统首先关心的问题,而利用这些

第11页共65页

编号:

时间:2021年X月X日书山有路勤为径,学海无涯苦作舟页码:第12页共65页

数据的应用程序设计则退居到以既定的数据结构为基础的外围地位。

目前世界上已有数百万个数据库系统在运行,其应用已经深入到人类社会生活的

各个领域,从企业管理、银行业务、资源分配、经济预测一直到信息检索、档案

管理、普查统计等。并在通信网络基础上,建立了许多国际性的联机检索系统。

我国20世纪90年代初在全国范围内装备了12个以数据库技术为基础的大型计

算机系统,这些系分布在邮电、计委、银行、电力、铁路、气象、民航、情报、

公安、军事、航天和财税等行业。

数据库技术还在不断的发展,并且不断地与其它计算机技术相互渗透。数据库技

术与网络通信技术相结合,产生了分布式数据库系统。数据库技术与面向对象技

术相结合,产生了面向对象数据库系统。

在数据库技术中有四个名词,其概念应该分清。

(1)数据库(database,DB):DB是统一管理的相关数据的集合。DB能为各种

用户共享,具有最小冗余度,数据间联系密切,而又有较高的数据独立性。

(2)数据库管理系统(DatabaseManagementSystem,DBMS):DBMS是位于用户

与操作系统之间的一层数据管理软件,为用户或应用程序提供访问DB的方法,

包括DB的建立、查询、更新及各种数据控制。DBMS总是基于某种数据模型,可

以分为层次型、网状型、关系型和面向对象型DBMS。

(3)数据库系统(DatabaseSystem,DBS):DBS是实现有组织地、动态地存储

大量关联数据,方便多用户访问的计算机软件、硬件和数据资源组成的系统,即

采用了数据库技术的计算机系统。

(4)数据库技术:这是一门研究数据库的结构、存储、管理和使用的软件学科。

数据库技术是操作系统的文件系统基础上发展起来的。而DBMS本身要在操作系

统的支持下才能工作。数据库不仅用到数据结构的知识,而且丰富了数据结构的

内容。在关系数据库中要用到集合论、数理逻辑的理论。因此,数据库技术是一

第12页共65页

编号:

时间:2021年X月X日书山有路勤为径,学海无涯苦作舟页码:第13页共65页

门综合性较强的学科。

§2.2数据库理论基础

2.2.1数据库模型

从20世纪50年代中期开始,计算机的应用由科学研究部门逐步扩展到企业、行

政部门。至60年代,数据处理成为计算机的主要应用。数据库技术作为数据管

理技术,是计算机软件领域的一个重要分支,产生于60年代末。现已形成相当

规模的理论体系和实用技术。

模型是对现实世界的抽象。在数据库技术中,我们用模型的概念描述数据库的结

构与语义,对现实世界进行抽象,表示实体类型及实体间联系的模型称为“数据

模型”。

目前广泛作用的数据模型可分为两种类型。

一种是独立于计算机系统的模型,完全不涉及信息在系统中的表示,只是用来描

述某个特定组织所关心的信息结构,这类模型称为“概念数据模型”。要领模

型用于建立信息世界的数据模型,强调其语义表达功能,应该概念简单、清晰,

易于用户理解,它是现实世界的第一层抽象,是用户和数据库设计人员之间进行

交流的工具。这一其中著名的模型是“实体联系模型”。

另一种数据模型是直接面向数据库的逻辑结构,它是现实世界的第二层抽象这

类模型涉及到计算机系统和数据库管理系统又称为“结构数据模型”。例如,

层次、网状、关系、面向对象等模型。这类模型有严格的形式化定义,以便于在

计算机系统中实现。

(1)层次模型。用树型结构表示实体类型及实体间联系的数据模型。树的结点

是记录类型,每个非根结点有且只有一个父结点。上一层记录类型和下一层记录

类型间联系是1:N联系。

层次模型的特点是记录之间的联系通过指针实现,查询效率较高。但层次模型有

第13页共65页

编号:

时间:2021年X月X日书山有路勤为径,学海无涯苦作舟页码:第14页共65页

两个缺点:一是只能表示1:N联系,虽然有多种辅助手段实现了M:N联系,但

都较复杂,用户不易掌握,二是由于树型结构层次顺序的严格和复杂,引起数据

的查询和更新操作也很复杂,因此,编写应用程序也很复杂。

(2)网状模型。用有向图结构表示实体类型及实体间联系的数据模型。。1969

年DBTG报告提出的数据模型是网状模型的主要代表。有向图中的结点是记录类

型,有向边表示从箭尾一端的记录类型到箭头一端的记录类型间联系是1:N联

系。

网状模型的特点:记录之间联系通过指针实现,M:N联系也容易实现(每个M

:N联系可拆成两个1:N联系),查询效率较高。网状模型的缺点是编写应用程

序比较复杂,程序员必须熟悉数据库的逻辑结构。由于层次系统和网状系统的应

用程序编制比较复杂,因此,从20世纪80年代中期起,其市场已被关系系统所

取代。但是使用这两种模型建立起的许多数据库仍然在正常运转,只是在外层加

了个关系数据库语言的接口。网状模型有许多成功的产品,20世纪70年代的产

品大部分网状系统,例如,Honeywell公司的IDS/IkHP公司的IMAGE/3000.

Burroughs公司的DMSIRUmivac公司的DMS1100,Cullinet公司的IDMS,Cimcom

公司的TOTAL等

(3)关系模型。关系模型的主要是用二维表格结构表达实体集,用外键表示实

体间联系。关系模型是由若干个关系模式组成的集合。关系模式相当于前面提到

的记录类型,它的实例称为关系,每个关系实际上是一张二维表格。

关系模型和层次、网状模型的最大判别是用关键码而不是用指针导航数据,表格

简单用户易懂,编程时并不涉及存储结构,访问技术等细节。关系模型是数学化

模型。SQL语言是关系数据库的标准化语言,已得到了广泛的应用。20世纪70

年代对关系数据库的研究主要集中在理论和实验系统的开发方面。80年代初才

形成产品但很快得到广泛的应用和普及并最终取代了层次、网状数据库产品。

第14页共65页

编号:

时间:2021年X月X日书山有路勤为径,学海无涯苦作舟页码:第15页共65页

现在市场上典型的关系DBMS产品有DB2、ORACLE、SYBASE>INFORMIX和微机型

产品Foxpro>Access等。

关系模型和网状、层次模型的最大区别是:关系模型用表格数据而不是通过指针

链来表示和实现实体间联系。关系模型的数据结构简单、易懂。只需用简单的查

询语句就可对数据库进行操作。

关系模型是数学化的模型,可把表格看成一个集合,因此集合论、数理逻辑等知

识可引入到关系模型中来。关系模型已是一个成熟的有前途的模型,已得到广泛

应用。

(4)面向对象模型。目前,关系数据库的使用已相当普遍,但是,现实世界中

仍然存在着许多含有复杂数据结构的应用领域,例如,CAD数据、图形数据等,

而关系模型在这方面的处理能力就显得力不从心。因此,人们需要更高级的数据

库技术来表达这类信息。面向对象的概念最早出现在程序设计语言中,随后迅速

渗透到计算机领域的每一个分支。面向对象数据库是面向对象概念与数据库技术

相结合的产物。

面向对象模型能完整地描述现实世界的数据结构,具有丰富的表达能力,但模型

相对较复杂,涉及的知识面也广,因此面向对象数据库尚未达到关系数据库那样

的普及程度。

2.2.2数据库体系结构

数据库的体系结构分三级:内部级(internal),概念级(conceptual)和外部

级(extemal)。这个三级结构有时也称为“三级模式结构”,或“数据抽象的

三个级别”,最早是在1971年通过的DBTG报告中提出,后来收入在1975年的

美国ANSI/SPARC报告中。虽然现在DBMS的产品多种多样,在不同的操作系统支

持下工作,但是大多数系统在总的体系结构上都具有三级模式的结构特征。从某

第15页共65页

编号:

时间:2021年X月X日书山有路勤为径,学海无涯苦作舟页码:第16页共65页

个角度看到的数据特性称为“数据视图”(dataview)。

外部级最接近用户,是单个用户所能看到的数据特性。单个用户使用的数据视图

的描述称为“外模式”。

概念级涉及到所有用户的数据定义,是全局的数据视图。全局数据视图的描述称

为“概念模式”。

内部级最接近于物理存储设备,涉及到实际数据存储的结构。物理存储数据视图

的描述称为“内模式”。

数据库的三级模式结构是数据的三个抽象级别。它把数据的具体组织留给DBMS

去做,用户只要抽象地处理数据,而不必关心数据在计算机中的表示和存储,这

样就减轻了用户使用系统的负担。

三级结构之间往往差别很大,为了实现这三个抽象级别的联系和转换,DBMS在

三级结构之间提供两个层次的映象(mappings):外模式/模式映象,模式/内模

式映象。此处模式是概念模式的简称。

2.2.3数据的独立性

由于数据库系统采用三级模式结构,因此系统具有数据独立性的特点。在数据库

技术中,数据独立性是指应用程序和数据之间相互独立,不受影响。数据独立性

分成物理数据独立性和逻辑数据独立性两级。

(1)物理数据独立性

如果数据库的内模式要进行修改,即数据库的存储设备和存储方法有所变化,那

么模式/内模式映象也要进行相当的修改,使概念模式尽可能保持不变。也就是

对内模式的修改尽量不影响概念模式当然对于外模式和应用程序的影响更小,

这样,我们称数据库达到了物理数据独立性。

(2)逻辑数据独立性

如果数据库的概念模式要进行修改,譬如增加记录类型或增加数据项,那么外模

第16页共65页

编号:

时间:2021年X月X日书山有路勤为径,学海无涯苦作舟页码:第17页共65页

式/模式映象也要进行相应的修改,使外模式尽可能保持不变。也就是对概念模

式的修改尽量不影响外模式和应用程序,这样,我们称数据库达到了逻辑数据独

立性。

现有关系系统产品均提供了较高的物理独立性而对逻辑独立性的支持尚有欠缺,

例如,对外模式的数据更新受到限制等。

2.2.4范式

建立起一个良好的数据指标体系,是建立数据结构和数据库的最重要的一环。一

个良好的数据指标体系是建立DB的必要条件,但不是充分条件。我们完全可以

认为所建指标体系中的一个指标类就是关系数据库中的一个基本表而这个指标

类下面的一个个具体指标就是这个基本表中的一个字段。但如果直接按照这种方

式建库显然还不能算最佳。对于指标体系中数据的结构在建库前还必须进行规范

化的重新组织。

在数据的规范化表达中,一般将一组相互关联的数据称为一个关系(relation),

而在这个关系下的每个数据指标项则被称为数据元素(dataelement),这种关系

落实到具体数据库上就是基本表而数据元素就是基本表中的一个字段(field)。

规范化表达还规定在每一个基本表中必须定义一个数据元素为关键字(key),它

可以唯一地标识出该表中其它相关的数据元素。在规范化理论中表是二维的,它

有如下四个性质:

在表中的任意一列上,数据项应属于同一个属性(如图中每一列都存放着不同合

同记录的同一属性数据)。

表中所有行都是不相同的,不允许有重复组项出现(如图中每一行都是一个不同

的合同记录)。

在表中,行的顺序无关紧要(如图中每行存的都是合同记录,至于先放哪一个合

同都没关系)。

第17页共65页

编号:

时间:2021年X月X日书山有路勤为径,学海无涯苦作舟页码:第18页共65页

在表中,列的顺序无关紧要,但不能重复(如图中合同号和合同名谁先谁后都没

关系,但二者不可重复或同名)。

在对表的形式进行了规范化定义后,数据结构还有五种规范化定义,定名为规范

化模式称为范式。在这五种范式中,一般只用前三种,对于常用系统就足够了。

而且这五种范式是“向上兼容”的,即满足第五范式的数据结构自动满足一、二、

三、四范式,满足第四范式的数据结构自动满足第一、二、三范式,……,依此

类推。

第一范式(firstnormalform,简称1stNF)就是指在同一表中没有重复项出现,

如果有则应将重复项去掉。这个去掉重复项的过程就称之为规范化处理。在本文

所讨论的开发方法里,1stNF实际上是没有什么意义的。因为我们按规范化建

立的指标体系和表的过程都自动保证了所有表都满足1stNFo

第二范式(secondnormalform,简称2ndNF)是指每个表必须有一个(而且仅一

个)数据元素为主关键字(primarykey),其它数据元素与主关键字一一对应。例

如,在图19.7中如果我们将合同号定义为主关键字(其它数据元素中的记录数据

都有可能重名,故不能作为主关键字),故只要知道了一个合同记录的合同号,

就可以唯一地在同一行中找到该合同的任何一项具体信息。通常我们称这种关系

为函数依赖(functionaldepEndence)关系。即表中其它数据元素都依赖于主关

键字,或称该数据元素唯一地被主关键字所标识。

第三范式(thirdnormalform,简称3rdNF)就是指表中的所有数据元素不但要

能够唯一地被主关键字所标识,而且它们之间还必须相互独立,不存在其它的函

数关系。也就是说对于一个满足了2ndNF的数据结构来说,表中有可能存在某

些数据元素依赖于其它非关键宇数据元素的现象,必须加以消除。

为防止数据库出现更新异常、插入异常、删除异常、数据冗余太大等现象,关系

型数据库要尽量按关系规范化要求进行数据库设计。

第18页共65页

编号:

时间:2021年X月X日书山有路勤为径,学海无涯苦作舟页码:第19页共65页

§2.3SQL语言基础

2.3.1SQL简介

用户对数据库的使用,是通过数据库管理系统提供的语言来实现的。不同的数据

库管理系统提供不同的数据库语言。关系数据库管理系统几乎都提供关系数据库

标准语言----SQLo

SQL的全称是StructuredQueryLanguage,即结构化查询语言。SQL语句可以

从关系数据库中获得数据,也可以建立数据库、增加数据、修改数据。1986年

ANSI采用SQL语言作为关系数据库系统的标准语言,后被国际化标准组织(ISO)

采纳为国际标准。SQL语言使用方便、功能丰富、简洁易学,是操作数据库的工

业标准语言,得到广泛地应用。例如关系数据库产品DB2、ORACLE等都实现了

SQL语言。同时,其它数据库产品厂家也纷纷推出各自的支持SQL的软件或者与

SQL的接口软件。这样SQL语言很快被整个计算机界认可。

SQL语言是一种非过程化语言它一次处理一个记录集合对数据提供自动导航。

SQL语言允许用户在高层的数据结构上工作,而不对单个记录进行操作。SQL语

言不要求用户指定数据的存取方法,而是使用查询优化器,由系统决定对指定数

据存取的最快速手段。当设计者在关系表上定义了索引时,系统会自动利用索引

进行快速检索,用户不需知道表上是否有索引或者有什么类型的索引等细节。

SQL语言可以完成许多功能,例如:

•查询数据

•在数据库表格中插入、修改和删除记录

•建立、修改和删除数据对象

•控制对数据和数据对象的存取

第19页共65页

编号:

时间:2021年X月X日书山有路勤为径,学海无涯苦作舟页码:第20页共65页

•确保数据库的一致性和完整性等

2.3.2SQL查询

数据查询是关系运算理论在SQL语言中的主要体现,SELECT语句是SQL查询的

基本语句,当我们在对一个数据库进各种各样的操作时,使用的最多的就是数据

查询,在以SQL为基础的关系数据库中,使用的最多的就是SELECT查询语句。

SELECT语句的完整句法如下:

SELECT目标表的列名或列表达式序列

FROM基本表和(或)视图序列

[WHERE行条件表达式]

[GROUPBY列名序列]

[HAVING组条件表达式]

[ORDERBY列名[ASC|DEAC]•••]

我在SELECT语句中还使用了大量的保留字和通配符以进行各种各样的条件查询。

在系统中有大量的查询按钮,其使用了大量的查询语句,而且这些查询语句大部

分使用的是模糊查询,所以大量的使用了模式匹配符LIKE(判断值是否与指定的

字符通配格式相符)。在包含LIKE的查询语句中可以使用两个通配符:%(百分

号):与零个或多个字符组成的字符串匹配;_(下划线):与单个字符匹配。系

统中的条件判断往往包含多个条件,这时就需要使用逻辑运算符NOT、AND,OR(用

于多条件的逻辑连接),谓词ALL以及保留字DISTINCT等等。做为SELECT语句

还有很多的使用方法,这里就不再叙述。

2.3.3SQL数据更新

使用数据库的目的是为了有效地管理数据,而数据的插入、删除和修改则是必不

可少的一个功能在本系统中就大量地使用了数据插入、删除和修改这三种操作,

现做一个简单地介绍。

第20页共65页

编号:

时间:2021年X月X日书山有路勤为径,学海无涯苦作舟页码:第21页共65页

・数据插入

往数据库的基本表中插入数据使用的是INSERT语句,其方式有两种:一种是元

组值的插入,另一种是查询结果的插入。在本系统中使用的是前一种方式,其句

法如下:

INSERTINTO基本表名(列表名)VALUES(元组值)

•数据删除

往数据库的基本表中删除数据使用的是DELETE语句,其句法如下:

DELETEFROM基本表名[WHERE条件表达式]

在些作一点说明,删除语句实际上是“SELECT*FROM基本表名[WHERE条件表

达式]”和DELETE操作的结合,每找到一个元组,就把它删除。此外,DELETE

语句只能从一个基本表中删除元组,WHERE子句中条件可以嵌套,也可以是来自

几个基本表的复合条件。

・数据修改

当需要修改基本表中元组的某些列值时,可以用UPDATE语句实现其句法如下:

UPDATE基本表名

SET列名=值表达式[,列名=值表达式…]

[WHERE条件表达式]

在Delphi中使用SQL语句是很方便的,一般来说,都是通过TQue:ry组件来使用

SQL语言的。有一点要进行说明,虽然通过TQuery组件来使用SQL语言很方便,

但考虑到自己对不同组件的理解程度、个人习惯以及其它各个方面,在本系统中

我采用的是ADO组件来对数据库进行操作。最简单的方法比如在TADOQuery组件

的SQL属性中就可以键入SQL语句,至于详细的使用方法在后面进行介绍。

第三章数据库开发工具

§3.1Delphi6.0简介

第21页共65页

编号:

时间:2021年X月X日书山有路勤为径,学海无涯苦作舟页码:第22页共65页

Delphi类可以粗略地分成两部分:一部分是组件类,这些组件类通常以某种方

式出现在组件面板上,当用户从组件面板上点取一个类的图标后,在程序中就自

动生成了该类的对象(非可视组件除外);另一部分是功能类,这此功能类的对

象通常出现在程序代码中,起着不可代替的作用,但是这些功能类在组件面板上

是找不到的。在Delphi中,每一个类的祖先都是Tobject类,整个类的层次结构

就像一棵倒挂的树,在最顶层的树根即为Tobject类。这样,按照面向对象编程

的基本思想,就使得用户可用Tobject类这个类型代替任何其它类的数据类型。

实际上在Delphi的类库中,Tobject类派生出了为数相当众多的子类,它们形

成了一个庞大的体系,通常情况下,如果不自行开发组件,就不必了解整个类的

体系结构,只用到类层次树的叶结点就足够了。

凡是做过程序开发的人都知道从来没有单纯的数据应用程序,也就是说,数据库

应用程序必须和用户界面(可以是图形界面,也可以是命令接口)元素相结合,

只讲界面或只讲数据库本身都构不成数据库应用程序,因而用Delphi6.0开发

数据库应用程序就隐含着界面开发。Delphi6中的VCL组件可用图3T来说明。

组件在Delphi程序的开发中是最显眼的角色。大家知道,在编写程序时一般都

开始于在组件面板上选择组件并定义组件间的相互作用。但也有一些组件不在组

件面板上例如Tform和Tapplication(典型的非可视组件”组件是Tcomponents

派生出来的子类,可以流的形式存放在DFM文件中,具有事件和Publish属性。

窗口组件类是窗口化的可视化组件类,在Delphi的类库中占有最大的份额。在

实际编程中,窗口组件类的对象都有句柄,可以接受输入焦点和包含其它组件。

图形组件与窗口组件并列,是另一大类组件。图形组件不是基于窗口的,因而不

能有窗口句柄,不能接受输入焦点和包含其它组件。从图8-43中可以看出,图

形组件的基类是TgraphicControl,在实际编程中,它们必须寄生于它们的宿

主一一窗口组件类的对象,由它们的拥有者负责其显示,而且它们还能触发一些

第22页共65页

编号:

时间:2021年X月X日书山有路勤为径,学海无涯苦作舟页码:第23页共65页

和鼠标活动相关的事件。图形控件最典型的例子是Tlabel和TspeedButton。由

此可以看出图形组件的功能很弱有读者会问图形组件的用处何在呢?其实使用

图形组件的最大好处在于节省资源,正是因为它们的功能较弱,所以使用的系统

资源就要少。在一个应用程序中,如果能在不影响其功能的前提下合理大量地使

用图形组件,将会大减少程序对系统资源的消耗。

非可视

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论