【数据库系统概论】数据模型

  • 数据模型是什么
  • 两类数据模型
  • 两步抽象
    • 概念模型
    • 数据模型
  • 常用的数据模型
  • 感谢 💖

数据模型是什么

模型是对现实世界中某个对象特征的模拟和抽象。比如飞机模型就体现了飞机的特性,它模拟飞机的起飞、飞行和降落,它抽象了飞机的基本特征——机头、机身、机翼、机尾。数据模型也是一种模型,它是对现实世界数据特征的抽象。通俗地讲数据模型就是现实世界的模拟。

现有的数据库系统都是基于某种数据模型的。数据模型是数据库系统的核心和基础

两类数据模型

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

  1. 能比较真实地模拟现实世界
  2. 容易为人所理解
  3. 便于在计算机上实现

数据模型分为两类(两个不同的层次)

  1. 概念模型 。也称信息模型,它是按用户的观点来对数据和信息建模,用于数据库设计。
  2. 逻辑模型和物理模型
    • 逻辑模型主要包括网状模型、层次模型、关系模型、面向对象数据模型、对象关系数据模型、半结构化数据模型等。按计算机系统的观点对数据建模,用于DBMS实现。
    • 物理模型是对数据最底层的抽象,描述数据在系统内部的表示方式和存取方法,在磁盘或磁带上的存储方式和存取方法。

两步抽象

为了把现实世界中的具体事物抽象、组织为某一数据库管理系统支持的数据模型。我们常常首先将现实世界抽象为信息世界,然后将信息世界转换为机器世界。这个抽象过程就是两步抽象
其中第一步抽象是将现实世界抽象为信息世界,即将现实世界中的客观对象抽象为概念模型,第二步抽象是将信息世界转换为机器世界,即把概念模型转换为某一数据库管理系统支持的数据模型

在这里插入图片描述

概念模型

概念模型用于信息世界的建模,是现实世界到机器世界的一个中间层次,是数据库设计的有力工具。

在信息世界中,我们需要知道以下基本概念:

  • 实体(Entity)
    客观存在并可相互区别的事物称为实体。可以是具体的人、事、物或抽象的概念。
  • 属性(Attribute)
    实体所具有的某一特性称为属性。一个实体可以由若干个属性来刻画。
  • 码(Key)
    唯一标识实体的属性集称为码。
  • 实体型(Entity Type)
    用实体名及其属性名集合来抽象和刻画同类实体称为
    实体型。
  • 实体集(Entity Set)
    同一类型实体的集合称为实体集。
  • 联系(Relationship)
    现实世界中事物内部以及事物之间的联系在信息世界中反映为实体(型)内部的联系和实体(型)之间的联系。
    • 实体内部的联系通常是指组成实体的各属性之间的联系
    • 实体之间的联系通常是指不同实体集之间的联系
    • 实体之间的联系有一对一、一对多和多对多等多种类型
  • 实体-联系方法(Entity-Relationship Approach)
    我们用E-R图来描述现实世界的概念模型。

数据模型

数据模型有三大组成要素:

  1. 数据结构
    数据结构描述数据库的组成对象,以及对象之间的联系。
    它是对系统静态特性的描述。
  2. 数据操作
    数据操作是对数据库中各种对象(型)的实例(值)允许执行的操作的集合,包括操作及有关的操作规则。
    数据操作有两大类型:查询和更新(包括插入、删除、修改)。
    数据操作是对系统动态特性的描述。
  3. 数据的完整性约束条件
    数据的完整性约束条件是一组完整性规则的集合。规定数据及其联系符合现实语义。

常用的数据模型

这里的数据模型都是逻辑上的,也就是说是用户眼中看到的数据范围。

常用的数据模型有:

  • 层次模型(Hierarchical Model)
  • 网状模型(Network Model)
  • 关系模型(Relational Model))
  • 面向对象数据模型(Object Oriented Data Model)
  • 对象关系数据模型(Object Relational Data Model)
  • 半结构化数据模型(Semistruture Data Model)

其中关系模型是最重要的一种数据模型。关系数据库采用关系模型作为数据的组织方式。

感谢 💖

好啦,这次的分享就到这里,感谢大家看到这里🤞

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/82144.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++笔记之文档术语——将可调用对象作为函数参数

C笔记之文档术语——将可调用对象作为函数参数 相关博文:C笔记之函数对象functors与可调用对象 文章目录 C笔记之文档术语——将可调用对象作为函数参数1.在函数参数中传递可调用对象2.‘在参数中传入可调用对象’和‘将可调用对象作为函数参数’哪个描述更加专业…

数据库----数据查询

1.6 查询语句 语法:select [选项] 列名 [from 表名] [where 条件] [group by 分组] [order by 排序][having 条件] [limit 限制]1.6.1 字段表达式 mysql> select 锄禾日当午; ------------ | 锄禾日当午 | ------------ | 锄禾日当午 | ---…

SQL死锁进程内容查询语句

1.方式1 SELECT object_name(A.resource_associated_entity_id) as TABLENAME, A.request_session_id AS SPID,DB_NAME(B.dbid) AS DBName,B.blocked,B.dbid,B.program_name,B.waitresource,B.lastwaittype,B.loginame,B.hostname,B.login_time,B.last_batch--,B.* FROM sy…

redis 集群(cluster)

1. 前言 我们知道,在Web服务器中,高可用是指服务器可以正常访问的时间,衡量的标准是在多长时间内可以提供正常服务(99.9%、99.99%、99.999% 等等)。但是在Redis语境中,高可用的含义似乎要宽泛一些&#xf…

【面试经典150 | 双指针】判断子序列

文章目录 写在前面Tag题目来源题目解题解题思路方法一:双指针方法二:动态规划 写在最后 写在前面 本专栏专注于分析与讲解【面试经典150】算法,两到三天更新一篇文章,欢迎催更…… 专栏内容以分析题目为主,并附带一些对…

Eclipse开源代码下载

当前插件开发,需要修改eclipse源码,如需要修改remote相关的代码,所以需要下载相关源码。网上大多资料都说的不清不楚的,也可能我太小白,不明白,反正就是折腾了一两天才感觉有点思路,改如何找源码…

virtualbox共享文件夹设置

宿主机是mac os,虚拟机是centos7.9。 一、virtualbox设置共享文件夹 选中虚拟机->设置->共享文件夹->点击号图标进行添加: 二、给虚拟机安装增强功能 打开virtualbox的虚拟机窗口界面,点击窗口顶部菜单中的设备->安装增强功能…

正则表达式学习和高级用法

以下所有的验证都在 在线验证 1. 起始符 / 正则表达式的起始符2. 限定符 匹配前面的子表达式**1次或多次**。例如,zo 能匹配 "zo" 以及"zoo",但不能匹配 "z"。等价于 {1,}。 ? 匹配前面的子表达式**0次或1次**。例如…

Java基础入门·对存储文件File的相关操作

前言 File类获取的方法 getName() | getPath() File getAbsoluteFile() | File getParentFile() long length() File类遍历方法 IO流对象的分类 1.按照操作的文件类型分类 2.按照数据的流向分类 IO流对象的分类归纳 OutputStream 字节输出流写入文件的步骤 追加写入 F…

电路中VCC VDD VSS VEE GND的含义

在电路中,芯片引脚经常会出现VCC,VDD,VSS,VEE和GND这些标示。 其中VCC一般表示通用芯片的电源引脚,比如一些模拟运放的正电源引脚,74系列数字芯片的电源引脚,VCC一般接相应的正电源电压。 VDD一…

Mock数据:单元测试中的心灵鸡汤

在当今的软件开发领域,质量控制已经成为了一个不可或缺的环节。为了确保软件的稳定性和可靠性,开发者们投入了大量的时间和精力进行各种测试。其中,单元测试作为最基础的测试方法,其重要性不言而喻。然而,单元测试中的…

用于视觉检测的线扫远心镜头VS-LTC系列

VS-LTC 系列线扫远心镜头,近期已经新增 3.5倍及5倍型号 ,支持大靶面芯片相机;适用于半导体,基板以及 Mini LED等行业的视觉检测。 在机器视觉产品资料查询平台,了解更多VS-LTC工业镜头的信息。 大靶面线扫远心镜头 …

swift 页面跳转

segue 故事板的屏幕之间导航 设置全局变量 退回操作 Optionals ??

vue项目打包_以生产环境prod模式打包_vue-cli-service 不是内部或外部命令,也不是可运行的程序---vue工作笔记0025

打开命令行: 首先执行npm install 不执行会报错: npm run build:prod --scripts-prepend-node-pathauto 然后再这样执行就是以生产环境模式打包了.

lv5 嵌入式开发-2 exec函数族

目录 1 进程 – exec函数族 1.1 exec函数族特点 1.2 进程 – execl / execlp使用方法 1.3 进程 – execv / execvp 2 进程 – system 3 exec族要点演示 掌握:exec函数族、system 1 进程 – exec函数族 执行程序,通孔ps -elf发现,父进…

【数据结构】二叉树链式结构的实现(三)

目录 一,二叉树的链式结构 二,二叉链的接口实现 1,二叉链的创建 2,接口函数 3,动态创立新结点 4,创建二叉树 5,前序遍历 6,中序遍历 7,后序遍历 三,结点个…

【Python】自动化办公之路:word自动化实战宝典!

文章目录 前言一、环境安装二、使用步骤1.引入库2.读入数据 Python-docx 编辑已存在文档win32com 将 doc 转为 docxwin32com 操作 word总结 前言 使用Python操作word大部分情况都是写操作,也有少许情况会用到读操作,在本次教程中都会进行讲解&#xff0…

Git(6)——GitHub

目录 一、简介 二、概要 三、注册 ​四、创建仓库 五、推送本地代码 六、拉取远端代码 一、简介 在Git(5)中,我们已经对Git分支的概念和用法有了一定了解,对于在本地进行代码版本管理,其实当前所学的东西基本已经…

C语言生成随机数、C++11按分布生成随机数学习

C语言生成随机数 如果只要产生随机数而不需要设定范围的话,只要用rand()就可以;rand()会返回一随机数值, 范围在0至RAND_MAX 间;RAND_MAX定义在stdlib.h, 其值为2147483647; 如果想要获取在一定范围内的数的话,直接做…

华为云HECS安装docker并安装mysql

1、运行安装指令 yum install docker都选择y,直到安装成功 2、查看是否安装成功 运行版本查看指令,显示docker版本,证明安装成功 docker --version 3、启用并运行docker 3.1启用docker指令 systemctl enable docker 3.2 运行docker指令…