数据库管理系统总体设计_第1页
数据库管理系统总体设计_第2页
数据库管理系统总体设计_第3页
数据库管理系统总体设计_第4页
数据库管理系统总体设计_第5页
已阅读5页,还剩96页未读 继续免费阅读

下载本文档

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

文档简介

3/4数据库管理系统总体设计图书仓库治理系统本系统要紧完成对图书仓库的库存治理,包括图书入库、出库、库存,职员信息,供应商信息以及密码治理等六个方面。系统能够完成对各类信息的扫瞄、查询、添加、删除、修改、报表等功能。系统的核心是入库、库存和出库三者之间的联系,每一个表的修改都将联动的阻碍其它的表,当完成入库或出库操作时系统会自动地完成库存的修改。查询功能也是系统的核心之一,在系统中即有单条件查询和多条件查询,也有精确查询和模糊查询,系统不仅有静态的条件查询,也有动态生成的条件查询,其目的差不多上为了方便用户使用。系统有完整的用户添加、删除和密码修改功能,并具备报表打印功能。数据库管理系统总体设计全文共100页,当前为第1页。系统采纳MicrosoftOffice中的Access2000来设计数据库,并使用当前优秀的开发工具—数据库管理系统总体设计全文共100页,当前为第1页。论文要紧介绍了本课题的开发背景,所要完成的功能和开发的过程。重点的讲明了系统设计的重点、设计思想、难点技术和解决方案。关键字:数据库,SQL语言,Delph6,数据库组件,仓库治理目录第一章引言……………11.1课题来源……………………11.2开发工具的选择……………21.3所做的要紧工作……………3数据库管理系统总体设计全文共100页,当前为第2页。第二章数据库概论……………………数据库管理系统总体设计全文共100页,当前为第2页。2.1数据库的进展………………42.1.1数据库的进展…………42.1.2数据库时期的特点……………………52.1.3数据库技术……………62.2数据库理论基础……………72.2.1数据库模型……………72.2.2数据库体系结构……………………102.2.3数据的独立性………11数据库管理系统总体设计全文共100页,当前为第3页。2.2.4范式…………………数据库管理系统总体设计全文共100页,当前为第3页。2.3SQL语言基础……………132.3.1SQL简介……………132.3.2SQL查询……………132.3.3SQL数据更新………14第三章数据库开发工具……………163.1Delphi6.0简介……………163.2Delphi6.0控件……………173.2.1ADO数据访问组件…………………17数据库管理系统总体设计全文共100页,当前为第4页。3.2.2数据操纵类DataControl……………数据库管理系统总体设计全文共100页,当前为第4页。3.2.3数据访问类DataAccess……………183.2.4SQL语言在Delphi中的应用………193.3Access简介………………21第四章系统总体设计………………234.1系统需求分析……………234.2系统概要设计……………254.2.1系统结构设计………254.2.2数据库设计…………27数据库管理系统总体设计全文共100页,当前为第5页。ER图设计……………………数据库管理系统总体设计全文共100页,当前为第5页。数据库表格设计………………294.3系统详细设计………………34第五章系统应用程序设计…………375.1系统窗体模块组成…………375.2数据模块窗体设置…………385.3主窗体功能模块的实现……………………395.4入库、出库窗体模块的实现………………435.5查询功能的实现……………51数据库管理系统总体设计全文共100页,当前为第6页。5.6系统登陆窗体模块的实现…………………数据库管理系统总体设计全文共100页,当前为第6页。5.7用户治理功能的实现………545.7.1用户治理主窗体……………………545.7.2密码修改窗体模块的实现…………545.7.3用户注册窗体模块的实现…………555.7.4用户注销窗体模块的实现…………57结束语…………………59致谢……………………60数据库管理系统总体设计全文共100页,当前为第7页。参考文献………………数据库管理系统总体设计全文共100页,当前为第7页。第一章引言§1.1课题来源随着社会经济的迅速进展和科学技术的全面进步,计算机事业的飞速进展,以计算机与通信技术为基础的信息系统正处于蓬勃进展的时期。随着经济文化水平的显著提高,人们对生活质量及工作环境的要求也越来越高。书籍做为人类的精神食粮,在现代社会中越来越受到重视,大量的书籍出现在市场上,人们有了各种各样不同的选择。与此同时,为了治理大量的图书,图书仓库也大量的出现,仓库的治理问题也就提上了日程。随着图书的大量增加,其治理难度也越来越大,如何优化仓库的日常治理也就成为了一个大众化的课题。在计算机飞速进展的今天,将计算机这一信息处理利器应用于仓库的日常治理已是势必所然,而且这也将为仓库治理带来前所未有的改变,它能够带来意想不到的效益,同时也会为企业的飞速进展提供无限潜力。采纳计算机治理信息系统已成为仓库治理科学化和现代化的重要标志,它给企业治理来了明显的经济效益和社会效益。要紧体现在:数据库管理系统总体设计全文共100页,当前为第8页。数据库管理系统总体设计全文共100页,当前为第8页。基于仓库治理的全面自动化,能够减少入库治理、出库治理及库存治理中的漏洞,能够节约许多治理开支,增加企业收入。仓库的治理的操作自动化和信息的电子化,全面提高了仓库的治理水平。随着我国改革开放的不断深入,经济飞速的进展,企业要想生存、进展,要想在激烈的市场竞争中立于不败之地,没有现代化的治理是万万不行的,仓库治理的全面自动化、信息化则是其中极其重要的部分。为了加快仓库治理自动化的步伐,提高仓库的治理业务处理效率,建立仓库治理系统已变得十分心要。入库、库存、出库依旧现在企业图书仓库治理的常规差不多模式,尽管,最近又出现了专门多新的治理模式,如:基于零库存思想的沃尔玛特治理方式,但这些新的思想在中国大部分企业的治理中依旧难以实现的。因此如何设计好仓库治理系统,尽可能地减少仓库治理的重复性和低效性就成为当前最为重要的问题。图书仓库治理的核心是入库、库存和出库之间的联系,如何处理好三者之间的关系是系统最为关键的部分。另外,职员信息和供应商信息治理也是仓库治理中一个必不可少的部分,它提供着与入库和出库相关的地一些信息,使得整个系统更加完整,更加有用。数据库管理系统总体设计全文共100页,当前为第9页。数据库管理系统总体设计全文共100页,当前为第9页。§1.2开发工具的选择自Java诞生以来,随着Internet技术的普及和应用需求的变化,以第四代语言为主的应用开发产品发生了较大的变化,它们不仅已成为人们开发应用的开发工具,而且专门多产品已进展成为一种强有力的应用开发环境。这些新型的开发工具通常以一种集成软件包的形式提供给开发人员,被称为Studio(工作室)或Suite(程序组)。例如,微软的VisualStudio6.0,Borland公司的Delphi6.0等数据库辅助开发工具。现在,市场上能够选购的应用开发产品专门多,流行的也有数十种。目前在我国市场上最为流行、使用最多、最为先进的可用作企业级开发工具的产品有:Microsoft公司的VisualBasic6.0版Microsoft公司的VisualC++6.0版Borland公司的Delphi6.0版数据库管理系统总体设计全文共100页,当前为第10页。在目前市场上这些众多的程序开发工具中,有些强调程语言的弹性与执行效率;有些则偏重于可视化程序开发工具所带来的便利性与效率的得高,各有各的优点和特色,也满足了不同用户的需求。然而,语言的弹性和工具的便利性是密不可分的,只有便利的工具,却没有弹性的语言作支持,许多专门化的处理动作必需要耗费数倍的工夫来处理,使得原来所标榜的效率提高的优点失去了数据库管理系统总体设计全文共100页,当前为第10页。而Delphi是一个特不理想选择。Delphi6是操作系统中快速应用开发环境的最新版本。它也是当前Windows平台上第一个全面支持最新Web服务的快速开发工具。不管是企业级用户,依旧个人开发者,都能够利用Delphi6轻松、快捷地构建新一代电子商务应用。Delphi6是惟一支持所有新出现的工业标准的RAD环境,包括XML(扩展标记语言)/XSL(可扩展样式语言),SOAP(简单对象存取协议)和WSDL(Web服务器描述语言)等。数据库管理系统总体设计全文共100页,当前为第11页。Delphi6是可视化的快速应用程序开发语言,它提供了可视化的集成开发环境,这一环境为应用程序设计人员提供了一系列灵活而先进的工具,能够广泛地用于种类应用程序设计。在Delphi6的集成开发环境中,用户能够设计程序代码、运行程序、进行程序错误的调试等,可视化的开发方法降低了应用程序开发的难度。Delphi的基础编程语言是具有面向对象特性的Pascal语言,即ObjectPascal。ObjectPascal具有代码稳定、可读数据库管理系统总体设计全文共100页,当前为第11页。使用Delphi6.0,我们几乎能够作任何情况,还能够撰写种各种类型的应用程序,动态链接库(DLL)、CON、或CORBA对象,CGI/ISAPI程序,MicrosoftBackOffice应用程序。程序的规模小到简单的个人数据库应用,大到复杂的企业的多层次分布式系统,都能够使用Delphi进行开发,其友好的集成开发界面,可视化的双向开发模式,良好的数据库应用支持高效的程序开发和程序运行,备受宽敞程序开发人员的好评。尤其是Delphi对数据库应用的强大支持,大大提高了数据库应用软件开发的效率,缩短了开发周期,深受宽敞数据库应用程序设计人员的喜爱。Delphi为数据库应用开发人员提供了丰富的数据库开发组件,使数据库应用开发功能更强大,操纵更灵活,编译后的程序运行速度更快。§1.3本文所做工作数据库管理系统总体设计全文共100页,当前为第12页。数据库管理系统总体设计全文共100页,当前为第12页。第二章介绍了数据库的进展,关系数据库,数据库体系结构,并系统介绍了SQL语言,为设计和理解应用程序做了铺垫。第三章系统介绍了Delphi6.0及其部分控件,SQL语言在Delphi6.0中的应用,以及Access等。第四章是本文的主体,按照软件工程的要求,从需求分析开始,通过概要设计最后到详细设计,完成对整个系统的设计。第五章依照第四章的设计结果利用Access2000和Delphi6.0进行了具体的窗体和应用程序设计。总结部分介绍了设计体会和编程体会,并指出了系统设计中的不足和改进的方向第二章数据库概论§2.1数据库的进展数据库处理在信息系统的研究中一直是特不重要的主题,然而,近年来,随着WorldWideWeb(WWW)的猛增及Internet技术的迅速进展,使得数据库技术之时成为最热门技术之一。数据库技术能使Internet应用超越具有早期应用特点的简单的公布。同时,Internet技术提供了一种向用户公布数据库内容的标准化的访问方法。这些技术没有脱离经典数据库技术的要求。它们只是加重了数据库技术的重要性。数据库管理系统总体设计全文共100页,当前为第13页。数据库管理系统总体设计全文共100页,当前为第13页。数据库的目的是关心人们跟踪事务。经典的数据库应用涉及诸如订单、顾客、工作、职员、学生、电话之类的项,或其它数据量较大、需要密起关注的事务。最近,由于数据库的普及,数据库技术差不多被应用到了新的领域,诸如用于Internet的数据库或用于公司内联网的数据库。数据库也被越来越多地应用于生成和维护多媒体应用程序上。计算机的数据处理应用,首先要把大量的信息以数据形式存放在存储器中。存储器的容量、存储速率直接阻碍到数据治理技术的进展。从1956年生产出第一台计算机到现在,存储器的进展,为数据库技术提供了良好的物质基础。数据库管理系统总体设计全文共100页,当前为第14页。使数据库管理系统总体设计全文共100页,当前为第14页。2.1.1数据库的进展数据治理技术的进展,与硬件(要紧是外存)、软件、计算机应用的范围有紧密的联系。数据治理技术的进展通过三个时期:人工治理时期、文件系统时期和数据库时期。人工治理时期和文件系统时期都有着相当多的缺陷,诸如数据冗余性,数据不一致性以及数据联系弱等等。也正是由于这些缘故,促使人们研究新的数据治理技术,从而产生了数据库技术。20世纪60年代末发生的三件大事,层次模型IMS系统的推出、关于网状模型DBTG报告的发表以及关于关系模型论文的连续发表标志着数据治理技术进入数据库时期。进入70年代以后,数据库技术得到迅速进展,开发了许多有效的产品并投入运行。数据库系统克服了文件系统的缺陷,提供了对数据更高级更有效的治理。数据库管理系统总体设计全文共100页,当前为第15页。当进入数据库时期后,随着数据治理数据库管理系统总体设计全文共100页,当前为第15页。2.1.2数据库时期的特点(1)减少数据的重复(Redundancycanbereduced)当在一个非数据库系统当中,每一个应用程序都有属于他们自己的文件,由于无法有系统建立的数据,因此常常会造成存储数据的重复与白费。例如:在一家公司当中,人事治理程序与工资治理程序或许都会使用到职员与部门的信息或文件,而我们能够运用数据库的方法,把这两个文件整理起来,以减少多余的数据,过度地占用存储空间。(2)幸免数据的不一致(Inconsistencycanavoid)本项的特色,能够讲是延伸前项的一个特点,要讲明如此的一个现象,我们能够从下面那个实例来看:若是在同一家公司当中,职员甲在策划部门工作,且职员甲的记录同时被存放在数据库的两个地点,而数据库治理系统却没有对如此重要的情况加以操纵,当其中一条数据库被修改时,便会造成数据的不一致,然而,关于一个健全的数据库治理系统而言,将会对如此的情况加以操纵,但有时并不需要刻意消除这种情形,应当视该数据库的需求与效率来决定。数据库管理系统总体设计全文共100页,当前为第16页。数据库管理系统总体设计全文共100页,当前为第16页。关于数据共享的意义,并不是只有针对数据库设计的应用程序,能够使用数据库中的数据,关于其他撰写好的应用程序,同样能够对相同数据库当中的数据进行处理,进而达到数据共享的目的。(4)强化数据的标准化(Standardcanbeenforced)由数据库治理系统,对数据做出统筹性的治理,关于数据的格式与一些存储上的标准进行操纵,如此一来,关于不同的环境的数据交换(DataInterchange)上将有专门大的关心,也能提高数据处理的效率。(5)实践安全性的治理(Securityrestrictioncanbeapplied)通过对数据库完整的权限操纵,数据库治理者能够确认所有可供用户存取数据的合法途径渠道,同时能够事先对一些较重要或关键性的数据进行安全检查,以确保数据存取时,能够将任何不当损毁的情形降至最低。(6)完整性的维护(Integritycanbemaintained)数据库管理系统总体设计全文共100页,当前为第17页。数据库管理系统总体设计全文共100页,当前为第17页。(7)需求冲突会获得平衡(Conflictingrequirementscanbebalance)在一个较大型的企业当中,用户不同的需求,往往会造成系统或数据库在设计上的困扰,然而一个合适的数据库系统,能够通过数据库治理员的治理,将会有效地整理各方面的信息,关于一些较重要的应用程序,能够适时地提供较快速的数据存取方法与格式,以平衡多个用户在需求上的冲突。上述七个方面构成了数据库系统的要紧特征。那个时期的程序和数据间的联系可用下图表示:2.1.3数据库技术数据库管理系统总体设计全文共100页,当前为第18页。从文件系统进展到数据库系统是信息处理领域的一个重大变化。在文件系统时期,人们关注的中心问题是系统功能的设计,因而程序设计处于主导地位,数据只起着服从程序需要的作用。在数据库方式下,信息处理观念已为新体系所取数据库管理系统总体设计全文共100页,当前为第18页。目前世界上已有数百万个数据库系统在运行,其应用差不多深入到人类社会生活的各个领域,从企业治理、银行业务、资源分配、经济预测一直到信息检索、档案治理、普查统计等。并在通信网络基础上,建立了许多国际性的联机检索系统。我国20世纪90年代初在全国范围内装备了12个以数据库技术为基础的大型计算机系统,这些系分布在邮电、计委、银行、电力、铁路、气象、民航、情报、公安、军事、航天和财税等行业。数据库技术还在不断的进展,同时不断地与其它计算机技术相互渗透。数据库技术与网络通信技术相结合,产生了分布式数据库系统。数据库技术与面向对象技术相结合,产生了面向对象数据库系统。在数据库技术中有四个名词,其概念应该分清。(1)数据库(database,DB):DB是统一治理的相关数据的集合。DB能为各种用户共享,具有最小冗余度,数据间联系紧密,而又有较高的数据独立性。数据库管理系统总体设计全文共100页,当前为第19页。(2)数据库治理系统(DatabaseManagementSystem,DBMS):DBMS是位于用户与操作系统之间的一层数据库管理系统总体设计全文共100页,当前为第19页。(3)数据库系统(DatabaseSystem,DBS):DBS是实现有组织地、动态地存储大量关联数据,方便多用户访问的计算机软件、硬件和数据资源组成的系统,即采纳了数据库技术的计算机系统。(4)数据库技术:这是一门研究数据库的结构、存储、治理和使用的软件学科。数据库技术是操作系统的文件系统基础上进展起来的。而DBMS本身要在操作系统的支持下才能工作。数据库不仅用到数据结构的知识,而且丰富了数据结构的内容。在关系数据库中要用到集合论、数理逻辑的理论。因此,数据库技术是一门综合性较强的学科。§2.2数据库理论基础2.2.1数据库模型从20世纪50年代中期开始,计算机的应用由科学研究部门逐步扩展到企业、行政部门。至60年代,数据处理成为计算机的要紧应用。数据库技术作为数据治理技术,是计算机软件领域的一个重要分支,产生于60年代末。现已形成相当规模的理论体系和有用技术。数据库管理系统总体设计全文共100页,当前为第20页。模型是对现实世界的抽象。在数据库技术中,我们用模型的概念描述数据库的结构与语义,对现实世界进行抽象,表示实体类型及实体间联系的模型称为“数据模型”数据库管理系统总体设计全文共100页,当前为第20页。目前广泛作用的数据模型可分为两种类型。一种是独立于计算机系统的模型,完全不涉及信息在系统中的表示,只是用来描述某个特定组织所关怀的信息结构,这类模型称为“概念数据模型”。要领模型用于建立信息世界的数据模型,强调其语义表达功能,应该概念简单、清晰,易于用户理解,它是现实世界的第一层抽象,是用户和数据库设计人员之间进行交流的工具。这一其中闻名的模型是“实体联系模型”。另一种数据模型是直接面向数据库的逻辑结构,它是现实世界的第二层抽象。这类模型涉及到计算机系统和数据库治理系统,又称为“结构数据模型”。例如,层次、网状、关系、面向对象等模型。这类模型有严格的形式化定义,以便于在计算机系统中实现。(1)层次模型。用树型结构表示实体类型及实体间联系的数据模型。树的结点是记录类型,每个非根结点有且只有一个父结点。上一层记录类型和下一层记录类型间联系是1∶N联系。数据库管理系统总体设计全文共100页,当前为第21页。层次模型的特点是记录之间的联系通过指针实现,查询效率较高。但层次模型有两个缺点:一是只能表示1∶N联系,尽管有多种辅助手段实现了M∶N联系,但都较复杂,用户数据库管理系统总体设计全文共100页,当前为第21页。(2)网状模型。用有向图结构表示实体类型及实体间联系的数据模型。。1969年DBTG报告提出的数据模型是网状模型的要紧代表。有向图中的结点是记录类型,有向边表示从箭尾一端的记录类型到箭头一端的记录类型间联系是1∶N联系。网状模型的特点:记录之间联系通过指针实现,M∶N联系也容易实现(每个M∶N联系可拆成两个1∶N联系),查询效率较高。网状模型的缺点是编写应用程序比较复杂,程序员必须熟悉数据库的逻辑结构。由于层次系统和网状系统的应用程序编制比较复杂,因此,从20世纪80年代中期起,其市场已被关系系统所取代。然而使用这两种模型建立起的许多数据库仍然在正常运转,只是在外层加了个关系数据库语言的接口。网状模型有许多成功的产品,20世纪70年代的产品大部分网状系统,例如,Honeywell公司的IDS/Ⅱ、HP公司的IMAGE/3000、Burroughs公司的DMSⅡ、Umivac公司的DMS1100、Cullinet公司的IDMS、Cimcom公司的TOTAL等数据库管理系统总体设计全文共100页,当前为第22页。(3)关系模型。关系模型的要紧是用二数据库管理系统总体设计全文共100页,当前为第22页。关系模型和层次、网状模型的最大判不是用关键码而不是用指针导航数据,表格简单用户易明白,编程时并不涉及存储结构,访问技术等细节。关系模型是数学化模型。SQL语言是关系数据库的标准化语言,已得到了广泛的应用。20世纪70年代对关系数据库的研究要紧集中在理论和实验系统的开发方面。80年代初才形成产品,但专门快得到广泛的应用和普及,并最终取代了层次、网状数据库产品。现在市场上典型的关系DBMS产品有DB2、ORACLE、SYBASE、INFORMIX和微机型产品Foxpro、Access等。关系模型和网状、层次模型的最大区不是:关系模型用表格数据而不是通过指针链来表示和实现实体间联系。关系模型的数据结构简单、易明白。只需用简单的查询语句就可对数据库进行操作。关系模型是数学化的模型,可把表格看成一个集合,因此集合论、数理逻辑等知识可引入到关系模型中来。关系模型已是一个成熟的有前途的模型,已得到广泛应用。数据库管理系统总体设计全文共100页,当前为第23页。(4)面向对象模型。目前,关系数据库的使用已相当数据库管理系统总体设计全文共100页,当前为第23页。面向对象模型能完整地描述现实世界的数据结构,具有丰富的表达能力,但模型相对较复杂,涉及的知识面也广,因此面向对象数据库尚未达到关系数据库那样的普及程度。2.2.2数据库体系结构数据库的体系结构分三级:内部级(internal),概念级(conceptual)和外部级(external)。那个三级结构有时也称为“三级模式结构”,或“数据抽象的三个级不”,最早是在1971年通过的DBTG报告中提出,后来收入在1975年的美国ANSI/SPARC报告中。尽管现在DBMS的产品多种多样,在不同的操作系统支持下工作,然而大多数系统在总的体系结构上都具有三级模式的结构特征。从某个角度看到的数据特性称为“数据视图”(dataview)。数据库管理系统总体设计全文共100页,当前为第24页。外部级最接近用户,是单个用户所能看到的数据特性。单个用户使用的数据视图的描述称为“外模式”数据库管理系统总体设计全文共100页,当前为第24页。概念级涉及到所有用户的数据定义,是全局的数据视图。全局数据视图的描述称为“概念模式”。内部级最接近于物理存储设备,涉及到实际数据存储的结构。物理存储数据视图的描述称为“内模式”。数据库的三级模式结构是数据的三个抽象级不。它把数据的具体组织留给DBMS去做,用户只要抽象地处理数据,而不必关怀数据在计算机中的表示和存储,如此就减轻了用户使用系统的负担。三级结构之间往往差不专门大,为了实现这三个抽象级不的联系和转换,DBMS在三级结构之间提供两个层次的映象(mappings):外模式/模式映象,模式/内模式映象。此处模式是概念模式的简称。2.2.3数据的独立性由于数据库系统采纳三级模式结构,因此系统具有数据独立性的特点。在数据库技术中,数据独立性是指应用程序和数据之间相互独立,不受阻碍。数据独立性分成物理数据独立性和逻辑数据独立性两级。数据库管理系统总体设计全文共100页,当前为第25页。数据库管理系统总体设计全文共100页,当前为第25页。假如数据库的内模式要进行修改,即数据库的存储设备和存储方法有所变化,那么模式/内模式映象也要进行相当的修改,使概念模式尽可能保持不变。也确实是对内模式的修改尽量不阻碍概念模式,因此,关于外模式和应用程序的阻碍更小,如此,我们称数据库达到了物理数据独立性。(2)逻辑数据独立性假如数据库的概念模式要进行修改,譬如增加记录类型或增加数据项,那么外模式/模式映象也要进行相应的修改,使外模式尽可能保持不变。也确实是对概念模式的修改尽量不阻碍外模式和应用程序,如此,我们称数据库达到了逻辑数据独立性。现有关系系统产品均提供了较高的物理独立性,而对逻辑独立性的支持尚有欠缺,例如,对外模式的数据更新受到限制等。2.2.4范式数据库管理系统总体设计全文共100页,当前为第26页。建立起一个良好的数据指标体系,是建立数据结构和数据库的最重要的一环。一个良好的数据指标体系是建立数据库管理系统总体设计全文共100页,当前为第26页。在数据的规范化表达中,一般将一组相互关联的数据称为一个关系(relation),而在那个关系下的每个数据指标项则被称为数据元素(dataelement),这种关系落实到具体数据库上确实是差不多表,而数据元素确实是差不多表中的一个字段(field)。规范化表达还规定在每一个差不多表中必须定义一个数据元素为关键字(key),它能够唯一地标识出该表中其它相关的数据元素。在规范化理论中表是二维的,它有如下四个性质:在表中的任意一列上,数据项应属于同一个属性(如图中每一列都存放着不同合同记录的同一属性数据)。表中所有行差不多上不相同的,不同意有重复组项出现(如图中每一行差不多上一个不同的合同记录)。在表中,行的顺序无关紧要(如图中每行存的差不多上合同记录,至于先放哪一个合同都没关系)。在表中,列的顺序无关紧要,但不能重复(如图中合同号和合同名谁先谁后都没关系,但二者不可重复或同名)。数据库管理系统总体设计全文共100页,当前为第27页。在对表的形式进行了规范化定义后,数据结构还有五种规范化定义,定名为规范化模式,称为范式。在这五种范式中,一般只用前三种,关于常用系统就足够了。而且这五种范式是“向上兼容”的,即满足第五范式的数据结构自动满足一、二、三、四范式,满足第四范式的数据结构自动满足第一、二、三范式,……数据库管理系统总体设计全文共100页,当前为第27页。第一范式(firstnormalform,简称1stNF)确实是指在同一表中没有重复项出现,假如有则应将重复项去掉。那个去掉重复项的过程就称之为规范化处理。在本文所讨论的开发方法里,1stNF实际上是没有什么意义的。因为我们按规范化建立的指标体系和表的过程都自动保证了所有表都满足1stNF。第二范式(secondnormalform,简称2ndNF)是指每个表必须有一个(而且仅一个)数据元素为主关键字(primarykey),其它数据元素与主关键字一一对应。例如,在图l9.7中假如我们将合同号定义为主关键字(其它数据元素中的记录数据都有可能重名,故不能作为主关键字),故只要明白了一个合同记录的合同号,就能够唯一地在同一行中找到该合同的任何一项具体信息。通常我们称这种关系为函数依靠(functionaldepEndence)关系。即表中其它数据元素都依靠于主关键字,或称该数据元素唯一地被主关键字所标识。数据库管理系统总体设计全文共100页,当前为第28页。数据库管理系统总体设计全文共100页,当前为第28页。为防止数据库出现更新异常、插入异常、删除异常、数据冗余太大等现象,关系型数据库要尽量按关系规范化要求进行数据库设计。§2.3SQL语言基础2.3.1SQL简介用户对数据库的使用,是通过数据库治理系统提供的语言来实现的。不同的数据库治理系统提供不同的数据库语言。关系数据库治理系统几乎都提供关系数据库标准语言——SQL。数据库管理系统总体设计全文共100页,当前为第29页。SQL的全称是StructuredQueryLanguage,即结构化查询语言。SQL语句能够从关系数据库中获得数据,也能够建立数据库、增加数据、修改数据。1986年ANSI采纳SQL语言作为关系数据库系统的标准数据库管理系统总体设计全文共100页,当前为第29页。SQL语言是一种非过程化语言,它一次处理一个记录集合,对数据提供自动导航。SQL语言同意用户在高层的数据结构上工作,而不对单个记录进行操作。SQL语言不要求用户指定数据的存取方法,而是使用查询优化器,由系统决定对指定数据存取的最快速手段。当设计者在关系表上定义了索引时,系统会自动利用索引进行快速检索,用户不需明白表上是否有索引或者有什么类型的索引等细节。SQL语言能够完成许多功能,例如:●查询数据●在数据库表格中插入、修改和删除记录●建立、修改和删除数据对象●操纵对数据和数据对象的存取●确保数据库的一致性和完整性等2.3.2SQL查询数据库管理系统总体设计全文共100页,当前为第30页。数据查询是关系运算理论在SQL语言中的要紧体现,SELECT语句是SQL查询的差不多语句,当我们在对一个数据库进各种各样的操作时,使用的数据库管理系统总体设计全文共100页,当前为第30页。SELECT语句的完整句法如下:SELECT目标表的列名或列表达式序列FROM差不多表和(或)视图序列[WHERE行条件表达式][GROUPBY列名序列][HAVING组条件表达式][ORDERBY列名[ASC│DEAC]…]数据库管理系统总体设计全文共100页,当前为第31页。我在SELECT语句中还使用了大量的保留字和通配符以进行各种各样的条件查询。在系统中有大量的查询按钮,其使用了大量的查询语句,而且这些查询语句大部分使用的是数据库管理系统总体设计全文共100页,当前为第31页。2.3.3SQL数据更新使用数据库的目的是为了有效地治理数据,而数据的插入、删除和修改则是必不可少的一个功能。在本系统中就大量地使用了数据插入、删除和修改这三种操作,现做一个简单地介绍。●数据插入往数据库的差不多表中插入数据使用的是INSERT语句,其方式有两种:一种是元组值的插入,另一种是查询结果的插入。在本系统中使用的是前一种方式,其句法如下:INSERTINTO差不多表名(列表名)VALUES(元组值)●数据删除往数据库的差不多表中删除数据使用的是DELETE语句,其句法如下:DELETEFROM差不多表名[WHERE条件表达式]在些作一点讲明,删除语句实际上是“SELECT*FROM差不多表名[WHERE条件表达式]”和DELETE操作的结合,每找到一个元组,就把它删除。此外,DELETE语句只能从一个差不多表中删除元组,WHERE子句中条件能够嵌套,也能够是来自几个差不多表的复合条件。数据库管理系统总体设计全文共100页,当前为第32页。数据库管理系统总体设计全文共100页,当前为第32页。当需要修改差不多表中元组的某些列值时,能够用UPDATE语句实现,其句法如下:UPDATE差不多表名SET列名=值表达式[,列名=值表达式…][WHERE条件表达式]在Delphi中使用SQL语句是专门方便的,一般来讲,差不多上通过TQuery组件来使用SQL语言的。有一点要进行讲明,尽管通过TQuery组件来使用SQL语言专门方便,但考虑到自己对不同组件的理解程度、个人适应以及其它各个方面,在本系统中我采纳的是ADO组件来对数据库进行操作。最简单的方法比如在TADOQuery组件的SQL属性中就能够键入SQL语句,至于详细的使用方法在后面进行介绍。数据库管理系统总体设计全文共100页,当前为第33页。第三章

数据库开发工具

§3.1Delphi6.0简介

Delphi类能够粗略地分成两部分:一部分是组件类,这些组件类通常以某种方式出现在组件面板上,当用户从组件面板上点取一个类的图标后,在程序中就自动生成了该类的对象(非可视组件除外);另一部分是功能类,这此功能类的对象通常出现在程序代码中,起着不可代替的作用,然而这些功能类在组件面板上是找不到的。在Delphi中,每一个类的祖先差不多上Tobject类,整个类的层次结构就像一棵倒挂的树,在最顶层的树根即为Tobject类。如此,按照面向对象编程的差不多思想,就使得用户可用Tobject类那个类型代替任何其它类的数据类型。实际上在Delphi的类库中,Tobject类派生出了为数相当众多的子类,它们形成了一个庞大的体系,通常情况下,假如不自行开发组件,就不必了解整个类的体系结构,只用到类层次树的叶结点就足够了。

凡是做过程序开发的人都明白从来没有单纯的数据应用程序,也确实是讲,数据库应用程序必须和用户界面(能够是图形界面,也能够是命令接口)元素相结合,只讲界面或只讲数据库本身都构不成数据库应用程序,因而用Delphi6.0开发数据库应用程序就隐含着界面开发。Delphi6中的VCL组件可用图3-1来讲明。组件在Delphi程序的开发中是最显眼的角色。大伙儿明白,在编写程序时一般都开始于在组件面板上选择组件并定义组件间的相互作用。但也有一些组件不在组件面板上,例如Tform和Tapplication(典型的非可视组件)。组件是Tcomponents派生出来的子类,能够流的形式存放在DFM文件中,具有事件和数据库管理系统总体设计全文共100页,当前为第34页。Publish属性。

窗口组件类是窗口化的可视化组件类,在Delphi的类库中占有最大的份额。在实际编程中,窗口组件类的对象都有句柄,能够同意输入焦点和包含其它组件。

图形组件与窗口组件并列,是另一大类组件。图形组件不是基于窗口的,因而不能有窗口句柄,不能同意输入焦点和包含其它组件。从图8-43中能够看出,图形组件的基类是TgraphicControl,在实际编程中,它们必须寄生于它们的宿主——窗口组件类的对象,由它们的拥有者负责其显示,而且它们还能触发一些和鼠标活动相关的事件。图形控件最典型的例子是Tlabel和TspeedButton。由此能够看出图形组件的功能专门弱,有读者会问图形组件的用处何在呢?事实上使用图形组件的最大好处在于节约资源,正是因为它们的功能较弱,因此使用的系统资源就要少。在一个应用程序中,假如能在不阻碍其功能的前提下合理大量地使用图形组件,将会大减少程序对系统资源的消耗。

非可视组件是与可视组件相并列的另一类组件,非可视组件在程序运行中是不可见的(除各种对话框组件之外,事实上有人认为对话框组件不能归入非可视组件,应该是另一种介于可视与非可视之间的组件)。

数据库管理系统总体设计全文共100页,当前为第35页。§3.2Delphi6.0控件

用Delphi6开发数据库应用,重点是和各种数据库组件打交道,因此也要使用其它的一些组件,现在就我在系统设计中所使用的重要组件给与简单介绍。

3.2.1

ADO数据访问组件

ADO数据对象(ActiveDataObjects)实际是一种提供访问各种数据类型的链接机制。ADO设计为一种极简单的格式,通过ODBC的方法同数据库接口中,能够使用任何一种ODBC数据源,即不止适合于SQLServer、Oracle、Access等数据库应用程序,也适合于Excel表格、文本文件、图形文件和无格式的数据文件。ADO是基于OLE-DB之上的技术,因此ADO通过其内部的属性和方法提供统一的数据访问接口方法。ADO使您的客户端应用程序能够通过OLEDB提供访问和操作在数据库服务器中的数据。ADO支持用于建立C/S和Web的应用程序的要紧功能。其要紧优点是易于使用、高速度、低内存支出和占用磁盘空间较少。ADO同时具有远程数据服务(RDS)功能,通过RDS能够在一次往返过程中实现将数据从服务器移动到客户端应用程序和Web页、在客户端对数据进行处然后将更新结果返回服务器的操作。

Delphi6.0接着对Microsoft的ADO访问能力的支持。这种能数据库管理系统总体设计全文共100页,当前为第36页。力是通过一组新组件实现的,这些组件是在企业版的ADO组件页中,在组件面版的ADO页上能够找到这些组件。利用在前面章节提到的TdataSet抽象类,ADO组件能够不通过BDE而直接实现ADO连接。这意味着只需要专门少的代码就能够实现该连接同时性能得到提高。

利用ADO数据访问组件,能够只使用ADO结构与数据库取得联系并对其中的数据进行操作,而在这些过程中完全不需要使用BDE。大多数的ADO连接和数据集组件差不多上与基于BDE的连接和数据集组件相类似的。TADOConnection组件与基于BDE的应用程序中的Tdatabase组件类似。TADOTable与Ttable,TADOQuery与Tquery,以及TADOStoreProc和TstoredProc之间都具有这种类似的对应关系。使用这些ADO组件的方式与我们常使用的数据访问组件(基于BDE)都有许多相同之处。TTADODataSet没有直接的BDE对应组件,但它提供了许多与Ttable和Tquery相同的功能。同样,TADOCommand也没有相对应的BDE组件,它是在Delphi/ADO环境中完成特定功能的组件。Delphi6.0通过ADO数据集访问组件,能够不借助BDE数据引擎而是通过微软的OLEDB来访问更为广泛的数据库中的数据。ADO数据集访问组件与常用的数据访问组件是并列的关系。

数据库管理系统总体设计全文共100页,当前为第37页。在系统中我要紧使用的是ADOTablet和ADOQuery两个组件。

3.2.2

数据操纵类DataControl

数据操纵类负责数据库数据的显示,并把用户对数据的修改传回。那个地点的绝大多数组件,如DBText,DBEdit,

DBMemo,DBImage,DBListBox,DBComboBox,DBCheckBox,DBRadioGroup,DBLookupListBox,DBLookupCombox,DBCtrGrid的功能和对应的非数据感知组件相同,如TEdit框,TRadioGroups单选按钮组等,只只是在显示数据库数据时要用而已。

在系统中要紧使用数据网格控件DBGrid和数据库导航器控件DBNavigator。

3.2.3

数据访问类DataAccess

数据库应用系统中数据访问是一个首要问题,包括单用户和C/S系统,都必须联系一些数据库和数据表文件。Delphi6提供了专门用于数据访问的基类控件。要紧包括数据源控件DataSource、客户数据集控件ClientDataSet、数据集提供器控件DataSetProvider等等。

Tdatabase:当一个基于BDE的数据库应用程序需要一个永久数据库连接时,需要定制向一个数据库服务器的连接时,需要事务操纵和专门的数据库不名时就得用到Tdatabase对象。特不是当数据库管理系统总体设计全文共100页,当前为第38页。连接到一个远程的SQL数据库服务器时,假如要利用BDE进行数据库事务处理,那么,TDatabase对象的威力就体现出来了。在一个应用程序中为每一个数据库连接显示的声明Tdatabase对象要依照需要而定,不是必需的。对一个数据库连接,假如没有显示的声明并实例化TDatabase对象,系统就会产生一个带有默认属性的TDatabase对象。

TdataSource对象用于在DataSet对象(包括Tquery,TstoredProc,Ttable等)和数据感知组件之间提供一个连接的纽带,以便在窗体上显示数据库中的数据,在数据库中导航定位与编辑数据集中的数据。假如一个DataSet对象中的数据想在数据感知组件中显示和修改,它就必须和TdataSource对象相联系。同样,一个数据感知组件假如想和数据源相联系以便显示和操纵数据,就必须以TDataSource对象为中介。

用Delphi6作数据库应用开发概括来讲如下:先利用数据存取组件和实际的数据库建立连接,并用Tsession对象和Tdatabase对象治理这些连接。然后以Tdatasource对象为中介,用数据感知组件向用户显示数据库的内容并同意用户的查询和修改等操作。

3.2.4

SQL语言在Delphi中的应用

数据库管理系统总体设计全文共100页,当前为第39页。在Delphi中使用SQL语言特不方便,一般来讲,差不多上通过Tquery组件来使用SQL语言的。能够在TQuery组件的SQL属性中设置SQL语句。设计程序时,在该组件的属性对话框中选择SQL属性,单击带省略号的按钮,就能够打开StringListEditor对话框,然后我们就能够在对话框中添加SQL语句。还能够使用Delphi的SQLBuilder来自动生成SQL语句,如此能够幸免手工编写SQL而可能造成的语法错误。

静态SQL语句在程序设计时便已固定下来,它不包含任何参数和变量。

动态SQL语句,也被称作参数化的语句,在其中间包含着表示字段名或表名的参数,例如下面的语句是一条动态SQL语句:

Select

*

From

Students

WhereStudentCode=:StudentCode;

其中的变量StudentCode便是一个参数变量,它由一个冒号引导,在程序运行过程中,必须要为该参数赋值,该条SQL语句才能正确执行,每次运行应用程序时能够为该参数变量给予不同的值。为参数赋值有三种方法:

①依照参数在SQL语句中出现的顺序,设置TQuery部件的Params属性值为参数赋值。

数据库管理系统总体设计全文共100页,当前为第40页。②直接依照SQL语句中各参数的名字,调用ParamByName方法来为各参数赋值。

③将TQuery部件的DataSource属性设置为另一个数据源,如此将另一个数据源中与当前TQuery部件的SQL语句中的参数名相匹配的字段值赋给其对应的参数。利用这种方法也能实现所谓的连接查询,创建要紧—明细型数据库应用。

在程序运行过程中,要想设置TQuery部件的SQL属性,必须首先调用Close方法,关闭TQuery部件,然后再调用Clear方法清除SQL属性中现存的SQL命令语句,最后再调用Add方法为SQL属性设置新的SQL命令语句。例如:

Query1.Close{关闭Query1)

Query1.SQL.Clear{清除SQL属性中的SQL命令语句}

Query1.SQL.Add(‘Select*FromStudents‘);

Query1.SQL.Add(‘WhereName="Lucy"‘);

在为TQuery部件设置SQL属性时调用Close方法总是专门安全的,假如TQuery部件差不多被关闭了,调用Close方法时可不能产生任何阻碍。在应用程序中为SQL属性设置新的SQL命令语句时,必须要调用Clear方法以清除SQL属性中现存的SQL命令语句,假如不调用Clear方法,便调用Add方法向SQL属性中数据库管理系统总体设计全文共100页,当前为第41页。设置SQL命令语句,那么新设置的SQL命令语句会追加在现存SQL命令语句后面,在程序运行时常常会出现出乎意料的查询结果甚至程序无法运行下去。

在那个地点要特不注意的,一般情况下TQuery部件的SQL属性只能包含一条完整的SQL语句,它不同意被设置成多条SQL语句。因此有些数据库服务器也支持在TQuery部件的SQL属性中设置多条SQL语句,只要数据库服务器同意如此,我们在编程时能够为SQL属性设置多条SQL语句。

在为TQuery部件设置完SQL属性的属性值之后,也即编写好适当的SQL程序之后,能够有多种方式来执行SQL程序。

在设计过程中,设置完TQuery部件的SQL属性之后将其Active属性的值置为True,如此便能够执行SQL属性中的SQL程序,假如应用中有与TQuery部件相连的数据扫瞄部件(如TDDGridTDBEdit等)那么在这些数据扫瞄部件中会显示SQL程序的执行结果。

在应用程序运行过程中,通过程序调用TQuery部件的Open方法或ExecSQL方法能够执行其SQL属性中的SQL程序。Open方法和ExecSQL方法是不一样的。Open方法只能用来执行SQL语言的查询语句(Select命令),并返回一个查询结果集,而ExecSQL数据库管理系统总体设计全文共100页,当前为第42页。方法还能够用来执行其它常用的SQL语句(如INSERT,UPDATE,DELETE等命令),例如:

Query1.Open(如此会返回一个查询结果集)

假如调用Open方法,而没有查询结果时,会出错。现在应该调用ExecSQL方法来代替Open方法。如:

Query1.ExecSQL(没有返回结果)

因此在设计应用程序时,程序设计人员是无法确定TQuery部件中的SQL语句是否会返回一个查询结果的。关于这种情况应当用Try…Except模块来设计程序。在Try部分调用Open方法,而在Except部分调用ExceSQL方法,如此才能保证程序的正确运行。

Delphi中用ADOQuery来使用SQL语句同样十分方便。在ADOQuery组件中首先通过ConnectionString属性值来联接数据源,然后就通过双击SQL…属性值来写入SQL语句。在Delphi中数据库管理系统总体设计全文共100页,当前为第33页。数据库管理系统总体设计全文共100页,当前为第34页。数据库管理系统总体设计全文共100页,当前为第35页。数据库管理系统总体设计全文共100页,当前为第36页。数据库管理系统总体设计全文共100页,当前为第37页。数据库管理系统总体设计全文共100页,当前为第38页。数据库管理系统总体设计全文共100页,当前为第39页。数据库管理系统总体设计全文共100页,当前为第40页。数据库管理系统总体设计全文共100页,当前为第41页。数据库管理系统总体设计全文共100页,当前为第42页。数据库管理系统总体设计全文共100页,当前为第43页。数据库管理系统总体设计全文共100页,当前为第44页。第四章系统总体设计软件系统的总体设计大约要经历可行性分析和项目开发打算,需求分析,概要设计,详细设计,编码,测试以及维护等七个时期。可行性分析和项目开发打算在前面差不多叙述,下面所要做的是进行软件需求分析,概要设计和详细设计。编码过程将在下一节论述,而测试和维护过程不在本文叙及。§4.1系统需求分析在通过前一时期的分析之后,我确定了我的开发课题为图书仓库治理。现在所要做的是要准确定义系统必须做什么以及系统必须具备的功能。软件需求分析中我采纳结构化分析方法(StructuredAnalysis,简称SA),SA是面向数据流进行需求分析的方法,像所有的软件分析方法(如面向对象分析方法、IDEF方法等等)一样,SA也是一种建模活动,它使用简单易读的符号,依照软件内部数据传递、变换的关系,自顶向下逐层分解,描绘满足功能要求的软件模型。数据库管理系统总体设计全文共100页,当前为第45页。数据库管理系统总体设计全文共100页,当前为第45页。◆→:箭头,表示数据流;◆〇:圆或椭圆,表示加工;◆═:双杠,表示数据存储;◆□:方框,表示数据的源点或终点。为了表达较为复杂问题的数据处理过程,用一张数据流图是不够的,要按照问题的层次结构进行逐步分解,并以一套分层的数据流图反映这种结构关系。在那个地点我一共使用了三层数据流图,即顶层图,0层图和1层图(也是底层图)。在多层数据流图中,顶层流图仅包含一个加工,它代表被开发系统,它的输入流是该系统的输入数据了,输出流是该系统的输出数据;底层流图是指其加工不需要再做分解的数据流图,中间层流图表示对其上层父图的细化,它的每一步加工可能接着细化成子图。通过对系统的分析首先得到系统的顶层DFD,如下:一步细化得到系统的0层DFD,如下:数据库管理系统总体设计全文共100页,当前为第46页。数据库管理系统总体设计全文共100页,当前为第46页。在那个地点只给出有关入库治理和出库治理的1层数据流图,它们是系统的关鍵部分,也是要紧的部分。通过以上对数据流图的分析之后,我们已大体地了解了系统的功能和目标,接下来所要做的确实是系统功能模块的划分和数据库的设计,也确实是系统的概要设计。§4.2系统概要设计在软件需求分析时期,搞清晰了软件“做什么”的问题,形成了目标系统的逻辑模型。现在我们所要做的确实是要把软件“做什么”的逻辑模型变换为“如何做”的物理模型,即着手实现软件的需求。首先,我们需要描述的是系统的总的体系结构。4.2.1系统结构设计系统的概要设计中最重要的确实是系统的模块化。模块化是指解决一个复杂问题时自项向下逐层把软件系统划分成若干个模块的过程。每个模块完成一个特定的功能,所有的模块按某种方法组织起来,成为一个整体,完成整个系统所要求的功能。数据库管理系统总体设计全文共100页,当前为第47页。将系统划分为多个模块是为了降低软件系统的复杂性,提高可读性、可维护性,但模块的划分不能是任意的,应尽量保持其独立性。也确实是讲,每个模块只完成系统要求的独立的子功能,同时与其他模块的联系最少数据库管理系统总体设计全文共100页,当前为第47页。在系统的概要设计中我采纳结构化设计(StructureDesign,简称SD),SD以需求分析时期产生的数据流图DFD为基础,按一定的步骤映射成软件结构。我首先将整个系统化分为几个小问题,小模块,在系统中,我设计了用户治理、库存治理、入库治理、出库治理、职员治理和供应商治理6个小模块。然后,进一步细分模块,添加细节。比如,用户治理我又将其分为用户注册、用户注销、密码修改;库存治理分为库存记录查询、库存记录修改、库存记录打印等等。以下确实是系统的结构图:(在那个地点为了表达方便我将结构图分开来表达。)在得到系统的第一层功能模块图后,通过进一步地细化,得一系统的子功能模块图:4.2.2数据库设计数据库管理系统总体设计全文共100页,当前为第48页。在信息世界中,信息从客观事物动身流经数据库,通过决策机构最后又回到客观世界,信息的这一循环经历了三个领域:信息世界,数据世界,现实世界。现实世界的事物反映到人的头脑中,人的大脑对它有个认识过程,通过分析(选择、命名、分类等)进入信息世界。这些信息再进一步加工、编码,然后进数据世界,而软件系统的开发工作需要考虑这两数据库管理系统总体设计全文共100页,当前为第48页。ER图设计在系统设计的开始,我首先考虑的是如何用数据模型来数据库的结构与语义,以对现实世界进行抽象。目前广泛使用的数据模型可分为两种类型,一种是独立于计算机系统的“概念数据模型”,如“实体联系模型”;另一种是直接面向数据库逻辑结构的“结构数据模型”。在本系统中我采纳“实体联系模型”(ER模型)来描述数据库的结构与语义,以对现实世界进行第一次抽象。ER模型直接从现实世界抽象出实体类型及实体间联系,然后用ER图来表示数据模型。它有两个明显的优点:接近于人的思维,容易理解;与计算机无关,用户容易同意。但ER模型只能讲明实体间语义的联系,不能进一步讲明详细的数据结构,它只是数据库设计的第一步。ER图是直观表示概念模型的工具,它有四个差不多成分:数据库管理系统总体设计全文共100页,当前为第49页。◆数据库管理系统总体设计全文共100页,当前为第49页。◆菱形框,表示联系类型(实体间的联系)。◆椭圆形框,表示实体类型和联系类型的属性。关于关键码的属性,在属性名下划一横线。◆直线,联系类型与其涉及的实体类型之间以直线连接。本系统为图书仓库治理,要紧治理图书的入库、出库以及库存等事项。仓库依照需要能够查询图书供应商的信息,同时还需要了解在入库和出库中职员的参与情况。依据仓库治理的实际情况,考虑了多方面的因素以后,确定系统的ER图如下:(为了表达的方便,在那个地点我没有在一张图上表达出所有的关系,而是用一张总体ER图,和几张实体属性关系图来表达数据库的结构。)数据库管理系统总体设计全文共100页,当前为第50页。在该数据库中,我设计了三个实体,分不是库存、职员和供应商以及两个联系类型入库和出库。在本系统中库存是核心,也是差不多,没有了库存其数据库管理系统总体设计全文共100页,当前为第50页。入库联系类型将库存信息、供应商信息和职员信息联系在一起,能够方便地实现三个实体之间的联接,而出库联系类型则将库存信息和职员信息较好地联接起,同时这两个联系类型又都具有各自特有的属性。下面确实是各实体及联系类型的属性图:(带#号的属性为关键字段)数据库表格设计在完成系统的ER图之后,需要将ER模型转化为关系模型,也确实是讲,要设计出数据库所需要的表格。在那个地点,我选用的是关系数据库。因为关系数据库中的二维表格能够专门清晰地描述数据之间的联系。在那个地点不得不提到一个概念——范式。事实上在上一节的ER图设计中,差不多运用了范式的思想,不仅如此,在数据库的表格设计中更离不开范式的思想,它是数据库设计的基础,假如不注意那个问题将会导致一系列问题的出现。数据库管理系统总体设计全文共100页,当前为第51页。数据库管理系统总体设计全文共100页,当前为第51页。BookRecord表(库存信息表)字段名称数据类型讲明KBookID数字图书编号BookName文本图书名Author文本作者Publisher文本出版社PubDate日期/时刻出版日期Price货币价格BookType文本图书类型Number1数字库存数量Addation文本备注图4.13库存信息表数据库管理系统总体设计全文共100页,当前为第52页。库存信息表要紧用于记录仓库中现存放的所有图书的详细信息,包括图书编号、书名、作者、出版社、图书类型等有关图书的各类信息,它即是该数据库的数据库管理系统总体设计全文共100页,当前为第52页。在该表中图书编号是主键,它按图书入库的先后次序来编写,每当有图书入库,系统自动给出图书编号,如此我们按图书编号来查找图书是比较方便的。考虑到编号比较难于经历,因此使用了出版社和图书类型两个字段,在系统中我提供了出版社和图书类型的分类查找,而且全部采纳自动生成,每当系统中有新的出版社类型和图书类型,弹出菜单会自动添中新类型,如此就能够比较方便地实现按出版社和按图书类型查找。此外,库存数量也是一个比较关键的字段,该字段是在系统初始化时就给定的,每当有图书入库或出库操作,系统就会自动修改图书的库存数量,以保持数据的一致性。做为备注有一点讲明,我的数据库中备注的数据类型是文本,而不是备注类型,要紧考虑到该字段的长度并不大,而且在Delphi中文本数据类型的处理也比较方便一点。Employee表(职员信息表)字段名称数据类型讲明KEmployeeID数字职员编号EmployeeName文本职员姓名Sex文本性不数据库管理系统总体设计全文共100页,当前为第53页。数据库管理系统总体设计全文共100页,当前为第53页。Grade文本职称WorkDate日期/时刻工作日期Telephone文本联系电话Address文本联系地址图4.14职员信息表职员信息表要紧用于记录有关职员的各类信息,包括姓名、职称、出生日期、联系电话、联系地址等。它要紧用来为系统提供职员的有关信息,因为在系统中,入库和出库操作均与职员有着一定的联系,在查询入库信息和出库信息时,有时需要查找有关此项记录有关的职员信息,在系统中我是通过入库记录与职员记录(出库记录和职员记录)之间的联接查询来完成的。另外,作为一个仓库也有必要了解其所属职员的一些差不多情况,以便查询。Shopkeeper表(供应商信息表)字段名称数据类型讲明KShopkeeperID数字供应商编号ShopkeeperName文本供应商姓名Address文本地址数据库管理系统总体设计全文共100页,当前为第54页。数据库管理系统总体设计全文共100页,当前为第54页。OfficePhone文本办公电话HomePhone文本住宅电话Email文本E-mailPayType文本付款方式图4.15供应商信息表供应商信息表要紧用于记录有关供应商的各类信息,包括姓名、地址、电话、付款方式等。它要紧用来为系统提供供应商的有关信息,在系统中入库记录是与供应商记录相联系的,通过入库记录能够查找相关的供应商信息。在供应商信息中,考虑当实际情况,我特不加入了Email和付款方式这两个字段,因为在当今信息世界中,多种多样的通讯方式和多种多样的付款方式是必定的,是数据库中必须与以记录。InRecord表(入库信息表)字段名称数据类型讲明KInID数字入库编号#BookID数字图书编号#EmployeeID数字职员编号数据库管理系统总体设计全文共100页,当前为第55页。数据库管理系统总体设计全文共100页,当前为第55页。Number数字入库数量BuyDate日期/时刻入库日期图4.16入库信息表OutRecord表(出库信息表)字段名称数据类型讲明KOutID数字出库编号#BookID数字图书编号#EmployeeID数字职员编号Number2数字出库数量OutDate日期/时刻出库日期图4.17出库信息表数据库管理系统总体设计全文共100页,当前为第56页。入库信息表要紧用于记录有关入库的详细信息,包括入库数量、入库日期以及图书、职员、供应商三方的编号,以便查询。出库信息表要紧用于记录有关出库的详细信息,包括出库数量、出库日期以及图书、职员的编号。出库数据库管理系统总体设计全文共100页,当前为第56页。在入库信息表和出库信息表中我还定义了几个外键,它提供了一种表示几个关系联系的方法。比如,系统中通过在入库信息表中定义的外键BookID、EmployeeID和ShopkeeperID能够将库存信息表、职员信息表和供应商信息表联系在一起,从而方便地实现联接查询,而且,引入外键的定义是实体完整性约束的一个要紧方面。Key表(密码信息表)字段名称数据类型讲明KKeyName文本用户姓名KeyNo文本用户密码图4.18密码信息表数据库管理系统总体设计全文共100页,当前为第57页。密码信息表要紧用于记录所有的用户名和用户密码。它是在用户登陆数据库管理系统总体设计全文共100页,当前为第57页。通过以上设计差不多完成了系统的概要设计,当我们有了系统的功能模块图和数据库之后,就需要着手去实现每一个模块,为每一个功能设计程序流程图,这也确实是系统的详细设计。§4.3系统详细设计在前面的概要设计中,已将系统划分为多个模块,并将它们按照一定的原则组装起来,同时确定了每个功能及模块之间的外部接口。现在所要做的确实是确定每个模块具体执行过程,也能够讲是“过程设计”。在处理过程设计时我采纳的是结构化程序设计(简称SP)方法。需要指出的是系统的详细设计并不是指具体的编程序,而是将概要设计时期产生的系统功能模块图细化成专门容易产生程序的图纸。因此详细设计的结果差不多决定了最终程序的质量。为软件的质量,延长软件的生存期,软件的可测试性、可维护性提供重要的保障。详细设计的目标不仅是逻辑上正确地实现每个模块的功能,还应使设计出的处理过程清晰易读。数据库管理系统总体设计全文共100页,当前为第58页。由前一时期产生的系统功能模块图,我为系统的要紧部分设计了如下程序流程图:通过以上步骤,差不多上完成了对整个系统的总体设计,接下来所要做的确实是软件的编码工作。系统总体设计的好坏直接阻碍着下一步工作,只有在这一时期设数据库管理系统总体设计全文共100页,当前为第58页。数据库管理系统总体设计全文共100页,当前为第59页。第五章

系统应用程序设计

§5.1

系统窗体模块组成

§5.2

数据模块窗体的设置

在编写数据库应用程序时,经常要遇到如此的情况,即好多组件、窗体同时访问相同的数据源,假如为每一个组件或者窗体都设置一个数据源将是十分耗时的工件,而且要保证这些数据源的确是相同的也需花一番功夫。那么,能不能将这些数据源集中治理,最好是做成一个统一的模块,需要时就将该模块引入而不必直接操作数据源本身呢?数据模块(DataModule)是解决那个问题最好的答案。简单讲来,数据模块是用来集中治理数据源的一个窗体,该窗体可被需要的地点随时引入。

图5.2给出了本程序的数据模块(datamoduleform)窗体图,除报表窗体外所有的数据存取组件和数据源组件都在此数据模块中进行了定义。值得一提的是,设置了数据库Database组件,该组件引入了系统所需的唯一的数据库tsxs,Database组件的DatabaseName属性设置为tsckgl。tsxs数据库已在ODBC配置程序中进行了设置。其他的数据存取组件差不多上基于此数据库组件创建的,如此做的好处是,当数据库的不名或者其他信息改变之后,只需修改Tdatabase组件的AliasName属性即可。

另外,在本系统的数据模块窗体图中,我大多采纳的AODQuery组件而没有采纳BDE组,这要紧是基于对ADO组件的了解。在Delphi的学习中我对ADO组件了解的更加清晰,使用也较BDE更为熟练,而且,ADO组件的功能也较BDE更为强大,因此在那个地点大多采纳ADO组件来进行数据库联接。同时我也使用了BDE组件中的Table,因为在某些时候BDE有着其自身特有的优越性。

主窗体功能模块的实现

f

温馨提示

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

评论

0/150

提交评论