




已阅读5页,还剩38页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第 43 页 共 43 页引言随着经济文化水平的显著提高,人们对生活质量及工作环境的要求也越来越高。人们在节假日外出旅行也在不断增加,人们越来越自己在外的下榻问题,随之而来的就是:酒店在现代社会中越来越受到重视,大量的酒店出现在各个旅游名城,人们有了各种各样不同的选择。与此同时,为了给旅客提供一个舒适的,满意的住处,同时也是一个高效的酒店快速的下榻理想之地,加之酒店业的竞争也在不断的加剧,酒店管理者也在考虑自己的成本问题,他就需要一套完整的管理系统来实现人力资源的最优化性,又要为游客提供各种各样的服务,酒店物资的储存及管理已经是影响酒店整个运做的一个瓶颈,仓库的管理问题也就提上了日程。随着生活的不断改善,物资的不断丰富,其管理难度也越来越大,如何优化仓库的日常管理也就成为了一个大众化的课题。在计算机飞速发展的今天,将计算机这一信息处理利器应用于仓库的日常管理已是势必所然,而且这也将为仓库管理带来前所未有的改变,它可以带来意想不到的效益,同时也会为企业的飞速发展提供无限潜力。采用计算机管理信息系统已成为仓库管理科学化和现代化的重要标志,它给企业管理来了明显的经济效益和社会效益。主要体现在:极大提高了仓库工作人员的工作效率,大大减少了以往入、出、存流程繁琐,杂乱,周期长的弊端。基于仓库管理的全面自动化,可以减少入库管理、出库管理及库存管理中的漏洞,可以节约不少管理开支,增加企业收入。仓库的管理的操作自动化和信息的电子化,全面提高了仓库的管理水平。入库、库存、出库还是现在酒店库存管理的常规基本模式如何设计好仓库管理系统,尽可能地减少仓库管理的重复性和低效性就成为当前最为重要的问题。酒店库存管理的核心是入库、库存和出库之间的联系,如何处理好三者之间的关系是系统最为关键的部分。另外,员工信息和供应商信息管理也是仓库管理中一个必不可少的部分,它提供着与入库和出库相关的地一些信息,使得整个系统更加完整,更加实用。通过对仓库管理日常工作的详细调查,搜集了大量的资料,从系统结构的组织,功能的实现,技术的要求以及可行性等多方面进行考虑,认为本课题是一个适应现今酒店库存管理需求的计算机信息管理系统,具有一定的实际开发价值和使用价值。1 开发工具1.1 操作系统的选择 本系统的开发和运行环境均选用 Windows 系列的操作系统,本系统可运行于Windows 98以上操作系统,在Windows98上必须安装PWS,最好是在Windows 2000 Advanced Server 上运行,由于微软开发的Windows 2000 Advanced Server是专门用来提供网络服务器的,有微软这个强大的技术支持,并且系统运行稳定、维护方便、性能经过优化、对网络的支持程度好、使网络应用更为方便快捷。客户端可以运行在任何支持浏览器的操作系统上。在此我们选用了 Windows 2000 Advanced Server 作为服务器端的操作系统。1.2 开发工具的选择自Java诞生以来,随着Internet技术的普及和应用需求的变化,以第四代语言为主的应用开发产品发生了较大的变化,它们不仅已成为人们开发应用的开发工具,而且很多产品已发展成为一种强有力的应用开发环境。这些新型的开发工具通常以一种集成软件包的形式提供给开发人员,被称为Studio(工作室)或Suite(程序组)。在目前市场上这些众多的程序开发工具中,有些强调程语言的弹性与执行效率;有些则偏重于可视化程序开发工具所带来的便利性与效率的得高,各有各的优点和特色,也满足了不同用户的需求。然而,语言的弹性和工具的便利性是密不可分的,只有便利的工具,却没有弹性的语言作支持,许多特殊化的处理动作必需要耗费数倍的工夫来处理,使得原来所标榜的效率提高的优点失去了作用;相反,如果只强调程语言的弹性,却没有便利的工具作配合,会使一些即使非常简单的界面处理动作,也会严重地浪费程序设计师的宝贵时间。C#( 读作 C-Sharp)是微软公司为它的 Microsoft .NET 计划推出的核心编程语言。该语言几乎综合了目前所有编程语言系统的优点,并结合因特网发展的需要,增加了丰富的新特性和增强功能。1.2.1Microsoft .NET 包含以下组成部分:(1) Microsoft.NET 平台包含.NET 基础结构和工具,以运行新一代服务程序;.NET支持更加丰富的客户端;.NET 构造模块,支持新一代高度分布式超服务;还有.NET 设备软件,以支持新型智能化因特网设备。(2) Microsoft.NET产品和服务包含带有核心构造模块服务的 Windows .NET、和Visual Studio.NET等。 (3) 第三方.NET 服务众多微软公司的商务伙伴和第三方开发商将有机会制造出基于.NET 平台的企业软件和垂直型服务程序。1.2.2公用语言运行环境(CLR)Microsoft .NET 的核心是公用语言运行环境( Common Language Runtime, CLR),CLR和 Java 虚拟机一样,也是一个运行环境,它负责资源管理( 内存分配和垃圾收集),并保证应用和底层操作系统之间必要的分离。 为了提高平台的可靠性,并达到面向事务的电子商务应用所要求的稳定性级别,CLR 还要负责其他一些任务,比如监视程序的运行。按照.NET 的说法,在 CLR 监视之下运行的程序属于“ 受管辖的”( Managed)代码,而不在 CLR 监视之下且直接在裸机上运行的应用或者组件属于“ 非管辖的”( Unmanaged)的代码。CLR 将监视形形色色的常见编程错误。许多年来这些错误一直是软件故障的主要根源,其中包括访问数组元素越界,访问未分配的内存空间,由于数据体积过大而导致的内存溢出,等等。1.2.3C#语言特点:兼容性;灵活性;简单性; 现代性; 面向实体; 类型安全; 版本控制。1.2.4C#语言的改进:C#的类型系统使用自动的存储管理。C#的类型系统是统一的,其任何事物都是一个对象。C#支持属性信息,能定义和使用有关组件的声明信息。属性、方法和事件是基础。1.2.5综述鉴于C#语言的各项优点,其完全可以满足我们开发此系统的要求,并且更加人性化的开发界面使开发人员更能体会到C#语言和.NET平台所带来的前所未有灵活性,实用性和便捷性。虽然对于我来说是初次接触C#语言,我已经被C#所带来的开发乐趣所吸引,它能帮助你实现你所能想到的任何功能,对于C#语言只有你想不到的没有它办不到的。1.3 本文所做工作 引言部分介绍了本系统的课题来源。第一章介绍了本系统的开发工具的选择和操作系统的选择。第二章介绍了数据库的发展,关系数据库,数据库体系结构,并系统介绍了SQL语言,为设计和理解应用程序做了铺垫。第三章是本文的主体,按照软件工程的要求,从需求分析开始,经过概要设计最后到详细设计,完成对整个系统的设计。第四章根据第三章的设计结果利用SQL server2000和VisualC#进行了具体的窗体和应用程序设计。总结部分介绍了设计体会和编程体会,并指出了系统设计中的不足和改进的方向。2 数据库理论2.1 数据库的发展数据库处理在信息系统的研究中一直是非常重要的主题,随着WorldWide Web(www)的猛增及Internet技术的迅速发展,使得数据库技术之时成为最热门技术之一。数据库技术能使Internet应用超越具有早期应用特点的简单的发布。同时,Internet技术提供了一种向用户发布数据库内容的标准化的访问方法。这些技术没有脱离经典数据库技术的要求。它们只是加重了数据库技术的重要性。数据库的目的是帮助人们跟踪事务。数据库也被越来越多地应用于生成和维护多媒体应用程序上。计算机的数据处理应用,首先要把大量的信息以数据形式存放在存储器中。存储器的容量、存储速率直接影响到数据管理技术的发展。存储器的不断发展,为数据库技术提供了良好的物质基础。2.1.1数据库的发展数据管理技术的发展经过三个阶段:人工管理阶段、文件系统阶段和数据库阶段。2.1.2数据库阶段的特点(1) 减少数据的重复;(2) 避免数据的不一致;(3) 数据共享;(4) 强化数据的标准化;(5) 实践安全性的管理;(6) 完整性的维护;(7) 需求冲突会获得平衡;2.1.3数据库技术从文件系统发展到数据库系统是信息处理领域的一个重大变化。在文件系统阶段,人们关注的中心问题是系统功能的设计,因而程序设计处于主导地位,数据只起着服从程序需要的作用。在数据库方式下,信息处理观念已为新体系所取代,数据占据了中心位置。数据结构的设计成为信息系统首先关心的问题,而利用这些数据的应用程序设计则退居到以既定的数据结构为基础的外围地位。 在数据库技术中有四个名词,其概念应该分清。(1)数据库(database,DB):DB是统一管理的相关数据的集合。DB能为各种用户共享,具有最小冗余度,数据间联系密切,而又有较高的数据独立性。(2)数据库管理系统(DatabaseManagementSystem, DBMS):DBMS是位于用户 与操作系统之间的一层数据管理软件,为用户或应用程序提供访问DB的方法,包括DB的建立、查询、更新及各种数据控制。DBMS总是基于某种数据模型,可以分为层次型、网状型、关系型和面向对象型DBMS。(3)数据库系统(DatabaseSystem, DBS):DBS是实现有组织地、动态地存储大量关联数据,方便多用户访问的计算机软件、硬件和数据资源组成的系统,即采用了数据库技术的计算机系统。(4)数据库技术:这是一门研究数据库的结构、存储、管理和使用的软件学科。数据库技术是操作系统的文件系统基础上发展起来的。而DBMS本身要在操作系统的支持下才能工作。数据库不仅用到数据结构的知识,而且丰富了数据结构的内容。在关系数据库中要用到集合论、数理逻辑的理论。因此,数据库技术是一门综合性较强的学科。2.2 数据库理论基础2.2.1数据库模型模型是对现实世界的抽象。在数据库技术中,我们用模型的概念描述数据库的结构与语义,对现实世界进行抽象,表示实体类型及实体间联系的模型称为“数据模型”。目前广泛作用的数据模型可分为两种类型。一种是独立于计算机系统的模型,完全不涉及信息在系统中的表示,只是用来描述某个特定组织所关心的信息结构,这类模型称为“概念数据模型”。另一种数据模型是直接面向数据库的逻辑结构,它是现实世界的第二层抽象。这类模型涉及到计算机系统和数据库管理系统,又称为“结构数据模型”。如:层次、网状、关系、面向对象等模型。这类模型有严格的形式化定义,以便于在计算机系统中实现。层次模型。用树型结构表示实体类型及实体间联系的数据模型。层次模型的特点是记录之间的联系通过指针实现,查询效率较高。但层次模型有两个缺点:一是只能表示1N联系,虽然有多种辅助手段实现了MN联系,但都较复杂,用户不易掌握,二是由于树型结构层次顺序的严格和复杂,引起数据的查询和更新操作也很复杂,因此,编写应用程序也很复杂。网状模型。用有向图结构表示实体类型及实体间联系的数据模型。网状模型的特点:记录之间联系通过指针实现,MN联系也容易实现(每个MN联系可拆成两个1N联系),查询效率较高。网状模型的缺点是编写应用程序比较复杂,程序员必须熟悉数据库的逻辑结构。关系模型。关系模型的主要是用二维表格结构表达实体集,用外部键表示实体间联系。关系模型是由若干个关系模式组成的集合。关系模式相当于前面提到的记录类型,它的实例称为关系,每个关系实际上是一张二维表格。关系模型和层次、网状模型的最大判别是用关键码而不是用指针导航数据,表格简单用户易懂,编程时并不涉及存储结构,访问技术等细节。关系模型是数学化模型。SQL语言是关系数据库的标准化语言,已得到了广泛的应用。关系模型和网状、层次模型的最大区别是:关系模型用表格数据而不是通过指针链来表示和实现实体间联系。关系模型的数据结构简单、易懂。只需用简单的查询语句就可对数据库进行操作。关系模型是数学化的模型,可把表格看成一个集合,因此集合论、数理逻辑等知识可引入到关系模型中来。关系模型已是一个成熟的有前途的模型,已得到广泛应用。2.2.2数据库体系结构数据库的体系结构分三级:内部级,概念级和外部级。这个三级结构有时也称为“三级模式结构”,或“数据抽象的三个级别”.外部级最接近用户,是单个用户所能看到的数据特性。单个用户使用的数据视图的描述称为“外模式”。概念级涉及到所有用户的数据定义,是全局的数据视图。全局数据视图的描述称为“概念模式”。内部级最接近于物理存储设备,涉及到实际数据存储的结构。物理存储数据视图的描述称为“内模式”。数据库的三级模式结构是数据的三个抽象级别。它把数据的具体组织留给DBMS去做,用户只要抽象地处理数据,而不必关心数据在计算机中的表示和存储,这样就减轻了用户使用系统的负担。为了实现这三个抽象级别的联系和转换,DBMS提供两个层次的映象:外模式/模式映象, 模式/内模式映象。2.3SQL语言基础2.3.1SQL简介用户对数据库的使用,是通过数据库管理系统提供的语言来实现的。不同的数据库管理系统提供不同的数据库语言。关系数据库管理系统几乎都提供关系数据库标准语言SQL。SQL,即结构化查询语言。SQL语句可以从关系数据库中获得数据,也可以建立数据库、增加数据、修改数据。1986年ANSI采用SQL语言作为关系数据库系统的标准语言,后被国际化标准组织(ISO)采纳为国际标准。SQL语言使用方便、功能丰富、简洁易学,是操作数据库的工业标准语言,得到广泛地应用。SQL语言可以完成许多功能,例如:(1) 查询数据(2) 在数据库表格中插入、修改和删除记录(3) 建立、修改和删除数据对象(4) 控制对数据和数据对象的存取(5) 确保数据库的一致性和完整性等2.3.2SQL查询数据查询是关系运算理论在SQL语言中的主要体现,SELECT语句是SQL查询的基本语句,当我们在对一个数据库进各种各样的操作时,使用的最多的就是数据查询,在以SQL为基础的关系数据库中,使用的最多的就是SELECT查询语句。SELECT语句的完整句法如下: SELECT目标表的列名或列表达式序列FROM基本表 和(或)视图序列 WHERE行条件表达式 GROUPBY列名序列HAVING组条件表达式 ORDERBY列名ASCDEAC我在SELECT语句中还使用了大量的保留字和通配符以进行各种各样的条件查询。在系统中有大量的查询按钮,其使用了大量的查询语句,但是我在本系统中几乎没有提及通配符,就是没有使用模糊查询。但是模式匹配符LIKE(判断值是否与指定的字符通配格式相符)在数据库中还是占有很重要的位置。在包含LIKE的查询语句中可以使用两个通配符:%(百分号):与零个或多个字符组成的字符串匹配;_(下划线):与单个字符匹配。系统中的条件判断往往包含多个条件,这时就需要使用逻辑运算符NOT、AND、OR(用于多条件的逻辑连接),谓词ALL以及保留字DISTINCT等等。作为SELECT语句还有很多的使用方法,这里就不再叙述。2.3.3SQL数据更新使用数据库的目的是为了有效地管理数据,而数据的插入、删除和修改则是必不可少的一个功能。在本系统中就大量地使用了数据插入、删除和修改这三种操作。(1)数据插入往数据库的基本表中插入数据使用的是INSERT语句,其方式有两种:一种是元组值的插入,另一种是查询结果的插入。在本系统中使用的是前一种方式,其句法如下:INSERTINTO基本表名(列表名)VALUES(元组值)(2)数据删除往数据库的基本表中删除数据使用的是DELETE语句,其句法如下: DELETEFROM基本表名WHERE条件表达式删除语句实际上是“SELECT*FROM基本表名WHERE条件表达式”和DELETE操作的结合,每找到一个元组,就把它删除。此外,DELETE语句只能从一个基本表中删除元组,WHERE子句中条件可以嵌套,也可以是来自几个基本表的复合条件。(3)数据修改当需要修改基本表中元组的某些列的值时,可以用UPDATE语句实现,其句法如下: UPDATE基本表名SET列名=值表达式,列名=值表达式 WHERE条件表达式3 系统总体设计3.1 需求分析需求分析是一种软件工程活动,它在系统级软件分配和软件设计间起到桥梁作用。需求分析使得系统工程师能够刻画出软件的功能和性能、指明软件和其他系统元素的接口、并建立软件必须满足的约束。需求分析允许软件工程师精化软件分解模块,并建造将被软件处理的数据、功能、和行为模型。需求分析为软件设计者提供了可被翻译成数据、体系结构、界面和过程设计的模型,需求规约为开发者和客户提供了软件建造完后质量评估的依据。需求分析是软件生存周期中相当重要的一个阶段。需求分析的主要任务就是确定待开发软件的功能、性能、数据、界面等要求。根据具体调查和根据酒店库存管理的业务管理工作的特点和要求,整个系统完成后,应具备系统的完整性和独立性。具体体现在:3.1.1系统界面要求系统界面要求描述了软件系统的外部特性。用户界面是面向用户的。用户需要的是开发者开发的应用软件满足其需求,并且易于使用。首先,用户界面越直观,就越易用,越易用就越便宜。因为界面越好,培训用户就越容易,降低丁培训成本;界面越出色,用户就越少求助,降低了客户支持成本。其次,界面越出色,用户就喜欢使用,增强了开发者工作的满意度。根据软件的使用环境、用户的要求,系统界面应该简单、友好、易于使用、方便查看、简洁明快。而且系统是在 Windows 环境下的应用软件,软件产品的界面应该与操作系统的界面相切合,本系统的主界面功能齐全,分类明确,让用户一眼看去就能明白大致的功能。子界面应该集中同一功能的有关选项,方便用户在一个界面内进行操作,避免界面的频繁切换。3.1.2系统功能要求本系统设计的重点就是能够实现以下的功能:(1) 完成物资的库存管理(包括物资的入库,出库,盘点)窗口设计和信息数据库的建立和数据的添加,修改,等功能。(2) 完成信息反馈(信息的查看,信息的录入)的动态窗口设计。(3) 完成查询和统计(动态条件的改变来查询和统计)的设计。(4) 完成信息录入(各类系统所需信息的录入)的设计。(5) 完成系统管理(包括用户管理,密码修改)窗口的设计,信息数据库的建立和数据的添加,修改,删除。软件系统的总体设计大约要经历可行性分析和项目开发计划,需求分析,概要设计,详细设计,编码,测试以及维护等七个阶段。可行性分析和项目开发计划在前面已经叙述,下面所要做的是进行软件需求分析,概要设计和详细设计。编码过程将在下一节论述,而测试和维护过程不在本文叙及。3.2 系统需求分析在经过前面一个阶段的分析和总结,已经给我所要完成的酒店库存管理系统完成了前奏。现在所要做的是要准确定义系统必须做什么以及系统必须具备的功能。软件需求分析中我采用结构化分析方法(StructuredAnalysis,简称SA),SA是面向数据流进行需求分析的方法,像所有的软件分析方法(如面向对象分析方法、IDEF方法等等)一样,SA也是一种建模活动,它使用简单易读的符号,根据软件内部数据传递、变换的关系,自顶向下逐层分解,描绘满足功能要求的软件模型。在系统中我采用数据流图(DFD)这种半形式化的描述方式表达需求。它是一种功能模型,以图形的方式描绘数据在系统中流动和处理的过程,只反映系统必须完成的逻辑功能。它有四种基本图形符号:(1) :箭头,表示数据流;(2) :圆或椭圆,表示加工;(3) :双杠,表示数据存储;(4) :方框,表示数据的源点或终点。为了表达较为复杂问题的数据处理过程,用一张数据流图是不够的,要按照问题的层次结构进行逐步分解,并以一套分层的数据流图反映这种结构关系。在这里我一共使用了三层数据流图,即顶层图,0层图和1层图(也是底层图)。 在多层数据流图中,顶层流图仅包含一个加工,它代表被开发系统,它的输入流是该系统的输入数据了,输出流是该系统的输出数据;底层流程图是指其加工不需要再做分解的数据流图,中间层流图表示对其上层父图的细化,它的每一步加工可能继续细化成子图。经过对系统的分析首先得到系统的顶层DFD,如下:系统操作员库存管理系统各部门领导系统操作员登录系统口令处理库存系统库存系统查询统计各个部门存储结果处理结果数据中心处理结果数据中心数据汇总识别口令数据结果进一步细化得到系统的0层DFD,如下:进一步细化得到系统的1层DFD,如下: 数据录入 有效标识 数据录入 处理结果 有效标识 数据处理 有效标识 处理录入 有效标识 处理结果 系统操作员登录系 统口令处理入库管理库存管理系统管理出库管理盘点管理信息反馈录入信 息查询统计各个部门登录口令处理结果员工登录信息数据录入数据处理数据录入各类信息数据中心处理结果统计数据处理结果反馈信息处理结果3.3 系统设计3.3.1系统总体结构设计根据系统分析的结果,按照结构化的系统设计方案,本酒店库存管理系统从功能上可以划出如下几个模块,如图所示。浅水湾酒店库存管理系统库存管理查询统计信息反馈信息录入系统管理用户管理密码修改退出入库管理出库 管理盘点库存查询统计信息录入信息查看员工信息录入商品信息录入商家信息录入入库单查询出库单查询库存查询商家信息查询员工信息查询盘点查询日出货量统计月出货量统计年出货量统计日出货量统计月出货量统计年出货量统计其他统计图 3.1系统功能结构图预警查看数据备份数据还原 库存管理主要是供仓库管理员对酒店物资的入库和出库管理,它主要包括以下三个方面:入库管理,出库管理,盘点管理。入库管理包含:入库单据的制作,并且在入库同时修改本次物资信息的库存量,在入库之前检测本次入库的物资是否在商品信息找到(本系统在数据库设计时已经将入库和商品表建立了关系视图),如果未找到就根据系统提示来进行商品信息的录入;另外包含一个酒店物资管理的一个常用功能:直接过继,所谓直接过继就是入库的物资(商品)不经过库存直接出库,就是只进行入库单制作和出库单制作而不进行商品库存的任何变动。信息反馈包括信息录入管理和信息查看管理两个子模块。其中,信息录入就是任何一个可以登陆本系统的用户可以发表自己的看法(各个方面的),信息查看就是本系统的管理员有权限查看任何人发表的信息,查看包含直接查看信息表中第一个没有查看的信息和按信息编号来查阅。系统管理包括用户管理,密码修改。用户管理是对用户的添加,修改,删除及权限的设置。密码修改主要是登录本系统的用户可以更改自己的登录密码,也可以由系统管理员来更改和分配。数据库参数的安全性。为了方面存取同一数据库内不同表的内容,我选择使用 SqlConnection 组件连接数据库,使用 ConnectionString 属性设置数据库连接参数,用 SqlDataAdapter 对DataSet进行填充,所有的一切对数据的操作都是对DataSet进行的。通过连接的建立和应用DataSet 对数据的处理来完成各个功能模块,实现库存管理的自动化。3.3.2用ADO.NET DataSet访问数据简介 本系统所有和数据库数据打交道的都是通过ADO.NET DataSet进行访问的,所以在此我先对ADO.NET DataSet做一些简要的介绍。(1)DataSet简介DataSet(数据集)位于System.Data命名空间,被精确定义成一个独立于提供程序的、驻留于内存的以及断开的关系型数据结构。针对它所表示的数据,DataSet支持标准的查看、添加、移除及更新操作;而且这些操作并非只限于数据库数据。 DataSet完全独立于提供程序;换言之,它们没有任何一种功能需要依赖你用于连接数据源的底层提供程序。由于DataSet是“断开”的,所以在DataSet对象的整个生命期,底层连接都不必开放。这样一来,就可高效率地使用当前可用的数据库连接。可采取几种方式在DataSet中填充数据:通过底层提供程序特有的一系列命令对象来填充,从一个XML文档或者文档片断中填充数据,或者手工提供数据。本文强调的是从数据库中获取数据,因为这可能是你想执行的第一个任务。但要注意的是,DataSet非常灵活,并不一定要用一个源数据库来提供数据。(2)DataAdapter:中间层DataAdapter负责在独立于提供程序的DataSet和提供程序特有的连接及命令对象之间进行转换。它就相当于起到一个桥梁作用将数据库中的数据“写入”到DataSet中以便软件开发人员操作。 以上两个组件再加上SqlConnection组件共同来访问数据库中的数据,本系统中的所有对数据库的访问都要以此作为基础的,可见此三个组件在C#数据库编程中之重要。3.4 系统详细设计3.4.1数据库设计(1)概念结构设计在系统的数据库设计中,先要对系统分析得到的数据字典中的数据存储进行分析,分析各数据存储之间的关系,然后得出系统的关系模式。本系统采用实体-联系图(简称E-R图)来描述系统的概念模型。E-R图由实体、属性、联系三部分组成,其符号如图所示。实体 属性 联系 图3.2 E-R图图例为了使E-R图表示得更加清晰,我将E-R图分成实体及其属性图和实体及其联系图。如图3.13所示,实体和属性图组如图3.3到3.12所示:登录用户名密码职位图 3.3员工编号姓名年龄部门职位图 3.4联系方式供应商编号供应商名称电话地址备注供应商表图 3.5 部门部门名称部门负责人联系方式图 3.6入库单表帐单号日期商品名称合计供应商名称商品类型供应商编号职工编号经手人数量单价序列号备注商品编号图 3.711xzoLn11v1uihp11qm供应商采购商品采购部门供应仓库入库出库隶属员工管理信管员采购员属于仓库管理员属于属于信息系统管理n图 3.13出库单表序列号帐单号职工编号经手人商品编号商品名称供应商编号供应商取材部门单价数量合计日期商品类型备注图 3.8库存表商品编号商品名称备注商品类型供应商编号供应商单价库存量合计金额最后更新图 3.9商品商品编号商品名称助记符供应商名称商品类型备注图 3.10图 3.11建议表意见编号发表人联系方式内容日期标志位图 3.12盘点表编号商品名称经手人商品编号实际库存量盘点库存量差额盘点日期(2)逻辑结构设计数据库的设计要保证两点内容首先要保证数据的逻辑独立性,再者要保证数据的物理的独立性,以下对数据的独立性做以下简要概述:数据的独立性由于数据库系统采用三级模式结构,因此系统具有数据独立性的特点。在数据库技术中,数据独立性是指应用程序和数据之间相互独立,不受影响。数据独立性分成物理数据独立性和逻辑数据独立性两级。物理数据独立性如果数据库的内模式要进行修改,即数据库的存储设备和存储方法有所变化,那么模式/内模式映象也要进行相当的修改,使概念模式尽可能保持不变。也就是对内模式的修改尽量不影响概念模式,当然,对于外模式和应用程序的影响更小,这样,我们称数据库达到了物理数据独立性。逻辑数据独立性如果数据库的概念模式要进行修改,譬如增加记录类型或增加数据项,那么外模式/模式映象也要进行相应的修改,使外模式尽可能保持不变。也就是对概念模式的修改尽量不影响外模式和应用程序,这样,我们称数据库达到了逻辑数据独立性。范式简介现有关系系统产品均提供了较高的物理独立性,而对逻辑独立性的支持尚有欠缺,例如,对外模式的数据更新受到限制等。建立起一个良好的数据指标体系,是建立数据结构和数据库的最重要的一环。一个良好的数据指标体系是建立DB的必要条件,但不是充分条件。我们完全可以认为所建指标体系中的一个指标类就是关系数据库中的一个基本表,而这个指标类下面的一个个具体指标就是这个基本表中的一个字段。但如果直接按照这种方式建库显然还不能算最佳。对于指标体系中数据的结构在建库前还必须进行规范化的重新组织。在数据的规范化表达中,一般将一组相互关联的数据称为一个关系(relation),而在这个关系下的每个数据指标项则被称为数据元素(dataelement),这种关系落实到具体数据库上就是基本表,而数据元素就是基本表中的一个字段(field)。规范化表达还规定在每一个基本表中必须定义一个数据元素为关键字(key),它可以唯一地标识出该表中其它相关的数据元素。在规范化理论中表是二维的,它有如下四个性质:在表中的任意一列上,数据项应属于同一个属性。在表中所有行都是不相同的,不允许有重复组项出现。在表中,行的顺序无关紧要。在表中,列的顺序无关紧要,但不能重复。在对表的形式进行了规范化定义后,数据结构还有五种规范化定义,定名为规范化模式,称为范式。在这五种范式中,一般只用前三种,对于常用系统就足够了。而且这五种范式是“向上兼容”的,即满足第五范式的数据结构自动满足一、二、三、四范式,满足第四范式的数据结构自动满足第一、二、三范式,依此类推。第一范式(firstnormalform,简称1stNF)就是指在同一表中没有重复项出现,如果有则应将重复项去掉。这个去掉重复项的过程就称之为规范化处理。在本文所讨论的开发方法里,1stNF实际上是没有什么意义的。因为我们按规范化建立的指标体系和表的过程都自动保证了所有表都满足1stNF。第二范式(secondnormalform,简称2ndNF)是指每个表必须有一个(而且仅一个)数据元素为主关键字(primarykey),其它数据元素与主关键字一一对应。通常我们称这种关系为函数依赖(functionalDependence)关系。即表中其它数据元素都依赖于主关键字,或称该数据元素唯一地被主关键字所标识。第三范式(thirdnormalform,简称3rdNF)就是指表中的所有数据元素不但要能够唯一地被主关键字所标识,而且它们之间还必须相互独立,不存在其它的函数关系。也就是说对于一个满足了2ndNF的数据结构来说,表中有可能存在某些数据元素依赖于其它非关键字数据元素的现象,必须加以消除。为防止数据库出现更新异常、插入异常、删除异常、数据冗余太大等现象,关系型数据库要尽量按关系规范化要求进行数据库设计。 本系统所有的表我们都遵从了范式要求,从原则上来讲都满足第一范式的要求,大部分表都满足第二范式,只有少数不满足第三范式,二范式已经保证了数据的一致性,保证了数据库不会出现更新异常、插入异常、删除异常、数据冗余太大等现象。逻辑结构设计的任务就是把概念结构设计阶段设计好的基本E-R图,转换为与选用的具体机器上的DBMS产品所支持的数据模型相符合的逻辑结构。E-R图向关系模型转换的结果如下的示:1) 登录(用户名,密码,职位)2) 员工(编号,姓名,年龄,部门,职位,联系方式);编号为此关系的关键字。3) 供应商(供应商编号,供应商名称,电话,地址,备注);供应商编号为此关系的关键字。4) 部门(部门名称,部门负责人,部门联系方式);部门名称是此关系的关键字。5) 入库(序列号,账单号,商品编号,商品名称,商品类型,供应商编号,供应商,职编号,经手人,单价,数量,合计,日期,备注);序列号是此关系的关键字。6) 出库(序列号,账单号,商品编号,商品名称,商品类型,供应商编号,供应商,职工编号,经手人,出库部门,单价,数量,合计,日期,备注);序列号是此关系的关键字。7) 建议(意见编号,发表人,联系方式,内容,日期,标示位);意见编号是此关系的关键字。8) 商品(商品编号,商品名称,商品类型,助记符,供应商名称,备注);商品编号是此关系的关键字。9) 盘点(编号,经手人,商品编号,商品名称,实际库存量,盘点库存量,差额,盘点日期);此表未定义关键字。 10) 库存(商品编号,商品名称,商品类型,供应商编号,供应商,单价,库存量,合计金额,最后更新,备注);商品编号为此关系的关键字。(3)物理结构设计字段名称类型长度精度小数位数是否为空用户名Char2000否密 码Char1000否权 限Char1500否登录表(登录界面)商品表(信息录入)字段名称类型长度精度小数位数是否为空商品编号Char2000否商品名称Char2000是助 记 符Char1000是供应商名称Char2000是商品类型Char1000是备 注Char5000是员工表(信息录入)字段名称类型长度精度小数位数是否为空编 号Char2000否名 称Char2000是年 龄Char1000是部 门Char1500是职 位Char1500是联系方式Char2000是盘点表(库存管理)字段名称类型长度精度小数位数是否为空编 号Char2000否商品编号Char 2000是商品名称Char2000是经 手 人Char2000是实际库存量Float8532是盘点库存量Float8532是差 额Float8532是盘点日期Float1500是备 注Float5000是入库表(库存管理)字段名称类型长度精度小数位数是否为空序列号Numeric9100否账单号Char2000是商品编号Char2000是商品名称Char2000是商品类型Char2000是供应商编号Char2000是供应商Char2000是职工编号Char2000是经手人Char2000是单价Float8532是数量Float8532是合计Float8532是日期Char1500是备注Char5000是库存表(库存管理)字段名称类型长度精度小数位数是否为空商品编号
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 虚拟现实与增强现实知识产权共享与合作战略框架
- 工业园区物业管理合同续约及配套设施完善协议
- 离婚后个人债务清偿人寿保险协议
- 商业地产租赁合同补充协议书(租金调整)
- 离婚协议书范本:无子女财产分割及共同债务处理细则
- 《离婚协议书制作中常见问题解析与对策》
- 班组级入矿安全培训课件
- 中药与保健课件
- 关于工伤的培训
- 神秘的埃及课件
- 南通市2025届高三第二次调研测试语文试题含答案
- 《科研经费管理》课件
- 成都市商品房购买(预售)合同标准版5篇
- 腹膜透析护理科普宣教
- 银行卡借用协议
- 二年级道德与法治上册 第四单元 我们生活的地方 16 家乡新变化教学实录 新人教版
- 食堂经理年度工作总结
- 小米生态链企业的协同发展与供应链优化
- 2025年湖南工程职业技术学院单招职业适应性测试题库必考题
- 《资治通鉴》与为将之道知到课后答案智慧树章节测试答案2025年春武警指挥学院
- 劳动合同范本合同模板
评论
0/150
提交评论