阿里云服务器ECS    
弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新 [咨询更多]
阿里云存储OSS
简单易用、多重冗余、数据备份高可靠、多层次安全防护安全性更强、低成本 [咨询更多]
阿里云数据库RDS
稳定可靠、可弹性伸缩、更拥有容灾、备份、恢复、监控、迁移等方面的全套解决方案 [咨询更多]
阿里云安全产品
DDoS高防IP、web应用防火墙、安骑士、sll证书、态势感知众多阿里云安全产品热销中 [咨询更多]
阿里云折扣优惠    
云服务器ECS、数据库、负载均衡等产品新购、续费、升级联系客服获取更多专属折扣 [咨询更多]
逻辑数据模型
2020-8-31    点击量:
  概念数据模型是概念上的抽象,它与具体的DBMS无关。而逻辑数据模型与具体的DBMS有关,是直接面向数据库的逻辑结构。通常将逻辑数据模型简称为数据模型。如无特殊说明,从本节开始,所提到的数据模型均指逻辑数据模型。
  
  数据模型从计算机的角度去看待各个数据及其数据之间的联系,一般有严格的形式化定义,可以精确地描述系统的静态特征、动态特征和完整性约束条件。静态特征是指数据结构;动态特征是指数据操作,包括查询、插入、删除和修改等;完整性约束条件是指数据的约束条件。
  
  下面简单介绍三种常用的数据模型:层次模型、网状模型和关系模型。
  
  1. 层次模型

  
  层次模型(Hierarchical Model)是最早出现的数据模型,它是采用层次数据结构来组织数据的数据模型。层次模型可以简单、直观地表示信息世界中实体、实体的属性以及实体之间的一对多联系。它使用记录类型来描述实体;使用字段来描述属性;使用结点之间的连线表示实体之间的联系。
  
  (1)层次模型的概念
  
  层次数据结构也称树型结构,树中的每个结点代表一种记录类型。满足以下两个条件的数据模型称为层次模型:
  
  1)只有一个结点没有双亲结点(双亲结点也称父结点),该结点称为根结点。
  
  2)根结点以外的其他结点有且只有一个双亲结点。层次模型可以很自然地表示家族结构、行政组织结构等。
  
  图1-7给出了一个层次模型的示例,表示了4个实体、3个基本层次的一对多联系。
  大学学院下设系的层次模型
  图1-7 大学学院下设系的层次模型
  
  (2)层次模型的三要素
  
  1)数据结构:使用记录类型表示实体,使用结点之间的连线表示一对多的联系。
  
  2)数据操作:包括结点的查询和结点的更新(如插入、删除和修改)操作。
  
  3)完整性约束:一个模型只有一个根结点;其他结点只能有一个双亲结点;结点之间是一对多的联系。
  
  (3)层次模型的优缺点
  
  层次模型的优点是结构简单、清晰,容易理解,结点之间联系简单,查询效率高。
  
  缺点主要有以下几点:
  
  1)不能表示一个结点有多个双亲的情况。
  
  2)不能直接表示多对多的联系,需要将多对多联系分解成多个一对多的联系。常用的分解方法是冗余结点法和虚拟结点法。
  
  3)插入、删除限制多。比如,删除父结点则相应的子结点也被同时删除等。具体内容可参考“数据结构”课程中树的相关操作。
  
  4)必须要经过父结点,才能查询子结点。因为在层次模型中,没有一个子结点的记录值能够脱离父结点的记录值而独立存在。
  
  2. 网状模型
  
  网状模型(Network Model)采用网状结构,能够直接描述一个结点有多个父结点以及结点之间为多对多联系的情形。
  
  (1)网状模型的概念
  
  网状模型是满足以下两个条件的基本层次联系的集合:
  
  1)允许有一个以上的结点无双亲结点。
  
  2)一个结点可以有多于一个的双亲结点。
  
  实际上,层次模型是网状模型的一个特例。网状模型去掉了层次模型中的限制,允许多个结点没有双亲结点,允许结点有多个双亲结点,还允许结点之间存在多对多的联系。使用网状模型可以表示多对多联系。例如,如图1-8所示,通过引入一个成绩的联结记录来表示学生和课程之间多对多的联系。
  描述多对多联系的网状模型
  图1-8 描述多对多联系的网状模型
  
  网状模型中子结点与双亲结点的联系可以不唯一,但需要为每个联系进行命名,图1-8中成绩结点有两个双亲结点:课程和学生。将课程与成绩的联系命名为“课程-成绩”,将学生与成绩的联系命名为“学生-成绩”。
  
  (2)网状模型的三要素
  
  1)数据结构:使用记录类型表示实体,使用字段来描述实体的属性,每个记录类型可包含若干个字段,使用结点之间的连线表示一对多的联系。
  
  2)数据操作:包括结点的查询和结点的更新操作。
  
  3)完整性约束:支持码的概念,用于唯一标识记录的数据项的集合;保证一个联系中双亲结点与子结点之间是一对多联系;支持双亲记录和子女记录之间的某些约束条件,如只删除双亲结点等。
  
  (3)网状模型的优缺点
  
  网状模型具有良好的性能,存取效率较高。相比层次模型,网状模型中结点之间的联系具有灵活性,能表示事物之间的复杂联系,更适合描述客观世界。网状模型虽然有效克服了层次模型不方便表达多对多联系的缺点,但因为结构复杂,实现网状数据库管理系统比较困难。并且其所提供的DDL语言复杂,不容易学习和掌握。此外,由于实体间的联系本质上是通过存取路径来表现,因而,应用程序在访问数据时还需要指定存取路径。
  
  3. 关系模型
  
  层次模型和网状模型的共同缺点是通过存取路径实现记录之间的联系,应用程序在访问数据时必须选择适当的存取路径,用户必须了解系统结构的细节,这样加重了编写应用程序的负担。另外,不支持集合处理,即没有提供一次处理多个记录的功能。
  
  关系模型(Relational Model)在1970年由IBM公司的E.F. Codd首次提出。关系模型可以描述一对一、一对多和多对多的联系,并向用户隐藏存取路径,大大提高了数据的独立性以及程序员的工作效率。此外,关系模型建立在严格的数学概念和数学理论基础之上,支持集合运算。
  
  关系模型由关系数据结构、关系操作和完整性约束三部分组成。在关系模型中,实体和实体之间的联系均由关系来表示。如图1-9所示,关系就是一个二维表,表中每一行代表一个物理实体,称为元组或记录;表中的每一列代表实体的属性,每一列的第一行是实体的属性名,其余行是对应实体的属性值。学生实体、课程实体均使用关系来表示,分别是表中的学生关系和课程关系;学生实体与课程实体之间的联系也使用关系来表示,即表中的成绩关系。
  三个关系示例
  图1-9 三个关系示例
  
  采用关系模型的数据库管理系统称为关系数据库管理系统(Relational Database Management System, RDBMS),常见的RDBMS有IBM公司的DB2和Informix,甲骨文公司的Oracle,Sybase公司的Sybase,微软公司的SQL Server、Access等。
推荐文章更多
联系客服免费领取更多阿里云产品新购、续费升级折扣,叠加官网活动折上折更优惠