<数据库原理>DB1 数据库概论
本文最后更新于:2024年4月3日 晚上
DB1 数据库概论
数据、数据库、数据库管理系统、数据库系统 是数据库中最常用的 4 个基本概念。
数据(Data):数据是描述事物的符号记录,是信息存在的一种形式。只有通过解释或处理的数据才能称为有用的信息。
数据库(Database,DB):数据按照一定格式存储在数据库内。数据库中存储的数据具有 永久存储、有组织、可共享 这 3 个基本特点。
数据库管理系统(Database Manage System,DBMS):专门用于建立和管理数据库的一套软件。实现对数据有效的管理和维护。
数据库系统(Database System,DBS):在计算机中引入数据库技术之后的系统。一个完整的数据库系统包括数据库、数据库管理系统、相关实用工具、应用程序、数据库管理员和用户。其中数据库管理员最终通过 DBMS 维护数据库,用户(程序员和数据库终端用户)则是数据库的服务对象。
DB1.1 数据模型
模型:对现实世界的抽象。能反映事物的本质特征
数据模型:对现实世界数据特征的抽象。是数据库系统的核心和基础。
一般而言,数据具有动态、静态两种特征。
- 数据的静态特征:数据的基本结构、数据间的联系、对数据取值范围的约束
- 数据的动态特征:对数据可以进行符合一定规则的操作
数据模型是一组概念和定义,用来描述数据的结构、定义、在结构上的操纵以及数据间的约束
#数据模型的三个要素
数据模型通常有三个要素:数据结构、数据操作、数据约束
-
数据结构
数据结构描述系统的静态特性。其反映了数据模型最基本的特征。
常按照数据结构类型来命名数据模型。如:层次模型、网状模型、关系模型、面向对象模型
-
数据操作
数据操作描述系统的动态特性,是对对象实例允许执行的操作的集合。
数据操作分为两类:更新(插入、删除、修改)、检索
-
数据约束条件
数据约束描述数据结构中数据间的语法和语义关联,以保证数据的正确性、有效性和相容性
数据约束包括:完整性约束、数据安全性约束、并发控制约束
#数据模型的分类
graph LR
A(现实世界) --第一次抽象--> B(信息世界) --第二次抽象--> C(计算机世界)
-
概念模型(信息模型)
现实世界到信息世界的第一层抽象。
常用 E-R 图 来描述
-
逻辑模型
信息世界到计算机世界的第二层抽象。
是计算机实现观点的数据库全局逻辑结构的模型。用于机器世界的建模。
任何数据库都是基于某种逻辑数据模型。
-
层次模型(树状模型)
是数据库最早使用的一种类型。其数据结构是一棵有向树,每个结点对应一个记录集。
优点:简单清晰;查询效率高
缺点:不能表示实体间的 联系;程序扩展性差
-
网状模型
是层次模型的扩展,以网状结构表示实体间的联系。
缺点:结构复杂,实现困难。
-
关系模型
当前数据库应用的主流。用二维表来表示实体及实体间联系。
优点:结构单一,概念单一,用户易用
缺点:效率一般;必须优化用户请求,这增加了开发难度
-
面向对象模型
面向对象方法与数据库结合所构成的数据模型称为面向对象模型。
面向对象模型既是概念模型又是逻辑模型。其表达能力丰富,对象复用性强,维护方便,是数据库的发展方向之一。但实现及其复杂,远未达到普及程度。
-
-
外部模型
表达用户观点的数据库局部逻辑结构的模型。比如视图。
-
物理模型(内部模型)
数据库最底层的抽象,是逻辑模型的物理实现。每种逻辑模型都有对应的物理模型。
DB1.2 数据库的体系结构
数据库的体系结构:数据库的 三层模式 和 两级映像 结构
graph BT
A((数据库)) --- B[内模式] --模式/内模式映像--- C[概念模式]
C --外模式/模式映像--- C1[外模式1]
C --外模式/模式映像--- C2[外模式2]
C --外模式/模式映像--- C3[外模式3]
C1 --- C1A[应用A]
C1 --- C1B[应用B]
C2 --- C2C[应用C]
C3 --- C3D[应用D]
C3 --- C3E[应用E]
(数据库的体系结构)
#数据库的三层模式
模式:数据库中全体数据的逻辑结构和特征的语义描述。
-
逻辑模式(模式)
数据库中全体数据的逻辑结构和特征的描述。
定义了数据的逻辑结构,数据项的名字、类型、取值范围,数据间的联系,数据完整性、安全性要求等。
逻辑模式不涉及物理存储细节和硬件环境,也无关于具体应用程序和开发语言。
数据库按外模式的描述向用户提供数据,按内模式的描述存储数据。而逻辑模式是这两者的中间层。
一个数据库只有一个逻辑模式,且相对稳定。
-
外模式(子模式、用户模式)
数据库用户能看见和使用的局部数据的逻辑结构和特征的描述。
外模式是用户视图,是逻辑模式的子集。每个用户需要一个外模式来使用数据库。不同用户根据不同需求使用不同外模式。
外模式提高了数据安全性。此外,程序员只需与外模式发生联系,按照外模式结构存储和操作数据。
-
内模式(存储模式,物理模式)
对数据库中数据物理结构和存储方式的描述,是数据库在内部的表示形式。
一个数据库有多个外模式,但只要一个逻辑模式和一个内模式。逻辑模式对应于概念级,外模式对应于用户级,内模式对应于物理级。
#数据库的两级映像
为了实现三层抽象和它们间的联系与转换,设立了两级映像:外模式/模式映像、模式/内模式映像
由于这两层映像的存在,使得数据库系统中的数据能具有较高 逻辑独立性 和 物理独立性。数据的定义和描述从应用程序中分离,从而简化了程序开发,也降低了维护难度。
-
外模式/模式映像
存在于外模式和逻辑模式之间,用于定义外模式和逻辑模式间的对应性。
在外模式中描述。
-
模式/内模式映像
存在于逻辑模式和内模式之间,用于定义逻辑模式和内模式间的对应性。
在内模式中描述。
#数据独立性
数据独立性:应用程序和数据库的数据结构间相互独立、互不影响。
-
逻辑独立性
若逻辑模式发生了改变,则只需对 外模式/模式映像 做相应修改,就能使 外模式 和 应用程序 尽可能保持不变
-
物理独立性
若物理模式发生了改变,则只需对 模式/内模式映像 做相应修改,就能使 逻辑模式 尽可能保持不变
DB1.3 数据库管理系统(DBMS)
DBMS(数据库管理系统)是整个数据库系统的核心。对 DB(数据库)的一切操作,都要由 DBMS 来完成。
其主要功能有:
-
数据库定义
DBMS 提供数据描述语言(Data Definition Language,DDL),以定义数据库结构的三层模式、两级映像的内涵,定义完整性约束、安全性约束等
-
数据库操纵
DBMS 提供数据操纵语言(Data Manipulation Language,DML),以实现数据查询和更新。
DML 又分为 过程性DML(用户编程时,不仅指定数据,也指定如何获取数据)和 非过程性DML(用户编程时,只指定数据,不指定如何获取数据)
-
数据库保护
BMS 提供数据控制语言(Data Control Language,DCL),以实现对数据库的运行控制
-
数据库维护
数据库结构建立后,就可以向数据库进行数据载入、转储、转换等操作。
DB1.4 数据库系统(DBS)
数据库系统指采用了数据库技术的计算机系统。 由 数据库、计算机软件、硬件、用户 组成。
-
数据库
DBS 的数据库,指的是与应用程序相关的全部数据的集合。包括:数据库中各种数据结构的描述;应用数据的集合(数据库的主体)
-
硬件
包括 CPU、内存、外存、I/O 等设备。
-
软件
主要是 DBMS、OS、各种宿主语言(编写应用程序的语言,如 C++、Java 等)、应用开发支撑软件等程序。
DBS 的核心软件是 DBMS。目前任何 DBMS 都必须在 OS 支持下运行。
-
用户
主要有三类:
- 终端用户:数据库系统的使用人员,一般是非计算机专业人员
- 应用程序员:设计和调试应用程序的开发人员
- 数据库管理员:专门负责数据库创建、使用、维护的人员
#DBS 体系结构的类别
-
集中式 DBS
整个数据系统,包括 DBMS、应用软件、数据等,都安装在一台计算机中,由一个用户独立使用
-
C/S(客户端/服务器,Client/Server)式 DBS
前端通过宿主语言编程,把一些功能放在客户端计算机上执行。另一些功能放在后台服务器上执行。
减轻了服务器负担,但升级维护不便,每次更新都需要所有客户端都更新。
-
B/S(浏览器/服务器,Browse/Server)式 DBS
客户不必安装应用程序软件,只需要通过客户端浏览器以及中间业务逻辑层访问后台数据库。
该模式不受时间、地点限制,升级维护也很方便
-
分布式 DBS
利用计算机网络技术,把分布在不同地点的数据库系统联系在一起。整个系统中的数据,逻辑上是一体,物理上却分布于计算机网络的不同节点。