逻辑数据模型
1. 数据模型的分类有哪些,各有什么特点
数据模型按不同的应用层次分成概念数据模型、逻辑数据模型、物理数据模型。
1、概念数据模型
特点是面向用户、面向现实世界的数据模型,描述一个单位的概念化结构;具有较强的语义表达能力,能够方便、直接地表达应用中的各种语义知识;简单、清晰、易于用户理解;概念模型是充满主观色彩的工件。
2、逻辑数据模型
特点是直接反映出业务部门的需求,对系统的物理实施有着重要指导作用;可以通过实体和关系勾勒出企业的数据蓝图;逻辑模型提供用户定义完整性约束条件的机制,以反映具体应用所涉及的数据必须遵守的特定的语义约束条件。
3、物理数据模型
特点是具有以实物或画图形式直观的表达认识对象的特征;每一种逻辑数据模型在实现时都有其对应的物理数据模型;描述数据在储存介质上的组织结构,不但与具体的DBMS有关,而且还与操作系统和硬件有关。
(1)逻辑数据模型扩展阅读:
数据模型结构主要分为数据结构、数据操作、数据约束。
1、数据结构主要描述数据的类型、内容、性质以及数据间的联系等。数据类型,如DBTG网状模型中的记录型、数据项、关系模型中的关系等。数据结构是数据模型的基础,不同的数据结构具有不同的操作和约束。
2、数据操作主要描述在相应的数据结构上的操作类型和操作方式。是操作算符的集合,包括若干操作和推理规则,用以对目标类型的有效实例所组成的数据库进行操作。
3、数据约束主要描述数据结构内数据间的语法、词义联系、他们之间的制约和依存关系,以及数据动态变化的规则,以保证数据的正确、有效和相容。约束条件可以按不同的原则划分为数据值的约束和数据间联系的约束;静态约束和动态约束;实体约束和实体间的参照约束等。
2. 逻辑数据模型的模型
①层次数据模型
②网状数据模型
③关系数据模型 层次模型(Hierarchical Model)是最早出现的数据模型,它是采用层次数据结构来组织数据的数据模型。层次模型可以简单、直观地表示信息世界中实体、实体的属性以及实体之间的一对多联系。它使用记录类型来描述实体;使用字段来描述属性;使用结点之间的连线表示实体之间的联系。
(1)层次模型的概念
层次数据结构也称树型结构,树中的每个结点代表一种记录类型。满足以下两个条件的数据模型称为层次模型:
1)只有一个结点没有双亲结点(双亲结点也称父结点),该结点称为根结点。2)根结点以外的其他结点有且只有一个双亲结点。层次模型可以很自然地表示家族结构、行政组织结构等。(2)层次模型的三要素1)数据结构:使用记录类型表示实体,使用结点之间的连线表示一对多的联系。2)数据操作:包括结点的查询和结点的更新(如插入、删除和修改)操作。3)完整性约束:一个模型只有一个根结点;其他结点只能有一个双亲结点;结点之间是一对多的联系。(3)层次模型的优缺点层次模型的优点是结构简单、清晰,容易理解,结点之间联系简单,查询效率高。缺点主要有以下几点:1)不能表示一个结点有多个双亲的情况。2)不能直接表示多对多的联系,需要将多对多联系分解成多个一对多的联系。常用的分解方法是冗余结点法和虚拟结点法。3)插入、删除限制多。比如,删除父结点则相应的子结点也被同时删除等。具体内容可参考“数据结构”课程中树的相关操作。4)必须要经过父结点,才能查询子结点。因为在层次模型中,没有一个子结点的记录值能够脱离父结点的记录值而独立存在。 面向对象模型是一种新兴的数据模型,也是目前最重要的模型思路。它采用面向对象的方法来设计数据库。面向对象的数据库存储对象是以对象为单位,每个对象包含对象的属性和方法,具有类和继承等特点。
在面向对象数据库的设计中,我们将客观世界中的实体抽象成为对象。面向对象的方法中一个基本的信条是任何东西都是对象。对象可以定义为对一组信息及其操作的描述。对象之间的相互操作都得通过发送消息和执行消息完成,消息是对象之间的接口。严格地讲,在面向对象模型中,实体的任何属性都必须表示为相应对象中的一个变量和一对消息。变量用来保存属性值,一个消息用来读取属性值,另一个消息则用来更新这个值。
数据库中通常有很多相似的对象。相似是指它们响应相同的消息使用相同的方法,并有相同名称和类型的变量。对每个这样的对象单独进行定义是很浪费的,因此我们将相似的对象分组形成了一个类。类是相似对象的集合。类中的每个对象也称为类的实例。一个类中的所有对象共享一个公共的定义,尽管它们对变量所赋予的值不同。面向对象数据模型中类的概念相当于E-R模型中实体集的概念。
继承性允许不同类的对象共享它们公共部分的结构和特性。继承性可以用超类和子类的层次联系实现。一个子类可以继承某一个超类的结构和特性,这称为单继承性;一个子类也可以继承多个超类的结构和特性,这称为多继承性。继承性是数据间的泛化/细化联系,是一种is a联系。
面向对象系统提供一种对象标识符的概念来标识对象。OID与对象的物理存储位置无关,也与数据的描述方式和值无关。OID是惟一的。在对象创建的瞬间,由系统赋给对象,它在系统内是惟一的,在对象的生存期间,标识是不能改变的。如果要将数据转移到另外一个不同的数据库系统中,则标识符必须进行转化。
对象包含不同类的对象之间可能存在着包含关系)。包含其它对象的对象称为复合对象。包含关系可以有多层,形成类包含层次图。包含是一种是一部分(is part of)联系,因此包含与继承是两种不同的数据联系。
目前,一种结合关系数据库和面向对象特点的数据库为那些希望使用具有面向对象特征的关系数据库用户提供了一条捷径。这种数据库系统称为对象关系数据库,它是在传统关系数据模型基础上,提供元组、数组、集合一类丰富的数据类型以及处理新的数据类型操作能力,并且有继承性和对象标识等面向对象特点。