数据模型

来源:互联网 发布:智业软件 编辑:程序博客网 时间:2024/06/08 09:23

数据模型:对同一类事物的抽象, 包括数据库数据的结构部分、数据库数据的操作部分和数据库数据的约束条件。

数据:描述事物的符号记录。例如  人名、物体,一切可以被描述出来的具体事物。

模型:现实世界事与物特征的抽象与模拟。如飞机模型、玩具模型。


组成部分:

1. 数据结构

数据结构是数据模型的基础。

2. 数据操作

数据结构上的操作类型与操作方式。

3. 数据约束

数据间的语法、语义联系,保证数据有效、正确、兼容。


层次类型:

1. 概念模型

面向数据库用户的实现世界的模型,主要用来描述世界的概念化结构,它使数据库的设计人员在设计的初始阶段。

2. 逻辑模型

用户从数据库所看到的模型,既要面向用户,又要面向系统。

3. 物理模型

面向计算机物理表示的模型,描述了数据在储存介质上的组织结构,它不但与具体的DBMS有关,而且还与操作系统和硬件有关。


数据模型设计中需要注意:

1:关于扩展性 可以通过横表转纵表的方式。 视图可以为开发人员提供一个接口屏蔽底层具体实现的复杂性同时提高系统的扩展性。

 

2:关于数据源 要有元数据的概念同样的数据尽量在一个源头去取,这对数据的维护以及数据一致性都很有好处。

 

        3:关于抽象 抽象是我们分析问题解决问题非常重要的手段,抽象能力的高低充分体现了数据模型设计人员的水平。        

        4:关于动静分离 动静是相对的没有绝对的动与静。在实体属性的选取、表空间等方面考虑动态数据与静态数据分离。 用一个例子来说明这个问题吧。 在电子商务系统中从灵活的角度来看后端管理系统会涉及多个表,但是对于前端展现来说如果从多个表获取数据的话那么在高并发的情况下会严重的影响性能。于是乎就有了发布这个环节。发布的目的除了对信息进行审核外,还把相关的信息发布到一个表或者缓存中再或者生成静态页面,如果使用oralce的话还可以使用物化视图。

 

       5:关于数据字典 要重视数据字典这对开发人员理解数据模型的设计以及以后的维护都非常重要。

 

       6:如何进行数据模型设计

【01】首先是要了解业务然后建立概念模型,确定实体以及实体关系。

【02】在概念模型的基础上生成逻辑模型,确定实体属性,标准化数据(消除多值字段达到第一范式;消除部分依赖达到第二范式;消除传递依赖达到第三范式)。

【03】模型验证:通过具体的业务来验证模型是否能满足要求。

【04】在逻辑模型的基础上生产物理模型。

 

       7:三少 整个模型中表应该尽量的少;在一个表中字段应该尽量的少同时复合主键字段应尽量的少

 

       8:如果在大数据量或者高并发的情况下,要充分考虑数据库的压力,事先要考虑哪些表可能是热表。要尽量的降低模块的耦合。如果使用的是oracle RAC 的话要考虑一下多实例竞争的问题,不同的模块访问不同的实例。

 

        9:一定要做压力测试、要做充分的压力测试,要不上线后会死的很惨,移动总部的一个web项目应为没有做充分的压力测试,导致上线后不的不挂维护页面,动用了n多的资源去解决问题。

 

      10:在做模型设计的时候要考虑项目的各个生命周期阶段对模型的要求,不能仅仅把眼光限制在功能的实现,例如要考虑模型对以后维护的支持,对于大表的数据如何进行清除、转历史,显然delete、insert是首先可以想到的但是不可行的方法,建议做分区转换。

 

      11: 数据模型设计对系统可变性的支撑:业务系统的变化点通常是流程相关部分,这部分会随着不同的公司、公司的不同发展阶段而变化,因此最好将这部分单独建模,独立于系统核心模型之外。

 

      12:动静分离,11条说的是将多变的业务过程相关实体同稳定的实体以及实体关系分离,用来适应业务变化;动静分离从系统运行的角度,将实体进行分类、实体数据进行拆分,用以提升系统的稳定性、可扩展性。

 

      13:数据模型是对现实世界的模拟,不是对现实世界的完全照搬,对于一个实体一定要重点考虑这个实体在系统内的角色,对这个角色建模而不是照搬现实世界。



0 0
原创粉丝点击