【数据库系统概述】


一、数据库是什么?

数据库是“按照数据结构来组织、存储和管理数据的仓库”,以便最大限度地减轻程序员管理数据的负担,相应的,数据库系统则是管理数据库的软件,有MySQL,Oracle一类的数据库,教学一般使用MySQL

二、概述

1. 特点

  • 数据库是结构化的数据及其联系的集合
    • 例如关系型数据库,就是以一个个相互联系的列表的形式储存数据
  • 数据共享性高,冗余度低
    • 即一组数据可为多个进程所使用
  • 数据独立性高
    • 即数据的结构和使用方式的改变,不影响应用程序
    • 例如,系统会根据运行硬件的不同,调整其逻辑结构和物理结构之间的映射,保证应用程序的稳定
  • 数据管理和控制功能
    • 安全性控制:对每个用户进行权限限制,分配不同权限,以保证数据的安全
    • 完整性控制:设置一些约束条件,保证数据的正确性,稳定性与相容性。
      正确性,如年龄为数值型数据,则只能输入数字;
      有效性,即确保数据在有效范围内,如年龄不能为负;
      相容性,即数据库同一对象在不同关系表中的数据是符合逻辑的,如,读者性别可以是男性,可以是man,但不能同时为woman,又为男性
    • 并发控制:多个用户同时存取或修改数据时,系统可防止由用户相互干扰而提供错误数据
    • 数据恢复:将数据库从错误状态恢复至某一时刻的正确状态,可以理解为游戏中的读档,一般用于硬件故障,软件故障,误操作等行为的恢复

2.数据库系统组成

数据库系统(DataBase System,DBS)由以下几部分组成

  • 数据库(DataBase,DB)
  • 用户,包括数据库管理员(DataBase Administrator,DBA) ,最终用户,应用程序员(为最终用户设计软件,只是简单使用数据库,而DBA则要求高很多)
  • 软件系统,主要包括操作系统(Operating System,OS),数据库管理系统(DataBase Management System, DBMS)

3.内部体系结构

数据库有三级模式结构,和与之对应的二级映像

三级模式结构

  • 外模式
    • 外模式是用户能够看到和操作的部分,它定义了用户能够访问的数据视图和数据操作接口。每个外部模式代表了用户或应用程序的视图。外部模式可以针对不同的用户或应用程序定制,以满足其特定的数据需求和操作需求。可以理解为模式的子集,即数据的局部逻辑结构
  • 模式
    • 模式是整个数据库的逻辑结构和组织方式的描述,它定义了数据之间的关系、约束和逻辑结构。即数据的全局逻辑结构
  • 内模式
    • 内部模式是数据库存储和物理组织的描述,它定义了数据在存储介质上的实际存储方式和访问路径。内部模式通常涉及到存储结构、索引方式、数据压缩等底层细节,对于大多数用户和应用程序是透明的。
      即数据的物理存储结构

二级映像

为了实现三级模式结构之间的转换,数据库系统提供了二级映像,以此确保逻辑独立性物理独立性

  • 外模式/模式映像
    • 指模式到外模式的映射,即全局逻辑结构到局部逻辑结构的映射。全局逻辑结构部分的改变不会影响局部逻辑结构,故不会影响相应的应用程序。即保证了数据与程序间的逻辑独立性(根据应用程序的需要,不同的局部逻辑结构可以任意多,相应的,外模式可以任意多,映像也可以任意多)
  • 模式/内模式映像
    • 全局逻辑结构、物理存储结构都只能有一个,故模式、内模式唯一,相应的,此映像唯一。存储结构改变时,可以通过调整映像,保证全局逻辑结构的不变。即 确保了数据的物理独立性

4. 数据库系统类型

数据库系统分为单用户结构、主从式结构、分布式结构, 以及较为特殊的客户机/服务器结构和浏览器/服务器结构

  • 单用户结构,即个人用户的数据库,数据不能共享
  • 主从式结构,将所有处理任务集成到一个大型主机上,用户的终端不负责应用处理
    • 易于管理与维护,但由于主机一揽子全包了,对其性能要求很高
    • 因攻击而故障时,会使整个系统无法使用

下面的类型,用原神做一个简单说明

  • 分布式结构,其有多个服务器,在物理意义上分布在多个地域
    • 可以通过多台服务器并发处理数据,提高了处理效率
    • 为了使节点之间能够相互通信、协调和共享资源,这是一个很繁琐的任务,故系统效率非常依赖于网络
    • 云原神估计就是此类数据库系统,网络越好,画质越好,也不吃配置和占内存,但就需要为它的服务器支付费用了
  • 客户机/服务器结构(Client/Server C/S),应用处理任务由客户机负责,而服务器只负责数据处理
    • 由于服务器只负责数据处理,减少了与客户端之间大量的通信开销,也减轻了服务器的负担,所以对网络和服务器性能的要求都比较低
    • 由它的运行机制决定,故每个用户终端都必须安装客户机程序,来进行应用处理任务,所以当应用程序修改后,需同步更新所有用户的软件
    • 一部分游戏应用程序就是个壳子,只是简单的输入输出程序,而原神则不是,原神大量的应用处理由用户负担,所以体现出来的是,原神安装包非常大,而且吃配置,手机动不动就发热,而且还需要定期下载新版本
  • 浏览器/服务器结构(Browser/Server B/S),即客户机仅安装浏览器即可,作为一个简单的输入与输出,将应用处理任务分离出去,由一个专门的应用服务器来负责此功能
    • 数据库服务器 -> 应用服务器 -> 浏览器 -> 客户机
    • 网页原神就是此类原理

注意:明显的,客户机/服务器结构被称为富客户机(Rich Client) 而浏览器/服务器结构被称为瘦客户机(Thin Client)

5.基本概念

信息,概念

  • 实体(Entity),事物。
  • 属性(Attribute),实体的某一属性。属性分为“型”,“值”,型为属性名,比如学生具有姓名。值为属性名的值,比如某学生姓名为张三
  • 实体型(Entity Type),具体的某一种实体,如学生。
  • 实体集(Entity Set),某种实体型的集合,如所有学生。
  • 码(Key),也可以叫键,唯一标识实体的属性或属性集合。如学生的学号。
  • 域(Domain),即属性的取值,不一定为数字。
  • 联系(Relationship)。实体内部联系,即多个属性之间的联系;实体之间的联系,一般指不同实体集合之间的联系。

特别地,实体型之间的联系,指实体集之间的联系

计算机,概念

  • 字段(Field),即属性
  • 记录(Record),实体
  • 文件(File),实体集
  • 关键字,唯一标识实体的属性或若干属性,也称为键

信息中的概念和计算机中术语是一一对应的

6.数据模型

数据库的数据模型主要分为三种,非关系模型、关系模型、面向对象模型
非关系模型:层次模型、网状模型

层次模型

  • 层次模型为一种树形数据结构,以此表示各个实体之间的联系
  • 它是一种很普遍的树,不一定是二叉树,有树的所有特点,每个结点代表一个实体
    • 除了根节点外,其余结点有且仅有一个父节点
    • 父节点可以有多个子节点
    • 如图
A
B
C
D
E
F

完整性约束条件,以教研室与其中的讲师为例,进行说明

大学
教研室
讲师
  • 插入操作时,没有对应父节点,则不能插入其结点信息。即必须先插入教研室信息,才能插入其中讲师信息。
  • 删除操作时,删除父节点,其子节点也会被迫删除。即教研室信息被删除,讲师信息都会被删除
优缺点
  • 结构简单,计算机容易实现
  • 树形结构查询效率高,知道其父节点,可以快速查询到指定子节点。
  • 但是,树型结构不能直接表示实体集合之间的负责关系
  • 明显的,其插入和删除限制很多
  • 查询结点,必须知道其父结点

网状模型

  • 网状模型为网状数据结构,可以理解为数据结构中的图
  • 允许子节点拥有任意多个父节点,明显的,可以没有父节点
  • 插入数据时,允许其没有父节点。例如增加尚未分配宿舍的大学生
  • 删除数据时,允许指删除父节点。如可以删除教研室,但保留其中讲师信息,以待继续分配

优缺点

  • 可以简单的表示实体之间的复杂联系
  • 存储效率高
  • 但是结构复杂,不利于人使用最终开发出来的程序
  • 对应的编程语言复杂,难以掌握
  • 结构复杂,不利于程序员编写程序

关系模型

  • 关系模型为一张或多张相互联系的二维表,由表名,表头,表头组成
  • 表头即二维表的名称,表头即二维表的属性的集合,表头即二维表的属性的值
  • 二维表也叫做关系,具体的表则称为关系实例,简称为关系
  • 元组,二维表的一行数据,即元组 = 实体 = 记录
  • 分量,即一个元组其中一个属性的值
  • 候选码,可以唯一标识一个元组的一个或若干个属性,即候选码 = 码 = 关键字
  • 主码,从候选码中选一个进行唯一标识,即为主码。明显的,主码唯一

优缺点

  • 简单易懂,如同纸质的二维表。方便用户以及程序员
  • 但查询效率低于非关系模型(树和网状结构,顺着父节点查询很快,而关系模型斩断了这种联系)

面向对象模型

  • 即是以面向对象语言方式进行存储,非常接近c++的概念,允许多重继承,即拥有多个父类。
  • 比较复杂,不是主流模型

杂谈

  • 数据仓库与数据挖掘技术,收集历史数据,从中获取有用信息,即挖掘
  • 多媒体数据库,为管理文本,声音,图像视频等非格式化数据,而开发的数据库
  • 46
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值