当前位置: 首页 > news >正文

常见数据模型

目录

1.1两类数据模型

1.2概念模型

1.3数据模型的组成要素

1.4常见数据模型

层次模型

网状模型

关系模型

数据模型是对现实世界数据特征的抽象,也就是说数据模型是用来描述数据、组织数据和对数据进行操作的。数据模型是数据库系统的核心和基础。

1.1两类数据模型

数据模型需要满足三方面要求:

  • 能比较真实地模拟现实世界

  • 容易为人所理解

  • 便于在计算机上实现

跟据模型应用的不同目的,将这些模型可以分为两大类,第一类是概念模型,第二类是逻辑模型和物理模型

  • 概念模型(conceptual model),也称信息模型,它是按用户的观点来对数据和信息建模,主要用于数据设计。

  • 逻辑模型主要包括层次模型、网状模型、关系模型、面向对象数据模型、和对象关系数据模型、半结构化数据模型等。它主要用于数据库管理系统的实现。

1.2概念模型

在了解概念模型之前我们需要了解一些信息世界的概念。

(1)实体(entity)

客观存在并可互相区别的事物称为实体。实体可以是人、物或者抽象的概念或联系。例如,一个教师,一个部门,教师与部门的工作关系等都是实体。

(2)属性(attribute)

实体所具有的某一特性称为属性。例如,一个学生的学号、姓名、性别、出生年月等特征都表示该学生的属性。

(3)码(key)

唯一标识实体的属性集称为码。例如学号就是学生实体的码。

(4)实体型(entity type)

用实体名及其属性名集合来抽象和刻画同类实体,称为实体型。例如,学生(学号,姓名,性别,出生年月)就是一个实体型。

(5)实体集(entity set)

同一类实体的集合称为实体集。例如全体学生就是一个实体集。

(6)联系(relationship)

实体之间的联系通常是指不同实体集之间的联系。实体之间的联系有一对一、一对多、多对多等多种类型。

概念模型的一种表示方法:实体—联系方法(Entity-Relationship approach)简称E-R方法,也被称为E-R模型。

1.3数据模型的组成要素

数据模型通常由数据结构、数据操作和数据的完整性约束条件三部分组成。

  1. 数据结构

    数据结构描述数据库的组成对象以及对象之间的联系,是对系统静态特征的描述。

  2. 数据操作

    数据操作是对数据库中各种对象(型)的实例(值)允许执行的操作的集合,包括操作及有关的操作规则。例如操作有检索、插入、删除和修改,操作规则有优先级别等,数据操作是对系统动态特性的描述。

  3. 数据的完整性约束条件

    数据的约束条件是一组完整性规则的集合。也就是说,对于具体的应用数据必须遵循特定的语义约束条件,以保证数据的正确、有效和相容。例如某单位人事管理中,要求在职的“男”职工的年龄必须大于18岁小于60岁,工程师的基本工资不能低于1500元,这些要求可以通过建立数据的约束条件来实现。

1.4常见数据模型

层次模型

层次模型数据结构

(1)有且只有一个节点没有双亲节点,我们把这个节点称为根节点;

(2)除根节点以外,其他的节点都只有一个双亲节点。

层次模型就像一棵倒立的树,节点的双亲都是唯一的。

 层次模型的优点:

  1. 层次模型的数据结构比较简单清晰。

  2. 层次数据库的查询效率高。

  3. 层次数据模型提供了良好的完整性支持。

层次模型的缺点:

  1. 现实世界中很多联系都是非层次性的,如节点之间具有多对多联系,不适合用层次模型表达。

  2. 如果一个节点具有多个双亲节点,使用层次模型表示就会显得很笨拙。

  3. 要查询子女节点必须通过双亲节点才可以。

  4. 由于结构严密,层次命令趋于程序化。

网状模型

网状数据库系统采用网状模型作为数据的组织方式,网状数据模型的典型代表是DBTG系统,也叫做CODASYL系统。

网状模型数据结构

(1)允许一个以上的节点无双亲。

(2)一个节点可以有多于一个的双亲。

在层次模型中子女节点与双亲节点的联系是唯一的,而在网状模型中这种联系可以不唯一。

网状模型的优点:

  1. 能够更为直接地描述现实世界,比如一个节点有多个双亲的情况。

  2. 具有良好的性能,存取效率较高。

网状模型的缺点:

  1. 结构比较复杂,而且随着应用环境的扩大,数据库的结构会变的越来越复杂。

  2. 网状模型的DDL、DML复杂,并且要嵌入某一种高级语言中,用户不容易掌握,不容易使用。

  3. 由于记录之间的联系是通过存取路径实现的,应用程序在访问数据时必须选择合适的存取路径,因此用户必须了解系统结构的细节,加重了编写应用程序的负担。

关系模型

关系模型数据结构

关系模型与以往的模型不同,关系模型由一组关系组成,每个关系的数据结构是一张规范的二维表。如下图所示。

 

接下来介绍一下关系模型中的相关术语:

关系:一个关系通常来说对应一张表。

元组:表中的一行即为一个元组。

属性:表中的一列即为一个属性,每个属性的名称即为属性名。

码:也称为键码。表中的某个属性组,它可以唯一确定一个元组。

域:域是一组具有相同数据类型的值的集合。例如学生的分数在0~100。

分量:元组中的一个属性值。

关系模型的优点:

  1. 关系模型与格式化模型不同,它是建立在严格的数学概念的基础上的。

  2. 关系模型的概念单一。

  3. 关系模型的存取路径对用户透明,从而具有更高的数据独立性、更好的安全保密性,也简化了程序员的工作和数据库开发建立的工作。

关系模型的缺点

  1. 由于存取路径对用户是隐蔽的,查询效率往往不如格式化数据模型。

  2. 为了提高性能,数据库管理系统必须对用户的查询请求进行优化,因此增加了开发数据库管理系统的难度。

http://www.lryc.cn/news/34674.html

相关文章:

  • Lesson 8.3 ID3、C4.5 决策树的建模流程 Lesson 8.4 CART 回归树的建模流程与 sklearn 参数详解
  • 阿里云手机短信登录
  • Android Camera SDK NDK NDK_vendor介绍
  • SQL基础语句小结
  • 管理类书籍推荐
  • win10 mingw 调用python
  • 教你使用三种方式写一个最基本的spark程序
  • 软件设计师错题集
  • 【华为机试真题详解 Python实现】静态扫描最优成本【2023 Q1 | 100分】
  • 算法刷题总结 (四) 动态规划
  • Grafana 转换数据的工具介绍
  • Linux 学习笔记
  • HTML注入专精整理
  • 看完这篇我不信你不会二叉树的层序遍历【C语言】
  • 案例17-环境混用带来的影响
  • 知识蒸馏论文阅读:DKD算法笔记
  • Sentinel架构篇 - 熔断降级
  • shell脚本的一些记录 与jenkins的介绍
  • JVM的了解与学习
  • 提升数字品牌的5个技巧
  • java通过反射获取加了某个注解的所有的类
  • Warshall算法
  • vector中迭代器失效的问题及解决办法
  • 【蓝桥杯刷题训练营】day05
  • 线程中断interrupt导致sleep产生的InterruptedException异常
  • ubuntu的快速安装与配置
  • 人工智能AI工具汇总(AIGC ChatGPT时代个体崛起)
  • 【rust-grpc-proxy】在k8s中,自动注入代理到pod中,再不必为grpc调试而烦恼
  • VisualStudio2022制作多项目模板及Vsix插件
  • 仿写简单IOC