知识大全 如何实现逻辑数据模型

Posted 模型

篇首语:男儿欲遂平生志,五经勤向窗前读。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 如何实现逻辑数据模型相关的知识,希望对你有一定的参考价值。

  业务和系统开发领域绝对不能容许设计上的重大失误 可是 很多开发人员却因为不了解设计步骤而恰恰轻视乃至完全忽略了整个设计过程 而实际上 我们中的大多数人也确实缺乏必要的有关技能和知识 结果令我们往往 旁路 了项目开发中最重要的阶段 说真的 有本事敢直接绕过设计阶段的人还没诞生呢          如果我们不花点时间创建一个逻辑模型 那么要实现一套高效和优秀的设计是完全不可能的 略过设计步骤会产生大量的错误 而这些错误又会令我们耗费大量的时间在发现它们的时候反复调试和纠正 下面我就大致讨论下设计的逻辑和物理模型 然后引领读者经过逻辑模型的创建全过程 本文是有关主题系列的开篇 在后续的第 部分里 我会根据已经发现的缺陷修改我们的原始设计       数据库的设计方法  在对数据库项目的需求着手评估和分析周 接下来的一步就是设计出一套方案帮助你达到项目的要求和目标 在开发领域这一步骤被称做数据库设计方法 它是一种结构化的措施 支持设计流程同时还包括了诸如公司业务流程 规定和文档等一系列工具 步步进阶的整套流程帮助开发人员计划 管理和控制设计及其实现从而高效地完成任务     这意味着 你拥有一整套方法 也就是按照特定顺序安排的项目列表 这些方法指引你经过数据模型创建的全过程 请不要错误地把这个过程理解为平常的过程 实际上它是完全必要的阶段 你应该从完全理解数据和用户需求这一目的出发研究该过程     每一个项目无论其规模大小都能从以下三种模型中获益     概念 明确和说明创建数据全局视图的主要对象 同时辅以一定的轻微细节 许多企业都局限于特定的数据库管理系统(DBMS) 所以这一步可以忽略或者放到逻辑模型一组   逻辑 构造采用特定数据的模型 但还不用考虑最终保存数据以及运营应用程序的具体数据库系统 由于SQL Server是一种关系型数据库管理系统(RDBMS) 所以我们要依赖于实体关系模型(ER Entity Relationship) 在这一阶段你必须明确实体 关系 属性并对你的数据实行规格化 逻辑模型建立在数据集合的基础之上 为了更深入地了解ER模型 不不妨访问下 ITS数据库服务网站 或者参考   Mapping an ER Model to the Relational Model Web site(是一个 PDF文件)   物理 根据所采用的具体RDBMS设计实现逻辑模型的具体模型 在这一阶段 你需要说明数据表 索引等数据库对象 而物理模型就是根据数据表建立的   建立逻辑模型的真实用意无非是为了确认应用程序能满足最终的需求(包括输入和输出两方面) 换句话说 逻辑模型必须能产生所有已知的报告 查询等结果 此外 用户还应该能够以合理的方式输入和操作数据 一旦逻辑模型到位 你就应开始把你所了解的情况应用到项目的物理需求方面——比如说——物理模型 图A就描述了逻辑和物理模型在这一阶段的差别     图A      逻辑和物理数据模型  逻辑模型的实现    目前阶段的所谓 实现 其实就是完成逻辑模型的组件 在明确了实体 关系和属性的情况下 你应该揭示出那些在工作环境下可能会产生问题的缺陷     缺少的实体   表示同一概念实体的多个实体   需要额外实体来解决问题的多对多关系   多值和冗余的属性        现在我们就以一个实际项目为例看看该如何创建一个合理的逻辑模型 通过这个模型帮助你避免今后的问题 假设你的这个最新项目是供旅行社使用的 一项足够简单 处理定单的数据库应用程序 这家旅行社针对 类客户实行批发或者零售服务     Agency 授权接受定单上任务的另一家旅行社   Aggregator 一家俱乐部 其成员可以享受打折服务   Corporate 代表其职员下定单的公司 它们不能享受的打折优不过需要获得旅行社的全方位服务支持 比如说 旅行社必须帮助它们解决一些诸如取消计划 飞机票订位过多等方面的问题 企业客户总是一样的而旅行者只能是其职员   Retail 不能享受任何折扣优惠的单独客户   这时 你应该准备定义应用程序的主要对象或者实体 为了针对客户类型应用以上的业务规则 你可能会把每一种客户类型当作单独的实体 如表A所示 数据类型和其他信息都是针对SQL Server考虑的     表A      定义应用实体         看图B 你可以简化当前的模型     客户订单   某种特定类型的客户   图B     不同实体之间的关系    正如我们在上面所提到的那样 业务规则要求我们对客户实现区别对待 结果 客户不能总是具有同样的属性 我们的第 个解决方案是创建一个数据表 其中包含了各类客户的特定属性 这一原始设计带来了下列问题     所有的客户数据表都采用系统生成的主键 大致以种子值 开始递增 那就是说 你完全会遭遇重复的ClientID值 结果我们就无法恰当地把每一定单关联到特定的客户 因为每一客户表都包含了重复的值   因为每一客户表重复公共字段(如ClientID ClientName Address和Telephone)而产生了一些冗余的属性   客户会有更多的地址吗?也许他们会具有一个当地地址和一个付费的单位地址   客户只有一个电话号码?也许你应该列出多个电话号码乃至传真号码   有必要根据客户的类型来标识定单吗?显然你不能   找出和解决设计问题    你首先采取的行动可能和我们用的不同 但那还不是关键的问题 最重要的是你可能没有认识的到设计中隐藏的问题 在后续的文章里我会采用已知的 业已得到证明的方法来寻找和解决设计问题 免得它们在今后的工作中引出不少漏子 cha138/Article/program/Oracle/201311/18780

相关参考

知识大全 全面解析关系数据模型存在的不足之处

  关系数据库模型支持了SQL语言的发展并且拥有强大的理论基础为后盾(基于一阶的谓词逻辑)目前SQL已经成为定义和操纵关系数据库的标准语言  关系数据模型的另一个好处在于它的简单性适合联机事务处理(O

知识大全 数据结构之抽象数据类型[2]

  抽象数据类型  抽象数据类型(AbstructDataType简称ADT)是指一个数学模型以及定义在该模型上的一组操作抽象数据类型的定义取决于它的一组逻辑特性而与其在计算机内部如何表示和实现无关即

知识大全 简述种群的逻辑斯谛(Logistic)增长模型及其生物学意义。

简述种群的逻辑斯谛(Logistic)增长模型及其生物学意义。  以下文字资料是由(本站网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看

根据数据模型的不同,可将数据库分为哪几类?最常用的数据库是哪一类?

  不同的数据模型,对应不同的数据库系统。根据当前比较流行的三种数据模型即关系模型、层次模型、网络模型可将数据库分为关系数据库系统、层次数据库系统、网络数据库系统。  关系模型比较简单、直观,也是唯一

根据数据模型的不同,可将数据库分为哪几类?最常用的数据库是哪一类?

  不同的数据模型,对应不同的数据库系统。根据当前比较流行的三种数据模型即关系模型、层次模型、网络模型可将数据库分为关系数据库系统、层次数据库系统、网络数据库系统。  关系模型比较简单、直观,也是唯一

知识大全 详细讲解如何将数据模型转换成数据库设计

  将数据模型转换成数据库设计的相关问题:  创建表的联系  强实体联系  把一个表的主键作为另一张表的外键为了强调最大粒度是应该把外键设置成候选键  N强实体联系  把的那一段的表(父表)的键设置成

知识大全 基于Geodatabase数据模型的版本机制

基于Geodatabase数据模型的版本机制  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  一版

知识大全 Java线程模型如何完善相关的数据处理

Java线程模型如何完善相关的数据处理  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Java线

知识大全 ORACLE 数据库的逻辑备份

ORACLE数据库的逻辑备份  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  ORACLE数据库有

知识大全 数据结构之线性表的逻辑结构[2]

  线性表的基本操作  在第一章中提到数据结构的运算是定义在逻辑结构层次上的而运算的具体实现是建立在存储结构上的因此下面定义的线性表的基本运算作为逻辑结构的一部分每一个操作的具体实现只有在确定了线性表