一种可动态扩展的数据库设计方法

文档序号:9750889阅读:1657来源:国知局
一种可动态扩展的数据库设计方法
【技术领域】
[0001] 本发明属于数据库设计领域,尤其是涉及资源管理信息系统的可动态扩展的数据 库设计方法。
【背景技术】
[0002] 数据库设计是管理信息系统(MIS)的核心,目前,数据库设计普遍采用"需求驱动" 的数据库设计模式。
[0003] 在管理信息系统的开发过程中,用户很难精确完整地提出它的功能和性能要求, 一开始只能提出一个大概、模糊的功能,只有经过长时间的反复认识才逐步明确,有时进入 到设计、编程阶段才能明确,更有甚者,到开发后期还在提新的需求,这样就经常出现修改 数据库表结构的情况,有时甚至是在应用系统上线运行后还会提出修改数据库表结构的需 求。
[0004] 按照传统的数据库设计方法,一旦系统上线运行后,提出增减某个数据库表的字 段是非常困难的。除了可能会导致数据库表结构混乱外,还会可能大量地修改程序代码,使 得软件产品质量下降。
[0005] 目前,为了实现数据库应用系统的动态可扩展性,有两种改进的数据库设计方法: 预留字段和使用复杂字段。
[0006] 第一种方法:预留字段。既然很难增加字段,就预先留好一些备用,但是这样没有 那么灵活,有一定的实用性,不过因为预先留的字段一般是没有什么含义的,需要有额外的 信息来描述,这种方法在扩展性要求不是太强的地方,可以在不影响性能的情况下提供一 定的扩展性。
[0007] 第二种方法:使用复杂字段。在某些特殊要求下还是有用的,但是复杂字段里面的 内容查询比较困难,程序实现和修改起来也更复杂。

【发明内容】

[0008] 本发明所要解决的技术问题是:
[0009] 针对数据库应用系统开发过程中遇到的动态可扩展问题,本发明提出了一种可动 态扩展的数据库设计方法,它区分了应用系统中不同资源对象的类型,通过设计资源类型, 提高了数据库应用系统中数据的可改变性和可扩展型。
[0010] 为解决上述技术问题,本发明采用以下技术方案来实现:一种可动态扩展的数据 库设计方法,包括需求分析、概念结构设计、逻辑结构设计、物理结构设计和实施维护,所述 的逻辑结构设计,包括以下步骤:
[0011] S1:在管理信息系统需求分析和概念结构设计的基础上,分析系统中不同资源对 象实体集的类型,汇总出资源类型及其属性,并且明确各资源类型属性的取值约束、数据字 典及属性类型,形成管理信息系统数据规范;
[0012] S2:创建枚举字典数据库表;所述的枚举字典数据库表包括枚举ID、枚举名称、枚 举父ID、是否分组和顺序号字段;
[0013] S3:根据管理信息系统数据规范,将数据字典录入到枚举字典数据库表中;
[0014] S4:创建资源属性类型数据库表;所述的资源属性类型数据库表包括属性类型ID、 属性类型名称、基本类型、显示控件类型和录入控件类型字段;
[0015] S5:根据管理信息系统数据规范,将属性类型录入到资源属性类型数据库表中;
[0016] S6:创建资源类型数据库表;所述的资源类型数据库表包括资源类型ID和资源类 型名称字段;
[0017] S7:根据管理信息系统数据规范,将所有资源类型的名称录入到资源类型数据库 表中;
[0018] S8:创建资源属性数据库表;所述的资源属性数据库表包括资源属性ID、资源属性 名称和属性类型字段;
[0019] S9:分析管理信息系统数据规范中所有资源类型属性,合并相同的资源类型属性, 将所有资源类型属性录入到资源属性数据库表中;
[0020] S10:创建资源类型属性映射表;所述的资源类型属性映射表包括资源类型属性映 射ID、资源类型ID、资源属性ID和顺序号字段;
[0021] S11:根据管理信息系统数据规范,并结合资源类型数据库表和资源属性数据库 表,将资源类型和资源属性的所属关系录入到资源类型属性映射表中;
[0022] S12:创建资源类型属性字典映射表;所述的资源类型属性字典映射表包括资源类 型属性字典映射ID、资源类型属性映射ID、枚举表达式、标识、是否为空、属性值最大值/长 度、属性值最小值/长度和默认值字段;
[0023] S13:根据管理信息系统数据规范,并结合枚举字典数据库表,将资源类型属性的 取值约束录入到资源类型属性字典映射表中;
[0024] S14:创建资源对象数据库表;所述的资源对象数据库表包括资源对象ID、资源对 象名称、父对象ID、资源类型ID和顺序号字段;
[0025] S15:根据管理信息系统数据规范,将所有资源对象的名称、资源类型录入到资源 对象数据库表中;
[0026] S16:创建资源对象属性值数据库表;所述的资源对象属性值数据库表包括资源对 象属性值ID、资源对象ID、资源类型属性映射ID和资源属性值字段;
[0027] S17:根据管理信息系统数据规范,将所有资源对象的属性值录入到资源对象属性 值数据库表中;
[0028] S18:结合资源对象数据库表、资源对象属性值数据库表、资源类型数据库表、资源 属性数据库表及资源类型属性映射表,创建各个资源类型对应的资源对象视图。
[0029] 其中,将权利要求1所述的各个数据库表增加预置字段,该预置字段用于标记记录 数据是否为预置的。
[0030] 其中,所述的步骤S9中合并相同的资源类型属性具体为:将属性名称及属性类型 均相同的资源类型属性认为是相同属性并进行合并。
[0031] 其中,经过步骤S18后,还需要创建触发器,当资源类型或其属性发生变化时,触发 更新资源类型对应的资源对象视图。
[0032] 其中,所述的资源对象包括名称、资源类型、资源类型属性和属性值。
[0033] 本发明相比【背景技术】具有如下优点:
[0034] 本发明的可动态扩展的数据库设计方法,可以比较圆满的解决设计之初提出的几 个问题。本发明通过详细分析具体的管理信息系统的资源对象,并严格按照数据库设计的 一般流程,对传统数据库设计方法进行了创新,发明了可动态扩展的数据库设计方法,实现 了管理信息系统的可动态扩展,即使应用系统部署实施后仍可以动态地维护资源对象、资 源类型、资源属性等信息,很好地适应了应用系统业务的发展性、多变性,同时也极大地方 便了系统的后期维护。
【附图说明】
[0035] 图1为本发明的数据库表实体关系图。
【具体实施方式】
[0036]下面结合附图对本发明做进一步的详细阐述。
[0037] -种可动态扩展的数据库设计方法,包括需求分析、概念结构设计、逻辑结构设 计、物理结构设计和实施维护,所述的逻辑结构设计,包括以下步骤:
[0038] S1:在管理信息系统需求分析和概念结构设计的基础上,分析系统中不同资源对 象实体集的类型,汇总出资源类型及其属性,并且明确各资源类型属性的取值约束、数据字 典及属性类型,形成管理信息系统数据规范;
[0039] S2:创建枚举字典数据库表;所述的枚举字典数据库表包括枚举ID、枚举名称、枚 举父ID、是否分组和顺序号字段;
[0040] 所述的枚举字典数据库表字段详细说明见表1。
[0041 ]所述的枚举字典数据库表完整性约束说明如下:
[0042] a.预置枚举是系统预置的,不允许删除;
[0043] b.分组节点不能作为资源属性的取值;
[0044] c.删除分组节点时,其子节点相应的删除;
[0045] d.分组字段用于标记节点是否为分组节点。在枚举层级树中,有些节点仅是对枚 举进行分组。
[0046] S3:根据管理信息系统数据规范,将数据字典录入到枚举字典数据库表中;
[0047] S4:创建资源属性类型数据库表;所述的资源属性类型数据库表包括属性类型ID、 属性类型名称、基本类型、显示控件类型和录入控件类型字段;
[0048] 所述的资源属性类型数据库表字段详细说明见表2。
[0049] 所述的资源属性类型数据库表完整性约束说明如下:
[0050] a.预置资源属性类型是系统预置的,不允许删除;
[0051] b.资源属性类型直接决定了应用系统的输入、输出显示方式,因此,当系统开发完 成后,不能再增减资源属性类型;
[0052] c.基本类型、显示控件类型、录入控件类型都是系统在"资源属性枚举字典 ResAttrEnumDictionary"数据库表中预置的。
[0053] S5:根据管理信息系统数据规范,将属性类型录入到资源属性类型数据库表中;
[0054] S6:创建资源类型数据库表;所述的资源类型数据库表包括资源类型ID和资源类 型名称字段;
[0055] 所述的资源类型数据库表字段详细说明见表3。
[0056] 所述的资源类型数据库表完整性约束说明如下:
[0057] a.资源类型必须至少具有一个资源属性;
[0058] b.分组节点不具有资源属性;
[0059] c.分组节点不能实例化;
[0060] d.删除分组节点时,其子节点相应的删除;
[0061 ] e .预置资源类型是系统预置的,不允许删除;
[0062] f.当资源类型已经被实例化后,即资源对象数据库表中已经含有该资源类型的资 源对象时,不允许删除该资源类型,也不允许将资源类型节点改为分组节点;
[0063] g.分组字段用于标记节点是否为分组节点。在资源类型层级树中,有些节点仅是 对资源类型进行分组。
[0064] S7:根据管理信息系统数据规范,将所有资源类型的名称录入到资源类型数据库 表中;
[0065] S8:创建资源属性数据库表;所述的资源属性数据库表包括资源属性ID、资源属性 名称和属性类型字段;
[0066] 所述的资源属性数据库表字段详细说明见表4。
[0067] 所述的资源属性数据库表完整性约束说明如下:
[0068] a.预置资源属性是系统预置的,不允许删除;
[
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1