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

1.2 数据模型 数据库系统概论

目录

1.2.1 两类数据模型

1.2.2 概念模型

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

(1)实体

(2)属性

(3)码

(4)实体型

(5)实体集

(6)联系

2.两个实体型之间的联系

1.一对一联系(1:1)

2.一对多联系(1:n)

3.多对多联系(m:n)

1.2.3 数据模型的组成要素

1.数据结构

2.数据操作

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

1.2.4 常用的数据模型

1.2.5 层次模型

1.2.6 网状模型

1.2.7 关系模型

术语


数据模型对现实世界数据特征的抽象。数据模型就是现实世界的模拟。一个数据模型应满足三方面的要求1.能比较真实地模拟现实世界。2.容易为人理解。3.便于在计算机上实现。数据模型是数据库系统的核心和基础。

1.2.1 两类数据模型

数据模型分为两类(两个不同的层次):1.概念模型(信息模型) 按用户的观点来对数据和信息建模,用于数据库设计。2.逻辑模型和物理模型 逻辑模型主要包括网状模型、层次模型、关系模型、面向对象数据模型、对象关系数据模型、半结构化数据模型等。是按计算机系统的观点对数据建模,用于DBMS的实现。物理模型是对数据最底层的抽象,用于描述数据在系统内部的表示方法和存取方法。

客观对象的抽象过程--两步抽象1.现实世界中的客观对象抽象为概念模型 2.把概念模型转换为某一数据库管理系统支持的数据模型。

1.2.2 概念模型

概念模型实际上是现实世界到机器世界的一个中间层次。概念模型用于信息世界的建模,是现实世界到信息世界的第一层抽象,是数据库实际人员进行数据库设计的有力工具,也是数据库设计人员和用户之间进行交流的语言。

概念模型一方面应该具有较强的语义表达能力,能够方便、直接地表达应用中的各种语义知识,另一方面它还应该简单、清晰、易于用户理解。

1.信息世界中的基本概念
(1)实体

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

(2)属性

实体所具有的某一特性称为属性。一个实体可以由若干属性来刻画。

(3)码

唯一标识实体的属性集称为码。

(4)实体型

具有相同属性的实体必然具有共同的特征和性质。用实体名及其属性名集合来抽象和刻画同类实体称为实体型

(5)实体集

同一类型实体的集合称为实体集。

(6)联系

现实世界中,事物内部以及事物之间的联系在信息世界中反映为实体内部的联系和实体之间的联系。(ps:实体内部之间的联系:指组成实体的各属性之间的联系,实体之间的联系:指不同实体集之间的联系)

2.两个实体型之间的联系

实体之间有一对一,一对多和多对多等多种类型。如下图:

1.一对一联系(1:1)

定义如果对于实体集A中的每一个实体,实体集 B中至多有一个(也可以没有)实体与之联系, 反之亦然,则称实体集A与实体集B具有一对一联系,记为1:1。

2.一对多联系(1:n)

定义:如果对于实体集A中的每一个实体,实 体集B中有n个实体(n≥0)与之联系,反之, 对于实体集B中的每一个实体,实体集A中 至多只有一个实体与之联系,则称实体集A 与实体集B有一对多联系,记为1:n。

3.多对多联系(m:n)

定义如果对于实体集A中的每一个实体,实体 集B中有n个实体(n≥0)与之联系,反之, 对于实体集B中的每一个实体,实体集A中 也有m个实体(m≥0)与之联系,则称实体 集A与实体B具有多对多联系,记为m:n。

实体-联系方法,是概念模型的一种表示方法。例如:

1.2.3 数据模型的组成要素

数据模型: 严格定义的一组概念的集合。能精确地描述系统的静态特性、动态特性和完整性约束条件。

组成三要素:1.数据结构(描述系统的静态特性)2.数据操作(描述系统的动态特性)3.数据的完整性约束条件。

1.数据结构

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

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

按照数据结构的类型命名数据模型:层次结构—层次模型、网状结构-网状模型、关系结构—关系模型。

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

2.数据操作

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

数据操作的类型:查询,更新。

数据模型对操作的定义:操作的确切含义、操作符号、操作规则;实现操作的语言。

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

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

数据的完整性约束条件是一组完整性规则的集合。

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

数据模型应反映和规定必须遵守的基本的、通用的完整性约束条件。提供定义完整性约束条件的机制,以反映具体应用所涉及的数据必须遵守的特定的语义约束条件。

1.2.4 常用的数据模型

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

基本层次联系

在格式化模型中实体用记录表示,实体的属性对应记录的数据项 (或字段)。实体之间的联系在格式化模型中转换成记录之间的两两联系,是格式化模型中数据结构的单位。

定义:是指两个记录以及它们之间的一对多(包括一对一)的联系。

1.2.5 层次模型

层次模型是数据库系统中最早出现的数据模型。典型代表是IBM公司的IMS(Information Management System)数据库管理系统。用树形结构来表示各类实体以及实体间的联系。

表示方法实体型:用记录类型描述,每个结点表示一个记录类型(实体)。属性:用字段描述,每个记录类型包含若干个字段。联系:用结点之间的连线表示记录类型(实体)之间的一对多的父 子联系。

满足下面两个条件的基本层次联系的集合为层次模型1. 有且只有一个结点没有双亲结点,这个结点称为根结点 2. 根以外的其它结点有且只有一个双亲结点。

层次模型的特点1.结点的双亲是唯一的 2.只能直接处理一对多的实体联系 3.每个记录类型可以定义一个 排序字段,也称为码字段 4.任何记录值只有按其路径查看时,才能显出它的全部意义。5.没有一个子女记录值能够脱离双亲记录值而独立存在。

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

层次模型的完整性约束条件1.无相应的双亲结点值就不能插入子女结点值 2.如果删除双亲结点值,则相应的子女结点值也被同时删除 3.更新操作时,应更新所有相应记录,以保证数据的一致。

层次模型的优点1.层次模型的数据结构比较简单清晰 2. 查询效率高,性能优于关系模型,不低于网状模型 3. 层次数据模型提供了良好的完整性支持。

层次模型的缺点1.结点之间的多对多联系表示不自然 2.对插入和删除操作的限制多,应用程序的编写比较复杂 3. 查询子女结点必须通过双亲结点 4.层次命令趋于程序化。

1.2.6 网状模型

网状数据库系统采用网状结构来表示各类实体以及实体间的联系。

定义:满足下面两个条件的基本层次联系的集合: 1. 允许一个以上的结点无双亲; 2. 一个结点可以有多于一个的双亲。

特点:1.允许多个结点没有双亲结点 2.允许结点有多个双亲结点 3.允许两个结点之间有多种联系(复合联系) 4.可以更直接地描述现实世界。

网状模型中子女结点与双亲结点的联系可以不唯一要为每个联系命名,并指出与该联系有关的双亲记录和子女记录。

网状模型没有如层次模型那样严格的完整性约束条件,实际的网状数据库系统(如DBTG)对数据操纵加了一些限制,提供了一定的完整性约束1.支持码的概念:唯一标识记录的数据项的集合 ,取唯一的值; 2.保证一个联系中双亲记录与子女记录之间是一对多联系 3.可以支持双亲记录和子女记录之间某些约束条件。

优点能够更为直接地描述现实世界,如一个结点可以有多个双亲 ;具有良好的性能,存取效率较高。

缺点结构比较复杂,而且随着应用环境的扩大,数据库的结构就变得越来越复杂,不利于最终用户掌握 ;DDL、DML语言复杂,用户不容易使用 ;记录之间联系是通过存取路径实现的,用户必须了解系统结构的细节(加重了程序员的负担)

1.2.7 关系模型

关系数据库系统采用关系模型作为数据的组织方式。计算机厂商新推出的数据库管理系统几乎都支持关系模型

在用户观点下,关系模型中数据的逻辑结构是一张二维表, 它由行和列组成。

术语

关系  一个关系对应通常说的一张表

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

属性  表中的一列即为一个属性,给每一个属性起一个名称即属性名

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

  是一组具有相同数据类型的值的集合。属性的取值范围 来自某个域。

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

关系模式 对关系的描述:关系名(属性1,属性2,…,属性n)

关系必须是规范化的,满足一定的规范条件,最基本的规范条件关系的每一个分量必须是一个不可分的数据项, 不允许表中还有表.

关系模型的操纵查询,插入,删除,更新。

存取路径对用户隐蔽,用户只要指出“干什么” ,不必详细说明“怎么干”(提高数据的独立性,提高用户的生产率)

关系的完整性约束条件:1.实体完整性 2.参照完整性 3.用户定义的完整性

优点:建立在严格的数学概念(关系)的基础上;概念单一 ,实体和各类联系都用关系来表示 ,对数据的检索结果也是关系 ;关系模型的存取路径对用户透明 ,具有更高的数据独立性,更好的安全保密性 ,简化了程序员的工作和数据库开发建立的工作

缺点存取路径对用户透明,查询效率往往不如格式化数据模型 ;为提高性能,必须对用户的查询请求进行优化,增加了开发数据库管理系统的难度。

相关文章:

1.2 数据模型 数据库系统概论

目录 1.2.1 两类数据模型 1.2.2 概念模型 1.信息世界中的基本概念 (1)实体 (2)属性 (3)码 (4)实体型 (5)实体集 (6)联系 2.…...

C#中openFileDialog 对话框不在最顶层,TopMost的异常情况

重点&#xff01;&#xff01;&#xff01;若 当前窗体this的TopMost是false&#xff0c;可以设置为true&#xff0c;这样打开的对话框就是最顶层 /// <summary> /// 设置窗体TopMost&#xff0c;缺点和其他程序ide有冲突。例如VS有断点的调试会卡死 /// </summary&g…...

信息安全与阿里云等保三级方案实践总结

信息安全在当今数字化时代变得至关重要&#xff0c;企业和组织需要采取有效措施来保护其数据和信息资产。阿里云作为中国领先的云服务提供商&#xff0c;提供了等保三级方案&#xff0c;帮助用户满足国家信息安全等级保护的要求。本文将探讨信息安全和阿里云等保三级方案的重要…...

嵌入式学习记录——线程

线程基本概念: 线程:线程是一个轻量级的进程,位于进程空间内部,一个进程中可以创建多个线程 1.线程创建: 线程独占栈空间,文本段、数据段和堆区与进程共享 2.线程调度: 与进程调度是一样的 宏观并行,微观串行 3.线程消亡: 与进程消亡是一样的 4.进程和线程…...

同步服务器操作系统公网仓库到本地 _ 统信UOS _ 麒麟KYLINOS

原文链接&#xff1a;同步服务器操作系统公网仓库到本地 | 统信UOS | 麒麟KYLINOS 在如今快速发展的信息技术时代&#xff0c;维护和更新服务器操作系统变得越来越重要。无论是为了提高安全性、增加新功能还是提升系统稳定性&#xff0c;同步公网源仓库到本地都是一个关键步骤。…...

【数仓】flume常见配置总结,以及示例

相关文章 【数仓】基本概念、知识普及、核心技术【数仓】数据分层概念以及相关逻辑【数仓】Hadoop软件安装及使用&#xff08;集群配置&#xff09;【数仓】Hadoop集群配置常用参数说明【数仓】zookeeper软件安装及集群配置【数仓】kafka软件安装及集群配置【数仓】flume软件安…...

统计信息锁定

在导入成功后我要收集下这些表的信息&#xff0c;结果发现好几张表都没法收集&#xff0c;用DBMS_STATS包显示ORA-20005&#xff1a;object statistics are locked (stattype ALL)&#xff0c;用Analyze命令显示ORA-38029&#xff1a; 对象统计信息已锁定。 解决办法很明确&a…...

光猫改为bridge模式

注意事项&#xff1a; 改成桥接模式后&#xff0c;光猫将不再拨号上网&#xff0c;建议提前记录自己的宽带账号&#xff0c;打10010申请修改自己的宽带密码。 光猫改好桥接之后&#xff0c;把宽带账号和密码输入到负责拨号上网的终端设备中&#xff0c;完成宽带PPPOE拨号设置。…...

回溯算法01-组合(Java)

1.组合 题目描述 给定两个整数 n 和 k&#xff0c;返回范围 [1, n] 中所有可能的 k 个数的组合。 你可以按 任何顺序 返回答案。 示例 1&#xff1a; 输入&#xff1a;n 4, k 2 输出&#xff1a; [[2,4],[3,4],[2,3],[1,2],[1,3],[1,4]]示例 2&#xff1a; 输入&#x…...

初始网络 --- 网络基础

目录 0、 前言 1、 计算机网络发展背景 1.1. 局域网(LAN) && 广域网(WAN) 2、 认识并理解协议 3、 初始网络协议 3.1. 协议分层 4、 TCP/IP 五层(或四层)模型 4.1. 简单了解TCP/IP层状体系 4.2. TCP/IP协议层状结构和计算机层状结构的关系 5、 OSI七层模型 …...

在Linux/Ubuntu/Debian中计算MD5,SHA256的方法

MD5&#xff08;消息摘要算法 5&#xff09;和 SHA-256&#xff08;安全哈希算法 256 位&#xff09;等流行的哈希算法广泛用于从任意数据生成固定大小的哈希值或校验和。 以下是这些算法及其计算方式的简要概述&#xff1a; MD5&#xff08;消息摘要算法5&#xff09;&#x…...

mybatis mysql insert 主键id为空

错误示范 java代码设置了param参数&#xff0c;但是sql 字段没有带上参数&#xff0c;例如 void insertV2(Param("historyDO") HistoryDO historyDO); <insert id"insertDuplicate" parameterType"com.test.entity.HistoryDO"keyProperty&…...

批次大小对ES写入性能影响初探

问题背景 ES使用bulk写入时每批次的大小对性能有什么影响&#xff1f;设置每批次多大为好&#xff1f; 一般来说&#xff0c;在Elasticsearch中&#xff0c;使用bulk API进行批量写入时&#xff0c;每批次的大小对性能有着显著的影响。具体来说&#xff0c;当批量请求的大小增…...

c语言十大核心用法

当然&#xff0c;以下是十个关于 C 语言用法的代码示例&#xff1a; 指针的基本用法&#xff1a; #include <stdio.h>int main() {int num 10;int *ptr;ptr &num;printf("The value of num is: %d\n", *ptr);return 0; }结构体的使用&#xff1a; #in…...

网页打开慢,这锅该谁背?

一、背景 工作中扯皮说不可避免且非常常见的事情. 开发与产品、开发和测试、前端和后端都会产生扯皮现象。今天要聊的一个问题就是前后端之间的扯皮问题。 网页打开太慢或者点击了某个按钮发现数据很久才显示出来&#xff0c;这个锅谁背? 做开发不能无凭据地胡乱甩锅, 我们…...

题目 1538: 蓝桥杯-格子位置

题目描述: 输入三个自然数N&#xff0c;i&#xff0c;j &#xff08;1< i< N&#xff0c;1< j< N&#xff09;&#xff0c;输出在一个N*N格的棋盘中&#xff0c;与格子&#xff08;i&#xff0c;j&#xff09;同行、同列、同一对角线的所有格子的位置。 样例解释…...

第十三届蓝桥杯嵌入式省赛程序设计详细题解

第十三届蓝桥杯嵌入式省赛题目相对于第十二届较为简单&#xff0c;没有那么多串口的数据处理以及判断&#xff01; 第十三届省赛主要是制作一个可由串口设置密码的密码锁。本实验中&#xff0c;我们将用到LED模块、按键模块、串口模块、定时器的PWM模块以及官方会提供源码的LC…...

Go 语言指针

1. 什么是指针&#xff1f; 在 Go 语言中&#xff0c;指针是一种特殊的数据类型&#xff0c;它存储了一个变量的内存地址。指针提供了直接访问和修改变量值的能力。 2. 指针的基本操作 2.1 声明指针 在 Go 中声明指针需要使用 * 符号&#xff0c;例如&#xff1a; var p *…...

指针运算笔试题解析

题目1&#xff1a; int main() { int a[5] { 1, 2, 3, 4, 5 }; int* ptr (int*)(&a 1); printf("%d %d", *(a 1), *(ptr - 1)); return 0; } ptr中存放了整个数组的地址&#xff0c;ptr是int*类型&#xff0c;&a1跳到5的地址后又被强制类…...

Matlab梁单元有限元编程 | 铁木辛柯梁 | 欧拉梁 | Matlab源码 | 理论文本

专栏导读 作者简介&#xff1a;工学博士&#xff0c;高级工程师&#xff0c;专注于工业软件算法研究本文已收录于专栏&#xff1a;《有限元编程从入门到精通》本专栏旨在提供 1.以案例的形式讲解各类有限元问题的程序实现&#xff0c;并提供所有案例完整源码&#xff1b;2.单元…...

多云管理“拦路虎”:深入解析网络互联、身份同步与成本可视化的技术复杂度​

一、引言&#xff1a;多云环境的技术复杂性本质​​ 企业采用多云策略已从技术选型升维至生存刚需。当业务系统分散部署在多个云平台时&#xff0c;​​基础设施的技术债呈现指数级积累​​。网络连接、身份认证、成本管理这三大核心挑战相互嵌套&#xff1a;跨云网络构建数据…...

测试微信模版消息推送

进入“开发接口管理”--“公众平台测试账号”&#xff0c;无需申请公众账号、可在测试账号中体验并测试微信公众平台所有高级接口。 获取access_token: 自定义模版消息&#xff1a; 关注测试号&#xff1a;扫二维码关注测试号。 发送模版消息&#xff1a; import requests da…...

CTF show Web 红包题第六弹

提示 1.不是SQL注入 2.需要找关键源码 思路 进入页面发现是一个登录框&#xff0c;很难让人不联想到SQL注入&#xff0c;但提示都说了不是SQL注入&#xff0c;所以就不往这方面想了 ​ 先查看一下网页源码&#xff0c;发现一段JavaScript代码&#xff0c;有一个关键类ctfs…...

Go 语言接口详解

Go 语言接口详解 核心概念 接口定义 在 Go 语言中&#xff0c;接口是一种抽象类型&#xff0c;它定义了一组方法的集合&#xff1a; // 定义接口 type Shape interface {Area() float64Perimeter() float64 } 接口实现 Go 接口的实现是隐式的&#xff1a; // 矩形结构体…...

Unit 1 深度强化学习简介

Deep RL Course ——Unit 1 Introduction 从理论和实践层面深入学习深度强化学习。学会使用知名的深度强化学习库&#xff0c;例如 Stable Baselines3、RL Baselines3 Zoo、Sample Factory 和 CleanRL。在独特的环境中训练智能体&#xff0c;比如 SnowballFight、Huggy the Do…...

浅谈不同二分算法的查找情况

二分算法原理比较简单&#xff0c;但是实际的算法模板却有很多&#xff0c;这一切都源于二分查找问题中的复杂情况和二分算法的边界处理&#xff0c;以下是博主对一些二分算法查找的情况分析。 需要说明的是&#xff0c;以下二分算法都是基于有序序列为升序有序的情况&#xf…...

.Net Framework 4/C# 关键字(非常用,持续更新...)

一、is 关键字 is 关键字用于检查对象是否于给定类型兼容,如果兼容将返回 true,如果不兼容则返回 false,在进行类型转换前,可以先使用 is 关键字判断对象是否与指定类型兼容,如果兼容才进行转换,这样的转换是安全的。 例如有:首先创建一个字符串对象,然后将字符串对象隐…...

#Uniapp篇:chrome调试unapp适配

chrome调试设备----使用Android模拟机开发调试移动端页面 Chrome://inspect/#devices MuMu模拟器Edge浏览器&#xff1a;Android原生APP嵌入的H5页面元素定位 chrome://inspect/#devices uniapp单位适配 根路径下 postcss.config.js 需要装这些插件 “postcss”: “^8.5.…...

Selenium常用函数介绍

目录 一&#xff0c;元素定位 1.1 cssSeector 1.2 xpath 二&#xff0c;操作测试对象 三&#xff0c;窗口 3.1 案例 3.2 窗口切换 3.3 窗口大小 3.4 屏幕截图 3.5 关闭窗口 四&#xff0c;弹窗 五&#xff0c;等待 六&#xff0c;导航 七&#xff0c;文件上传 …...

热烈祝贺埃文科技正式加入可信数据空间发展联盟

2025年4月29日&#xff0c;在福州举办的第八届数字中国建设峰会“可信数据空间分论坛”上&#xff0c;可信数据空间发展联盟正式宣告成立。国家数据局党组书记、局长刘烈宏出席并致辞&#xff0c;强调该联盟是推进全国一体化数据市场建设的关键抓手。 郑州埃文科技有限公司&am…...