在学习数据库技术之前,我们先认识与该技术密切相关的基本术语,分别是数据库
(Database, DB)、数据库管理系统(Database Management System, DBMS)和数据库
系统(Database System, DBS),具体介绍如下。
数据库是一个存在于计算机存储设备上的数据集合,该集合中的数据按照一定的数据模型进行组织、描述和存储。数据库可看作电子化的文件柜,用户可以对文件柜中的电子文件数据进行增加、删除、修改、查找等操作。需要注意的是,这里所说的数据不仅包括普通意义上的数字,还包括文字、图像、声音等;也就是说,凡是在计算机中用来描述事物的记录都可称为数据。
数据库管理系统是一种介于用户和操作系统之间的数据库管理软件,它可以对数据库的建立、维护和运行进行管理,还可以对数据库中的数据进行定义、组织和存取。通过数据库管理系统可以科学地组织、存储和维护数据以及高效地获取数据,常见的数据库管理系统有 MySQL、Oracle、Microsoft SQL Server、MongoDB等。
数据库系统是指由数据库及其管理软件组成的系统,它是为适应数据处理的需要而发展起来的一种较为理想的数据处理系统。数据库系统通常包含硬件、数据库,软件、用户4个部分,各部分的具体内容如下。
下面通过一张图描述数据库系统,具体如下:
上图描述了数据库系统的组成部分,其中用户是使用数据库的主体,它通过数据库应用程序与 DBMS进行通信,进而管理 DBMS 中的数据、在数据管理过程中DBMS提供对数据的组织、存取、管理和维护等功能,数据库提供对数据的存储功能。
数据模型(Data Model)是数据库系统的核心和基础,它是对现实世界数据特征的抽象,为数据库系统的信息表示与操作提供一个抽象的框架。想要更好地理解数据模型,首先应该掌握一些数据模型的理论知识,下面对数据模型的理论知识进行详细讲解。
数据模型所描述的内容包括3个部分,分别是数据结构、数据操作和数据约束。这3个部分的具体介绍如下:
数据模型按照数据结构主要分为层次模型(Hierarchical Model)、网状模型(NetworkModel)、关系模型(Relational Model)和面向对象模型(Object Oriented Model)。下面分别对这4种数据模型进行讲解。
(1)层次模型。
层次模型用树形结构表示数据之间的联系,它的数据结构类似一棵倒置的树,有且仅有一个根节点,其余节点都是非根节点。层次模型中的每个节点表示一个记录类型,记录之间是一对多的关系,即一个节点可以有多个子节点。
(2)网状模型。
网状模型用网状结构表示数据之间的关系,网状模型的数据结构允许有一个以上的节点无双亲和至少有一个节点可以有多于一个的双亲。随着应用环境的扩大,基于网状模型的数据库的结构会变得越来越复杂,不利于最终用户掌握。
(3)关系模型。
关系模型以数据表的形式组织数据,实体之间的关系通过数据表的公共属性表示,结构简单明了,并且有逻辑计算、数学计算等坚实的数学理论作为基础。关系模型是目前广泛使用的数据模型。
(4)面向对象模型。
面向对象模型用面向对象的思维方式与方法来描述客观实体,它继承了关系数据库系统已有的优势,并且支持面向对象建模、对象存取与持久化以及代码级面向对象数据操作,是现在较为流行的新型数据模型。
任何一个数据库管理系统都是基于某种数据模型的,数据模型不同,相应的数据库管理系统就不同。
数据模型按照不同的应用层次主要分为概念数据模型(Conceptual Data Model)、逻辑数据模型(Logical Data Model)和物理数据模型(Physical Data Model)。如果使用计算机管理现实世界的对象,那么需要将客观存在的对象转换为计算机存储的数据。整个转换过程经历了现实世界、信息世界和机器世界3个层次,相邻层次之间的转换都依赖不同的数据模型。
下面通过一张图描述客观对象转换为计算机存储数据的过程:
在图中,概念数据模型是现实世界到机器世界的中间层,它将现实世界中的客观对象(如学生、班级、课程)抽象成信息世界的数据;逻辑数据模型是一种面向数据库系统的模型,是DBMS所支持的具体数据模型(如层次模型、网状模型、关系模型)。逻辑数据模型进一步分解和细化后,使用物理数据模型进行实际存储,也就是将逻辑模型转换成计算机能够识别的模型。
概念数据模型是对信息世界的建模,它能够全面、准确地描述信息世界。概念数据模型有很多常用术语,具体如下。
(1)实体(Entity):实体是指客观存在并可相互区分的事物,如学生、班级、课程。
(2)属性(Attribute):属性是指实体所具有的某一特性,一个实体可以由若干个属性描述。例如,学生实体有学号、姓名和性别等属性。属性由两部分组成,分别是属性名和属性值。例如,有学生的学号、姓名和性别分别为1、张三、男,其中,学号、姓名和性别是属性名,而“1、张三、男”这些具体值是属性值。(属性也可以认为是字段)
(3)联系(Rclationship):这里所说的联系是指实体与实体之间的联系,有一对一、一对多、多对多3种情况。例如,每个学生都有一个学生证,学生和学生证之间是一对二的联系:一个班级有多个学生,班级和学生是一对多的联系;一个学生可以选修多门课程,一门课程又可以被多个学生选修,学生和课程之间就形成多对多的联系。
(4)实体型(Entity Type):实体型即实体类型,通过实体名(如学生)及其属性名集合(如“学号、学生姓名、学生性别”)来抽象描述同类实体。
(5)实体集(Entity Set):实体集是指同一类型的实体集合,如全校学生就是一个实体集。
关系模型几乎是数十年来发整个数据模型领域的重要支撑,基于关系数据模型组织数据的数据库管理系统一般称为关系数据库。随着数据库技术的发展,关系数据库产品越来越多,常见的产品如下:
Oracle是甲骨文公司开发的一款关系数据库管理系统,在数据库领域一直处于领先地位。Oracle数据库管理系统可移植性好、使用方便、功能性强,适用于各类大、中、小型微机环境。与其他关系数据库相比,Oracle虽然功能更强大,但它的价格也更高。
Moso SQL Server是由微软公司开发的一款关系数据库管理系统,它广泛应用于电子商务、银行、保险、电力等行业。
Microsoft SQL Server提供对XML和Intermet标准的支持,具有强大的、灵活的、基于Web的应用程序管理功能,而且界面友好、易于操作,深受广大用户的喜爱。
IBM Db2是由IBM公司研制的一款大型关系数据库管理系统,其主要的运行环境为UNIX(包括IBM的AIX)、Linux、IBMi(旧称OS/400)、z/OS以及 Windows服务器版本,具有较好的可伸缩性。
IBMD2保证了高层次的数据利用性、完整性、安全性和可恢复性以及小规模到大规模应用程序的执行能力,适合于海量数据的存储。
M50L是由瑞典的MySQL AB公司开发的,后来被Oracle公司收购。MySQL是以客户端/服务器模式实现的,支持多用户、多线程。MySOL社区版是开源的,任何人都可以获得该数据库的源代码并修正缺陷。
M0L具有跨平台的特性,它不仅可以在Windows平台上使用,还可以在UNIX、Linux和Mac OS等平台上使用,相对其他数据库而言,MySOL的使用更加方便、快捷。且My50L.社区板是免费的,运营成本低,因此越来越多的公司选择使用MySQL。
下一篇文章就来探讨探讨MySQL数据库的使用。