数据库系统概论(超详解!!!) 第二节 数据模型

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

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

(2) 逻辑模型 ,逻辑模型主要包括网状模型、层次模型、关系模型、面向对象数据模型、对象关系数据模型、半结构化数据模型等。按计算机系统的观点对数据建模,用于DBMS实现。

2.概念模型

概念模型的用途 :

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

对概念模型的基本要求 :较强的语义表达能力 ,简单、清晰、易于用户理解.

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

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

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

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

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

(5)实体集(Entity Set) 同一类型实体的集合称为实体集

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

2. 概念模型的一种表示方法:实体-联系方法

用E-R图来描述现实世界的概念模型 ,E-R方法也称为E-R模型

3.逻辑模型

1.数据模型的组成要素

1.数据结构 ---描述系统的静态特性

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

描述的内容:

1. 与对象的类型、内容、性质有关

2. 与数据之间联系有关

2.数据操作 ---描述系统的动态特性

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

数据操作的类型 :查询 ,更新(包括插入、删除、修改)。

数据模型对操作的定义 :操作的确切含义, 操作符号 ,操作规则(如优先级) 实现操作的语言。

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

数据的完整性约束条件 :

一组完整性规则的集合。

完整性规则:给定的数据模型中数据及其联系所具有的制约和依存规则。

用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效和相容。

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

4.常用的数据模型(数据的逻辑模型)

层次模型(Hierarchical Model)

网状模型(Network Model)

关系模型(Relational Model))

面向对象数据模型(Object Oriented Data Model)

对象关系数据模型(Object Relational Data Model)

半结构化数据模型(Semistruture Data Model)

1.格式化模型

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

2.层次结构

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

1968年,IBM公司的IMS系统,是基于层次模型的DBMS,也是最早的DBMS。

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

层次模型的表示方法:

实体型:用记录类型描述,每个结点表示一个记录类型(实体)

属性:用字段描述,每个记录类型可包含多个字段。

联系:用结点之间的连线表示记录类型(实体)之间的一对多的父子联系。

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

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

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

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

层次模型的特点:

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

冗余结点特点:结构清晰,浪费空间

虚拟结点特点:用指引元代替冗余结点。

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

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

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

缺点: 结点之间的多对多联系表示不自然。 对插入和删除操作的限制多,应用程序的编写比较复杂 。查询子女结点必须通过双亲结点。

3.网状结构

网状模型的表示方法(与层次数据模型相同)

实体型:用记录类型描述,每个结点表示一个记录类型(实体)

属性:用字段描述,每个记录类型可包含多个字段。

联系:用结点之间的连线表示记录类型(实体)之间的一对多的父子联系。

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

1. 允许一个以上的结点无双亲;

2. 一个结点可以有多于一个的双亲。

网状模型与层次模型的区别 :网状模型允许多个结点没有双亲结点。 网状模型允许结点有多个双亲结点 。网状模型允许两个结点之间有多种联系(复合联系)。 要为每个联系命名。 网状模型可以更直接地描述现实世界 。层次模型实际上是网状模型的一个特例。

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

多对多联系在网状模型中的表示 :用网状模型间接表示多对多联系

方法: 将多对多联系直接分解成一对多联系

网状模型的操纵与完整性约束:

网状数据库系统(如DBTG)对数据操纵加 了一些限制,提供了一定的完整性约束 。

码:唯一标识记录的数据项的集合

一个联系中双亲记录与子女记录之间是一对多联系

支持双亲记录和子女记录之间某些约束条件

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

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

4.关系模型

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

基本概念:

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

元组(Tuple) 表中的一行即为一个元组

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

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

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

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

关系模式: 对关系的描述

关系必须是规范化的,满足一定的规范条件

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

数据操作是集合操作,操作对象和操作结果都是关系 :查询, 插入, 删除, 更新。

关系的完整性约束条件 :实体完整性 ,参照完整性 ,用户定义的完整性。

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

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

5.数据库系统的结构

从数据库应用开发人员角度看,数据库系统通常采用三级模式结构,是数据库系统内部的系统结构

从数据库最终用户角度看,数据库系统的结构分为: 单用户结构 ,主从式结构 ,分布式结构 ,客户-服务器 ,浏览器-应用服务器/数据库服务器多层结构等。

1.客户机/服务器模式   Client/Server,简称C/S

2.浏览器/服务器模式   Browser/Server,简称B/S

两种模式比较 ,B/S模式可以认为是C/S模式的一种特例。

C/S模式:        

缺点:C/S模式维护、升级烦琐        

优点:响应速度快,功能完善

B/S模式:        

缺点:响应速度慢,功能不是很完善。        

优点:维护、升级简单      

3.三级模式结构

1.模式

模式(也称逻辑模式) 数据库中全体数据的逻辑结构和特征的描述 。所有用户的公共数据视图 。

一个数据库只有一个模式。

模式的地位:是数据库系统模式结构的中间层 。与数据的物理存储细节和硬件环境无关。 与具体的应用程序、开发工具及高级程序设计语言无关 。全局逻辑结构是数据库的中心与关键。 独立于数据库的其他层次。 设计数据库模式结构时应首先确定数据库的逻辑模式。

模式的定义: 数据的逻辑结构(数据项的名字、类型、取值范围等)。 数据之间的联系。 数据有关的安全性、完整性要求。

2.外模式

外模式(也称子模式或用户模式) 数据库用户(包括应用程序员和最终用户)使用的局部数据的逻辑结构和特征的描述 .数据库用户的数据视图,是与某一应用有关的数据的逻辑表示 。独立于存储模式和存储设备。

外模式的地位:介于模式与应用之间

模式与外模式的关系:一对多 。外模式通常是模式的子集。 一个数据库可以有多个外模式。反映了不同的用户的应用需求、看待数据的方式、对数据保密的要求。 对模式中同一数据,在外模式中的结构、类型、长度、保密级别等都可以不同 。

外模式与应用的关系:一对多。 同一外模式也可以为某一用户的多个应用系统所使用。 但一个应用程序只能使用一个外模式。

外模式的用途:保证数据库安全性的一个有力措施 。每个用户只能看见和访问所对应的外模式中的数据。 当应用需求发生较大变化,相应外模式不能满足其视图要求时,该外模式就得做相应改动 。设计外模式时应充分考虑到应用的扩充性。

3.内模式

内模式(也称存储模式) 是数据物理结构和存储方式的描述。 是数据在数据库内部的表示方式。 记录的存储方式(例如,顺序存储,按照B树结构存储,按hash方法存储等) 。索引的组织方式 数据是否压缩存储。 数据是否加密 。数据存储记录结构的规定。

一个数据库只有一个内模式

数据库的内模式 ,依赖于它的全局逻辑结构 。独立于数据库的用户视图,即外模式。 独立于具体的存储设备   。将全局逻辑结构中所定义的数据结构及其联系按照一定的物理存储策略进行组织,以达到较好的时间与空间效率。

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

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

相关文章

异地组网搭建方案

在这个信息爆炸的时代,人与人之间的联系变得越来越密切,而异地组网搭建方案也因此变得越 来越重要。无论是跨国企业、远程学习还是国际合作,构建一个快捷稳定的异地组网系统,已经 成为许多组织和个人不可或缺的需求。接下来&#…

运维随录实战(2)之k8s部署应用

一, 创建.gitlab-ci.yml文件 架构流程 文件内容 stages: #设置流水线模版- build # 编译- source2img- deploy # 发布variables: # 设置全局变量MAVEN_PATH: .m2MAVEM_IMAGE: maven:3.8.5-openjdk-17-slim # maven 打包使用的镜像MAVEN_CLI_OPTS: "-s $MAVEN_PATH/set…

R语言安装和简单入门HelloWorld用法

R语言安装和简单入门HelloWorld用法 #R语言安装地址 https://www.r-project.org/ click->CRAN mirror->选择China下列表: https://mirrors.tuna.tsinghua.edu.cn/CRAN/ 选择Download R for Windows 选择base Download R-4.3.2 for Windows 下载文件R-4.3.2-…

身份证识别系统(安卓)

设计内容与要求: 通过手机摄像头捕获身份证信息,将身份证上的姓名、性别、出生年月、身份证号码保存在数据库中。1)所开发Apps软件至少需由3-5个以上功能性界面组成。要求:界面美观整洁、方便应用;可以使用Android原生…

【Unity】使用Unity实现双屏显示

引言 在使用Unity的时候,有时候会需要使用双屏显示 简单来说就是需要在两个显示器中显示游戏画面 双屏显示注意点: ①双屏显示需要电脑有两个显示 ②双屏显示只能用于PC端 ③不仅仅可以双屏,Unity最大支持8屏显示 1.相机设置 ①我们打开Un…

VMwareWorkstation17.0虚拟机安装搭建PcDos2000虚拟机(完整图文详细步骤教程)

VMwareWorkstation17.0虚拟机安装搭建PcDos2000虚拟机(完整图文详细步骤教程) 一、PcDos20001.PcDos2000简介2.PcDos2000下载 二、创建PcDos2000虚拟机1.新建虚拟机2.类型配置3.类型配置4.选择版本5.命名、存位置6.磁盘容量7.调整虚拟配置7.1 调整虚拟配…

【python】堆排序

堆的概念 堆:一种特殊完全二叉树,也就是二叉树必须全部是满的,但是最后一排可以从右向左缺失。 大根堆:每个节点都比他的子节点大 小根堆:每个节点都比子节点小 堆在代码中的形式 堆在代码中实际上就是列表&#…

蓝桥杯倒计时 41天 - KMP 算法

KMP算法 KMP算法是一种字符串匹配算法,用于匹配模式串P在文本串S中出现的所有位置。 例如S“ababac,P“aba”,那么出现的所有位置是13。 在初学KMP时,我们只需要记住和学会使用模板即可,对其原理只需简单理解&#xff…

一文搞懂Stable Diffusion中的提示词

欢迎来到Stable Diffusion的世界,这里是AI和创意的交汇点。在这里,我们将一起探索如何通过精心设计的提示词,指引这一强大的AI工具创造出令人叹为观止的图像。无论你是技术爱好者,还是对AI艺术充满好奇的初学者,这里都…

excel数值无法左对齐

右键,单元格格式 修改为常规 解决

力扣--动态规划64.最小路径和

思路分析: 基本思路: 本算法采用动态规划的思想,通过构建一个额外的二维矢量 dp 来存储每个位置的最小路径和。最终目标是求得右下角位置的最小路径和,即整个网格的最小路径和。 初始化: 初始化矢量的行数和列数&…

【AI视野·今日Sound 声学论文速览 第五十一期】Mon, 4 Mar 2024

AI视野今日CS.Sound 声学论文速览 Mon, 4 Mar 2024 Totally 6 papers 👉上期速览✈更多精彩请移步主页 Daily Sound Papers VoxGenesis: Unsupervised Discovery of Latent Speaker Manifold for Speech Synthesis Authors Weiwei Lin, Chenhang He, Man Wai Mak, …

Stable Diffusion——Animate Diff一键AI图像转视频

前言 AnimateDiff 是一个实用框架,可以对文本生成图像模型进行动画处理,无需进行特定模型调整,即可为大多数现有的个性化文本转图像模型提供动画化能力。而Animatediff 已更新至 2.0 版本和3.0两个版本,相较于 1.0 版本&#xff…

【学位论文】上海交通大学 研究生学位论文 本地保存

上海交大研究生学位论文网:http://thesis.lib.sjtu.edu.cn/ (只能校内访问或SJTU VPN访问) 如果希望下载论文,需要参考:https://github.com/olixu/SJTU_Thesis_Crawler 安装过程 安装过程的几个坑: &a…

RabbitMQ-TTL/死信队列/延迟队列高级特性

文章目录 TTL死信队列消息成为死信的三种情况队列如何绑定死信交换机 延迟队列RabbitMQ如何实现延迟队列 总结来源B站黑马程序员 TTL TTLTTL(Time To Live):存活时间/过期时间当信息到达存活时间后,还没有被消费,会被自动清除。RabbitMQ可以对消息设置过…

vue修改打包后静态资源路径的修改

不得不说,ai是真的强大,直接自己生成。

【AI Agent系列】【MetaGPT多智能体学习】3. 开发一个简单的多智能体系统,兼看MetaGPT多智能体运行机制

本系列文章跟随《MetaGPT多智能体课程》(https://github.com/datawhalechina/hugging-multi-agent),深入理解并实践多智能体系统的开发。 本文为该课程的第四章(多智能体开发)的第一篇笔记。主要记录下多智能体的运行…

[Flutter get_cli] 配置 sub_folder:false报错

flutter get_cli 配置 get_cli:sub_folder:false报错如下 Because getx_cli_learn01 depends on get_cli from unknown source "sub_folder", version solving failed. 原因是在 pubspec.yaml文件中, get_cli:sub_folder:false要和 dependencies: xxx dev_depe…

HTML---表单验证

文章目录 目录 本章目标 一.表单验证概述 二.表单选择器 属性过滤选择器 三.表单验证 表单验证的方法 总结 本章目标 掌握String对象的用法会使用表单选择器的选择页面元素会使用JQuery事件进行表单验证Ajax的概念和作用 一.表单验证概述 前端中的表单验证是在用户提交表…

vs2022 qt 关于lnk2001和2019同时报错的问题

需要像qt中添加模块,这里,缺少qtopenglwidgets模块