数据模型
数据模型是对现实世界数据特征的抽象,是用来描述数据、组织数据和对数据进行操作的。
现有的数据库系统都是基于某种数据模型的,数据模型是数据库系统的核心和基础。
数据模型应满足三方面的要求:1、能比较真实地模拟现实世界;2、容易为人所理解;3、便于在计算机上实现。
根据模型应用的不同阶段,可以将这些模型分为两类,他们分别属于不同的层次:1、概念模型;2、逻辑模型和物理模型。
概念模型是按照用户的观点来对数据和信息建模,主要用于数据库设计。
逻辑模型主要包括层次模型、网状模型、关系模型、面向对象模型和对象关系模型。它是按照计算机系统的观点对数据建模,主要用于DBMS的实现。(层次模型和网状模型统称为格式化模型)
物理模型是对数据最底层的抽象,它描述数据在系统内部的表示方法和存取方法,在磁盘或磁带上的存储方式和存取方法,是面向计算机系统的。
从现实世界到概念模型的转换是由数据库设计人员完成的,从概念模型到逻辑模型的转换可以由数据库设计人员完成,也可以由数据库设计工具协助设计人员完成,从逻辑模型到物理模型的转换一般是由DBMS完成的。
数据模型是严格定义的一组概念的集合,通常由数据结构、数据操作和完整性约束组成。
数据结构描述数据库的组成对象以及对象之间的联系。数据操作是指对数据库中的各种对象的实力允许执行的操作的集合,包括操作及有关的操作规则。数据的完整性约束条件是一组完整性规则。
层次模型的两个基本条件:1、有且只有一个节点没有双亲节点,即根节点;2、根以外的其他节点有且只有一个双亲节点。所有的节点只有按其路径查看,才能体现出它的全部意义,没有任何一个记录可以脱离双亲的记录值而独立存在。层次模型的存储结构:邻接法(按照层次树前序穿越的顺序把所有记录值依次邻接存放)和链接法(用指针来反映数据之间的层次联系)。优点:1、层次模型的数据结构比较简单清晰;2、层次数据库的查询效率高;3、层次数据模型提供了良好的完整性支持。缺点:1、现实世界中很多联系是非层次性的;2、一个节点具有多个双亲,层次模型表示的很笨拙,只能通过冗余;3、查询子女节点必须通过双亲节点;4、由于结构严密,层次命令趋于程序化。层次模型对具有一对多的层次联系的部门描述非常自然、直观、容易理解。
网状模型的两个基本条件:1、允许一个以上的节点无双亲;2、一个节点可以有多于一个的双亲。层次模型可以看做是网状模型的一个实例。
关系模型,一个关系对应一张表;表中的一行为一个元祖;表中的一列为一个属性。关系模式是对关系的描述,一般表示为关系名(属性1,属性2,。。。)。在关系模型中,实体以及实体间的联系都是用关系来表示的。那么关系模型就要求关系必须是规范化的,必须满足一定的规范条件,最基本的一条就是每个分量必须是一个不可分的数据项,不允许表中有表。关系的完整性约束有三类:实体完整性、参照完整性和用户的完整性。优点:与格式化的模型不同,它是基于严格的数学概念的;关系模型的概念单一;关系模型的存取路径对用户透明,具有更好的数据独立性、更好的安全保密性,也简化了程序员的工作和数据库开发建立的工作。