版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
图书仓库管理系统⑴
本系统要紧完成对图书仓库的库存管理,包含图书入库、出库、库存,员工信息,供应商信
息与密码管理等六个方面。系统能够完成对各类信息的浏览、查询、添加、删除、修改、报
表等功能。
系统的核心是入库、库存与出库三者之间的联系,每一个表的修改都将联动的影响其它的表,
当完成入库或者出库操作时系统会自动地完成库存的修改。查询功能也是系统的核心之一,
在系统中即有单条件查询与多条件查询,也有精确查询与模糊杳询,系统不仅有静态的条件
查询,也有动态生成的条件查询,其目的都是为了方便用户使用。系统有完整的用户添加、
删除与密码修改功能,并具备报表打印功能。
系统使用MicrosoftOffice中的Access2000来设计数据库,并使用当前优秀的开发工具一
Delphi6.0,它有着最为灵活的数据库结构,对数据库应用有着良好的支持。
论文要紧介绍了本课题的开发背景,所要完成的功能与开发的过程。重点的说明了系统设计
的重点、设计思想、难点技术与解决方案。
关键字:数据库,SQL语言,Dclph6,数据库组件,仓库管理
目录
第一章引言.............................................................1
1.1课题来源......................................................I
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
3.2Delphi6.0控件................................................17
3.2.1ADO数据访问组件.........................................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数据库设H......................................................................................................27
ER图设计..........................................27
4.2.2.2数据库表格设计......................................29
4.3系统全面设计.................................................34
第五章系统应用程序设L..............................................37
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
致谢...................................................................60
参考文献...............................................................61
第一章引言
§1.1课题来源
随着社会经济的迅速进展与科学技术的全面进步,计算机事业的飞速进展,以计算机与通信
技术为基础的信息系统正处于蓬勃进展的时期。随着经济文化水平的显著提高,人们对生活
质量及工作环境的要求也越来越高。书籍做为人类的精神食粮,在现代社会中越来越受到重
视,大审的书籍出现在市场上,人们有了各类各样不一致的选择。与此同时,为了管理大品
的图书,图书仓库也大量的出现,仓库的管理问题也就提上了日程。随着图书的大量增加,
其管理难度也越来越大,如何优化仓库的口常管理也就成为了一个大众化的课题。
在计算机飞速进展的今天,将计算机这一信息处理利器应用于仓库的日常管理已是势必所
然,而且这也将为仓库管理带来前所未有的改变,它能够带来意想不到的效益,同时也会为
企业的飞速进展提供无限潜力。使用计算机管理信息系统一成为仓库管理科学化与现代化的
重要标志,它给企业管理来了明显的经济效益与社会效益。要紧表达在:
极大提高了仓库工作人员的工作效率,大大减少了以往入出存流程繁琐,杂乱,周期长的弊
端。
基于仓库管理的全面自动化,能够减少入库管理、出库管理及库存管理中的漏洞,能够节约
很多管理开支,增加企业收人。
仓库的管理的操作自动化与信息的电子化,全面提高了仓库的管理水平。
随着我国改革开放的不断深入,经济飞速的进展,企业要想生存、进展,要想在猛烈的市场
竞争中立于不败之地,没有现代化的管理是万万不行的,仓库管理的全面自动化、信息化则
是其中极其重要的部分。为了加快仓库管理自动化的步伐,提高仓库的管理业务处理效率,
建立仓库管理系统已变得十分心要。
入库、库存、出库还是现在企业图书仓库管理的常规基本模式,尽管,最近又出现了很多新
的管理模式,如:基于零库存思想的沃尔玛特管理方式,但这些新的思想在中国大部分企业
的管理中还是难以实现的。因此如何设计好仓库管理系统,尽可能地减少仓库管理的重复性
与低效性就成为当前最为重要的问题。图书仓库管理的核心是入库、库存与出库之间的联系,
如何处理好三者之间的关系是系统最为关键的部分。另外,员工信息与供应商信息管理也是
仓库管理中一个必不可少的部分,它提供着与入库与出库有关的地一些信息,使得整个系统
更加完整,更加有用。
通过对仓库管理口常工作的全面调查,搜集了大量的资料,从系统结构的组织,功能的实现,
技术的要求与可行性等多方面进行考虑,认为本课题是一个习惯现今图书仓库管理需求的计
算机信息管理系统,具有一定的实际开发价值与使用价值。
§1.2开发工具的选择
自Java诞生以来,随着Internet技术的普及与应用需求的变化,以第四代语言为主的应用开
发产品发生了较大的变化,它们不仅已成为人们开发应用的开发工具,而且很多产品已进展
成为一种强有力的应用开发环境。这些新型的开发工具通常以一种集成软件包的形式提供给
开发人员,被称之Studio(工作室)或者Suite(程序组)。比如,微软的VisualStudio6.0,
Borland公司的Delphi6.0等数据库辅助开发工具。
现在,市场上能够选购的应用开发产品很多,流行的也有数十种。目前在我国市场上最为
流行、使用最多、最为先进的可用作企业级开发工具的产品有:
Microsoft公司的VisualBasic6.0版
Microsoft公司的VisualC++6.0版
Borland公司的Delphi6.0版
在目前市场上这些众多的程序开发工具中,有些强调程语言的弹性与执行效率;有些见偏重
于可视化程序开发工具所带来的便利性与效率的得高,各有各的优点与特色,也满足了不一
致用户的需求。然而,语言的弹性与工具的便利性是密不可分的,只有便利的工具,却没有
弹性的语言作支持,许多特殊化的处理动作必需要耗费数倍的工夫来处理,使得原先所标榜
的效率提高的优点失去了作用;相反,假如只强调程语言的弹性,却没有便利的工具作配合,
会使一些即使非常简单的界面处理动作,也会严重地浪窕程序设计师的宝贵时间.
而Delphi是一个非常理想选择。Delphi6是操作系统中快速应用开发环境的最新版本。它
也是当前Windows平台上第一个全面支持最新Web服务的快速开发工具。不管是企业级用
户,还是个人开发者,都能够利用Delphi6轻松、快捷地构建新一代电子商务应用。Delphi
6是惟一支持所有新出现的工业标准的RAD环境,包含XML(扩展标记语言)/XSL(可
扩展样式语言),SOAP(简单对象存取协议)与WSDL(Web服务器描述语言)等。
Delphi6是可•视化的快速应用程序开发语言,它提供了可视化的集成开发环境,这•环境为
应用程序设计人员提供了一系列灵活而先进的工具,能够广泛地用于种类应用程序设讦。在
Delphi6的集成开发环境中,用户能够设计程序代码、运行程序、进行程序错误的调试等,
可视化的开发方法降低了应用程序开发的难度。Delphi的基础编程语言是具有面向对象特性
的Pascal语言,HPObjectPascal。ObjectPascal具有代码稳固、可读性好、编译速度快等优
点,并将面向对象的概念移植到了Pascal语言中,使这种基础语言有了新的进展空间c
使用Delphi6.0,我们几乎能够作任何情况,还能够撰写种各类类型的应用程序,动态链接
库(DLL)、CON、或者CORBA对象,CGI/ISAPI程序,MicrosoftBackOffice应用程序。
程序的规模小到简单的个人数据库应用,大到复杂的企业的多层次分布式系统,都能够使用
Delphi进行开发,其友好的集成开发界面,可视化的双向开发模式,良好的数据库应用支持
高效的程序开发与程序运行,备受广大程序开发人员的好评。特别是Delphi对数据库应用
的强大支持,大大提高了数据库应用软件开发的效率,缩短了开发周期,深受广大数据库应
用程序设计人员的喜爱。Delphi为数据库应用开发人员提供了丰富的数据库开发组件,使数
据库应用开发功能更强大,操纵更灵活,编译后的程序运行速度更快。
§1.3本文所做工作
引言部分介绍了本系统的课题来源与对数据库开发工具的选择。
第二章介绍了数据库的进展,关系数据库,数据库体系结构,并系统介绍了SQL语言,为
设计与懂得应用程序做了铺垫。
第三章系统介绍了Delphi6.0及其部分控件,SQL语言在Delphi6.0中的应用,与Access
等。
第四章是本文的主体,按照软件工程的要求,从需求分析开始,通过概要设计最后到全面设
计,完成对整个系统的设计。
第五章根据第四章的设计结果利用Access2000与Delphi6.0进行了具体的窗体与应用程序
设计。
总结部分介绍了设计体会与编程体会,并指出了系统设计中的不足与改进的方向第二章
数据库概论
§2.1数据库的进展
数据库处理在信息系统的研究中一直是非常重要的主题,然而,近年来,随着WorldWide
Wcb(WWW)的猛增及Internet技术的迅速进展,使得数据库技术之时成为最热门技术之一。
数据库技术能使Inlernet应用超越具有早期应用特点的简单的公布。同时,Inlernet技术提供
了一种向用户公布数据库内容的标准化的访问方法。这些技术没有脱离经典数据库技术的要
求。它们只是加重了数据库技术的重要性。
数据库的设计与开发及包含艺术有包含工程。懂得用户的需求,然后,把它们转变为有效的
数据库设计是一个艺术过程。把设计转变为实际的数据库,同时这些数据库带有功能完备、
高效能的应用,是一个工程过程。
数据库的目的是帮助人们跟踪事务。经典的数据库应用涉及诸如订单、顾客、工作、员工、
学生、电话之类的项,或者其它数据量较大、需要密起关注的事务。最近,由于数据库的普
及,数据库技术已经被应用到了新的领域,诸如用于Internet的数据库或者用于公司内联网
的数据库。数据库也被越来越多地应用于生成与保护多媒体应用程序上。
计算机的数据处理应用,首先要把大量的信息以数据形式存放在存储器中。存储器的容量、
存储速率直接影响到数据管理技术的进展。从1956年生产出第一台计算机到现在,存储器
的进展,为数据库技术提供了良好的物质基础。
使用计算机以后,数据处理的速度与规模,不管是相关于手工方式,还是机械方式,都有无
可比拟的优势。通常在数据处理中,计算是比较简单的而数据的管理却比较复杂。数据管理
是指数据的收集、整理、组织、存储、保护、检索、传送等操作,这部分操作是数据处理业
务的基本环节,而且是任何数据处理业务中必不可少的共有部分。数据管理技术的优劣,将
直接影响数据处理的效率。
2.1.1数据库的进展
数据管理技术的进展,与硬件(要紧是外存)、软件、计算机应用的范围有密切的联系。数
据管理技术的进展通过三个阶段:人工管理阶段、文件系统阶段与数据库阶段。
人工管理阶段与文件系统价段都有着相当多的缺陷,诸如数据冗余性,数据不一致性与数
据联系弱等等。也正是由于这些原因,促使人们研究新的数据管理技术,从而产生了数据库
技术。
20世纪60年代末发生的三件大事,层次模型IMS系统的推出、关于网状模型DBTG报告
的发表与关于关系模型论文的连续发表标志着数据管理技术进入数据库阶段。进入70年代
以后,数据库技术得到迅速进展,开发了许多有效的产品并投入运行。数据库系统克服了文
件系统的缺陷,提供了对数据更高级更有效的管理。
当进入数据库阶段后,随着数据管理规模一再扩大,数据量急剧增加,为了提高效率,开始
时,人们只是对文件系统加以扩充,在应用文件中建立了许多辅助索引,形成倒排文件系统。
但这并不能最终解决问题。在20世纪60年代末,磁盘技术取得重要进展,具有数百兆容量
与快速存取的磁盘陆续进入市场,成木也不高,为数据库技术的产生提供了良好的物质条件。
2.1.2数据库阶段的特点
(1)减少数据的重复(Redundancycanbereduced)
当在一个非数据库系统当中,每一个应用程序都有属于他们自己的文件,由于无法有系统建
立的数据,因此常常会造成存储数据的重复与浪费。比如:在一家公司当中,人事管理程序
与工资管理程序或者许都会使用到职员与部门的信息或者文件,而我们能够运用数据库的方
法,把这两个文件整理起来,以减少多余的数据,过度地占用存储空间。
(2)避免数据的不一致(Inconsistencycanavoid)
本项的特色,能够说是延伸前项的一个特点,要说明这样的一个现象,我们能够从下面这个
实例来看:若是在同一家公司当中,职员甲在策划部门工作,且职员中的记录同时被存放在
数据库的两个地方,而数据库管理系统却没有对这样重要的情况加以操纵,当其中一条数据
库被修改时.,便会造成数据的不一致,但是,关于一个健全的数据库管理系统而言,将会对
这样的情况加以操纵,但有的时候并不需要刻意消除这种情形,应当视该数据库的需求与效
率来决定。
(3)数据共享(Datashared)
关于数据共享的意义,并不是只有针对数据库设计的应用程序,能够使用数据库中的数据,
关于其他撰写好的应用程序,同样能够对相同数据库当口的数据进行处理,继而达到数据共
享的目的。
(4)强化数据的标准化(Standardcanbeenforced)
由数据库管理系统,对数据做出统筹性的管理,关于数据的格式与一些存储上的标准进行操
纵,如此一来,关于不一致的环境的数据交换(DataInterchange)上将有很大的帮助,也能
提高数据处理的效率。
(5)实践安全性的管理(Securityrestrictioncanbeapplied)
通过对数据库完整的权限操纵,数据库管理者能够确认所有可供用户存取数据的合法途径渠
道,同时能够事先对一些段重要或者关键性的数据进行安全检查,以确保数据存取时,能够
将任何不当损毁的情形降至最低。
(6)完整性的保护(Integritycanbemaintained)
所谓完整性的问题,就是要确认某条数据在数据库当中,是正确无误的。正如(2)所述,
若是无法操纵数据的不•致性,便会产生完整性不足的问题,因此,我们会发现,当数据重
复性高的时候,数据不完整的情形也会增加,当然,若是数据库的功能完整,将会大大地提
高数据完整性,也会增加数据库的保护能力与保护简便性。
(7)需求冲突会获得平衡(Conflictingrequirementscanbebalance)
在一个较大型的企业当中,用户不一致的需求,往往会造成系统或者数据库在设计上的困扰,
但是一个合适的数据库系统,能够通过数据库管理员的管理,将会有效地整理各方面的信息,
关于一些较重要的应用程序,能够适时地提供较快速的数据存取方法与格式,以平衡多个用
户在需求上的冲突。
上述七个方面构成了数据库系统的要紧特征。这个阶段的程序与数据间的联系可用下图表
示:
2.1.3数据库技术
从文件系统进展到数据库系统是信息处理领域的一个重大变化。在文件系统阶段,人仅关注
的中心问题是系统功能的设计,因而程序设计处于主导地位,数据只起着服从程序需要的作
用。在数据库方式下,信息处理观念已为新体系所取代,数据占据了中心位置。数据结构的
设计成为信息系统首先关心的问题,而利用这些数据的应用程序设计则退居到以既定的数据
结构为基础的外围地位。
目前世界上已有数百万个数据库系统在运行,其应用已经深入到人类社会生活的各个领域,
从企业管理、银行业务、资源分配、经济预测一直到信息检索、档案管理、普查统计等。并
在通信网络基础上,建立了许多国际性的联机检索系统。我国20世纪90年代初在全国范围
内装备了12个以数据库技术为基础的大型计算机系统,这些系分布在邮电、计委、银行、
电力、铁路、气象、民航、情报、公安、军事、航天与财税等行业。
数据库技术还在不断的进展,同时不断地与其它计算机技术相互渗透。数据库技术与网络通
信技术相结合,产生了分布式数据库系统。数据库技术与面向对象技术相结合,产生了面向
对象数据库系统。
在数据库技术中有四个名词,其概念应该分清。
(1)数据库(database,DD):DB足统一管理的有关数据的集合。DB能为各类用户共享,
具有最小冗余度,数据间联系密切,而又有较高的数据独立性。
(2)数据库管理系统(DatabaseManagemenlSystem,DBMS):DBMS是位于用户与操作系
统之间的一层数据管理软件,为用户或者应用程序提供访问DB的方法,包含DB的建立、
杳询、更新及各类数据操纵。DBMS总是基于某种数捱模型,能够分为层次型、网状型、
关系型与面向对象型DBMSo
(3)数据库系统(DatabaseSystem,DBS):DBS是实现有组织地、动态地存储大量关联数据,
方便多用户访问的计算机软件、硬件与数据资源构成的系统,即使用了数据库技术的计算机
系统。
(4)数据库技术:这是一门研究数据库的结构、存储、管理与使用的软件学科。数据库技
术是操作系统的文件系统基础上进展起来的。而DBMS本身要在操作系统的支持下才能工
作。数据库不仅用到数据结构的知识,而且丰富了数据结构的内容。在关系数据库中要用到
集合论、数理逻辑的理论。因此,数据库技术是一门综合性较强的学科。
§2.2数据库理论基础
2.2.1数据库模型
从20世纪50年代中期开始,计算机的应用由科学研究部门逐步扩展到企业、行政部门。至
60年代,数据处理成为计算机的要紧应用。数据库技术作为数据管理技术,是计算机软件
领域的一个重要分支,产生于60年代末。现已形成相当规模的理论体系与有用技术。
模型是对现实也:界的抽象。在数据库技术中,我们用模型的概念描述数据库的结构与语义,
对现实世界进行抽象,表示实体类型及实体间联系的模型称之“数据模型”。
目前广泛作用的数据模型可分为两种类型。
一种是独立于计算机系统的模型,完全不涉及信息在系统中的表示,只是用来描述某个特定
组织所关心的信息结构,这类模型称之“概念数据模型“。要领模型用丁•建立信息世界的
数据模型,强调其语义表之功能,应该概念简单、清晰,易于用户懂得,它是现实世界的第
一层抽象,是用户与数据库设计人员之间进行交流的工具。这一其中著名的模型是“实体联
系模型”。
另一种数据模型是直接面向数据库的逻辑结构,它是现实世界的第二层抽象。这类模型涉
及到计算机系统与数据库管理系统,乂称之“结构数据模型”。比如,层次、网状、关系、
面向对象等模型。这类模型有严格的形式化定义,以便于在计算机系统中实现。
(1)层次模型。用树型结构表示实体类型及实体间联系的数据模型。树的结点是记录类型,
每个非根结点有且只有一个父结点。上一层记录类型与下一层记录类型间联系是1:N联系。
层次模型的特点是记录之旬的联系通过指针实现,查询效率较高。但层次模型有两个缺点:
一是只能表示1:N联系,尽管有多种辅助手段实现了M:N联系,但都较复杂,用户不易
掌握,二是由于树型结构层次顺序的严格与复杂,引起数据的查询与更新操作也很复杂,因
此,编写应用程序也很复杂。
(2)网状模型。用有向图结构表示实休类型及实体间赎系的数据模型。.1969年DBTG报
告提出的数据模型是网状模型的要紧代表。有向图中的结点是记录类型,有向边表示从箭尾
一端的记录类型到箭头一端的记录类型间联系是1:N联系。
网状模型的特点:记录之间联系通过指针实现,M:N联系也容易实现(每个M:N联系可
拆成两个I:N联系),查询效率较高。网状模型的缺点是编写应用程序比较复杂,程序员
务必熟悉数据库的逻辑结构。由于层次系统与网状系统的应用程序编制比较复杂,因此,从
20世纪80年代中期起,其市场J被关系系统所取代。但是使用这两种模型建立起的许多数
据库仍然在正常运转,只是在外层加了个关系数据库语言的接口。网状模型有许多成功的产
品,20世纪70年代的产品大部分网状系统,比如,Honeywell公司的IDS/II>HP公司的
IMAGE/3000.Burroughs公司的DMSH、Umivac公司的DMS1100、Cullinct公司的IDMS、
Cimcom公司的TOTAL等
(3)关系模型。关系模型的要紧是用二维表格结构表达实体集,用外键表示实体间联系。
关系模型是由若干个关系模式构成的集合。关系模式相当于前面提到的记录类型,它的实例
称之关系,每个关系实际上是一张二维表格。
关系模型与层次、网状模型的最大判别是用关键码而不是用指针导航数据,表格简单用户易
懂,编程时并不涉及存储结构,访问技术等细节。关系模型是数学化模型。SQL语言是关
系数据库的标准化语言,已得到了广泛的应用。20世纪70年代对关系数据库的研究要紧集
中在理论与实验系统的开发方面。80年代初才形成产品,但很快得到广泛的应用与普及,
并最终取代了层次、网状数据库产品。现在市场上典型的关系DBMS产品有DB2>ORACLE
SYBASE.INFORMIX与微机型产品Foxpro、Access等。
关系模型与网状、层次模型的最大区别是:关系模型用表格数据而不是通过指针链来表示与
实现实体间联系。关系模型的数据结构简单、易懂。只需用简单的查询语句就可对数据库进
行操作。
关系模型是数学化的模型,可把表格看成一个集合,因此集合论、数理逻辑等知识可引入到
关系模型中来。关系模型已是一个成熟的有前途的模型,己得到广泛应用。
(4)面向对象模型。目前,关系数据库的使用已相当普遍,但是,现实世界中仍然存在着
许多含有复杂数据结构的应用领域,比如,CAD数据、图形数据等,而关系模型在这方面
的处理能力就显得力不从心。因此,人们需要更高级的数据库技术来表达这类信息。面向对
象的概念最早出现在程序设计语言中,随后迅速渗透到计算机领域的每•个分支。面向对象
数据库是面向对象概念与数据库技术相结合的产物。
面向对象模型能完整地描述现实世界的数据结构,具有丰富的表达能力,但模型相对较豆杂,
涉及的知识面也广,因此面向灼象数据库尚未达到关系数据库那样的普及程度。
2.2.2数据库体系结构
数据库的体系结构分三级:内部级(inlernal),概念级(conceptual)与外部级(exlemal)。
这个三级结构有的时候也称之“三级模式结构”,或者”数据抽象的三个级别”,最早是在
1971年通过的DBTG报告中提出,后来收入在1975年的美国ANSI/SPARC报告中。尽管
现在DBMS的产品多种多样,在不一致的操作系统支持下工作,但是大多数系统在总的体
系结构上都具有三级模式的结构特征。从某个角度看到的数据特性称之“数据视图”(data
view)o
外部级最接近用户,是单个用户所能看到的数据特性。单个用户使用的数据视图的描述称之
“外模式”。
概念级涉及到所有用户的数据定义,是全局的数据视图。全局数据视图的描述称之“概念模
式”。
内部级最接近于物理存储设备,涉及到实际数据存储的结构。物理存储数据视图的描述称之
“内模式”。
数据库的三级模式结构是数据的三个抽象级别。它把数据的具体组织留给DBMS去做,用
户只要抽象地处理数据,而不必关心数据在计算机中的表示与存储,这样就减轻了用户使用
系统的负担。
三级结构之间往往差别很大,为了实现这三个抽象级别的联系与转换,DBMS在三级结构
之间提供两个层次的映象(mappings):外模式/模式映象,模式/内模式映象。此处模式是概
念模式的简称。
2.2.3数据的独立性
由于数据库系统使用二级模式结构,因此系统具有数据独立性的特点。在数据库技术中,数
据独立性是指应用程序与数据之间相互独立,不受影响。数据独立性分成物理数据独立性与
逻辑数据独立性两级。
(1)物理数据独立性
假如数据库的内模式要进行修改,即数据库的存储设备与存储方法有所变化,那么模式/内
模式映象也要进行相当的修改,使概念模式尽可能保持不变。也就是对内模式的修改尽量不
影响概念模式,当然,关于外模式与应用程序的影响更小,这样,我们称数据库达到了物理
数据独立性。
(2)逻辑数据独立性
假如数据库的概念模式要进行修改,譬如增加记录类型或者增加数据项,那么外模式,模式
映象也要进行相应的修改,使外模式尽可能保持不变。也就是对概念模式的修改尽量不影响
外模式与应用程序,这样,我们称数据库达到了逻辑数据独立性。
现有关系系统产品均提供了较高的物理独立性,而对逻辑独立性的支持尚有欠缺,比如,对
外模式的数据更新受到限制等。
2.2.4范式
建立起一个良好的数据指标体系,是建立数据结构与数据库的最重要的一环。一个良好的数
据指标体系是建立DB的必要条件,但不是充分条件。我们完全能够认为所建指标体系中的
一个指标类就是关系数据库中的一个基本表,而这个指标类下面的一个个具体指标就是这个
基本表中的一个字段。但假如直接按照这种方式建库显然还不能算最佳。关于指标体系中数
据的结构在建库前还务必进行规范化的重新组织。
在数据的规范化表达中,通常将一组相互关联的数据称之一个关系(relation),而在这个关系
下的每个数据指标项则被称之数据元素(dataelement),这种关系落实到具体数据库上就是基
本表,而数据元素就是基本表中的一个字段(field)。规范化表达还规定在每一个基本表中务
必定义一个数据元素为关键字(key),它能够唯一地标识出该表中其它有关的数据元素。在
规范化理论中表是二维的,它有如卜四个性质:
在表中的任意一列上,数据项应属于同一个属性(如图中每一列都存放着不一致合同记录的
同一属性数据)。
表中所有行都是不相同的,不同意有重复组项出现(如图中每一行都是一个不一致的合同记
录)。
在表中,行的顺序无关紧要(如图中每行存的都是合同记录,至于先放哪一个合同都没关系)。
在表中,列的顺序无关紧要,但不能重复(如图中合同号与合同名谁先谁后都没关系,但二
者不可重复或者同名)。
在对表的形式进行了规范化定义后,数据结构还有五种规范化定义,定名为规范化模式,称
之范式。在这五种范式中,通常只用前三种,关于常用系统就足够了。而且这五种范式是“向
上兼容”的,即满足第五范式的数据结构自动满足一、二、三、四范式,满足第四范式的数
据结构自动满足第一、二、三范式,……,依此类推。
第一范式(firstnonnalfonri,简称1stNF)就是指在同一表中没有重复项出现,假如有贝!应将
重复项去掉。这个去掉重复项的过程就称之为规范化处理。在本文所讨论的开发方法里,Isl
NF实际上是没有什么意义的。由于我们按规范化建立的指标体系与表的过程都自动保证了
所有表都满足IstNFo
第二范式(secondnonnalfomi,简称2ndNF)是指每个表务必有•个(而且仅■个)数据元素为
主关键字(primarykey),其它数据元素与主关键字一一对应。比如,在图19.7中假如我们将
合同号定义为主关键字(其它数据元素中的记录数据都有可能重名,故不能作为主关键字),
故只要明白了一个合同记录的合同号,就能够唯一地在同一行中找到该合同的任何一项具体
信息。通常我们称这种关系为函数依靠(functionaldcpEndcncc)关系。即表中其它数据元素都
依靠于主关键字,或者称该数据元素唯一地被主关键字所标识。
第三范式(Ihirdnormalform,简称3rdNF)就是指表中的所有数据元素不但要能够唯一地被
主关键字所标识,而且它们之间还务必相互独立,不存在其它的函数关系。也就是说关于一
个满足了2ndNF的数据结构来说,表中有可能存在某些数据元素依靠于其它非关键宇数据
元素的现象,务必加以消除。
为防止数据库出现更新特殊、插入特殊、删除特殊、数据冗余太大等现象,关系型数据库要
尽量按关系规范化要求进行数据库设计。
§2.3SQL语言基研;
2.3.1SQL简介
用户对数据库的使用,是通过数据库管理系统提供的语言来实现的。不•致的数据库管理系
统提供不一致的数据库语言。关系数据库管理系统几乎都提供关系数据库标准语言一一
SQLo
SQL的全称是StructuredQueryLanguage,即结构化查询语言。SQL语句能够从关系数据库
中获得数据,也能够建立数据库、增加数据、修改数据。1986年ANSI使用SQL语言作为
关系数据库系统的标准语言,后被国际化标准组织(ISO)采纳为国际标准。SQL语言使用
方便、功能丰富、简洁易学,是操作数据库的工业标准语言,得到广泛地应用。比如关系数
据库产品DB2、ORACLE等都实现了SQL语言。同时,其它数据库产品厂家也纷纷推出各
自的支持SQL的软件或者者与SQL的接口软件。这样SQL语言很快被整个计算机界认可。
SQL语言是•种非过程化语言,它一次处理一个记录集合,对数据提供自动导航。SQL语
言同意用户在高层的数据结构上工作,而不耐单个记录进行操作。SQL语言不要求用户指
定数据的存取方法,而是使用查询优化器,由系统决定对指定数据存取的最快速手段。当设
计者在关系表上定义了索引时,系统会自动利用索引进行快速检索,用户不需明白表上是否
有索引或者者有什么类型的索引等细节。
SQL语言能够完成许多功能,比如:
•查询数据
•在数据库表格中插入、修改与删除记录
•建立、修改与删除数据对象
・操纵对数据与数据对象的存取
•确保数据库的一致性与完整性等
2.3.2SQL查询
数据查询是关系运算理论在SQL语言中的要紧表达,SELECT语句是SQL查询的基本语句,
当我们在对一个数据库进各类各样的操作时,使用的最多的就是数据查询,在以SQL为基
础的关系数据库中,使用的最多的就是SELECT查询语句。
SELECT语句的完整句法如下:
SELECT目标表的列名或者列表达式序列
FROM基本表与(或者)视图序列
(WHERE行条件表达式]
[GROUPBY列名序列]
IHAVING组条件表达式]
[ORDERBY歹U名[ASC|DEAC]-]
我在SELECT语句中还使用了大量的保留字与通配符以进行各类各样的条件查询。在系统
中有大量的查询按钮,共使用了大量的查询语句,而一旦这些查询语句大部分使用的足模糊查
询,因此大量的使用了模式匹配符LIKE(推断值是否与指定的字符通配格式相符)。在包含
LIKE的查询语句中能够使用两个通配符:%(百分号):与零个或者多个字符构成的字符串
匹配:_(下划线):与单个字符匹配。系统中的条件推断往往包含多个条件,这时就需要使
用逻辑运算符NOT、AND、OR(用于多条件的逻辑连接),谓词ALL与保留字DISTINCT
等等。做为SELECT语句还有很多的使用方法,这里就不再叙述。
2.3.3SQL数据更新
使用数据库的目的是为了有效地管理数据,而数据的插入、删除与修改则是必不可少佗一个
功能。在本系统中就大量地使用了数据插入、删除与修改这三种操作,现做一个简单地介绍。
•数据插入
往数据库的基本表中插入数据使用的是INSERT语句,其方式有两种:一种是元组值的插入,
另一种是查询结果的插入。在本系统中使用的是前一种方式,其句法如下:
INSERTINTO基本表名[列表名)VALUES(元组值)
・数据删除
往数据库的基本表中删除数据使用的是DELETE语句,其句法如下:
DELETEFROM基本表名[WHERE条件表达式]
在些作一点说明,删除语句实际上是“SELECT*FROM基本表名[WHERE条件表达式]”
与DELETE操作的结合,每找到一个元组,就把它删除。此外,DELETE语句只能从一个
基本表中删除元组,WHERE子句中条件能够嵌套,也能够是来自几个基本表的复合条件。
・数据修改
当需要修改基本表中元组的某些列值时,能够用UPDATE语句实现,其句法如下:
UPDATE基本表名
SET列名=值表达式[,列名=值表达式…]
(WHERE条件表达式]
在Delphi中使用SQL语句是很方便的,通常来说,都是通过TQuery组件来使用SQL语言
的。有一点要进行说明,尽管通过TQuery组件来使用SQL语言很方便,但考虑到自己对不
一致组件的懂得程度、个人习惯与其它各个方面,在本系统中我使用的是ADO组件来对数
据库进行操作。最简单的方法比如在TADOQuery组件的SQL属性中就能够键入SQL语句,
至于全面的使用方法在后面进行介绍。
第四章系统总体设计
软件系统的总体设计大约要经历可行性分析与项目开发计划,需求分析,概要设计,全面设
计,编码,测试与保护等七个阶段。可行性分析与项目开发计划在前面已经叙述,卜面所要
做的是进行软件需求分析,概要设计与全面设计。编码过程将在下一节论述,而测试与保护
过程不在本文叙及。
§4.1系统需求分析
在通过前一阶段的分析之后,我确定了我的开发课题为图书仓库管理。现在所要做的是要准
确定义系统务必做什么与系统务必具备的功能。
软件需求分析中我使用结构化分析方法(StrucluredAnalysis,简称SA),SA是面向数据流进
行需求分析的方法,像所有的软件分析方法(如面向对象分析方法、IDEF方法等等)一样,
SA也是一种建模活动,它使用简单易读的符号,根据软件内部数据传递、变换的关系,自
顶向下逐层分解,描绘满足功能要求的软件模型。
在系统中我使用数据流图(DFD)这种半形式化的描述方式表达需求。它是一种功能模型,
以图形的方式描绘数据在系统中流淌与处理的过程,只反映系统务必完成的逻辑功能。它有
四种基本图形符号:
♦»:箭头,表示数据流;
♦O:圆或者椭圆,表不加工;
♦一:双杠,表示数据存储;
♦□:方框,表示数据的源点或者终点。
为了表达较为复杂问题的数据处理过程,用一张数据流图是不够的,要按照问题的层次结构
进行逐步分解,并以一套分层的数据流图反映这种结构关系。在这里我一共使用了三层数据
流图,即顶层图,0层图与I层图(也是底层图)。
在多层数据流图中,顶层流图仅包含一个加工,它代表被开发系统,它的输入流是该系统的
输入数据了,输出流是该系统的输出数据;底层流图是指其加工不需要再做分解的数据流图,
中间层流图表示对其上层父图的细化,它的每一步加工可能继续细化成子图。
通过对系统的分析首先得到系统的顶层DFD,如下:
一步细化得到系统的。层DFD,如下:
再进一步细化每一个数据加工功能,得到系统的1层DFD图。
在这里只给出有关入库管理与出库管理的1层数据流图,它们是系统的关维部分,也是要紧
的部分。通过以上对数据流图的分析之后,我们已大体地熟悉了系统的功能与目标,接下来
所要做的就是系统功能模块的划分与数据库的设计,也就是系统的概要设计。
§4.2系统概要设计
在软件需求分析阶段,搞清晰了软件“做什么”的问题,形成了目标系统的逻辑模型。现在
我们所要做的就是要把软件“做什么”的逻辑模型变换为“怎么做”的物理模型,即着手实
现软件的需求。首先,我们需要描述的是系统的总的体系结构。
4.2.1系统结构设计
系统的概要设计中最重要的就是系统的模块化。模块化是指解决一个复杂问题时自项向下逐
层把软件系统划分成若干个模块的过程。每个模块完成一个特定的功能,所有的模块按某种
方法组织起来,成为一个整体,完成整个系统所要求的功能。
将系统划分为多个模块是为了降低软件系统的复杂性,提高可读性、可保护性,但模块的
划分不能是任意的,应尽量保持其独立性。也就是说,每个模块只完成系统要求的独立的子
功能,同时与其他模块的联系最少且接口简单,即尽量做到高内聚低耦合,提高模块的独立
性,为设计高质量的软件结构奠定基础。
在系统的概要设计中我使用结构化设计(StructureDesign,简称SD),SD以需求分析阶段
产生的数据流图DFD为基础,按一定的步骤映射成软件结构。我首先将整个系统化分为几
个小问题,小模块,在系统中,我设计了用户管理、库存管理、入库管理、出库管理、员工
管理与供应商管理6个小模块。然后,进一步细分模块,添加细节。比如,用户管理我乂将
其分为用户注册、用户注嘴、密码修改;库存管理分为库存记录查询、库存记录修改、库存
记录打印等等。
下列就是系统的结构图:1在这里为了表达方便我将结构图分开来表达。)
在得到系统的第一层功能模块图后,通过进一步地细化,得一系统的子功能模块图:
4.2.2数据库设计
在信息世界中,信息从客观事物出发流经数据库,通过决策机构最后乂I可到客观世界,信息
的这•循环经历了三个领域:信息世界,数据世界,现实世界。现实世界的事物反映到人的
头脑中,人的大脑对它有个认识过程,通过分析(选择、命名、分类等)进入信息世界。这
些信息再进一步加工、编码,然后进数据世界,而软件系统的开发工作需要考虑这两个方面
的问题,也就是要考虑系统开发所需要的数据,与如何对这些数据进行操作。这两个问题贯
穿了整个软件系统的开发过程,这也就足数据库的设计问题,软件设计的一个核心。
ER图设计
在系统设计的开始,我首先考虑的是如何用数据模型来数据库的结构与语义,以对现实世界
进行抽象。目前广泛使用H勺数据模型可分为两种类型,一种是独立于计算机系统的“概念数
据模型”,如“实体联系模型”;另一种是直接面向数据库逻辑结构的“结构数据模型”。在
本系统中我使用“实体联系模型"(ER模型)来描述数据库的结构与语义,以对现实世界进
行第一次抽象。ER模型直接从现实世界抽象出实体类型及实体间联系,然后用ER图来表
示数据模型。它有两个明显的优点:接近于人的思维,容易懂得;与计算机无关,用户容易
同意。但ER模型只能说明实体间语义的联系,不能进一步说明全面的数据结构,它只是数
据库设计的第一步。
ER图是直观表示概念模型的工具,它有四个基本成分:
♦矩形框,表示实体类型(考虑问题的对象)。
♦菱形框,表示联系类型(实体间的联系)。
♦椭圆形框,表示实体类型与联系类型的属性。关于关键码的属性,在属性名下划一横线。
♦直线,联系类型与其涉及的实体类型之间以直线连接。
本系统为图书仓库管理,要紧管理图书的入库、出库与库存等事项。仓库根据需要能够查询
图书供应商的信息,同时还需要熟悉在入库与出库中员工的参与情况。根据仓库管理佗实际
情况,考虑了多方面的因素以后,确定系统的ER图如二
(为了表达的方便,在这里我没有在一张图上表达出所有的关系,而是用一张总体ER图,
与几张实体属性关系图来表达数据库的结构。)
在该数据库中,我设计了三个实体,分别是库存、员工与供应商与两个联系类型入库与出库.
在本系统中库存是核心,也是基本,没有了库存其它的也就没有什么意义了。员工记录的添
加是考虑到责任问题,也就是说,在仓库管理的实际运用中,出现了责任不清的现象,特别
是由于仓库的进出图书数量都比较大时产生了一系列问题,因此在设计数据库时,我特别考
虑到这一点,加入了员工记录这一实体。供应商信息的添加要紧出于对图书来源问题的思考。
通过添加供应商信息能够比较清晰地熟悉图书的进货渠道,从图书的质量到供应商的信誉都
能够进行熟悉,同时能够为以后的图书进购提供一定有用的信息。
入库联系类型将库存信息、、供应商信息与员工信息联系在一起,能够方便地实现三个实体之
间的联接,而出库联系类型则将库存信息与员工信息较好地联接起,同时这两个联系类型又
都具有各自特有的属性。
下面就是各实体及联系类型的属性图:(带#号的属性为关键字段)422.2数据库表格设计
在完成系统的ER图之后,需要将ER模型转化为关系模型,也就是说,要设计出数据库所
需要的表格。在这里,我选用的是关系数据库。由于关系数据库中的二维表格能够很清晰地
描述数据之间的联系。
在这里不得不提到一个概念一一范式。事实上在上一节的ER图设计中,已经运用了范式的
思想.,不仅如此,在数据库的表格设计中更离不开范式的思想,它是数据库设计的基础,假
如不注意这个问题将会导致一系列问题的出现。
我在系统中定义的表格都"格地按照范式的思想与要求去完成,数据库中的所有表格都达到
了三范式的要求。根据系统ER图,针对本系统的特点,在对所搜集的数据进行规范化之后,
定义了如下六张表格,分别是库存信息表,入库信息表,出库信息表,员工信息表,供应商
信息表与密码信息表。通过对这六张表格的操作能够较好地完成系统设计的各项功能,六张
表格之间有着不一致程度的联系。(说明:在下列数据表中,K代表主键,#代表外键,字段
值不为空。)
BookRecord表(库存信息表)
字段名称数据类型说明
KBookID数字图书编号
BookName文本图书名
Author文本作者
Publisher文本出版社
PubDate日期/时间出版日期
Price货币价格
BookType文本图书类型
NumberI数字库存数量
Addation文本备注
图4.13库存信息表
库存信息表要紧用于记录仓库中现存放的所有图书的全面信息,包含图书编号、书名、作者、
出版社、图书类型等有关图书的各类信息,它即是该数据库的主表,也是系统主界面的要紧
内容。
在该表中图书编号是主键,它按图书入库的先后次序来编写,每当有图书入库,系统自动给
出图书编号,这样我们按图书编号来查找图书是比较方便的。考虑到编号比较难于经历,因
此使用了出版社与图书类型两个字段,在系统中我提供了出版社与图书类型的分类查找,而
且全部使用自动生成,每当系统中有新的出版社类型与图书类型,弹出菜单会自动添中新类
型,这样就能够比较方便地实现按出版社与按图书类型查找。此外,库存数量也是一个比较
关键的字段,该字段是在系统
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 数据标注兼职2026年风险防范协议
- 健康保障2026年牙科治疗合同协议
- 电线电缆行业环保责任协议
- 线上手机通讯广告投放合同
- 肝内胆管细胞癌:多维度解析危险因素与发病机制
- 聚类分析赋能股指期货期现套利:策略优化与实证研究
- 聚多巴胺衍生氮掺杂碳材料的制备、结构调控及性能优化研究
- 聚合物-硒化镉量子点杂化太阳电池:性能、挑战与突破
- 聚乳酸及其共聚物:合成路径、性能特征与应用前景的深度剖析
- 聚丙烯(PP)木粉复合材料注射成型的多维度探究与优化策略
- (四模)新疆2026年高三普通高考五月适应性文科综合试卷(含答案及解析)
- 中药学电子版教材
- 亮化工程合同书样本
- 王勃滕王阁序注释
- FZ/T 72016-2012针织复合服用面料
- 微生物学-第九章-传染与免疫-zh-v7
- 儿童保健三基理论考核试题题库及答案
- 摄影构图(共86张PPT)
- DB33T 988-2022 柔性生态加筋挡土墙设计与施工技术规范
- DB31T 1234-2020 城市森林碳汇计量监测技术规程
- 对外经贸函电课程课件-新Unit-10-Packing
评论
0/150
提交评论