(常见)数据模型

news2024/9/22 9:52:10

文章目录

      • 数据模型概述
        • 一、数据模型概要
          • 1.模型、建模与抽象
          • 2.数据模型
          • 3.两类数据模型
        • 二、数据库模型的组成要素
          • 1.数据结构
          • 2.数据操作
          • 3.数据的完整性约束
        • 三、概念模型
          • 1.概要
          • 2.基本概念
          • 3.概念模型的表示方法
      • 常用数据模型
        • 一、层次模型
          • 1.简介
          • 2.数据结构
          • 3.数据操纵与完整性约束
          • 4.优缺点
        • 二、网状模型
          • 1.简介
          • 2.数据结构
          • 3.数据操纵与完整性约束
          • 4.优缺点
        • 三、关系模型
          • 1.简介
          • 2.数据结构
          • 3.数据操纵与完整性约束
          • 4.优缺点

数据模型概述

一、数据模型概要

1.模型、建模与抽象
  • 模型:队对研究对象进行抽象的工具。
  • 建模:对研究对象进行抽象的过程。
  • 抽象:对事物进行简化、提取特征或共性,实现模型和事物之间的映射或投影。
2.数据模型
  • 对现实世界数据特征的抽象。
  • 用来描述数据、数据联系、数据语义以及一致性约束的一套概念工具。
  • 是数据库系统的核心和基础
3.两类数据模型
  • 概念模型:又称信息模型,主要用于数据库设计
  • 逻辑模型和物理模型:
    • 逻辑模型主要包括层次模型、网状模型、关系模型等。
    • 物理模型是对数据最底层的抽象,是面向计算机系统的。

二、数据库模型的组成要素

1.数据结构
  • 描述数据库自称对象以及对象之间的联系。
  • 数据结构描述的内容有两类:
    • 与对象的类型、性质、内容有关的。
    • 与数据之间联系有关的。
  • 数据结构是所描述对象类型的集合,是对系统静态特征的描述
2.数据操作
  • 指对数据库中各种对象的实例允许执行的操作的集合。
  • 数据操作是对系统动态特性的描述
3.数据的完整性约束
  • 数据的完整性约束条件是一组完整性规则。
  • 保证数据的正确、有效和相容。

三、概念模型

1.概要
  • 概念模型是现实世界到机器世界的中间层次。

  • 用于信息世界的建模,是现实世界到信息世界的第一次=层抽象。

在这里插入图片描述

2.基本概念
  • 实体(entity):客观存在并可相互区别的事物。

  • 属性(attribute):实体所具有的某一特性称为属性。

  • 码(key):唯一标识实体的属性集。

  • 实体型(entity type):用实体名及其属性名集合来抽象和刻画同类实体。

  • 联系(relationship):实体之间的联系通常指不同实体集之间的联系。

在这里插入图片描述

3.概念模型的表示方法
  • 实体-联系方法
  • 改方法用E-R图来描述现实世界的概念模型。

常用数据模型

一、层次模型

1.简介
  • 层次模型是数据库中最早出现的模型。
  • 树形结构来表示各类实体以及实体间的联系。
2.数据结构
  • 采用树形结构,树的性质决定了树状数据模型的特征。

  • 整个模型中有且仅有一个节点没有父节点,即根节点。

  • 其余的节点必须有且仅有一个父节点。
    在这里插入图片描述

3.数据操纵与完整性约束
  • 数据操纵:主要有查询、插入、删除和更新。
  • 完整性约束:
    • 所有的子节点不能脱离父节点而单独存在。
    • 如果要删除父节点,那么父节点下面的所有子节点都要同时删除。
    • 但是可以单独删除一些叶子节点。
4.优缺点
  • 优点

    • 数据结构简单清晰。
    • 查询效率较高,节点的有向边表示了节点之间的联系。
    • 提供了较好的数据完整性支持。
  • 缺点

    • 不适用于非层次的联系(如多对多的联系)。
    • 缺乏灵活性,若一个结点具有多个双亲结点解决办法复杂且限制修改。
    • 查询节点的时候必须知道其双亲节点。
    • 层次命令趋于程序化。

二、网状模型

1.简介
  • 有向图表示实体和实体之间的联系。
  • 可以看做是放松层次数据模型的约束性的一种扩展。
  • 去掉了层次模型的两个限制:
    • 允许多个节点没有双亲结点。
    • 允许结点有多个双亲结点。
2.数据结构
  • 采用有向图结构,有向图的性质决定了树状数据模型的特征。
  • 可以存在两个或者多个节点没有父节点。
  • 允许单个节点存在多于一个父节点。
3.数据操纵与完整性约束
  • 支持记录码的概念。
  • 保证一个联系中双亲记录和子女记录之间是一对多的联系。
  • 可以支持双亲记录和子女记录之间的某些约束条件。
4.优缺点
  • 优点
    • 可以很方便的表示现实世界中的很多复杂的关系。
    • 具有良好的性能,存储效率较高。
  • 缺点
    • 结构比较复杂。
    • 网状模型的DDL、DML复杂。
    • 编写应用程序负担较重。

三、关系模型

1.简介
  • 实体、实体之间的联系都被映射成统一的关系。
  • 建立在严格的数学概念的基础上。
2.数据结构
  • 每个关系的数据结构都是一张规范化的二维表。
  • 关系(relation):一个关系对应一张表。
  • 元组(tuple):表中的每一即为一个元组。
  • 属性(attribute):表中的每一即为一个属性。
  • 码(key):可以唯一确定一个元组。
  • 域(domain):一组具有相同数据类型的值的集合。
  • 分量:元组中的一个属性值。
    在这里插入图片描述
3.数据操纵与完整性约束
  • 操纵主要包括增删改查
  • 完整性约束包括:实体完整性、参照完整性、用户完整性
  • 操作对象和操作结果都是关系。
4.优缺点
  • 优点

    • 建立在严格的数学概念的基础上。
    • 概念单一,结构简单、清晰。
    • 存取路径对用户透明,具有更高的数据独立性、更好的安全保密性。
  • 缺点:

    • 存取路径对用户隐蔽,查询效率较低。

像一个个纯粹美丽的漩涡,谁拥有那星空却没有因此而沉默。 ——理想后花园《每一颗行星都是你》

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

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

相关文章

二叉搜索树中第K小的元素

给定一个二叉搜索树的根节点 root ,和一个整数 k ,请你设计一个算法查找其中第 k 个最小元素(从 1 开始计数)。 示例 1: 输入:root [3,1,4,null,2], k 1 输出:1 示例 2: 输入&am…

List、Set、Map的区别?

List 是一个有序集合,里面可以存储重复的元素Set 是一个不能存储相同元素的集合Map 是一个通过键值对的方式存储元素的,键不能重复 Java 容器分为Collection 和Map 两大类,Collection 集合的子接口有Set、List、Queue 三种子接口。其中&#…

CSDN MD编辑器跳转方法及字体格式

一、点击关键语句跳转指定位置 在CSDN写文章的时候,写的文章过长往往会让读者很难找到自己想看的部分,这时候有个 跳转到指定位置功能 就非常的便利。CSDN在MD编辑器上(富文本编辑器只有一种)就提供了两种跳转到指定位置的方法: 一、目录跳转…

HackTheBox-关卡Fawn

1. 连接靶场,打开FAWN实例场景,检查是否互通 TASK1 3 个字母的首字母缩写词 FTP 代表什么? 答案是:File Transfer Protocol TASK2 问题是:FTP服务通常监听哪个端口? FTP监听的TCP端口号为21,监听的数据端…

【自动化测试】selenium工具

文章目录 为什么要做自动化测试?为什么选用Selenium?Selenium的工作原理SeleniumJava环境搭建Selenium常用API浏览器参数配置定位元素操作测试对象时间等待信息打印对浏览器操作键盘与鼠标操作屏幕截图弹窗处理选择框的处理上传文件 JUnit单元测试注解参…

睡岗识别 TensorFlow

睡岗识别可以通过TensorFlowAI深度学习框架智能分析技术,睡岗识别识别出现场人员是否存在睡岗情况,及时发出预警,避免因操作人员的疏忽而导致的安全事故。TensorFlow 是一个开源的机器学习的框架,我们可以使用 TensorFlow 来快速地…

3年自动化测试这水平?我还不如去招应届生...

公司前段缺人,也面了不少测试,结果竟然没有一个合适的。一开始瞄准的就是中级的水准,也没指望来大牛,提供的薪资在10-20k,面试的人很多,但平均水平很让人失望。看简历很多都是3年工作经验,但面试…

【Python Seaborn】零基础也能轻松掌握的学习路线与参考资料

Python Seaborn是一个基于Python的可视化库,为Matplotlib库的扩展,提供了更加高级的数据可视化功能和丰富的统计图形。在学习Python数据科学和机器学习中,Seaborn有很好的数据可视化工具,也能够提供有帮助的统计图表来揭示数据之间…

实时频谱-2.5DPX

数字荧光显示 “数字荧光”一词源自包在阴极射线管(CRT)上的荧光,电视机、计算机监视器和其它测试设备显示器都使用阴极射线管。在电子束激活荧光时,它会发出荧光,照亮电子流画出的路径。 尽管液晶显示器(LCD)之类的光栅扫描技术由于厚度和…

29 KVM管理系统资源-调整虚拟CPU绑定关系

文章目录 29 KVM管理系统资源-调整虚拟CPU绑定关系29.1 概述29.2 操作步骤 29 KVM管理系统资源-调整虚拟CPU绑定关系 29.1 概述 把虚拟机的vCPU绑定在物理CPU上,即vCPU只在绑定的物理CPU上调度,在特定场景下达到提升虚拟机性能的目的。比如在NUMA系统中…

基于孪生网络的目标跟踪

一、目标跟踪 目标跟踪是计算机视觉领域研究的一个热点问题,其利用视频或图像序列的上下文信息,对目标的外观和运动信息进行建模,从而对目标运动状态进行预测并标定目标的位置。具体而言,视觉目标(单目标)…

JMeter+Grafana+Influxdb搭建可视化性能测试监控平台原创

【背景说明】 使用jmeter进行性能测试时,工具自带的查看结果方式往往不够直观和明了,所以我们需要搭建一个可视化监控平台来完成结果监控,这里我们采用三种JMeterGrafanaInfluxdb的方法来完成平台搭建 如果你想视频学习Jmeter接口测试&…

长江商学院EMBA38期甄知科技:ChatGPT应用与实践初探

近期,长江商学院EMBA38期&甄知科技开展了题为“ChatGPT应用与实践初探”的线下沙龙活动,由上海甄知科技创始合伙人兼CTO张礼军主讲,主要给大家解密最近很火的ChatGPT是什么,分享如何玩转ChatGPT,初步探索ChatGPT对…

快来试试这几个简单好用的手机技巧吧

技巧一:相机功能 苹果手机的相机功能确实非常出色,除了出色的像素之外,还有许多其他实用功能可以提升拍摄体验。 这些相机功能提供了更多的选择和便利性,使用户能够更好地适应不同的拍摄需求。 自拍功能:通过选择自…

SCI图片制作排版全流程及论文配图规范

目录 引言 一、图片尺寸与格式要求 二、图片处理和组图排版的流程 1. 确定排版 2. 用PS处理位图 3. 生成矢量统计图 4. 用AI制作模式图并处理 5. 用AI制作排版组图 6. 导出为.tiff或.eps 三、图片素材与示意图的绘制方法 1. 绘制图片素材 2. 绘制示意图 结论 引言…

硬件系统工程师宝典(25)-----四种BJT应用电路分析

各位同学大家好,欢迎继续做客电子工程学习圈,今天我们继续来讲这本书,硬件系统工程师宝典。上篇我们说到晶体三极管(BJT)可以看成是一个通过“监视”基极-发射极电流来控制集电极-发射极电流的元器件,并给出…

使用决策树模型Titanic数据集预测

数据准备 可以通过以下链接获取数据集: 百度网盘 请输入提取码 共包含三个csv文件: 《train.csv》训练数据集,包含特征信息和标签(是否幸存) 《test.csv》 测试数据集, 只包含特征信息 《gender_submission.csv》测试数据集…

远程FTP连接等

R1: <R1>ftp 192.168.2.100 用户名&#xff1a;1 密码&#xff1a;1 [R1-ftp]dir //查看当前FTP服务器中的文件列表 ..................... shengji.txt //复制想要下载的文件名 [R1-ftp]get 文件名 //下载相应的文件 [R1-ftp]q //返回R1设备 <R1>di…

观察级水下机器人使用系列之一系统构成

我们单位最近购买了一台观察级水下机器人&#xff08;ROV&#xff09;&#xff0c;型号为Seatronics Valor&#xff0c;工作最大水深300m。Valor ROV是一个计算机控制的电动ROV系统&#xff0c;使用Greensea Systems公司的OPENSEA控制系统。该系统需要一个三相电源380V输入&…

Model-Free TD Control: Sarsa

import time import random # 相对于Q 效果会差一些 class Env():def __init__(self, length, height):# define the height and length of the mapself.length lengthself.height height# define the agents start positionself.x 0self.y 0def render(self, frames50):fo…