闲来无事了解下数据库 - 数据库系统概述
总览

1. 数据库基本概念
什么是数据 (Data)
数据是描述事物的符号记录 , 是指利用物理符号记录下来的可以鉴别的信息
e.g. 张三, 职业: iOS开发工程师, 公司: LINE, 🐮🍺不: 🐮🍺, ......
e.g. 文字字符的文本数据, 图形图像的多媒体数据等
万事万物皆数据, 数据只是信息存在的一种形式, 只有通过解释或处理的数据, 才能成为有用的信息
数据的语义
数据的解释是对数据含义的说明, 也称为数据的语义
什么是数据库 (Database, DB)
数据库是指长期储存在计算机中的有组织的, 可共享的数据集合
就是存储数据的仓库
数据库有三个特点: 永久存储, 有组织, 可共享
数据库管理系统 (Database Management System, DBMS) 及其功能
数据库管理系统是专门用于建立和管理数据库的一套软件, 介于应用程序和操作系统之间
数据库管理系统的功能
- 数据定义功能 (Data Definition Language, DDL)
- 数据操纵功能 (Data Manipulation Language, DML)
- 数据库的运行管理功能
- 数据库的建立和维护功能
- 数据组织, 存储和管理功能
- 与其他软件的网络通信功能
- 不同数据库管理系统之间的数据传输以及相互访问功能
数据库系统 (Database System, DBS) 的构成
- 用户 (程序员)
- 用户 (数据库终端用户)
- 应用程序
- 数据库管理系统 (DBMS)
- 数据库管理员 (Database Administrator, DBA)
- 数据库 (DB)
2. 数据库管理技术的发展
人工管理阶段
时间段: 20世纪50年代中期以前
特点:
- 数据不保存
- 应用程序管理数据
- 数据面向应用程序
上图

文件系统阶段
时期: 20世纪50年代后期到60年代中期
特点:
- 数据可长期保存
- 专门管理
上图

数据库系统阶段
时期: 20世纪60年代后期
特点:
- 数据集成
- 数据共享性高
- 数据冗余小
- 数据一致性
- 数据独立性高
- 实施统一管理与控制
- 减少应用程序开发与维护的工作量
3. 数据库系统的结构
数据库系统的结构分类
- 从DBA视角分为内部系统结构, 外部系统结构
其中内部系统结构采用三级模式, 分为模式, 内模式, 外模式
其中外部系统结构分为集中结构, 分布式结构, 并行结构
- 从数据库应用的用户视角, 分为客户/服务器结构, 浏览器/服务器结构
客户端/服务器结构 (Client/Server, C/S)
C端的任务是完成与数据库使用者的交互任务
S端的任务是主要负责数据管理
当然, 他们还有很多别称, 比如
C端我们还可以称为前台, 客户端, 表示层
S端我们还可以称为后台, 服务器, 数据层
上图

浏览器/服务器结构 (Browser/Server, B/S)
B端为浏览器, S端为服务器, 浏览器属于客户端的一种Web应用, 所以也可以称这种结构为基于Web应用的C/S结构, 也称之为三层C/S结构
上图

数据库系统的三级模式结构

外模式, 又称为子模式或用户模式, 我们可以理解为不同的外模式, 对应着不同的查看数据的权限
模式, 又称为概念模式或逻辑模式
内模式, 又称为存储模式
模式名称 | 模式别称 | 视图类型 |
---|---|---|
模式 | 概念模式/逻辑模式 | 概念视图 |
外模式 | 子模式/用户模式 | 数据视图, 用户视图 |
内模式 | 存储模式 | 内部视图, 存储视图 |
上图

三级模式的两层映像与数据独立性
什么是映像
映像, 就是一种对应规则, 它指出映像双方是如何进行转换的
映像分类
-
模式/内模式映像, 保证了数据与程序的物理独立性 上图
-
外模式/模式映像, 保证了数据与程序的逻辑独立性 上图
4. 数据模型
什么是模型 (Model)
模型是现实世界特征的模拟和抽象表达
数据模型 (Data Model) 是对现实世界数据特征的抽象, 描述的是数据的共性内容
数据的特征
分为静态特征和动态特征
静态特征
* 数据的基本结构
* 数据间的联系
* 数据取值范围的约束
动态特征
* 指对数据可以进行符合一定规则的操作
数据模型组成要素
- 数据结构, 系统静态特征, 包括数据对象的数据类型, 内容, 属性, 数据对象之间的联系
- 数据操作, 系统动态特征
- 数据约束, 数据结构中数据间的语法和语义关联
数据模型的分类
- 概念模型, 现实世界到信息世界转换
- 逻辑模型和物理模型, 信息世界到机器世界转换
什么是概念层数据模型 (Conceptual Model)
概念层是数据抽象级别的最高层. 概念层数据模型, 也称为概念模型或信息模型, 主要用于数据库的设计阶段
信息世界涉及的基本概念
实体 (Entity), 客观存在并可相互区别的事物称为实体, 实体可以是实际的事物, 也可以是抽象的概念, 如学生, 课程
属性 (Attribute), 实体所具有的某种特性称为实体的属性, 如学生具有学号, 姓名, 性别等属性
码或键 (Key), 可唯一标识实体的属性称为码或键. 如学号是学生的码或键
域 (Domain), 属性的取值范围称为该属性的域. 如学生的性别的属性, 域为男或者女
实体型 (Entity Type), 用实体名与属性集合来抽象同类实体, 称为实体型. 如, 学生(学号, 姓名, 性别) 就是一个实体
实体集 (Entity Set), 同型实体的集合称为实体集. 如, 每个学生是一个实体, 所有学生构成一个实体集
联系 (Relationship), 实体(型))内部的联系和实体(型))之间的联系, 内部的联系指的是各属性之间的联系, 实体之间的联系指的是不同实体之间的联系
型 (type), 相当于一个表格的表头, 姓名, 性别, 年龄, 籍贯, 电话
值 (value), 相当于表格中的每行数据, 张三, 男, 18, 北京, 13611112222
概念模型的表示方法
用E-R图来表示概念模型 上图

实体-联系方法 (Entity - Relationship approach)
E - R 图 (Entity - Relationship Diagram)
实体型, 用矩形表示, 框内注明实体的名称
属性, 用椭圆形表示, 框内注明属性的名称, 用线与相应实体连接起来
联系, 用菱形表示, 框内注明联系的名称, 用线与有关实体连接起来, 同时在线上标明联系的类型(1:1, 1:N, M:N)
联系也可以具有属性, 这些属性与联系用线连接起来
什么是逻辑层数据模型 (Logical Model)
逻辑层是数据抽象级别的中间层. 逻辑层数据模型, 也称为数据的逻辑模型. 任何DBMS都是基于某种逻辑数据模型
逻辑模型的类型
层次模型
* 最早的一种数据模型
* 有且仅有一个结点没有父结点, 称作根结点
* 其他结点有且仅有一个父结点
网状模型
* 以网状结构表示实体与实体间的联系
* 允许结点有多于一个父结点
* 可以有一个以上的结点没有父结点
关系模型
* 用二维表结构来表示实体间的联系
* 建立在严格的数学概念的基础上
* 概念单一
* 存取路径对用户透明, 有更高的数据独立性, 更好的安全保密性
也就是我们常用的表格
面向对象模型
* 面向对象方法与数据库相结合所构成的数据模型称为面向对象模型
* 既是概念模型, 又是逻辑模型
* 表达能力丰富, 对象可复用, 维护方便
什么是物理层数据模型 (Physical Model)
物理层数据模型, 是数据库最底层的抽象, 也称为数据的物理模型. 设计目标是提高数据库性能和有效利用存储空间
概念模型 | 数据抽象级别的最高层, 主要用于数据库的设计阶段 |
---|---|
逻辑模型 | 数据抽象级别的中间层, 任何DBMS都是基于某种逻辑数据模型 |
物理模型 | 数据抽象级别的最底层, 设计目标是提高数据库的性能和有效利用存储空间 |
概念模型, 逻辑模型, 物理模型之间的关系
三个不同的数据模型既相互独立, 又存在着关联.
从现实世界到概念模型的转换是由数据库设计人员完成的
从概念模型到逻辑模型的转换可以由数据库设计人员完成, 也可以用数据库设计工具协助设计完成
从逻辑模型到物理模型的转换主要是由数据库管理系统完成的
总结
看到35岁程序员的焦虑, 虽然自己尚未步入30, 但是, 在这个行业可能也算是老菜鸟了, 话不多说, 充实下自己吧! 不是变老了, 就当不了程序员了; 而是变老了, 还不学习了, 所以才有了老龄程序员的焦虑!
转载自:https://juejin.cn/post/6844903909924798478