1.2 数据模型

数据模型是对现实世界数据特征的抽象,是现实世界的模拟

数据模型是用来描述数据、组织数据和对数据进行操作的

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

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

2        容易为人所理解

3        便于在计算机上实现

数据模型是数据库系统的核心和基础

1.2.1        数据建模

数据建模:把现实世界中的具体事物抽象、组织为某一数据库管理系统 支持的数据模型

数据建模过程---两步抽象

现实世界中的客观对象抽象为概念模型

将现实世界抽象为信息世界 

把概念模型转换为某一数据库管理系统支持的数据模型 

将信息世界转换为机器世界

1.2.2        概念模型

概念模型的用途:

1        是现实世界到机器世界的一个中间层次

2        用于信息世界建模

3        现实世界到信息世界的第一层抽象

4        数据库设计的有力工具

5        数据库设计人员用户之间进行交流的语言

对概念模型的基本要求:

1        较强的语义表达能力

1        简单、清晰、易于用户理解

1.         信息世界中的基本概念

(1)实体entity):客观存在并可相互区别的事物称为实体 ,可以是具体的人、事、物、抽象的概念或联系。

(2)属性attribute):实体所具有的某一特性称为属性, 一个实体可以由若干个属性来刻画。

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

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

(5)实体集entity set):同一类型实体的集合称为实体集。

(6)联系relationship): 现实世界中事物内部以及事物之间的联系在信息世界 中反映为实体(型)内部的联系和实体(型)之间的联系。 实体内部的联系通常是指组成实体的各属性之间的联系 。实体之间的联系通常是指不同实体集之间的联系 。实体之间的联系有一对一、一对多和多对多等多种类型。

2.        实体-联系模型

实体-联系方法Entity-Relationship Approach) :用E-R图来描述现实世界的概念模型 ,E-R方法或E-R模型。

1.2.3        数据模型三要素

1.        数据结构 

2.        数据操纵 

3.        完整性约束

1.         数据结构

数据结构:描述数据库的组成对象以及对象之间的联系。

描述的内容 :与对象的类型、内容、性质有关 ,与数据之间联系有关。

数据结构是对系统静态特性的描述。

2.         数据操纵

数据操纵:对数据库中各种对象(型)的实例(值)允许执行的 操作的集合,包括操作及有关的操作规则。

数据库主要操作:查询 ,更新(包括插入、删除、修改)。

数据模型必须定义:

1        操作的确切含义

2        操作符号

3        操作规则(如优先级)

4实现操作的语言

数据操纵是对系统动态特性的描述

3.         完整性约束

完整性约束:一组完整性规则 。

完整性规则:给定的数据模型中数据及其联系所具有的制约和依存规则 ,限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、 有效和相容。

数据模型对完整性约束条件的定义 :反映和规定必须遵守的基本的通用的完整性约束 ,例如,在关系模型中,任何关系必须满足实体完整性和参照完整性,数据模型都是逻辑上的。

物理模型:数据模型以一定的组织方式存储在数据库管理系统中, 是数据模型在数据库管理系统内部的物理存储结构 ,描述数据在数据库管理系统内部的数据组织和存取方法的实现,包括存储结构和索引结构的物理实现。

1.2.4        层次模型

层次模型实体用记录表示 ,实体的属性对应记录的数据项(或字段) ,实体之间的联系转换成记录之间的两两联系 ,数据结构的单位是基本层次联系 ,是指两个记录以及它们之间的一对多(包括一对一)的联系。

层次模型是数据库系统中最早出现的数据模型。

层次数据库系统的典型代表是IBM公司的IMS(Information Management System。 

层次模型用树形结构来表示各类实体以及实体间的联系。

1.         层次模型的数据结构

 满足下面两个条件的基本层次联系的集合为层次模型:

1. 有且只有一个结点没有双亲结点,这个结点称为根结点。

2. 根以外的其它结点有且只有一个双亲结点 。

层次模型中的几个术语 :根结点,双亲结点,兄弟结点,叶结点。

层次模型的特点: n

1        结点的双亲唯一的 。

2        只能直接处理一对多的实体联系 。

3        每个结点表示一个记录类型,记录类型之间的联系用结点之间的连线(有向边)表示 。

4        各个记录类型、同一记录类型中各个字段不能同名 。

5        每个记录类型可以定义一个排序字段,也称为码字段 。

6        任何记录值只有按其路径查看,没有一个子女记录值能够脱离双亲记录值而独立存在。

2. 层次模型的数据操纵与完整性约束

层次模型的数据操纵: 查询,插入,删除,更新。

层次模型的完整性约束:

1        无相应的双亲结点值就不能插入子女结点值。

2        如果删除双亲结点值,则相应的子女结点值也被同时删除。 

3        更新操作时,应更新所有相应记录,以保证数据的一致性。

3.        层次模型的优缺点

层次模型优点 

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

查询效率高 ,层次模型中记录之间的联系用有向边表示,就是记录之间的存取路径。

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

层次模型缺点 

很多联系是非层次性,不适合用层次模型表示。

一个结点具有多个双亲结点,只能通过冗余数据(易产生不 一致性)或创建非自然的数据结构(虚拟结点)来解决。

对插入和删除操作的限制多,应用程序的编写比较复杂

查询子女结点必须通过双亲结点。

层次命令趋于程序化

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

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

相关文章

08. Springboot集成webmagic实现网页爬虫

目录 1、前言 2、WebMagic 3、Springboot集成Webmagic 3.1、创建Springboot,并引入webmagic依赖 3.2、定义PageProcessor 3.3、元素选择 3.3.1、F12查看网页元素 3.3.2、元素选择 3.3.3、注意事项 4、小结 1、前言 在信息化的时代,网络爬虫已…

QT的绘图系统QPainterDevice与文件系统QIODevice

QT的绘图系统(QPainterDevice)与文件系统(QIODevice) 文章目录 1、Qt 的绘图系统1、QPainter的使用2、QPen(画笔)及QBursh(画刷)3、手动更新窗口4、绘图设备1、四种绘图设备的 区别2、 QBitmap3…

零食折扣店,注定昙花一现?

年终岁末,又到了各类休闲零食产品一年一度的销售旺季。与过去不同的是,近年来的休闲零食赛道正因大量零食折扣店的涌现而显得热闹非凡。 随着主打折扣、低价的零食折扣店成为消费者特别是三四线下沉市场消费者的新宠,资本开始涌入并快速推动…

SpringCloud之OpenFeign的学习、快速上手

1、什么是OpenFeign OpenFeign简化了Http的开发。在RestTemplate的基础上做了封装,在微服务中的服务调用发送网络请求起到了重要的作用,简化了开发,可以让我们跟写接口一样调其他服务。 并且OpenFeign内置了Ribbon实现负载均衡。 官方文档…

69.使用Go标准库compress/gzip压缩数据存入Redis避免BigKey

文章目录 一:简介二:Go标准库compress/gzip包介绍ConstantsVariablestype Headertype Reader 三:代码实践1、压缩与解压工具包2、单元测试3、为何压缩后还要用base64编码 代码地址: https://gitee.com/lymgoforIT/golang-trick/t…

SpringBoot3整合OpenAPI3(Swagger3)

文章目录 一、引入依赖二、使用1. OpenAPIDefinition Info2. Tag3. Operation4. Parameter5. Schema6. ApiResponse swagger2更新到3后&#xff0c;再使用方法上发生了很大的变化&#xff0c;名称也变为OpenAPI3。 官方文档 一、引入依赖 <dependency><groupId>…

汇编语言学习1

Compiler Explorer (godbolt.org) 这个网站可以把我们写的C语言等实时翻译为汇编等语言&#xff0c;便于参考 一个不错的视频讲解 riscv(RISC-V)指令集(MIT) A01 Introduction_哔哩哔哩_bilibili risc-v汇编中&#xff0c;a0, a1, ... 用来传送函数参数&#xff0c;a0, a1用来…

深度解析Python关键字:掌握核心语法的基石(新版本35+4)

目录 关键字 keyword 关键字列表 kwlist softkwlist 关键字分类 数据类型 True、False None 运算类型 and、or、not in is 模块导入 import 辅助关键字 from、as 上下文管理 with 占位语句 pass 流程控制 if、elif、else for while break、continue…

【AI】深度学习在编码中的应用(8)

接上文&#xff0c;本文来梳理和学习智能编码中&#xff0c; 基于残差编码的框架。 智能图像编解码器的成功也推动了智能视频编解码器的发展。传统的视频压缩方法依靠预测编码对运动信息和残差信息分别进行编码。根据时-空域冗余消除方式和阶段不同&#xff0c;现有相关方法可…

字符串操作scanf与gets的区别

在c语言中对于字符串的输入 scanf char str[20]; scanf("%s",str); gets char str[20]; gets(str); 区别&#xff1a; 1. scanf不能获取空格之后的字符串 例如&#xff1a; "how are you" 使用scanf("%s",str)只能获取到 "how&q…

常见异常类及异常对象属性

程序运行的过程中&#xff0c;会发生各种非正常状况&#xff0c;比如程序运行时磁盘空间不足&#xff0c;网络连接中断&#xff0c;被操作的文件不存在。(异常在程序运行时发生)   针对这种情况下&#xff0c;C#程序引入了异常处理机制&#xff0c;通过异常处理机制对程序运行…

第十回 朱贵水亭施号箭 林冲雪夜上梁山-FreeBSD/Linux 控制台基础操作

林冲被众庄客捉住&#xff0c;吊在门楼下&#xff0c;正被打时&#xff0c;柴进来了&#xff0c;赶快把林冲救下来。原来这是柴进打猎用的小庄子&#xff0c; 林冲就把火烧草料场一事跟柴进详细的说了。柴进说兄弟真是命运多磨难啊。林冲住了几日&#xff0c;恐怕连累柴进&…

柠檬微趣面试准备

简单介绍一下spring原理 Spring框架是一个开源的Java应用程序框架&#xff0c;它提供了广泛的基础设施支持&#xff0c;帮助开发者构建Java应用程序。Spring的设计原则包括依赖注入&#xff08;DI&#xff09;和面向切面编程&#xff08;AOP&#xff09;等&#xff0c;以促使代…

rust嵌入式之用类函数宏简写状态机定义

笔者一向认为&#xff0c;用有限状态自动机来做硬件控制是最好的选择&#xff0c;同时又倾向于用文本定义来定义状态机是更好的做法。所以此次用rust开发嵌入式自然也是如此。 状态机实现起来很简单&#xff0c;关键是用文本来定义状态机&#xff0c;在rust中&#xff0c;自然…

Laykefu客服系统 任意文件上传漏洞复现

0x01 产品简介 Laykefu 是一款基于workerman+gatawayworker+thinkphp5搭建的全功能webim客服系统,旨在帮助企业有效管理和提供优质的客户服务。 0x02 漏洞概述 Laykefu客服系统/admin/users/upavatar.html接口处存在文件上传漏洞,而且当请求中Cookie中的”user_name“不为…

[学习笔记]刘知远团队大模型技术与交叉应用L3-Transformer_and_PLMs

RNN存在信息瓶颈的问题。 注意力机制的核心就是在decoder的每一步&#xff0c;都把encoder的所有向量提供给decoder模型。 具体的例子 先获得encoder隐向量的一个注意力分数。 注意力机制的各种变体 一&#xff1a;直接点积 二&#xff1a;中间乘以一个矩阵 三&#xff1a;…

找不到vcruntime140_1.dll无法继续执行怎么办?全面分析修复方法

当系统提示vcruntime140_1.dll文件出现错误时&#xff0c;可能会引发一系列影响计算机正常运行的问题。这个特定的动态链接库文件&#xff08;DLL&#xff09;是Microsoft Visual C Redistributable的一部分&#xff0c;对于许多基于Windows的应用程序来说至关重要。一旦vcrunt…

如何在供应链管理中有效管理供应商和采购成本

一、管理供应商 在供应链管理中,供应商的管理是至关重要的环节。有效的供应商管理不仅可以确保稳定的原材料供应,还可以降低采购成本,提高企业的竞争力。以下是一些管理供应商的有效方法: 供应商评估与选择在选择供应商之前,企业需要对潜在供应商进行全面的评估。评估标准…

回归预测 | Python基于ALO-BiGRU蚁狮优化算法优化双向BiGRU多变量回归预测+适应度曲线+多个评价指标

目录 效果一览基本介绍程序设计参考资料 效果一览 基本介绍 ALO算法是Mirjalili于2015提出的一种新型元启发式群智能算法。由于引入了随机游走、轮盘赌策略及精英策略&#xff0c;使得 ALO 算法成为一种种群多样、寻优性能强、调节参数少、易于实现的搜索技术 python代码 优化参…

JS之Math

一提到数学&#xff0c;就想到被数学支配的噩梦&#xff0c;只不过这个数学用在了代码当中&#xff0c;那么代码当中的数学对象又是什么样的呢&#xff1f;让我为大家简单介绍一下吧&#xff01; 数学对象常用方法&#xff1a; 常用方法简述ceil向上取整floor向下取整round四舍…