


全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
可动态扩展的数据库设计 摘要 摘要 数据库设计的核心问题是建立模型 对于信息系统中出现 的数据结构改 变和扩展的需求 采用了一种基于键值对的对象属性 可扩展模型 关键词 关键词 数据库设计 可扩展 对象 关系数据库 引言 数据库设计是建立数据库及其应用系统的技术 是信息系统开发 和建设的 核心 数据库设计是指对于给定的应用环境 构造最优的 数据库模式 建立数 据库及其应用系统 使之能够有效地存储数据 满足各种用户的应用要求 信 息要求和处理要求 数据库设计的核心问题是建立模型 一般而言这个模型要满足两 类准则 结构准则和性能准则 前者主要考虑如何保持数据的特性 后者主要考虑资源 的合理使用和数据库的存储效率 在所有数据库 设计准则中最重要的原则是 最终产品必须满足用户的最终要求 但是 首先需要存储的信息是动态的 应 用自身的发展也会产生新 的和扩展的信息需求 其次 信息化是分步进行的 用户很难一次 提出完整的需求 第三 用户和设计人员之间存在理解上的差异 因此 数据库应用系统在完成以后 系统功能很可能不能完全满足 用户需求 而且随着时间的发展系统功能会逐渐偏离用户或企业的 需求 所以 数据库应 用系统必须要不断地改进和扩展以适应环境 的变化以及组织自身的发展需求 目前数据库设计普遍采用 需求驱动 的数据库设计模式 但是 如果在 数据库设计阶段 建立数据库模型时没有充分考虑到数据库 应用系统以后可能 的改变及扩展 将使系统以后的维护工作变得极 其困难 甚至必须重新开发数 据库应用系统 本文针对数据库应用 系统开发过程中遇到的动态可扩展问题提 出了一种数据库设计模 型 基于键值对的对象属性可扩展模型 它区分了应 用中的不同 对象的类型 通过设计属性分类提高了数据库应用系统中数据的可 改变性和可扩展性 1 1 信息系统中的传统数据库设计模型信息系统中的传统数据库设计模型 通常 在传统数据库设计模型中 设计人员在设计阶段总是将数 据信息表 达的尽可能丰富 使其不仅满足所有需求分析阶段得到的 用户需求 而且还要 尽可能考虑到应用以后可能的改变以及扩展 采用这种方式设计的数据库应用 不仅数据表过于 臃肿 而且对 于未来的应用难于改变或者扩展 例如 在某校园建筑管理信息系统中 系统成立初期 只要求该 系统能够 展示建筑的基本信息 如名称 简述等 设计人员有可能 将数据表格设计成 我们称之为方案 1 包括编号 建筑名称 建 筑描述是建筑的最基本属性 此 外设计人员也考虑到了系统将来的 扩展 加入了诸如建设日期 高度 等属性 由于设计人员不可能 完全预见学校未来发展状况 所以对于系统现阶段的需求 来说 尽 管建筑信息表已经非常详尽了 但是随着时间的推移系统仍有可能 不适应实际需求 随着需求的发展 建筑的信息需求有可能发生变化 例如 为 了获取建 筑质量 有可能对该建筑的施工文件等信息保存 随着 校园信息系统的建立 可能有更多的不同类型的建筑需要存入系 统 比如管道信息 一些标志性雕塑 或者植被信息 随着系统 的扩展 原有数据表可能不能满足日益增多的该类 建筑所有信息的 存储 所以需要建立新的数据表扩展其属性 对于一些简单 的建 筑或者物体比如一棵树一个石凳 存储的信息明显和一座教学楼不 同 需要按照类型的不同 设计多个不同的数据表分别存储不同类 型的物体信息 2 2 数据库设计中的扩展性需求数据库设计中的扩展性需求 在应用中 类似这样的数据存储结构改变以及应用扩展的情况还有很多 如果用传统数据库设计模型 那么在设计初始阶段就必须 考虑到应用未来所有 的改变及扩展 尽可能使表格的信息详尽 否 则当应用发生改变或扩展时 必 须重新设计表结构 并对应用程序 中相关片段全部重写 如果同一变化出现在 不同部位 由于不同的 原因 出现在不同的阶段 那么现有表结构不能满足要 求 如果需 要增加过多的对象属性信息 那么表结构将必须修改 但是 如果 我们将数据对象化 并采用定义其属性和值的设计模型 上述问题 将迎刃而解 作为开发人员 总会面对业务方提出的数据结构变化的需求 字 段的增加 数据表的修改总是随时可能根据需求发生 因为业务在 发展 或者需求就有可 能需要一个完全动态的可扩展的数据库设计 方案 但是以目前的关系数据库实 现这种动态扩展的特性 在系统 一定规模之后所付出的代价是昂贵的 也是不 安全的 为了这种动 态扩展性 有这样三种常用的方法 第一种方法 预留字段 既然很难加字段 就预先留好一些备用 但是这 样没那么灵活 有一定的实用性 不过因为预先留的字段一 般是没什么含义的 需要有额外的信息来描述 这种方法在扩展性 要求不是太强的地方可以不影响 性能的前提下提供一定的扩展性 第二种方法 使用复杂字段 在某些特 殊要求下还是很有用的 比如 某个业务实体 某张表 有一些标记位 都 是 true false 的标记 可以理解为这个实体的一些属性 经常需要添加 这 种情 况 在生产中我们使用过用一个数字 按位来表示这些标记的 比 如第 三位表示他是不是付费用户 第四位表示他是合作方来的用户 还是自己注册的 等等 还有一种情况 需要更复杂的属性列表 属性个数经常变 可以考虑使 用一个文本字段 保存结构化的数据 然后在使用时需要动态解析该字段 使 用复杂字段的好处就在于比 较灵活 同一类型的数据可以放在一起 实际上相 当于把应该是一 个关联表的数据放一个字段里了 操作的性能也不错 但是 复杂 字段里面的内容查询比较困难 程序实现和修改起来也更复杂 第三 种方法 将数据的存储和索引 需要查询的内容 分开存放 相当于主表就一 个 key value 把需要查询的字段放到其他单独 的表里去 这种方法对数据的 实时查询的效率有一定的影响 但是 针对实时性的要求并不是所有系统都有要 求的 在有些地方是很好 的解决方案 3 3 基于键值对的对象属性可扩展模型基于键值对的对象属性可扩展模型 本文的基于键值对的对象属性可扩展模型就是结合上面提到的第 三种方法 使用数据表分别单独存储对象分类和分类的属性信息的 定义 并且实现了分类 属性之间的树形的可扩展结构 对象信息的 存储用过一张表用来存储所有对象 公有的可快速查询的数据信息 另一张属性值表存储所有的对象的特有属性的 key value 通过 这样的设计可以在不修改原数据表结构的前提下 实现所有 存储对 象的动态可扩展 如图 1 所示 图 1 对象属性信息结构模型 由图 1 所示 表 t class 保存对象的分类信息如建筑 管道 雕 塑等 t attibute def 保存的是每个分类所对应对象的属性信息如 建筑的高度 施 工单位等 t entity 保存的是分类对象的公共信息 是具体的物体如 1 号教 学楼 t entity content 保存每个具体的对 象所有属性的信息值 t 倕 file 表用来保存一些扩展的文件信息 通过这样一个模型我们可以在需要是动态定 义一个大的分类并且 可以动态的设置每个已有分类拥有哪些属性 所有对象的 的具体内 容分别存储在对象公共信息表 对象属性信息表和文件信息表中 在实际应用中 还涉及到属性冗余 查询 修改等方面的问题 通过在校 园管理系统中应用的结果来看 这些都可以实现 并能获得较好的效率 4 结束语 综上所述 传统的数据库设计适用于简单的 业务数据
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 链条装配工客户满意度考核试卷及答案
- 房子转让协议书
- 租赁土地合同协议书
- 钛真空熔炼工知识盲区填补考核试卷及答案
- 锁具装配工资源协调与分配考核试卷及答案
- 电子绝缘材料上胶工安全技术规程
- 2025合同模板股权投资合作合同范本
- 2026届广东省云浮数学九年级第一学期期末复习检测试题含解析
- 《2025安徽省学校保卫劳动合同》
- 四川省绵阳市绵阳外国语学校2026届数学八上期末学业质量监测试题含解析
- 吉林省松原市四校2025~2026学年度下学期九年级第一次月考试卷 物理(含答案)
- 2025云南昆明元朔建设发展有限公司第一批收费员招聘20人考试参考试题及答案解析
- 破局向新 持续向上-2025年人力资源发展趋势报告-智联招聘北大国发院
- 仓库环境管理办法
- 2025年大模型章节练习考试题库
- 三年级数学《毫米的认识》教学设计
- 人工智能基础与应用课件 项目1 初探人工智能
- 2025-2030年中国智能电网行业市场发展前景及投资战略研究报告
- 微积分学-P.P.t-标准课件00-第1讲微积分的发展历程
- 导数的应用-函数的零点问题(5题型分类)-2025年高考数学一轮复习(解析版)
- 第十中学八年级上学期语文10月月考试卷(含答案)
评论
0/150
提交评论