购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.1 数据库及数据库系统概念

在信息时代,无论是信息系统,还是互联网服务,它们都需要对各类数据进行存储、管理、计算、分析等处理。这些数据处理都离不开数据库及其数据库管理系统的支持。什么是数据库?数据库如何组织、存储数据?数据库管理系统如何创建、访问和管理数据库?这些都是学习者需要了解与掌握的数据库领域知识。

1.1.1 数据库定义

通信技术和计算机技术的结合与发展,满足了人们对快速获取、处理以及传播信息的需求,催生了计算机网络。

任何信息系统的技术实现,均需要使用具有特定数据模型的数据容器来组织与存储数据,同时还需要相应系统软件支持应用程序对数据容器中的数据进行存取访问操作。在计算机领域中,这类组织与存储数据的数据容器被称为“数据库”。例如,电子商务系统将商品信息、销售价格信息、销售服务信息等业务数据分别写入由多个相关数据表构成的数据库中进行数据存储。当客户访问电子商务系统时,系统按照客户的需求将商品的信息从数据库中提取出来,呈现在电子商务网站页面中。客户想要购买商品,可以在电子商务系统中填写订单信息,并支付货款,这样便可完成线上购物活动。在电子商务系统中,所有业务数据处理都依赖数据库的支持。同样,各个机构的办公管理系统、财务管理系统、人力资源管理系统、薪酬管理系统等业务信息系统也需要数据库来实现数据管理。因此,数据库是信息系统最重要的组成部分。

一些学者对数据库(Database)给出了更专业的定义。

定义1:数据库是一种电子文件柜,用户可以对文件柜中的数据进行新增、检索、更新、删除等操作。

定义2:数据库是以一定方式存储数据的仓库,它能为多个用户所共享访问。

定义3:数据库是依照某种数据模型组织起来,并存放在存储器中的数据集合。这种数据集合具有如下特点:尽量不重复存储数据,以优化方式为用户存取数据提供服务,其数据结构独立于使用它的应用程序,其数据的增、删、改、查由底层系统软件进行统一管理与控制。

综上所述,我们可以将数据库理解为一种依照特定数据模型,组织、存储和管理数据的文件集合。在信息系统中,数据库的基本作用是组织与存储系统数据,并为系统软件从中存取数据提供支持。与计算机系统中的普通数据文件有明显不同,数据库文件具有如下特点:

1)数据一般不重复存储。

2)可支持多个应用程序并发访问。

3)数据结构独立于访问它的应用程序。

4)对数据的增、删、改、查操作均由数据库系统软件进行管理和控制。

1.1.2 数据模型

从数据库的定义可知,数据库使用了特定的数据模型来组织与存储数据,那么数据模型是什么?数据库一般使用哪种数据模型来组织与存储数据?这些都是需要深入了解的数据库基本问题。

1.数据模型是什么

数据模型是一种对事物对象数据特征及其结构的形式化表示,它通常由数据结构、数据操作、数据约束3个部分组成。

1)数据结构。它用于描述事物对象的静态数据特征,其中包括事物对象的属性数据、数据类型、数据组织方式等。数据结构是数据模型的基础,数据操作和数据约束都是基于数据结构进行处理的。

2)数据操作。它用于描述事物对象的动态数据特征,即对事物对象属性数据可进行的数据操作,如插入、更新、删除和查询等。在数据模型中,通常还需定义数据操作语言元素,其中包括操作语句、操作规则及操作结果表示等。

3)数据约束。它用于描述事物对象数据之间的语义联系,以及数据取值范围限制等规则,从而确保数据的完整性、一致性和有效性。

例如,在许多高级编程语言中,数据文件就是一种典型的数据模型实例,其数据结构由若干数据记录行组成,每行数据记录又由若干数据项组成。在数据文件的编程访问中,程序可以移动指针来确定数据记录在文件中的位置,然后对该数据记录进行读/写或删除处理。

2.经典数据模型

传统数据库先后使用了网状数据模型、层次数据模型、关系数据模型。这些数据模型之间的区别在于数据记录之间的组织方式不同:层次数据模型以“树结构”方式来组织数据记录之间的联系结构;网状数据模型以“图结构”方式来组织数据记录之间的联系结构;关系数据模型以“表结构”方式来组织数据记录之间的联系结构。

(1)层次数据模型

层次数据模型是数据库系统早期使用的一种数据模型,其数据结构是一棵包含多个数据节点的“有向树”。根节点在最上端,其下有多层子节点;最低层节点称为叶节点。每个数据节点存储一个数据记录,数据节点之间通过链接指针进行上下联系。在层次数据模型中访问数据记录时,需要使用树节点遍历方法在数据节点中检索数据记录,并对数据记录进行存取访问操作。例如,高校教务系统的层次数据模型如图1-1所示。

图1-1 高校教务系统的层次数据模型

层次数据模型特征:该模型将数据节点组织成多叉树关系的数据结构,程序采用关键字检索算法来遍历访问各个数据节点。其优点:数据结构层次清晰,使用链接指针可遍历访问各个数据节点;数据节点的更新和扩展容易实现;关键字检索算法处理效率高。其缺点:系统数据组织结构局限于有向树结构,缺乏灵活性;相同数据记录可能会在多个数据节点中重复存放,数据冗余存放容易导致数据处理存在不一致性问题;层次数据模型不太适合于具有拓扑空间的数据组织。

采用层次数据模型的数据库软件产品出现于20世纪60年代末,最具代表性的数据库软件产品是IBM公司推出的信息管理系统(Information Management System,IMS)。

(2)网状数据模型

网状数据模型也是早期数据库所使用的数据模型,它允许数据节点之间有多种联系方式。网状数据模型的每一个数据节点均代表一个数据记录,节点之间也使用链接指针来联系。网状数据模型既可以表示数据节点之间的多种从属关系,也可以表示数据节点之间的横向关系。网状数据模型扩展了层次数据模型的数据记录联系方式,其数据记录检索处理更方便。例如,高校教务系统的网状数据模型如图1-2所示。

图1-2 高校教务系统的网状数据模型

网状数据模型允许数据节点之间不仅有上下层次联系,也可以有横向关联关系。其优点:可以方便地表示数据节点之间的复杂关系,数据冗余小。其缺点:网状数据模型的节点之间关系较复杂,增加了数据记录定位和数据记录查询的困难;各数据节点还需存放较多链接指针,使得数据存储量增大;数据记录更新不方便,除了对数据记录进行数据更新外,还需修改关联指针。

网状数据模型的数据库软件产品出现于20世纪70年代,使用网状数据模型的典型数据库软件产品有Cullinet软件公司的IDMS、Honeywell公司的IDSII、Univac公司的DMS1100、HP公司的IMAGE等。

(3)关系数据模型

关系数据模型(简称关系模型)是以关系代数理论为基础,通过二维表结构来组织和存储数据记录的数据模型。关系数据模型的每个二维表均具有关系特征,它们又被称为关系表。在关系数据模型中,多个二维表可通过相同属性列的一致性约束进行数据关联。例如,课程目录系统的关系数据模型如图1-3所示。

在图1-3所示的关系数据模型示例中,“教师信息表”“课程信息表”“开课目录表”均为具有关系特征的二维表。每个二维表均存放其主题的数据,表之间通过具有相同列属性的数据值进行约束关联。其中,“开课目录表”中“工号”属性列与“教师信息表”中“工号”属性列的数据必须保持一致。同样,“开课目录表”中“课程号”属性列的数据也要与“课程信息表”中“课程号”属性列的数据匹配一致。

图1-3 课程目录系统的关系数据模型

关系数据模型的优点:数据结构简单、数据操作灵活;支持关系与集合运算操作;支持广泛使用的结构化查询语言(Structured Query Language,SQL);容易实现与应用程序的数据独立性。其缺点:局限于结构化数据组织与存储;支持的数据类型较简单;难以满足非结构化数据和复杂数据存储与访问处理需求。

关系数据模型具有结构简单、访问方便、编程灵活等特点,其数据操作语言为非过程化语言,具有集合处理能力,并能实现数据对象的定义、操纵、控制的一体化处理。因此,关系数据模型是数据库领域中使用最广泛的数据模型。目前,大部分数据库系统都是采用关系数据模型实现的关系数据库系统,如Oracle数据库系统、IBM DB2数据库系统、SQL Server数据库系统、MySQL数据库系统等。基于关系数据模型的关系数据库适合结构化数据管理,并且关系数据库技术已发展了几十年,其技术非常成熟,因此,关系数据库在各行各业的信息系统中得到了十分广泛的应用。

随着互联网应用和大数据应用的发展,针对大量的、复杂的、不同类型的应用数据存储管理问题,传统关系数据模型存在局限,无法高效处理非结构化、半结构化数据。为此,NoSQL数据库采用了不同数据模型分别对各类数据进行存储管理,如面向对象数据模型、键值存储数据模型、列存储数据模型、文档存储数据模型、事件存储数据模型、内容存储数据模型、图结构数据模型、时间序列数据模型、资源描述框架存储数据模型、搜索引擎数据模型、多值数据模型、XML数据模型、导航数据模型等。这些数据模型的存储原理将会在第7章进行介绍。此外,另一种融合关系数据库特点和NoSQL数据库特点的新型数据库(NewSQL数据库)技术也开始在互联网与大数据领域得到应用。NewSQL数据库不再采用单一数据模型进行数据管理,而是采用支持多种数据模型的DBMS来管理数据库。它既实现了结构化数据管理,也实现了非结构化数据处理。不过NewSQL数据库仍在发展过程中,它所采用的多模型数据库技术还有待持续完善。

1.1.3 数据库系统

数据库系统(Database System)是一种基于数据库、数据库管理系统进行数据管理的软件系统。当数据库系统在应用领域实现数据存储、数据处理、数据检索、数据分析等功能服务时,该系统称为数据库应用系统(Database Application System)。数据库应用系统由用户、数据库应用程序、数据库管理系统和数据库四个部分组成,如图1-4所示。

图1-4 数据库应用系统组成

1.用户

在数据库应用系统中,用户就是数据库的使用者,一般分为最终用户和数据库管理员(Database Administrator,DBA)两类。最终用户通过数据库应用程序实现业务数据处理和信息服务。DBA是专门进行数据库管理与运行维护的系统用户,该用户通过使用DBMS软件管理工具对数据库进行创建、管理和维护,从而为数据库系统的正常运行提供支持与保障。

2.数据库应用程序

数据库应用程序是一种在DBMS支持下对数据库进行访问和处理的应用软件程序。它们以窗口或页面等表单形式让用户读取、更新、查询或统计数据库信息,从而实现业务数据处理与信息服务。数据库应用程序本身不能直接存取数据库信息,必须基于DBMS软件提供的接口和运行环境才能访问数据库。具体来讲,数据库应用程序需要使用DBMS提供的驱动程序及应用程序编程接口(Application Programming Interface,API)连接数据库,并提交SQL语句到DBMS服务器执行,才能实现数据库操作。在高级语言程序(如Java、C++、C#、Python等)设计的数据库访问程序中,通常使用标准接口(如ODBC或JDBC)对数据库实现基本操作。

3.数据库管理系统

数据库管理系统(Database Management System,DBMS)是一类用于创建、操纵、运行和管理数据库的系统软件。数据库管理系统与操作系统一样都属于基础系统软件,它对支撑数据管理及其信息化应用至关重要。无论是应用程序,还是数据库管理工具,都需要借助DBMS实现对数据库的存取访问。DBMS的基本功能就是实现数据库创建、维护、管理,以及数据库存取访问。

4.数据库

在数据库系统中,数据库是存放系统各类数据的容器。该容器按照一定的数据模型来组织与存储数据。目前,在数据库应用系统中,使用最多的数据库依然是关系数据库。这类数据库采用关系数据模型实现数据组织与存储。例如,使用关系数据库进行成绩管理,其数据库由COURSE关系表、GRADE关系表和STUDENT关系表组成,各关系表之间的联系如图1-5所示。

图1-5 成绩管理关系数据库关系表之间的联系

在图1-5所示的成绩管理关系数据库示例中,COURSE表、GRADE表和STUDENT表均为关系表,它们之间通过公共列CourseID、StudentID建立了表之间的参照关联。在成绩表(GRADE)中,针对某个学生(StudentID)参加某课程(CourseID)考试,给出具体课程的成绩分数(Score)。

在数据库中,除了存放用户数据外,还会存放描述数据库结构的元数据,例如在关系数据库中,各个关系表的表名称、列名称、列数据类型、数据约束规则等都属于元数据。这些描述数据库结构的元数据需要存放在数据库的系统表中。图1-6给出了关系数据库存储的主要数据信息类型。

图1-6 关系数据库存储的主要数据信息类型

在关系数据库中,数据库元数据、索引数据、运行状态数据等存放在系统表中,用户的应用数据只能存放在用户表中。

课堂讨论:本节重点与难点知识问题

1)如何区分数据库、数据库管理系统、数据库系统、数据库应用系统?

2)在数据库中,数据模型有何作用?它有哪些组成部分?

3)在数据库技术发展阶段中,先后采用过哪些数据模型?各有什么特点?

4)为什么需要大力发展自主知识产权的国产数据库软件?

5)数据库系统有哪几个组成部分?各个部分有何作用?

6)什么是元数据?它是如何产生的?存储在哪里? slnVIrY3nWFb7E1ML9f43KPpVwkUPQ81qc3PdtYzThuFA+q2l0L1Qp3oJzIiDQPH

点击中间区域
呼出菜单
上一章
目录
下一章
×