<数据库原理>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 图 来描述

  • 逻辑模型

    信息世界到计算机世界的第二层抽象。

    是计算机实现观点的数据库全局逻辑结构的模型。用于机器世界的建模。

    任何数据库都是基于某种逻辑数据模型。

    • 层次模型(树状模型)

      是数据库最早使用的一种类型。其数据结构是一棵有向树,每个结点对应一个记录集。

      优点:简单清晰;查询效率高

      缺点:不能表示实体间的 n:mn:m 联系;程序扩展性差

    • 网状模型

      是层次模型的扩展,以网状结构表示实体间的联系。

      缺点:结构复杂,实现困难。

    • 关系模型

      当前数据库应用的主流。用二维表来表示实体及实体间联系。

      优点:结构单一,概念单一,用户易用

      缺点:效率一般;必须优化用户请求,这增加了开发难度

    • 面向对象模型

      面向对象方法与数据库结合所构成的数据模型称为面向对象模型。

      面向对象模型既是概念模型又是逻辑模型。其表达能力丰富,对象复用性强,维护方便,是数据库的发展方向之一。但实现及其复杂,远未达到普及程度。

  • 外部模型

    表达用户观点的数据库局部逻辑结构的模型。比如视图。

  • 物理模型(内部模型)

    数据库最底层的抽象,是逻辑模型的物理实现。每种逻辑模型都有对应的物理模型。

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

    利用计算机网络技术,把分布在不同地点的数据库系统联系在一起。整个系统中的数据,逻辑上是一体,物理上却分布于计算机网络的不同节点。


<数据库原理>DB1 数据库概论
https://i-melody.github.io/2024/04/03/数据库原理/DB1 数据库概论/
作者
Melody
发布于
2024年4月3日
许可协议