Skip to main content

数据库系统概述

数据库系统组成

数据库系统(Database System),主要由数据库、数据库用户、计算机硬件系统和计算机软件系统组成。

数据库

数据库是按照数据结构来组织、存储和管理数据的仓库。它有两个特点:

  • 集成性。数据库中的数据是相关联的,它们之间存在着某种联系,这种联系可以是逻辑联系,也可以是物理联系。
  • 共享性。数据库中的数据可以被多个用户共享。

数据库用户

数据库用户有三类:

  • 应用程序员。他们设计和编写应用程序,使用数据库系统来存储和管理数据。
  • 数据库管理员。数据库管理员是数据库系统的管理者,他们负责数据库系统的建立、维护和管理。
  • 数据库应用用户。数据库应用用户是数据库系统的最终用户,他们通过应用程序来访问数据库系统。

数据库管理员(Database Administrator)在大型项目中极为重要,他们负责数据库系统的建立、维护和管理。数据库管理员的主要工作包括:

  • 数据库设计。数据库设计是数据库系统的核心工作,它包括数据库的逻辑设计和物理设计。
  • 数据库实现。数据库实现是将数据库设计转换为数据库系统的过程。
  • 数据库运行和维护。数据库运行和维护是保证数据库系统正常运行的重要工作。
  • 数据库安全。数据库安全是保证数据库系统的安全的重要工作。
  • 帮助用户使用数据库系统。帮助用户使用数据库系统是数据库管理员的重要工作。

计算机硬件系统

计算机硬件系统是数据库系统的基础,它包括计算机系统、存储系统和通信系统。

计算机软件系统

软件系统主要包括数据库管理系统(Database Management System,简称DBMS)和操作系统(Operating System,简称OS)。

数据库系统的内部体系结构

三级结构

数据库系统的内部体系结构是三级结构,它包括:

  • 模式,又称概念模式,它描述了数据库中全体数据的逻辑结构和特征。处于三级模式的中间层,不涉及 数据的物理存储细节和硬件环境,与所使用的开发工具或者语言无关。一个数据库只有一个模式,它是数据库的逻辑结构的描述,是数据库的蓝图。
  • 外模式 (外部模式,或用户模式,或子模式)。它是三级结构的最外层,使用户能够看到和使用数据库中的数据。外模式是数据库的逻辑结构的子集,它是数据库的实际使用者看到的部分,是数据库用户的数据视图或者用户视图。外模式一般是 内模式的子集。一个数据库可以有多个外模式。
  • 内模式 。内模式又称存储模式或者物理模式。是三级结构的最内层,它描述了数据库中数据的物理结构和存储方式。内模式是数据库的逻辑结构的实现,是数据库的实际存储结构。一个数据库只有一个内模式。它可能记录以什么方式存储数据(比如顺序存储或者索引存储),以及数据的物理存储位置,又或者是否进行压缩。

二级映像

DBMS在三级模式之间建立了二级映像,它们之间的映像关系如下:

  • 模式映像到外模式。例如,在学生的逻辑结构中添加新的属性,如“学生的爱好”,这个属性就会映像到外模式中,即用户可以看到这个属性。
  • 外模式映像到内模式。当采取了更加先进的存储技术时,只要保持其模式不变化,就可以把存储结构的变化限制在模式之下,这使数据的存储结构和存储方式都高度独立于应用程序。

数据库的外部体系结构

单用户的数据库

单用户的数据库是指只有一个用户使用的数据库。不能实现多用户共享,因此只能用于个人使用。

主从数据库

主从数据库是指一个数据库系统中有一个主数据库和多个从数据库。是一个单个大型主机带终端的数据库。

分布式数据库

分布式数据库是指多个数据库系统共同组成一个数据库系统。是多个计算机共同组成的数据库系统。

客户机/服务器数据库

在这个结构的数据库中,DBMS和数据库存放在数据库服务器上,应用程序和相关的开发工具安装在客户机上。(富客户端)

客户机/服务器数据库的弊端

十分不方便,每次维护升级都需要重新安装客户端,而且客户端的安装包很大,很多时候还需要重新安装操作系统。

浏览器/服务器数据库

客户端只安装通用的浏览器软件,应用程序不安装在客户端,而是安装在介于客户端和数据库服务器之间的应用服务器上。(瘦客户端)

数据库管理系统

数据库管理系统即DBMS,是一种软件系统,它是数据库系统的核心部分。DBMS就是把抽象的数据处理成计算机中具体的物理数据的软件。 主要包括数据定义功能、数据操纵功能、数据库运行管理功能、数据库的建立和维护功能、数据通信接口及组织、存储和管理功能。

数据定义功能

DBMS提供数据定义语言(Data Definition Language,DDL)来定义数据库的结模式、外模式和内模式三级结构。

数据操纵功能

DBMS提供数据操纵语言(Data Manipulation Language,DML)来操纵数据库中的数据。例如,SQL语言提供查询语句(SELECT)、插入语句(INSERT)、更新语句(UPDATE)和删除语句(DELETE)等。

数据库的运行管理功能

DBMS提供数据库的运行管理功能,包括数据库的安全管理、备份和恢复、并发控制、完整性控制。

数据库的建立和维护功能

DBMS提供数据库的建立和维护功能,数据库的维护包括数据库的转储、恢复、重构造、系统性能监视和分析等。

数据通信接口

DBMS提供数据通信接口,使用户可以通过这些接口与数据库进行通信。

组织、存储和管理功能

DBMS提供组织、存储和管理功能,包括数据的存储管理、索引管理、文件管理、存储空间管理、缓冲管理、重组管理、安全管理、完整性管理、并发管理、恢复管理、事务管理等。

DBMS的组成

语言编译处理程序

语言编译处理程序是DBMS的核心部分,它负责把用户的数据操纵语言(DML)转换成数据库系统能够识别的语言,然后把这些语言转换成数据库系统能够执行的语言。

系统运行控制程序

DBMS提供一系列运行控制程序,负责数据库系统运行过程中的控制和管理,主要包括下面几部分:

  • 系统总控程序。用于协调和控制各程序的活动。它是DBMS的核心。
  • 安全性控制程序。
  • 完整性控制程序。
  • 并发控制程序。
  • 数据存取和更新程序。
  • 通信控制程序。

系统建立和维护程序

包括装备程序、重组程序以及系统的恢复程序。

数据字典

数据字典是描述数据库信息的数据目录。

四种数据模型

层次模型

数据库的层次模型是类似一个树形结构,在这种层次结构模型中,每一个节点表示一个记录型,每个记录型又包含多个字段。

网状模型

网状模型采用类似图的形式来描述。

关系模型

关系模型是最常用的数据模型,它是一种二维表结构,每个表都有一个名字,每个表都由若干个字段组成,每个字段都有一个名字,每个字段都有一个数据类型。关系模型的数据结构是规范化的二维表,它由表名表头表体组成。表名即表的名称,如(T1、T2、T3)。表头即表的属性。表体即表的记录。

如一张教师表(T):

TnoTnameTsexTtitleTdept
1张三讲师计算机系
2李四副教授计算机系
3王五教授网工
4赵六讲师计算机系
5钱七副教授数媒

学生表(S):

SnoSnameSsexSageSdept
1张三20计算机系
2李四21计算机系
3王五22计算机系
4赵六23计算机系
5钱七24数媒

课程关系表(C):

CnoCnameCcreditTno
1数据库41
2网络43
3数学42
4英语44
5体育45

选课关系表(SC):

SnoCnoGrade
1190
1280
1370
1460
1550
2190
2280
2370
2460
2550
3190
3280
3370
3460
3550
4190
4280
4370
4460
4550
5190
5280
5370
5460
5550

授课关系表(TC):

TnoCno
11
12
13
14
15
21
22
23
24
25
31
32
33
34
35
41
42
43
44
45
51
52
53
54
55
  • 关系与关系实例。一个关系实例就是一个由行和列组成的二维表。如上面就有五个关系实例,分别是教师表、学生表、课程关系表、选课关系表和授课关系表。
  • 元组。元组是关系中的一行,它是一个不可分割的整体。如上面的教师表中的一行就是一个元组,如(1、张三、男、讲师、计算机系)。
  • 属性。属性是关系中的一列,它是一个不可分割的整体。如上面的教师表中的一列就是一个属性,如(Tno、Tname、Tsex、Ttitle、Tdept)。
  • 。域是属性的取值范围。如上面的教师表中的Tsex属性的域是 {男、女} ,Ttitle属性的域是{讲师、副教授、教授},Tdept属性的域是 {计算机系、网工、数媒} 。
  • 分量。分量是元组中的一个值。如上面的教师表中的一行(1、张三、男、讲师、计算机系)中的张三就是一个分量。
  • 候选码。候选码是一个或多个属性的集合,它能唯一地标识关系中的每一个元组。如上面的教师表中的Tno属性就是一个候选码,因为它能唯一地标识关系中的每一个元组。
  • 主码。主码是候选码中的一个,它是关系中的一个属性或属性组,它能唯一地标识关系中的每一个元组。如上面的教师表中的Tno属性就是一个主码,因为它能唯一地标识关系中的每一个元组。
  • 关系模式。关系模式是关系的一个描述,它由关系的名称和属性组成。如上面的教师表的关系模式是(Tno、Tname、Tsex、Ttitle、Tdept)。
  • 关系实例。关系实例是关系的一个具体的值,它由关系的名称和元组组成。如上面的教师表的关系实例是(Tno、Tname、Tsex、Ttitle、Tdept)和(1、张三、男、讲师、计算机系)。

面向对象模型

对象是现实世界中实体的模型化。如一个学生、一门课程和考试记录都可以看成对象。