数据模型设计心得_第1页
数据模型设计心得_第2页
数据模型设计心得_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、首先简单的说一下我对数据、模型、数据模型、数据模型要素以及数据模型的分类的理解。数据:是符号。例如 张三模型:现实世界事与物特征的抽象与模拟。如飞机模型、空气动力模型。数据模型:通过对现实世界的事与物主要特征的分析、抽象,为信息系统的实施提供数据存取的数据结构以及相应的约束。 数据模型的要素由操作、数据结构以及约束。通常情况下我们在数据模型设计的时候考虑最多的是数据结构而忽视了其他两个要素。根据数据模型的应用层次可以分为概念数据模型模型(概念模型)、逻辑数据模型(数据模型)、以及物理数据模型(物理模型)。概念模型:从业务的角度来考虑问题,主要用来描述事与物的概念化结构,其用途是统一业务概念,作

2、为业务人员和技术人员之间沟通的桥梁。其描述方法有ER图、Merise图、Barker图等。在建立概念模型的过程中主要考虑的是现实世界中的事与物以及他们之间的关系而不用关注事与物的具体属性。逻辑数据模型:从数据库的角度来考虑问题,在概念模型的基础上对事与物属性的细化以及对象整合。其描述方法有ER图。在这个层面数据模型可以分为层次、网状、关系模型。物理模型:面向具体的物理计算环境。 下面我们来说一下什么样的数据模型才是好的数据模型。 数据模型的设计是自由的任意的,对于同一个系统或者同一个表每个设计人员的设计结果都是不一样的,那么有没有什么标准来评价数据模型的好与坏呢。我觉得应该从以下几个方面来考虑

3、。1:是否满足现有的业务需求。2:是否易于应对未来的可能的业务变更。好的扩展性、很强的灵活性。3:是否高效。对开发人员来是否简单高效,运行是否高效。 最后来说一下在数据模型设计过程中的感悟。 0:数据模型的分层与抽象,数据模型按照考察的系统不同可以分为三个层次:通用层、行业层、业务层,通用层从社会、自然的角度去考察对象;行业层从行业的角度去考察对象;业务层从所在公司的业务发展去考察对象,这三个层次是从抽象到具体的过程,越抽象越有通用性。在某个具体的层都可以分别对实体、关系进行抽象以达到相应的灵活性、扩展性。在具体实现的过程中,将稳定的实体、实体关系与多变的业务对象分别建模,保证模型的稳定性。

4、1:关于扩展性 可以通过横表转纵表的方式。 视图可以为开发人员提供一个接口屏蔽底层具体实现的复杂性同时提高系统的扩展性。 2:关于数据源 要有元数据的概念同样的数据尽量在一个源头去取,这对数据的维护以及数据一致性都很有好处。 3:关于抽象 抽象是我们分析问题解决问题非常重要的手段,抽象能力的高低充分体现了数据模型设计人员的水平。 4:关于动静分离 动静是相对的没有绝对的动与静。在实体属性的选取、表空间等方面考虑动态数据与静态数据分离。 用一个例子来说明这个问题吧。 在电子商务系统中从灵活的角度来看后端管理系统会涉及多个表,但是对于前端展现来说如果从多个表获取数据的话那么在高并发的情况下会严重的

5、影响性能。于是乎就有了发布这个环节。发布的目的除了对信息进行审核外,还把相关的信息发布到一个表或者缓存中再或者生成静态页面,如果使用oralce的话还可以使用物化视图。 5:关于数据字典 要重视数据字典这对开发人员理解数据模型的设计以及以后的维护都非常重要。 6:如何进行数据模型设计【01】首先是要了解业务然后建立概念模型,确定实体以及实体关系。【02】在概念模型的基础上生成逻辑模型,确定实体属性,标准化数据(消除多值字段达到第一范式;消除部分依赖达到第二范式;消除传递依赖达到第三范式)。【03】模型验证:通过具体的业务来验证模型是否能满足要求。【04】在逻辑模型的基础上生产物理模型。 7:三

6、少 整个模型中表应该尽量的少;在一个表中字段应该尽量的少同时复合主键字段应尽量的少 8:如果在大数据量或者高并发的情况下,要充分考虑数据库的压力,事先要考虑哪些表可能是热表。要尽量的降低模块的耦合。如果使用的是oracle RAC 的话要考虑一下多实例竞争的问题,不同的模块访问不同的实例。 9:一定要做压力测试、要做充分的压力测试,要不上线后会死的很惨,移动总部的一个web项目应为没有做充分的压力测试,导致上线后不的不挂维护页面,动用了n多的资源去解决问题。 10:在做模型设计的时候要考虑项目的各个生命周期阶段对模型的要求,不能仅仅把眼光限制在功能的实现,例如要考虑模型对以后维护的支持,对于大表的数据如何进行清除、转历史,显然delete、insert是首先可以想到的但是不可行的方法,建议做分区转换。 11: 数据模型设计对系统可变性的支撑:业务系统的变化点通常是流程相关部分,这部分会随着不同的公司、公司的不同发展阶段而变化,因此最好将这部分单独建模,独立于系统核心模型之外。 12:动静分离,11条说的是将多变的业务过程相关实体同稳定的实体以及实体关系分离,用来适应业务变化;动静分离从系统运行的角度,将实体进行分类、实体数据进行拆分,用以提升系统的稳定性、可扩展性。 13:数据模型是对现实世界的模拟,不是对现实世界的完全照

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论