数据库系统概论——绪论

news2024/9/27 9:27:53

1、绪论

1.1、数据库系统概述

数据库系统的构成示意图

在这里插入图片描述

1.1.1、数据库系统基本概念

基本概念:数据、数据库、数据库管理系统和数据库系统

1)数据(data)

  • 定义:描述事物的符号记录称为数据
  • 数据是数据库中存储的基本对象。

2) 数据库(DB)

  • 定义:数据库是长期储存在计算机内、有组织的、可共享的大量数据集合。
  • 特征:数据按一定的数据模型组织、描述和储存
    • 可为各种用户共享
    • 冗余度较小
    • 数据独立性
    • 易扩展

3)数据库管理系统(DBMS)

  • 定义:数据库管理系统(DBMS),是位于用户与操作系统之间的一层数据管理软件。数据库管理系统和操作系统一样是计算机的基础软件。
  • DBMS的主要功能:
    • 数据定义功能:提供定义语言(DDL)数据组织、存储和管理
    • 数据操纵功能:提供数据操作语言(DML)
    • 数据库的事务管理和运行管理
    • 数据库的建立和维护功能

4)数据库系统(DBS)

  • 数据库系统(DBS)是由数据库、数据库管理系统(及其开发工具)、应用程序和数据库管理员(DBA)组成的存储、管理、处理和维护数据的系统。

1.1.2、数据管理技术的产生与发展

数据管理技术经历了人工管理、文件系统管理、数据库系统3个阶段

1)人工管理阶段

  • 人工管理数据的特点
    • 数据不保存
    • 应用程序管理数据
    • 数据不共享
    • 数据不具有独立性
  • **缺点:**数据的逻辑结构或物理结构发生变化后,必须对应程序做出相应的修改,这就加重了程序员的负担。

2)文件系统阶段

  • 文件系统管理数据的特点:
    • 数据可以长期保存
    • 由文件系统管理数据
  • 缺点:
    • 数据共享性差、冗余度大
    • 数据独立性差

3)数据库阶段

  • 数据库管理数据的特点:
    • 数据结构化
    • 数据共享性高,冗余度低,易扩充
    • 数据独立性高
    • 数据由DBMS统一管理和控制

1.2、数据模型

数据模型(DM)也是一种模型,它是对现实世界数据特征的抽象。数据模型就是现实世界的模拟。

1.2.1、两类数据模型

  • 数据模型满足的要求
    • 能比较真实地模拟现实世界
    • 容易为人所理解
    • 便于在计算计算机上实现

1)第一类是概念模型

概念模型,也称为信息模型,它是按用户的观点来对数据和信息建模,主要用于数据库的设计

  • 概念模型要求
    • 具有较强的语义表达能力
    • 能够方便、直接地表达应用中的各种语义知识
    • 简单、清晰、易于用户理解
  • 信息世界中的概念
    • 实体(entity):客观存在并可相互区别的事务称为实体。
    • 属性(attribute):实体所具有的某一特征称为属性。
    • 码(key):唯一标识实体的属性集称为码。
    • 域(domain):一组具有相同数据类型的值的集合称为域。属性的取值范围来自某个域。
      • 例如:学号的域为8位整数,学生年龄的域为整数,性别的域为(男、女)
    • 实体型(entity type):用实体名及其属性名集合来抽象和刻画同类实体,称为实体型。
      • 例如,学生(学号,姓名,性别,出生年月,所在院系,入学时间)就是一个实体型。
    • 实体集(entity set):同一类型的集合称为实体集。
    • 联系:实体之间的联系通常是指不同实体集之间的联系。
      • 实体之间的联系有一对一、一对多和多对多等多种类型。
  • 概念模型的一种表示方法:实体—联系图(E—R图)
    • 实体型:用矩形表示
    • 属性:用椭圆表示
    • 联系:用菱形表示

2)第二类是逻辑模型物理模型

  • 逻辑模型主要包括层次模型网状模型关系模型、面向对象模型和对象模型等。对数据进行建模,用于DBMS的实现。
  • 物理模型是对数据最底层的抽象,它是描述数据在系统内部的表达方式和存取方法,或在磁盘或磁带上的存储方式和存取方法,是面向计算机系统的

1.2.2、 数据模型的组成要素

数据模型通常由数据结构数据操作数据的完整性约束条件三部分组成。

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

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

3)数据的完整性约束条件是一组完整性规则

1.2.3、常用的数据模型

  • 层次模型
  • 网状模型
  • 关系模型
  • 面向对象数据模型
  • 对象关系数据模型
  • 半结构化数据模型

1)层次模型

  • 层次模型的数据结构
    • 在数据库定义中满足下面两个条件的基本层次联系的集合为层次模型
      • 有且只有一个节点没有双亲节点,这个结点称为根节点。
      • 根以外的其他节点有且只有一个双亲节点。
    • 层次模型像一棵倒立的数,节点的双亲是唯一的。
  • 层次模型的数据操纵与完整性约束
    • 层次模型的数据操纵主要有查询、插入、删除和更新。进行插入、删除、更新操作是要满足层次模型的完整性约束条件。
    • 完整性约束
      • 进行插入操作时,如果没有相应的双亲结点值就不能插入它的子女节点值。
      • 进行删除操作时,如果删除双亲结点值,则相应的子女节点值也将被同时删除。
  • 层次模型的优缺点
    • 优点
      • 层次模型的数据结构比较简单清晰。
      • 层次数据库的查询效率高。
      • 层次数据模型提供了良好的完整性支持。
    • 缺点
      • 现实世界中很多联系是非层次性的,如结点之间具有多对多联系,不适合用层次模型表示。
      • 如果一个结点具有多个双亲结点等,用层次模型表示这类联系就很笨拙,只能通过引入冗余数据或创建非自然的数据结构来解决。
      • 查询子女节点必须通过双亲节点。
      • 由于结构严密,层次命令趋于程序化。

2)网状模型

  • 网状模型的数据结构
    • 在数据库中,把满足以下两个条件的基本层次联系结合称为网状模型:
      • 允许一个以上的节点无双亲
      • 一个结点可以有多于一个的双亲
    • 层次模型中子女结点与双亲节点的联系是唯一的,而在网状模型中这种联系可以不唯一。
  • 网状模型的优缺点
    • 优点
      • 能够更为直接地描述现实世界,如一个结点可以有多个双亲,结点之间可以有多种联系。
      • 具有良好的性能,存取效率高。
    • 缺点
      • 结构比较复杂,而且随着应用环境的扩大,数据库的结构就变得越来越复杂,不利于最终用户掌握。
      • 网状模型的DDL、DML复杂,并且要嵌入某一种高语言中。
      • 由于记录之间的联系是通过存取路径实现的,应用程序在访问数据时必须选择适当的存取路径,因此用户必须了解系统结构的细节,加重了编写应用程序的负担。

3)关系模型

  • 关系模型的数据结构

    • 关系(relation):一个关系对应通常说的一张表。
    • 元组(tuple):表中的一行即为一个元组。
    • 属性(attribute):表中的一列即为一个属性,给每一个属性起一个名称即属性名。
    • 码(key):也可称为码键。表中的某个属性,它可以为以确定一个元组。
    • 域(domain):域是一组具有相同数据类型的值的集合。
    • 分量:元组中一个属性值。
    • 关系模式:对关系的描述,一般表示为
      • 关系名(属性1,属性2,…,属性m)
      • 例如:教师(教工编号,姓名,年龄,性别,系名)
  • 关系模型的数据操纵与完整性约束

    关系模型的数据操纵主要包括查询、插入、删除和更新数据。

    • 关系的完整性约束条件包括三大类
      • 实体完整性
      • 参照完整性
      • 用户定义的完整性
  • 关系模型的优点:

    • 关系模型与格式化模型不同,它是建立在严格的数学概念基础上的。
    • 关系模型的概念单一。
    • 关系模型的存取路径对用户透明,从而具有更高的数据独立性、更好的安全保密性,也简化了程序员的工作和数据库开发建立的工作。

1.3、数据库系统结构

1.3.1、数据库系统模式的概念

模式(Schema)是数据库中全体数据的逻辑结构和特征的描述,同一个模式可以有很多实例。

1.3.2、数据库系统的三级摸式结构

数据库系统的三级模式结构是指数据库系统是外模式、模式和内模式三级构成。

在这里插入图片描述

1)模式

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

2)外模式

外模式也称为子模式或用户模式,它是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一个应用有关的数据的逻辑表示。

3)内模式

内模式也称为存储模式,一个数据库只有一个内模式。它是数据物理结构和存储方式的描述,是数据在数据库内部的组织方式。

1.3.3、数据库的二级映像功能与数据独立性

1)外模式/模式映象

模式描述的是数据全局逻辑结构外模式描述的是数据局部逻辑结构

同一个模式可以有任意多个外模式。对任意一个外模式,数据库系统都有一个外模式/模式映像,它定义了该外模式与模式之间的对应关系。

当模式发生改变时(例如增加新的关系、新的属性、改变属性的数据类型等)由数据库管理员对各个外模式/模式的映像做出相应的改变,可以使外模式保持不变。应用程序是依据数据的外模式编写的,从而应用程序不必修改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性。

2)模式/内模式映像

数据库中只有一个模式,也只有一个内模式,所以模式/内模式映像是唯一的,它定义数据全局逻辑结构与存储结构之间的对应关系

当模式发生改变时(例如增加新的关系、新的属性、改变属性的数据类型等)由数据库管理员对各个外模式/模式的映像做出相应的改变,可以使外模式保持不变。应用程序是依据数据的外模式编写的,从而应用程序不必修改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性。

2)模式/内模式映像

数据库中只有一个模式,也只有一个内模式,所以模式/内模式映像是唯一的,它定义数据全局逻辑结构与存储结构之间的对应关系

当数据库的存储结构改变时(例如选用了另一种存储结构)由数据库管理员对模式/内模式映像做出相应的改变,可以是模式保持不变,从而应用程序也不必改变。保证了数据与程序的物理独立性,简称数据的物理独立性。

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

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

相关文章

Latex三线表画法合集

Latex常用表格画法合集 前言 当我们使用Latex写论文的时候,三线表是展示实验结果的常用方法,但网上的方法杂七杂八,找到自己想要的表格需要花费一番功夫。本篇文章旨在记录论文常用表格的画法,方便论文的书写。 导入的包&#x…

11.7 指针和多维数组

C语言学习栏目目录 目录 1 指向多维数组的指针 2 指针的兼容性 3 函数和多维数组 指针和多维数组有什么关系?为什么要了解它们的关系?处理多维数组的函数要用到指针,所以在使用这种函数之前,先要更深入地学习指针。至于第 1 个…

工作实战之系统交互api调用认证设计

目录 前言 一、黄金段位接口交互 二、钻石段位接口交互设计 1.接口文档定义 2.工具类以及demo提供 a.调用方部分代码 b.被调用方 三.星耀段位接口访问设计 1.在钻石段位的基础上,进行sdk的封装 a.maven引入 b.sdk包含工具类 四.王者段位接口访问设计 1.开发详情 2.…

大数据技术为何诞生,它究竟解决了哪些问题?

大数据诞生背景与基本概念大数据为什么会诞生?以及它解决了哪些问题?1.大数据诞生之前的数据处理模式2.结构化数据在传统处理方式下的瓶颈3.非结构化与半结构化数据在传统处理方式下的瓶颈4.大数据诞生的初衷与定义大数据场景特征大数据为什么会诞生&…

day19_Set

今日内容 上课同步视频:CuteN饕餮的个人空间_哔哩哔哩_bilibili 同步笔记沐沐霸的博客_CSDN博客-Java2301 零、 复习昨日 一、作业 二、Set 三、HashSet 四、LinkedHashSet 五、TreeSet 六、Collections 零、 复习昨日 提问过了… 一、作业 见代码… 二、Set Set集合是Collecti…

Mybatis源码笔记

String resource "mybatis-config.xml";Reader reader;try {//将XML配置文件构建为Configuration配置类reader Resources.getResourceAsReader(resource);// 通过加载配置文件流构建一个SqlSessionFactory DefaultSqlSessionFactorySqlSessionFactory sqlMapper …

多点电容触摸屏实验

目录 一、简介 二、硬件原理 ​编辑1、CT_INT 2、I2C2_SCL和I2C2_SDA 3、RESET复位引脚 三、FT54x6/FT52x6电容触摸芯片 四、代码编写 1、编写ft5426.h 2、编写ft5426.c 3、main函数 一、简介 电容屏只需要手指轻触即可,而电阻屏是需要手指给予一定的压力才…

Elasticsearch7.8.0版本进阶——动态更新索引

目录一、如何在保留不变性的前提下实现倒排索引的更新二、按段搜索执行流程三、按段搜索的文档查询四、按段搜索的文档删除五、按段搜索的文档更新一、如何在保留不变性的前提下实现倒排索引的更新 用更多的索引。通过增加新的补充索引来反映最近的修改,而不是直接…

【华为OD机试模拟题】用 C++ 实现 - 整理扑克牌(2023.Q1)

最近更新的博客 华为OD机试 - 入栈出栈(C++) | 附带编码思路 【2023】 华为OD机试 - 箱子之形摆放(C++) | 附带编码思路 【2023】 华为OD机试 - 简易内存池 2(C++) | 附带编码思路 【2023】 华为OD机试 - 第 N 个排列(C++) | 附带编码思路 【2023】 华为OD机试 - 考古…

[Flink]部署模式(看pdf上的放上面)

运行一个wordcountval dataStream: DataStream[String] environment.socketTextStream("hadoop1", 7777) //流式数据不能进行groupBy,流式数据要来一条处理一次.0表示第一个元素,1表示第二个元素 //keyBy(0)根据第一个元素进行分组 val out: DataStream[(String, In…

Spring Boot中使用Sa-Token实现轻量级登录与鉴权

1. Sa-Token 介绍 Sa-Token 是一个轻量级 Java 权限认证框架,主要解决:登录认证、权限认证、单点登录、OAuth2.0、分布式Session会话、微服务网关鉴权 等一系列权限相关问题。 功能结构图 2. 登录认证 对于一些登录之后才能访问的接口(例如&…

Graph Embedding基础 图表示学习 什么是Graph Embedding

本文包括 DeepWalk LINE SDNE Node2vec Struc2vec等几个重要的Graph Embedding 方法 先说下不同embedding的区别是什么: DeepWalk:采用随机游走,形成序列,采用skip-gram方式生成节点embedding。node2vec:不同的随机游…

[游戏开发][Unity]Assetbundle打包篇(4)开始打包

上一篇文章讲了如何收集打包资源&#xff0c;得到了一个List<AssetInfo>下面正式进入打包流程&#xff0c;调用PostAssetBuild方法即可开始正式打包流程public void PostAssetBuild() {Debug.Log("------------------------------OnPostAssetBuild-----------------…

ASE140N04-ASEMI低压MOS管ASE140N04

编辑-Z ASE140N04在TO-220F封装里的静态漏极源导通电阻&#xff08;RDS(ON)&#xff09;为4mΩ&#xff0c;是一款N沟道低压MOS管。ASE140N04的最大脉冲正向电流ISM为400A&#xff0c;零栅极电压漏极电流(IDSS)为1uA&#xff0c;其工作时耐温度范围为-55~175摄氏度。ASE140N04…

深入浅出——this的理解与使用

文章目录 this的语法理解一、this的绑定方式二、两个细节 1.严格模式引入库2.如何更改this指向总结this的语法理解 this在英文中是一个指示代词&#xff0c;表示 这&#xff1b;这个 顾名思义&#xff0c;在编程于语言里&#xff0c;this就是一个指代作用。 我在人民广场吃…

《分布式技术原理与算法解析》学习笔记Day20

CAP理论 什么是CAP理论&#xff1f; CAP理论用来指导分布式系统设计&#xff0c;以保证系统的可用性、数据一致性等。 C&#xff0c;Consistency&#xff0c;一致性&#xff0c;指所有节点在同一时刻的数据是相同的&#xff0c;即更新操作执行结束并响应用户完成后&#xff…

GO 中的 defer 有哪些注意事项?上

xdm &#xff0c; 不知道你们是否有使用过 defer &#xff0c;这种语法在是 go 特有的&#xff0c;用起来真是爽的不要不要的 很多时候&#xff0c;我们在使用一些新东西&#xff0c;出现一些莫名其妙的现象或者是结果的时候&#xff0c;我们总会认为&#xff0c;这个东西不友…

打游戏什么蓝牙耳机好用?打游戏比较好的蓝牙耳机

游戏耳机提供身临其境的细致声音&#xff0c;同时也是与朋友在线聊天的绝佳通信设备&#xff0c;尤其对于游戏玩家来说&#xff0c;聆听和被聆听的最佳方式之一就是游戏耳机&#xff0c;那2023年到底有哪些值得购买的游戏耳机呢&#xff1f;现在就让我们一起来看看吧。 第一款…

【uniapp】uniapp项目vue2/vue3引入使用vant组件库

前言 vant是一个优秀的移动端组件库&#xff0c;他支持VUE2、VUE3、微信小程序三个框架&#xff0c;这期就来尝试在uniapp中&#xff0c;vue2和vue3分别引入vant组件库 注意&#xff1a;本教程只适用H5&#xff0c;无法运行到微信小程序 Vue3引入vant 新建一个uniapp项目&am…

如何利用 Python 进行客户分群分析(附源码)

每个电子商务数据分析师必须掌握的一项数据聚类技能 如果你是一名在电子商务公司工作的数据分析师&#xff0c;从客户数据中挖掘潜在价值&#xff0c;来提高客户留存率很可能就是你的工作任务之一。 然而&#xff0c;客户数据是巨大的&#xff0c;每个客户的行为都不一样。20…