跳过正文
第1章:绪论

第1章:绪论

·5042 字·11 分钟· loading · loading · ·
StudyBase 笔记 数据管理基础
目录
笔记-数据库 - 这篇文章属于一个选集。
§ 1: 本文

数据的管理模式
#

数据的管理模式并没有绝对的优越性,只是适用于特定的情境。

从下面几点考察:

  1. 数据的管理者是谁?
  2. 数据面向的对象是?
  3. 数据的共享程度?
  4. 数据的独立性?
  5. 数据的结构化?
  6. 数据的控制能力?

1. 人工管理
#

  • 数据由写程序的程序员管理,面向应用程序;
  • 共享性没有,冗余度很高;
  • 独立性无,因为是 hard-code 进程序里的;
  • 结构性无;
  • 由程序自己控制数据。

2. 文件系统
#

  • 数据由文件系统管理,优点是可以长期保存;
  • 存在共享性:json、XML 文件可以将数据共享给多个程序,但存在问题:谁负责定义与管理这些数据?具体来说,
    • 数据的结构和存储机制要被所有应用接受;
    • 数据的安全性、完整性
    • 数据的并发性:对数据操作的顺序会影响数据的最终形态
    • 如何在动态的情况(数据在多用户操作、频繁更新和环境变化中不断变化的状态)下解决这些问题

3. 数据库系统
#

首先要了解什么是数据库系统。

3.1 基本概念
#

数据库系统的具体运行:

  1. 数据(Data, 描述事物的符号化记录)是数据库存储的基本对象。
    • 种类:数字、文字、图形、图像、音频、视频、学生的档案记录等
    • 语义:数据的含义。数据与其语义密不可分。
      • 93 是数据,他的语义可能是某人的体重,也有可能是成绩
  2. 数据库(DB)是长期储存在计算机内、有组织的、可共享大量数据的集合。其基本特征:
    • 数据是按一定的数据模型进行组织描述储存的
    • 可为各种用户进行共享
    • 冗余度小,不需要重复
    • 数据独立性较高
    • 易扩展
  3. 数据库管理系统(DBMS):“科学地组织和存储数据、高效地获取和维护数据”
    • 位于用户和 OS 之间
    • 基础软件,大型、复杂
    • 其作用:
      1. 数据定义:DDL
      2. 数据组织、存储与管理
      3. 数据操纵:DML
      4. 据库的事务管理和运行管理
      5. 数据库的建立和维护功能 6….
  4. 数据库系统:DBS
    • 数据库
    • DBMS
    • 应用程序
    • 数据库管理员(DBA)
  5. 核心与基础:数据模型

3.2 特点
#

  1. 数据的结构化
    • 最小存取单位是数据项
    • 不仅内部结构化,整体也是结构化的,也就是说数据之间具有联系
    • 数据用数据模型描述,无需应用程序定义
  2. 共享性高。数据共享的好处
    • 减少数据冗余,节约存储空间
    • 避免数据之间的不相容性与不一致性
    • 使系统易于扩充
  3. 数据的独立性高。
    • 物理独立性:指用户的应用程序与数据库中数据的物理存储是相互独立的。数据的物理存储改变时,应用程序不用进行改变。
    • 逻辑独立性:指用户的应用程序与数据库的逻辑结构是相互独立的。数据的逻辑结构改变了,应用程序不用进行改变。
  4. 数据由数据管理系统统一管理和控制。也就是文件系统中提到的
    1. 数据安全性保护
    2. 数据完整性检查
    3. 并发控制
    4. 数据库恢复

数据模型
#

  1. 定义:是对现实世界数据特征的抽象,用以抽象、表示和处理现实世界中的数据和信息。
  2. 要求:
    • 模拟的真实性
    • 易理解性
    • 便于在计算机上实现
  3. 分类:
    • 概念模型:用于设计一个数据库,按用户的观点来对数据和信息建模
    • 逻辑模型:用于 DBMS 的实现,按照计算机系统的观点
    • 物理模型:对数据最底层的抽象,描述数据在系统内部的表示方式和存取方法
    • 三个模型是渐进的关系,通过两步抽象演变
  4. 组成要素:
    • 数据结构:系统的静态特性
    • 数据操作:系统的动态特性
    • 数据的完整性约束条件
      • 完整性规则:给定的数据模型中数据及其联系所具有的制约和依存规则

概念模型
#

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

  • 较强的语义表达能力
  • 简单、清晰、易于用户理解

信息世界中的基本概念
#

回忆:实体、属性、码;实体型、实体集、联系。

  • entity 实体: 客观存在并可相互区别的事物称为实体。可以是具体的人、事、物或抽象的概念。
  • Attribute 属性: 实体所具有的某一特性称为属性。一个实体可以由若干个属性来刻画。
  • Key 码:唯一标识实体的属性集
  • Entity Type 实体型:用实体名及其属性名集合来抽象和刻画同类实体称为实体型
  • Entity Set 实体集:同一类型实体的集合称为实体集
  • Relationship 联系:
    • 现实世界中事物内部以及事物之间的联系 在信息世界中反映为 实体(型)内部的联系和实体(型)之间的联系
    • 实体内部的联系通常是指组成实体的各属性之间的联系

实体-联系方法(E-R 方法, E-R 模型)
#

画法:

例子:

逻辑模型
#

  1. “多快好省”地转换信息世界到机器世界:
    • “多”:支持多种数据结构和应用场景。
    • “快”:高效地完成转换,减少时间和资源消耗。
    • “好”:确保数据的准确性和完整性。
    • “省”:节省存储空间和计算资源。
  2. 中立的通用表达方式
    • 定义:不依赖于具体应用,提供一种通用的、抽象的数据表达方式。
    • 特点:通用性强,灵活性高,效率可能较低
    • 例子:
      • 关系数据库
      • JSON 格式:一种通用的数据交换格式,可以表示各种结构的数据(如数组、对象等),适用于多种编程语言和应用。
  3. 针对应用的高效表达方式
    • 定义:根据具体应用需求,设计专门的数据结构,并在逻辑模型中高效支持。
    • 特点:高效性,针对性强,扩展性差
    • 例子:
      • 面向对象编程(OOP):为特定功能设计类。例如,设计一个“学生”类,包含属性(姓名、年龄、成绩)和方法(计算平均分、打印信息)。这种结构在管理学生信息时非常高效,但难以直接用于其他场景。
      • 电商应用中的“订单”对象:包含订单号、购买商品、金额等属性,专门用于处理订单数据,效率高但仅适用于电商场景。
  4. 综合方案
    • 定义:通用数据结构采用方案 1(中立表达),关键性数据结构采用方案 2(针对应用优化)。

分类
#

  • 格式化模型

    • Hierarchical Model 层次模型:以树状结构组织数据,表示一对一或一对多的关系。
    • Network Model 网络模型:以网状结构组织数据,支持多对多的关系,但结构复杂。
  • 非格式化模型

    • Relational Model 关系模型:基于表格结构,通过行和列存储数据,支持复杂的查询操作。
    • 对象模型
      • Object Oriented Data Model 面向对象数据模型:以对象和类为核心,支持继承和封装。
      • Object Relational Data Model 对象关系数据模型:结合对象模型和关系模型,支持复杂数据类型和关系操作。

关系模型
#

1. 二维表结构
#

数据逻辑结构是一张二维表,由行(元组)和列(属性)组成。

学号姓名年龄性别系名年级
2013004王小明19社会学2013
2013006黄大鹏20商品学2013
2013008张文斌18法律2013
2. 基本概念:
#
  • 关系Relation:一张表。
  • 元组Tuple:表中的一行。
  • 属性Attribute:表中的一列,有属性名。
  • 主码Key:能唯一确定一个元组的属性组。
  • Domain:属性的取值范围。
  • 分量:元组中的一个属性值。
  • 关系模式:对关系的描述,如“学生(学号,姓名,年龄,性别,系名,年级)”。
  • 规范化:关系必须规范化,每个分量是不可分的数据项,不允许表中还有表。
3. 操作与完整性约束
#
  • 数据操作:集合操作,操作对象和结果都是关系;存取路径对用户隐蔽,用户只需指出“干什么”。
  • 完整性约束:
    • 实体完整性:确保每个实体(元组)可以通过主键唯一标识。例如,学生表中“学号”作为主键,每个学号必须唯一。
    • 参照完整性:确保表之间的关系通过外键正确关联。例如,学生表的“系名”字段必须与系表中的“系名”匹配。
    • 用户定义的完整性:根据用户需求定义的约束规则。例如,规定学生年龄必须大于 16 岁。
4. PROS/CONS
#

  • 建立在严格数学基础上,概念单一。
  • 实体和联系都用关系表示,检索结果也是关系。
  • 存取路径对用户透明,数据独立性高,安全保密性好,简化开发工作。 ➖
  • 查询效率不如格式化数据模型。
  • 需对用户查询请求进行优化,增加了开发 DBMS 的难度。

以下是关于 NoSQL 的笔记,适当扩充并整理为简洁的 Markdown 格式:

NoSQL 数据库类型
#
  • 基于 Key-Value 存储模型
    存储键值对,适合快速读写操作。例如,Redis 通过键值对存储用户会话信息。

  • 基于文档模型
    存储半结构化数据,通常以 JSON 或 BSON 格式。例如,MongoDB 存储用户资料文档,包含姓名、年龄、地址等字段。

  • 列族模型
    按列存储数据,适合大规模数据存储和分析。例如,Cassandra 用于存储时间序列数据,按列族组织数据。

  • 基于图模型
    用于存储和查询复杂关系数据。记为 G(V, E),其中 V 为节点集合,每个节点具有若干属性;E 为边集合,边也可以具有属性。例如,Neo4j 用于社交网络分析,节点表示用户,边表示用户之间的关系。

数据库系统的结构
#

三级模式结构
#

1. 模式(Schema)
#

  • 定义:数据库中全体数据的逻辑结构和特征的描述。
    • 数据的逻辑结构(数据项的名字、类型、取值范围等)
    • 数据之间的联系
    • 数据有关的安全性、完整性要求
  • 特点:
    • 是数据的“型”描述,不涉及具体值,反映数据的结构及其联系。
    • 是相对稳定的,独立于数据的物理存储细节和硬件环境。(内模式)
    • 与具体的应用程序、开发工具及高级程序设计语言无关。(外模式)
  • 示例:学生选课数据库模式包含学生记录、课程记录和学生选课记录。

2. 实例(Instance)
#

  • 定义:反映数据库某一时刻的状态,是模式的一个具体值。
  • 特点:
    • 同一个模式可以有多个实例。
    • 实例随数据库中的数据更新而变动。
  • 示例:
    • 2012 年学生数据库实例:包含 2012 年所有学生记录、课程记录和选课记录。
    • 2013 年学生数据库实例:包含 2013 年所有学生记录、课程记录和选课记录。

3. 外模式/子模式/用户模式(External Schema)
#

  • 定义:用户使用的局部数据的逻辑结构和特征的描述,是与某一应用有关的数据的逻辑表示。
  • 特点:
    • 介于模式与应用之间,通常是模式的子集
    • 一个模式可以有多个外模式,反映不同用户的需求和数据保密要求。
    • 同一外模式可以被多个应用系统使用,但一个应用只能使用一个外模式
  • 用途:保证数据库安全性,用户只能访问对应的外模式中的数据。

4. 内模式(Internal Schema)
#

  • 定义:数据物理结构和存储方式的描述,是数据在数据库内部的表示方式。
  • 内容:
    • 记录的存储方式(如顺序存储、堆存储、hash 存储)。
    • 索引的组织方式、数据是否压缩或加密。
    • 数据存储记录结构的规定。
  • 特点:一个数据库只有一个内模式

5. 数据库的二级映像与数据独立性
#

三级模式是对数据的三个抽象级别,二级映象在数据库管理系统内部实现这三个抽象层次的联系和转换

外模式/模式映像:逻辑独立性
#

每一个外模式,数据库系统都有一个外模式/模式映象(通常包含在各自外模式的描述中),定义外模式与模式之间的对应关系。

作用:保证数据逻辑独立性

  • 当模式改变时,数据库管理员对外模式/模式映象作相应改变,使外模式保持不变
  • 应用程序是依据数据的外模式编写的,应用程序不必修改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性。
模式/内模式映像:物理独立性
#

定义了数据全局逻辑结构与存储结构之间的对应关系。例如,说明逻辑记录和字段在数据库内部是如何表示的,包括存储方式、索引组织、数据压缩等。

  • 每个数据库只有一个模式/内模式映像。
  • 映像定义通常包含在模式描述中。

作用:保证数据的物理独立性

  • 当数据库的存储结构发生变化(如更换存储设备或优化存储结构)时,数据库管理员只需修改模式/内模式映像,而无需改变模式本身
  • 应用程序依赖于模式,而不是具体的存储结构。因此,即使存储结构改变,应用程序仍然可以正常运行,这就是数据与程序的物理独立性。

希望这份笔记能帮助你更好地理解模式/内模式映像的作用和意义。

6. 数据库的二级映像的作用
#

  • 稳定性:保证外模式和应用程序的稳定性,除非应用需求本身发生变化,否则应用程序无需修改。
  • 独立性:数据与程序之间的独立性,使得数据定义可以从应用程序中分离,简化应用程序的编制和维护。

数据库系统的组成
#

甲乙丙丁,开中药铺…

软硬件平台
#

硬件
#

对硬件资源的要求:

- 足够大的内存

- 足够大的磁盘或磁盘阵列等设备

- 较高的通道能力,提高数据传送率

软件
#

  • DBMS: 数据库管理系统
  • 支持数据库管理系统运行的操作系统
  • 与数据库接口的高级语言及其编译系统
  • 以数据库管理系统为核心的应用开发工具
  • 为特定应用环境开发的数据库应用系统

数据库系统的组成 - 人员
#

数据库管理员(DBA)
#

  • 决定数据库中的信息内容和结构
  • 决定数据库的存储结构和存取策略
  • 定义数据的安全性要求和完整性约束条件
  • 监控数据库的使用和运行
    • 周期性转储数据库
      • 数据文件
      • 日志文件
    • 系统故障恢复
    • 介质故障恢复
    • 监视审计文件
  • 数据库的改进和重组
    • 性能监控和调优
    • 定期对数据库进行重组,以提高系统的性能
    • 需求增加和改变时,数据库需要重构造

系统分析员 / 数据库设计人员
#

  • 系统分析员
    • 负责应用系统的需求分析和规范说明
    • 与用户及数据库管理员结合,确定系统的硬软件配置
    • 参与数据库系统的概要设计
  • 数据库设计人员
    • 参加用户需求调查和系统分析
    • 确定数据库中的数据
    • 设计数据库各级模式

应用程序员 / 最终用户
#

  • 应用程序员
    • 设计和编写应用系统的程序模块。
    • 进行调试和安装。
  • 最终用户(End User)。最终用户通过应用系统的用户接口使用数据库。
    • 偶然用户
      • 不经常访问数据库,但每次访问数据库时往往需要不同的数据库信息
      • 企业或组织机构的高中级管理人员
    • 简单用户
      • 主要工作是查询和更新数据库
      • 银行的职员、机票预定人员、旅馆总台服务员
    • 复杂用户
      • 工程师、科学家、经济学家、科技工作者等
      • 直接使用数据库语言访问数据库,甚至能够基于数据库管理系统的应用程序接口编制自己的应用程序
Reply by Email
hhikr
作者
hhikr
未来人,宇宙人或超能力者
笔记-数据库 - 这篇文章属于一个选集。
§ 1: 本文

相关文章

草稿
编译原理笔记-未命名
· loading · loading
StudyBase 笔记 编译原理
编译原理笔记
Chapter 4-1 CFL & PDA
·3867 字·8 分钟· loading · loading
StudyBase 笔记 编译原理
编译原理笔记
Chapter 3-2 Lexical Analysis
·1787 字·4 分钟· loading · loading
StudyBase 笔记 编译原理
编译原理笔记