• 128.50 KB
  • 2022-04-22 13:32:27 发布

东软日报管理系统数据库设计与实现毕业论文.doc

  • 24页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'东软日报管理系统数据库设计与实现毕业论文目录第一章数据库设计的方法及东软日报管理系统概述……………………………….………41.1数据库与信息系统……………………………………………………….………..41.2数据库设计方法简述………………………………………………………….…..41.3数据库设计的基本步骤…………………………………………………….……..41.4E-R图、范式理论简介……………………………………………………………61.5东软日报管理系统的概述及需求……………………………….……….……….71.6东软日报管理系统的功能及意义………………………………………….….….8第二章东软日报管理系统数据库结构设计分析与实现…………………………………...92.1数据库结构设计形成各步骤设计与具体实施……………………………..…...92.1.1需求分析…………………………………………………………….……….92.1.2概念结构设计………………………………………………………………..92.1.3数据库物理设计……………………………………………………………..122.1.4数据库实施阶段……………………………………………………………..122.1.6数据库运行维护阶段………………………………………………………..222.2数据库设计中遇到的问题及改进………………………………………………23第三章东软日报管理系统数据库设计的优缺点及改进………………………..…………...233.1东软日报管理系统数据库设计的优点………………………………………….243.2东软日报管理系统数据库设计的缺点………………………………………….243.3东软日报管理系统数据库设计的改进………………………………………….24第四章结束语…………………………………………………………………………..……...25参考文献………………………………………………………………………………..……….26-24- 第一章东软日报管理系统概述及数据库设计方法所谓MIS(信息系统--ManagementInformationSystem)系统,是一个由人、计算机及其他外围设备等组成的能进行信息的收集、传递、存贮、加工、维护和使用的系统。许多大型企业为了方便管理,都委托软件公司开发适合自己公司的信息管理系统。有些信息管理系统用来管理人员,有些则是用来管理财务,我们这里介绍的信息系统则是用来管理日报。东软日报管理系统又有什么作用?作为信息管理系统核心数据库的设计又有哪些步骤和方法呢?在这一章将充分了解这些问题。1.1数据库与信息系统数据库是信息系统的核心和基础,把信息系统中大量的数据按一定的模型组织起来,提供存储、维护、检索数据的功能,使信息系统可以方便、及时、准确地从数据库中获得所需的信息;数据库是信息系统的各个部分能否紧密地结合在一起以及如何结合的关键所在;数据库设计信息系统开发和建设的重要组成部分。1.2数据库设计方法简述现实世界的复杂性导致了数据库设计的复杂性。只有以科学的数据库设计理论为基础,在预提的设计原则的指导下,才能保证数据库系统的设计质量,减少系统运行后的维护代价。目前常用的各种数据库设计方法都属于规范设计法,即运用软件工程的思想和方法,根据数据库设计的特点,提出了各种设计准则与设计规程。这种工程化的规范设计方法也是目前技术条件下设计数据库的最实用的方法。逻辑数据库设计是根据用户要求和特定数据库管理息系统的具体特点,以数据库设计理论为依据,设计数据库的全局逻辑结构和每个用户的局部逻辑结构。物理数据库设计是在逻辑结构确定之后,设计数据库的存储结构及其他实现细节。[1]1.3数据库设计的基本步骤数据库设计的过程(六个阶段)1、需求分析阶段信息需求:指目标系统设计的所有实体、属性、-24- 以及实体间的联系等,包括信息的内容和性质,以及由信息需求导出的数据需求。处理需求:指为得到需求的信息而对数据进行加工处理的需求,包括处理描述,发生的频度、响应时间以及安全保密要求等。进行数据库设计首先必须准确了解与分析用户需求(包括数据和处理)。需求分析是整个设计过程的基础,是最困难、最耗时的一步。作为地基的需求分析是否做的充分与准确,决定了在其构建数据库大厦的速度与质量。需求分析作的不好,甚至会导致整个数据库设计返工重做。1、概念结构设计把用户的信息要求统一到一个整体逻辑结构中,此结构能表达拥护的要求,且独立于任何DBMS软件和硬件。概念结构设计是整个数据库设计的关键,它通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型。2、逻辑结构设计逻辑结构设计分为两个部分,即数据库结构设计和应用程序设计。从逻辑设计导出的数据库结构是DBMS能接受的数据库定义,这种结构有时也称为逻辑数据库结构。逻辑结构设计是将概念结构转换为某个DBMS所支持的数据模型,并对其进行优化。3、数据库物理设计物理设计也分为两个部分:物理数据库结构的选择和逻辑设计中程序模块说明的准确化。这一阶段的工作成果是一个完整的能实现的数据库结构。数据库物理设计是为逻辑数据模型选取一个最合适应用环境的物理结构(包括存储结构和存取方法)。4、数据库的实施根据物理设计的结果产生一个具体的数据库和它的应用程序,并把原始数据装入数据库。实施阶段主要有三项工作:(1)、建立实际数据库结构;(2)、装入试验数据对应用程序进行调试;(3)、装入实数据。在数据实施阶段,设计人员运用DBMS提供的数据语言及其宿主语言,根据逻辑设计和物理设计的结果建立数据库,编制与调试应用程序,组织数据入库,并进行试运行。5、数据库运行和维护数据库系统的正式运行,标志着数据库设计与应用开发工作的结束和维护阶段的开始。运行和维护阶段的主要任务有四项:(1)、维护数据库的安全性与完整性;(2)、检测并改善数据库运行性能;-24- (3)、根据用户需求对数据库现有功能进行扩充;(4)、及时改正运行中发现的系统错误。[2]1.4E-R图、范式理论简介E-R图也称实体-联系图(EntityRelationshipDiagram),提供了表示实体类型、属性和联系的方法,用来描述现实世界的概念模型。E-R图的构成:实体型(Entity):具有相同属性的实体具有相同的特征和性质,用实体名及其属性名集合来抽象和刻画同类实体;在E-R图中用矩形表示,矩形框内写明实体名;比如学生张三丰、学生李寻欢都是实体。如果是弱实体的话,在矩形外面再套实线矩形。  属性(Attribute):实体所具有的某一特性,一个实体可由若干个属性来刻画。在E-R图中用椭圆形表示,并用无向边将其与相应的实体连接起来;比如学生的姓名、学号、性别、都是属性。如果是多值属性的话,再椭圆形外面再套实线椭圆。如果是派生属性则用虚线椭圆表示。联系(Relationship):联系也称关系,信息世界中反映实体内部或实体之间的联系。实体内部的联系通常是指组成实体的各属性之间的联系;实体之间的联系通常是指不同实体集之间的联系。在E-R图中用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(1:1,1:n或m:n)。比如老师给学生授课存在授课关系,学生选课存在选课关系。如果是弱实体的联系则在菱形外面再套菱形。(来源于百度百科)关系数据库中的关系必须满足一定的要求,即满足不同的范式。  目前关系数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、第四范式(4NF)、第五范式(5NF)和第六范式(6NF)。满足最低要求的范式是第一范式(1NF)。在第一范式的基础上进一步满足更多要求的称为第二范式(2NF),其余范式以次类推。一般说来,数据库只需满足第三范式(3NF)就行了。第一范式(1NF)无重复的列-24-   所谓第一范式(1NF)是指数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性。如果出现重复的属性,就可能需要定义一个新的实体,新的实体由重复的属性构成,新实体与原实体之间为一对多关系。在第一范式(1NF)中表的每一行只包含一个实例的信息。简而言之,第一范式就是无重复的列。  说明:在任何一个关系数据库中,第一范式(1NF)是对关系模式的基本要求,不满足第一范式(1NF)的数据库就不是关系数据库。第二范式(2NF)属性  完全依赖于主键[消除非主属性对主码的部分函数依赖]  第二范式(2NF)是在第一范式(1NF)的基础上建立起来的,即满足第二范式(2NF)必须先满足第一范式(1NF)。第二范式(2NF)要求数据库表中的每个实例或行必须可以被唯一地区分。为实现区分通常需要为表加上一个列,以存储各个实例的唯一标识。例如员工信息表中加上了员工编号(emp_id)列,因为每个员工的员工编号是唯一的,因此每个员工可以被唯一区分。这个唯一属性列被称为主关键字或主键、主码。  第二范式(2NF)要求实体的属性完全依赖于主关键字。所谓完全依赖是指不能存在仅依赖主关键字一部分的属性,如果存在,那么这个属性和主关键字的这一部分应该分离出来形成一个新的实体,新实体与原实体之间是一对多的关系。为实现区分通常需要为表加上一个列,以存储各个实例的唯一标识。简而言之,第二范式就是属性完全依赖于主键。第三范式(3NF)属性  不依赖于其它非主属性[消除传递依赖]  满足第三范式(3NF)必须先满足第二范式(2NF)。简而言之,第三范式(3NF)要求一个数据库表中不包含已在其它表中已包含的非主关键字信息。例如,存在一个部门信息表,其中每个部门有部门编号(dept_id)、部门名称、部门简介等信息。那么在的员工信息表中列出部门编号后就不能再将部门名称、部门简介等与部门有关的信息再加入员工信息表中。如果不存在部门信息表,则根据第三范式(3NF)也应该构建它,否则就会有大量的数据冗余。简而言之,第三范式就是属性不依赖于其它非主属性。(来源于百度百科)1.5东软日报管理系统的介绍及需求开发项目:医疗日报管理系统开发环境:windowsXP开发语言:JAVA、PL/SQL、JSP使用工具:myeclipse6.0、ORACLE10g、tomcat5.0-24- 开发项目组人数:15人此系统为某医疗单位为方便管理,委托东软集团开发的日报管理系统。这套系统以HTML页面为界面的窗口式信息系统。在充分了解医疗单位的结构组成后,设计了此系统的各模块功能。医疗单位需要对员工每日做的事情填写日报,再由其上级领导予以审核,确定日报的真实性。医疗单位的各种信息,包括个人、部门、项目等信息都要由此系统录入数据库,方便查找检索修改。系统分级登陆,不同等级的用户登录后使用的功能多少也不同,地位越高使用的功能也越多。系统使用共享数据库,所有数据库存储于一台服务器。1.6东软日报管理系统的功能及意义东软日报管理系统的功能:1、存储部门信息、个人信息、PRP阶段信息、日报信息2、管理各部门信息、各项目信息、PRP阶段信息、个人信息、日报信息3、修改个人信息、部门信息、项目信息、日报信息、PRP阶段信息4、上级审核下级填写的日报信息5、整合协调各部门、各项目工作日报管理系统的意义在于方便单位管理,节省人力物力财力时间,提高单位的工作效率,在有限的时间内做到跟多的工作。此系统让上级了解下级每日具体的工作,是否按要求完成自己的任务,每日的日报可以让领导了解项目的工作进度从而规划未来的工作。管理系统可以让各部门或各项目组充分调节人员和资源,使效益最大化。第二章东软日报管理系统数据库结构设计分析与实施-24- 数据库作为信息系统的核心,通过设计、实施才能得到一个完整的数据库。数据库的设计十分讲究,要做到适合用户,我们就必须通过理解用户的需求以及考察用户公司的构成和日常运行机制,得到信息系统的需求分析,再通过信息系统的需求分析得到数据库的需求分析。在设计中,我们要使用各种方法使数据库的性能达到最好,我们在设计和实施中到底应该怎么做,才能使数据库达到我们的要求呢?本章将具体分析东软日报管理系统数据库的设计与实施中的各种特殊方法。2.1数据库结构设计形成各步骤设计分析2.1.1需求分析本数据库的功能概述:(1)设定登录员工等级,设员工,领导,管理员三个等级,其信息与权限代码存储于此数据库,;(2)存储PRP阶段的信息,信息可修改;(3)存储职能部门信息,信息可修改;(4)存储项目信息信息可修改;(5)存储个人提交日报信息,信息可修改(6)存储使用此系统的用户信息,信息可修改.2.1.2概念结构设计分析根据需求分析,我们用局部E-R图描述数据库的概念结构.使用E-R图可以提前规划好表的建设,使表的建设符合需求分析,有效的配合各模块的数据提取和存储。角色:在角色的E-R图中,要存储角色的ID和名称,备注是对角色做具体说明的。这个表用来存储特定角色的信息。-24- 图-1角色E-R图部门:部门表中将存储部门ID,部门名称,上级部门名称。每个部门有下属部门,根据上级部门ID可以做到部门的分级。而部门ID由数据库序列自动生成,作为部门表中的主键,上级部门ID做外键,这样可以有效存储部门信息,使信息之间不混乱。图-2部门E-R图用户:用户表用来存储使用此系统用户的个人信息,包括了许多属性用户ID作为此表的主键,可以有效确定每个用户。其他属性可以完全有效存储个人信息,根据直接上级领导,是否领导来确定用户等级,确定员工的工作上司或者下属。-24- 图-3用户E-R图日报:日报表是此系统的一个重点,日报表所设计的所有属性均有效的存储了用户填写的日报各种信息。以日报ID和日报填写ID作为主键确定每一份日报,日报信息字段则存储日报的状态,分为三种,未审核,未通过,通过。这三种状态存储在属性表中,根据属性ID作为此表的外键进行连接其他属性都是通过各表的ID值进行连接,这样可以提高效率节省空间。图-4日报E-R图-24- 属性:属性表的设计使得整个数据库更加规范合理化,使数据的查询与分布更加有效,数据库表的建设要有合理性,使得内部数据处理的速度更快。这样设计可以消除其他表的重复信息,这样使其他表更加简单,查询起来也比较方便。图-5属性E-R图2.1.3数据库物理设计分析我们实训小组是以一个特定的电脑作为服务器,用来建立数据库。其他电脑都通过网络连接在这台主机上,所有起始数据都有DBA录入这台电脑,其基础值的设定也是预先输入表中。DBA输入了大量测试数据,其他电脑在做好自己的模块后用测试数据测试模块的功能是否完整无误。因为是实训,所以物理设计基本由东软公司帮我们设计好的,我们直接用就可以,对于物理设计,我还没有更深入的理解。2.1.4数据库实施阶段此数据库是建立在一台独立的电脑上的,以ORACLE10g数据库作为系统的后台数据库,因此,建表的语言和PL/SQL都是以ORACLE为基础的语言。以下给出各表的创建,序列等的具体代码(本人仅在下做注释):创建用户及表空间的代码:-24- 这段代码是为了更好的建立一个数据库而写的,起先的删除是为了定制一个完全符合这个系统的数据库。这样建立一个空的表空间,以后的数据都可以根据系统要求而填写,不必受其他因素的影响。DEFINEpass_system=dannyCONNECTSYSTEM/&pass_system;//以系统管理员的身份登录数据库droptablespacedata_dmsincludingcontentsanddatafiles;//删除表空间以及内容和数据文件CREATETABLESPACEdata_dmsDATAFILE"%oracle_base%oradatadata_dms01.dbf"SIZE20MREUSEAUTOEXTENDONNEXT5MMAXSIZE150M;//创建新的表空间,并设置其大小以及物理存储位置DROPUSERdmsCASCADE;//级联删除用户dmsCREATEUSERdmsIDENTIFIEDBYdms;//创建与原用户dms相同的用户dmsALTERUSERdmsDEFAULTTABLESPACEdata_dmsQUOTAUNLIMITEDONdata_dms;//修改用户dms下表空间的默认配额ALTERUSERdmsTEMPORARYTABLESPACEtemp;//修改用户dms临时表空间tempGRANTCONNECT,RESOURCETOdms;//赋予用户dms各种权限commit;//提交[15]各表的具体创建代码:-------------------------------------------------------------------------------------------------/*13、属性信息表+*/createtableDMS_ATTRIBUTES_T(attribute_codeVARCHAR2(4)NOTNULLPRIMARYKEY,-24- attribute_nameVARCHAR2(20)NOTNULL);//创建DMS_ATTRIBUTES_T表,此表与设计之初的属性表略有不同commentontableDMS_ATTRIBUTES_Tis"总属性信息表";//对DMS_ATTRIBUTES_T表做注释[16]从这张表的创建来看,是直接在创建过程中就对字段添加了主键,这样比较方便明确,但不能给这个主键命名-------------------------------------------------------------------------------------------------/*1、角色信息表*/-----------------------------------------------------------------------------------------------------createtableDMS_ROLE_T(ROLE_IDNUMBER(12)default0notnull,ROLE_NAMEVARCHAR2(20)default""notnull,ROLE_MEMOVARCHAR2(200)default"",RESERVE_1VARCHAR2(20));//创建DMS_ROLE_T表commentontableDMS_ROLE_Tis"角色信息表";commentoncolumnDMS_ROLE_T.ROLE_IDis"角色ID,主键,由序列:DMS_ROLE_SEQ生成";commentoncolumnDMS_ROLE_T.ROLE_NAMEis"角色名称";commentoncolumnDMS_ROLE_T.ROLE_MEMOis"备注";commentoncolumnDMS_ROLE_T.RESERVE_1is"保留字段1,供后期扩展";//对表和表中的列做注释altertableDMS_ROLE_TaddconstraintDMS_ROLE_ID_Pprimarykey(ROLE_ID);//设置列ROLE_ID为主键altertableDMS_ROLE_TaddconstraintDMS_ROLE_NAME_Uunique(ROLE_NAME);//设置列ROLE_NAME为唯一索引[17]-24- 这张表一开始就用普通代码创建了一张没有键的空表,接着使用ALTER语句添加主键以及其他功能,这样使用可以填写主键名,方便日后查找这张表的主键。这张表做了充分的注释,方便维护与阅读。-------------------------------------------------------------------------------------------------/*2、项目信息表*/-------------------------------------------------------------------------------------------------createtableDMS_PROJECT_T(PROJECT_IDNUMBER(12)default0notnull,PROJECT_CODEVARCHAR2(30)default""notnull,PROJECT_NAMEVARCHAR2(50)default""notnull,PROJECT_BEGIN_DATEDATE,PROJECT_END_DATEDATE,PROJECT_STATUSVARCHAR2(4)default"2000"notnull,PROJECT_MANAGERNUMBER(12),PROJECT_RESEARCHNUMBER(12),PROJECT_FINANCENUMBER(12),PROJECT_LAWNUMBER(12),PROJECT_MARKETNUMBER(12),PROJECT_VALIDATENUMBER(12),PROJECT_PRODUCENUMBER(12),PROJECT_APPLYNUMBER(12),PROJECT_STOCKNUMBER(12),PROJECT_SERVICENUMBER(12),PROJECT_QUALITYNUMBER(12),PROJECT_MEMOVARCHAR2(100)default"",RESERVE_1VARCHAR2(20)default"");//创建DMS_PROJECT_T表[18]这张表在创建时,用语句限制了字段的默认值及最小值。这样在插入数据时就有了限制,防止不切实际的数据输入,确保数据的真实性-------------------------------------------------------------------------------------------------/*3、项目与部门信息对应表*/-------------------------------------------------------------------------------------------------altertableDMS_PROJECT_DPT_TaddconstraintDMS_PROJECT_DPT_PROJECT_ID_Fforeignkey(PROJECT_ID)references-24- DMS_PROJECT_T(PROJECT_ID);//设置外键altertableDMS_PROJECT_DPT_TaddconstraintDMS_PROJECT_DPT_DPT_ID_Fforeignkey(DPT_ID)referencesDMS_DEPARTMENT_T(DPT_ID);//设置外键[19]表的外键和其他表的主键进行对应,方便表的链接,利于数据的查询。-------------------------------------------------------------------------------------------------/-------------------------------------------------------------------------------------------------/*4、角色与权限信息对应表*/-------------------------------------------------------------------------------------------------altertableDMS_ROLE_POWER_TaddconstraintDMS_ROLE_POWER_Fforeignkey(ROLE_ID)REFERENCESDMS_ROLE_T(ROLE_ID)ondeletecascade;//设置外键并级联删除altertableDMS_ROLE_POWER_TaddconstraintDMS_ROLE_POWER_Pprimarykey(POWER_ID,ROLE_ID);//设置主键[20]在这张表中,有一个重要的地方就是在设置外键的时候设定了级联删除其作用就是删除了本表的一条内容后,与其外键相对的作为另一张表的主键的记录将同时被删除,这是为了保证数据的关联性,防止并不可能存在的数据出现。创建各表的序列:序列的创建可以当做某张表的主键,并自主生成,方便安全。创建序列,并对其进行命名,可以方便查询序列,以及所作用的表,序列的设置可以根据需求选择,使数据库的功能更加完善。-------------------------------------------------------------------------------------------------/*1、部门信息表序列*/-------------------------------------------------------------------------------------------------createsequenceDMS_DEPARTMENT_SEQminvalue1maxvalue999999999999startwith1-24- incrementby1cache2cycle;[21]删除各表中的基础数据:在输入数据之前,执行这些命令,是为了删除某些表中的默认数据,是一种谨慎的表现,在数据库中,任何一个小的数据差错都可能导致整个数据的出错。/*1、删除属性表数据*/deletefromDMS_ATTRIBUTES_T;/*2、删除日志表数据*/deletefromDMS_DAILY_T;/*3、删除部门表数据*/deletefromDMS_DEPARTMENT_T;/*4、删除菜单角色对应表数据*/deletefromDMS_MENU_ROLE_T;/*5、删除角色权限对应表表数据*/deletefromDMS_ROLE_POWER_T;/*6、删除菜单表数据*/deletefromDMS_MENU_T;/*7、删除权限表数据*/deletefromDMS_POWER_T;/*8、删除角色表数据*/deletefromDMS_ROLE_T;/*9、删除用户表数据*/deletefromDMS_USER_T;commit;[22]对某些特殊表添加基础数据:这些事属性表,权限表,菜单表的基础数据,这些基础数据是一些将在其他表中重复出现,或者相同类型的数据,这些基础数据的设定是为了更好的运行起数据库,基础数据的设置必须符合需求分析,而且设置的简单易懂。/*1、增加日报状态:DMS_DAILY_T使用数据*/insertintoDMS_ATTRIBUTES_Tvalues("1000","未审核");insertintoDMS_ATTRIBUTES_Tvalues("1001","未通过");-24- insertintoDMS_ATTRIBUTES_Tvalues("1002","已通过");commit;/*3、增加日报提醒:DMS_DAILY_T使用数据*/insertintoDMS_ATTRIBUTES_Tvalues("0000","日报提醒");commit;/*7、增加权限信息:DMS_POWER_T使用数据*/InsertintoDMS_POWER_T(POWER_ID,POWER_NAME,POWER_MEMO,POWER_PARENT,RESERVE_1)values(0,"普通员工",null,null,null);InsertintoDMS_POWER_T(POWER_ID,POWER_NAME,POWER_MEMO,POWER_PARENT,RESERVE_1)values(1,"领导",null,null,null);InsertintoDMS_POWER_T(POWER_ID,POWER_NAME,POWER_MEMO,POWER_PARENT,RESERVE_1)values(2,"管理员",null,null,null);commit;//*8、增加角色信息:DMS_ROLE_T使用数据*/InsertintoDMS_ROLE_T(ROLE_ID,ROLE_NAME,ROLE_MEMO,RESERVE_1)values(1,"管理员","拥有最大权限",null);InsertintoDMS_ROLE_T(ROLE_ID,ROLE_NAME,ROLE_MEMO,RESERVE_1)values(2,"领导","领导",null);InsertintoDMS_ROLE_T(ROLE_ID,ROLE_NAME,ROLE_MEMO,RESERVE_1)values(3,"普通员工","普通员工",null);insertintoDMS_ROLE_T(ROLE_ID,ROLE_NAME,ROLE_MEMO,RESERVE_1)values(4,"项目经理",null,null);[23]-24- 对某些表中添加测试数据:测试数据至关重要,在开发阶段,就要不断测试数据库,对出现的问题迅速纠正。测试数据需要符合需求分析上出现的各种数据类型,长度,符号等规格,只有测试数据写的好,才能测试出这个数据库到底能否用在系统上。测试数据不仅可以测试数据库的运行状态,还可以测试开发过程中JAVA代码写的是否出错,以及系统界面数据输入的问题。insertintoDMS_PROJECT_T(PROJECT_ID,PROJECT_CODE,PROJECT_NAME,PROJECT_MEMO,RESERVE_1,PROJECT_BEGIN_DATE,PROJECT_END_DATE,PROJECT_STATUS,PROJECT_MANAGER,PROJECT_RESEARCH,PROJECT_FINANCE,PROJECT_LAW,PROJECT_MARKET,PROJECT_VALIDATE,PROJECT_PRODUCE,PROJECT_APPLY,PROJECT_STOCK,PROJECT_SERVICE,PROJECT_QUALITY)values(0,"P00000","无项目信息",null,null,null,null,"0000",null,null,null,null,null,null,null,null,null,null,null);insertintoDMS_PROJECT_T(PROJECT_ID,PROJECT_CODE,PROJECT_NAME,PROJECT_MEMO,RESERVE_1,PROJECT_BEGIN_DATE,PROJECT_END_DATE,PROJECT_STATUS,PROJECT_MANAGER,PROJECT_RESEARCH,PROJECT_FINANCE,PROJECT_LAW,PROJECT_MARKET,PROJECT_VALIDATE,PROJECT_PRODUCE,PROJECT_APPLY,PROJECT_STOCK,PROJECT_SERVICE,PROJECT_QUALITY)values(6,"P00006","第6个项目",null,null,null,null,"2002",null,null,null,null,null,null,null,null,null,null,null);commit;SELECTdpt_idFROMdms_department_t;[24]HER表的建立HER表是一种固定数据表,这些表跟一些主表结构基本相同,但不包含键,里面包含了一些特定的值,类似于属性表中那些基础数据,但这些数据是跟客户公司的制度相关的,例如部门的分类,岗位的分类,这些都是存在HER表中,主表所需要的数据都是从HER-24- 表中提取的,这样设计可以完全符合客户提出的需求,更加适合客户的公司。droptableIO_TEST_YL_EMPcascadeconstraints;droptableIO_TEST_YL_JOBcascadeconstraints;droptableIO_TEST_YL_ORGcascadeconstraints;createtableIO_TEST_YL_EMP(C_OIDNUMBER(19)notnull,C_CODEVARCHAR2(64)notnull,C_NAMEVARCHAR2(128)notnull,C_USEDNAMEVARCHAR2(128),C_GENDERVARCHAR2(2),C_BIRTHDAYDATE,C_IDCARDVARCHAR2(128),JOBTYPELEVELVARCHAR2(128)notnull,JOBGRADEVARCHAR2(128),C_HIREDATEDATE,C_COMPANYMAILVARCHAR2(64),EMPSTATUSVARCHAR2(2)notnull,C_UNITIDNUMBER(19)notnull,C_JOBIDNUMBER(19)notnull,C_JOINJOBDATEDATE);commentontableIO_TEST_YL_EMPis"从EHR系统获取的表,不要对本表做任何改动,数据也不许改变。";commentoncolumnIO_TEST_YL_EMP.C_OIDis"KEY";commentoncolumnIO_TEST_YL_EMP.C_CODEis"员工编号";commentoncolumnIO_TEST_YL_EMP.C_NAMEis"姓名";createtableIO_TEST_YL_JOB-24- (GWIDNUMBER(19)notnull,GWCODEVARCHAR2(1024)notnull,GWNAMEVARCHAR2(1024)notnull,JOBTYPEVARCHAR2(128)notnull,JOBTYPELEVELVARCHAR2(128)notnull,JOBGRADEVARCHAR2(128),JOBNAMEVARCHAR2(128)notnull,UNITIDNUMBER(19)notnull,C_STATUSVARCHAR2(64)notnull);commentontableIO_TEST_YL_JOBis"从EHR系统获取的表,不要对本表做任何改动,数据也不许改变。";commentoncolumnIO_TEST_YL_JOB.GWIDis"岗位KEY";commentoncolumnIO_TEST_YL_JOB.GWCODEis"岗位代码";createtableIO_TEST_YL_ORG(UNITIDNUMBER(19)notnull,PARENTIDNUMBER(19)notnull,UNITNAMEVARCHAR2(1024)notnull);commentontableIO_TEST_YL_ORGis"从EHR系统获取的表,不要对本表做任何改动,数据也不许改变。";commentoncolumnIO_TEST_YL_ORG.UNITIDis"key";commentoncolumnIO_TEST_YL_ORG.PARENTIDis"上级ID";commentoncolumnIO_TEST_YL_ORG.UNITNAMEis"名称";-24- values(1005,"C1005","调试工程师","技术类","技术工人","04级","调试工程师",1014,"1");insertintoIO_TEST_YL_JOB(GWID,GWCODE,GWNAME,JOBTYPE,JOBTYPELEVEL,JOBGRADE,JOBNAME,UNITID,C_STATUS)values(1006,"C1006","质量验证工程师","技术类","技术负责人","03级","质量验证工程",1014,"1");insertintoIO_TEST_YL_JOB(GWID,GWCODE,GWNAME,JOBTYPE,JOBTYPELEVEL,JOBGRADE,JOBNAME,UNITID,C_STATUS)values(1007,"C1007","电子工程师","技术类","技术负责人","03级","电子工程师",1009,"1");insertintoIO_TEST_YL_JOB(GWID,GWCODE,GWNAME,JOBTYPE,JOBTYPELEVEL,JOBGRADE,JOBNAME,UNITID,C_STATUS)values(1008,"C1008","硬件验证工程师","技术类","技术工人","04级","硬件验证工程师",1015,"1");insertintoIO_TEST_YL_JOB(GWID,GWCODE,GWNAME,JOBTYPE,JOBTYPELEVEL,JOBGRADE,JOBNAME,UNITID,C_STATUS)values(1009,"C1009","软件验证工程师","技术类","技术工人","04级","软件验证工程师",1016,"1");insertintoIO_TEST_YL_JOB(GWID,GWCODE,GWNAME,JOBTYPE,JOBTYPELEVEL,JOBGRADE,JOBNAME,UNITID,C_STATUS)values(1010,"C1010","区域负责人","职能类","行政管理","02级","区域负责人",1005,"1");commit;[25]以上是部分数据库表的具体创建代码,这些代码都是SQL文件,在使用过程中,可直接导入数据库,形成完整的数据库。2.1.5数据库运行维护阶段我们开发这个系统之初,先用JSP做了简单的界面,接着DBA便开始创建数据库,并且直接输入了测试数据。我们开发过程中,依靠测试数据,测试我们各模块的功能是否完整,以及数据库是否有缺陷。经过不断的测试,我们不仅完善了各模块,并使数据库更加利于后期维护。数据库的运行维护阶段在我们开发系统的过程中就开始了,在系统完成后,并没有发现太多问题,数据库的运行基本稳定。-24- 2.2数据库设计中遇到的问题及改进(1)有些表之间需要及联关系,就是删除此表的信息,另一张表中与之相关的信息也应该删除。改进:我们在创建表时使用了及联删除的命令:ondeletecascade(2)有些表中的字段所规定的内容长度有限,我们并没有设置触发器使其不能够输入。改进:我们在jap页面中使用JAVASCRIPT语言写了一个函数,在页面中如果输入超过数据库字段长度上限的内容,将弹出窗口禁止输入。(3)开发过程中,数据库设在一台固定主机上,但是换过工作室,主机也换了,许多电脑连接不到数据库。改进:我们使用JDBC方法连接主机,因此,改变JDBC中的连接端口号即可。(4)许多模块输入的测试数据并不符合本模块所应有的数据。改进:由小组成员开会,每个模块的成员充分了解其模块数据的特性,统一告诉DBA,由其记录输入数据库。第三章东软日报管理系统数据库设计的优缺点及改进-24- 每个数据库都不会是完美的,只能根据需求,扬长避短。数据库既有优点也有缺点,只有最适合的数据库,没有最好的数据库。东软日报管理系统数据库的优点及缺点我们也应该进行深刻的探讨。3.1东软日报管理系统数据库设计的优点东软日报管理系统数据库设计的优点:(1)、此数据库设计比较严谨,从创建用户开始就先删除原有数据,防止数据冗余和数据混乱(2)、数据库表的设计多采用2NF和3NF,使表的利用率更高,数据的查询更加方便。(3)、每张表都留有扩展的余地,为后期维护和更新做了很好的铺垫(4)、在数据库创建过程中,注释做了很多,方便后来的DBA维护(5)、数据库的设计具有很好的整体性和规范性(6)、数据库很好的遵循了需求分析,满足了客户提出的各种功能(7)、数据库的运行十分稳定,很少出现问题。3.2东软日报管理系统数据库设计的缺点东软日报管理系统数据库设计的缺点:这套数据库的缺点在于表的设计过多,在实际开发过程中,有些表并没有用到,相反,如果用了这些表,在开发过程中,代码会有些不好写,对JAVA开发并不利。3.3东软日报管理系统数据库设计的改进据开发过程及开发后实际测试的经历来看,有些表却是没有用到,比如项目与部门信息对应表等,或许是因为我们技术不足,用不到这些表,在开发过后,我们应该按照自己开发的系统重新完善数据库,删除没有作用的表,这样可以减小数据库的空间。-24- 第四章结束语通过这次项目开发,让我明白了任何一个系统的完成都是有相当难度的。万事开头难,我们在开发过程中,刚开始的规划以及开会讨论设计都很频繁,而且对原有的设计都有着不断的改动,就是为了以后出现的问题会少一些。数据库的设计虽然不是我们动手设计,但是其中也改动了许多,比如其中一些相关表的级联。为了方便维护,我们所作的表都要留有保留字段,为以后系统升级或功能的增加做准备,并且对每张表做了注释,也是为了后来的DBA能够轻松阅读表。数据库的发展十分迅速,在社会需求的推动下,数据库的重要性不言而喻,为了更好的存储信息数据,使用一个好的数据库是理所当然的,每个系统的数据库都是为了适合客户的需求而开发的,因开发者的不同,所设计的数据库也有所不同,所以就有了数据库好坏的差别,每个数据库的开发都需要大量的时间,通过需求分析得到数据库所应有的功能,接着就要通过概念结构设计、逻辑结构设计得到数据库的详细模型,然后通过物理结构设计选择适合客户的存储方法,在具体实施过程中,要对数据库的详细模型进行具体开发和修改,让其可实施性变得更高,对其中的一些问题加以改正,每个数据库都需要大量的测试数据进行测试,找出其中的问题,要对客户公司所能遇到的各种数据进行测试,让数据库更加完善。移交客户后,还要长期观察系统,看其是否能正常运行,定期维护数据库,整理数据,让数据库稳定运行。这次的开发给我的启发很大,让我通彻的了解了一个开发过程以及任何一个细节都有可能导致系统不能正常运行。即便能够正常运行,也会出现一些意想不到的问题,各个模块的关联都十分复杂,我们必须细心分析,否则许多问题都找不到头绪。事在人为,我们必须努力对待困难,对未来充满希望。-24- 参考文献[1]、[2]重庆大学网络教育学院.http://kjwy.5any.com/sjkyl/Content/ch01/010501/index1.htm[3]、[4]左正,怎么样设计一个好的数据库.http://archive.cnblogs.com/a/2016386/[5]东软集团医疗日报信息系统项目开发组.东软日报功能结构剪裁表.[6]东软集团医疗日报信息系统项目开发组,东软日报信息系统需求分析.[7]东软集团医疗日报信息系统项目开发组.东软日报信息系统数据库表结构目录.[8]东软集团医疗日报信息系统项目开发组.东软日报信息系统数据库项目信息表.[9]东软集团医疗日报信息系统项目开发组.东软日报信息系统数据库PRP阶段信息表.[10]东软集团医疗日报信息系统项目开发组.东软日报信息系统数据库权限选项表.[11]东软集团医疗日报信息系统项目开发组.东软日报信息系统数据库项目与部门信息对应表[12]东软集团医疗日报信息系统项目开发组.东软日报信息系统数据库项目与PRP阶段信息对应表[13]东软集团医疗日报信息系统项目开发组.东软日报信息系统数据库项目信息表.[14]东软集团医疗日报信息系统项目开发组.东软日报信息系统数据库日报信息表.[15]、[16]、[17]、[18]、[19]、[20]、[21]、[22]、[23]、[24]、[25]东软集团医疗日报信息系统项目开发组.东软日报信息系统数据库具体创建代码.-24-'