数据库简介
数据库是数据管理的最新技术,也是计算机科学的重要分支。本文旨在为读者阐明数据库的相关基础概念,数据库系统的组成等内容。
1.1 一些基本概念
● 数据
数据,就是一种描述事物的符号记录。数据可分为数值数据,文本数据,多媒体数据等等。也就是说,数据并不局限于数值,如图片,视频,音频等都可以被称作数据。
数据本身没有意义,必须赋上意义才有价值,这就是数据的语义解释。如数据170并无意义,但说机器君长170cm,就有了意义。对了,我指的是身高。
我们考虑对一些数据使用表格的形式描述,这样这些数据就可以被成为结构化数据。如:
姓名 | 身高(cm) | 出生年份 | 所在地 |
---|---|---|---|
机器君 | 170 | 公元4075年 | 地球 |
那对于那些不能用表格描述的数据呢?我们自然称之为非结构化数据。如:图片,文本,音频,视频等等。
当然了,介于此二者间还有半结构化数据,如XML文档。
●数据库(DataBase,DB)
数据库,顾名思义就是计算机存储数据的仓库。我们希望一个数据库是可以长期存放数据,并且是按一定逻辑存放数据的,一方面使得数据库较为容易维护,另一方面也使得用户在使用时更加方面。
●数据库管理系统(DataBase Management System,DBMS)
简单来说这是一种软件,介于用户和操作系统间的数据管理软件。利用它,我们可以实现对数据的定义,组织,存储,管理,操纵等操作。
●数据库系统(DBS)
这是一种计算机系统,它带有数据库,并利用数据库技术对数据进行管理,可以实现有组织的,动态的存储大量数据,并提供一系列服务(如数据处理,数据共享等)。
1.2 数据模型
计算机不能直接处理现实世界的事情,所以我们要对处理的事物做必要的抽象,转化称计算机能够处理的数据,这个过程的工具就是数据模型。
下面我们对几种模型分别做介绍。
● 1.2.1 概念模型
概念模型是我们对现实事物抽象的第一个层次。它用符号记录现实世界事物的联系,用规范化的数据库定义语言表示对现实世界的抽象化与描述。概念模型涉及如下若干概念,我将用一张表格向各位阐述清楚。
1.2.1.1 概念模型的一些基本概念
姓名 | 身高(cm) | 出生年份 | 所在地 |
---|---|---|---|
机器君 | 170 | 公元4075年 | 地球 |
● 实体
客观世界可相互区别的对象。如一个人,一只猫,一棵树,一个机器君。
● 属性
实体具有的某一特征。如表中的实体是机器君,身高,出生年份,所在地 就是几个属性。
● 码
一个实体的属性集合。如身高这一属性,就是所有机器君实体的码。
● 域
即属性的取值范围。如机器君性别只有{男、女},性别域就是{男、女}
● 实体型
直接举例:机器君(型号、身高、出生年份、所在地),这就是一个实体型,而机器君(lz-250,170,公元4075年,地球)就是实体型的一个值。
● 实体集
同一类型实体的集合。如 所有机器君就是一个实体集。
1.2.1.2 概念模型中实体型间的联系
这里我们只作简要介绍
● 一对一联系(1:1)
● 一对多联系(1:n)
● 多对多联系(m:n)
1.2.1.3 概念模型的E-R图表示
此处我们不多做介绍,仅展示最基本图像。
表示方法如下:
矩形:表示实体型
菱形:表示联系,用无向边与实体型相连,并在边上标注联系类型
椭圆:表示属性,并用无向边与实体型相连
一个实例如下:
● 1.2.2 逻辑模型
逻辑模型是将概念模型进一步抽象,以更好转换为计算机能处理的数据的一种模型。目前较为成熟的应用在数据库系统中的逻辑模型有:层次模型、网状模型、关系模型。它们的区别在于数据间联系的表示方式不同。具体为,层次模型:“树结构”表示;网状模型:“图结构”表示;关系模型:“二维表”表示。
● 层次模型
层次模型满足如下两个条件:
1.有且仅有一个结点没有双亲结点,这个结点称为根结点
2.根节点以外的其他结点有且只有一个双亲结点
● 网状模型
网状模型满足如下两个条件:
1.允许一个以上的结点无双亲
2.一个结点可以有多个双亲
● 关系模型
1970年,美国IBM公司的研究员 E.F. Codd首次提出数据库管理系统的关系模型,为数据库技术奠定了理论基础,并因此获得了1981年的ACM图灵奖。现代数据库也是围绕关系数据库来展开的。因此我们将在下一章对关系模型作详细介绍。
● 1.2.3 物理模型
物理模型是指逻辑模型在计算机中的存储结构,是数据抽象的最低层。物理模型不但由DBMS的设计决定,而且与操作系统、计算机硬件密切相关。
至此,我们对三种数据模型已作出简要的介绍。简单来说,上述三种数据模型是现实世界的信息转化成计算机识别的信息的一层又一层的抽象,具体可以用一张图来感受一下:
1.3 数据模型的组成要素
● 数据结构
数据结构描述了数据库的组成对象,也就是实体与实体间的联系,描述对象,类型,属性,内容间的关系,是对系统静态特性的描述。
● 数据操作
顾名思义,就是对数据库各种对象的实例进行增、删、查、改的操作。
● 数据完整性约束
简单来说,就是一套用来限制数据完整性的规则。如学生的考试成绩只能在0-100分取值,选课人数不能大于课室容量,一学期某门课学时不能超过64课时等等。
1.4 数据抽象、数据库系统模式与结构
1.4.1 数据抽象
一个成熟的数据库管理系统必须要有高效的检索性能与完备的逻辑体系。而对于许多数据库管理系统的使用者,也就是普通用户来说,他们并没有接受过相关的计算机科学训练,所以,数据库系统的开发人员就必须经过多层次的抽象来屏蔽系统本身的复杂性,用最简单的方式与用户进行交互,使用户能轻易操作数据库。于是,便有了以下三层抽象。
● 物理层抽象
物理层抽象是最低层次的抽象。简单来说,这就是属于计算机内部层面的事情,一些数据是通过堆存储,那么是按照升序还是降序呢?而其索引又是按照什么方式存储呢?数据是否有压缩,是否加密等等。
● 逻辑层抽象
这层抽象比物理层更高了一级。就字面意思理解,逻辑层抽象描述了数据与数据间存在的某种逻辑关系。
● 视图层抽象
视图层抽象是最高层次的抽象。视图层主要对应数据库系统的一个具体应用,使得用户与数据库系统的交互更加简单。
有了以上3个不同级别的抽象层次,数据库系统本身也应该提供观察数据库的3个不同角度,这就是数据库系统的三级模式结构。
1.4.2 数据库系统的三级模式结构
● 模式
模式,也叫做逻辑模式,对应于逻辑层数据抽象,是数据库中全体数据的逻辑结构和特征的描述。
● 外模式
外模式,也称为子模式或用户模式,对应于视图层数据抽象,是数据库用户能够看到和使用的局部数据的逻辑结构和特征的描述。一个数据库可以有多个外模式,一个外模式可以被用户的多个应用系统使用,但一个应用程序只能使用一个外模式。
● 内模式
内模式也称为存储模式,对应于物理层数据抽象,是数据的物理结构和存储方式的描述,是数据在数据库内部的表示方式。
1.4.3 数据库系统的两层映像功能
为了对上述三种抽象层次实现联系与转换,便有了二级映像功能这一概念,分别是外模式/模式映像,模式/内模式映像。
● 外模式/模式映像
模式描述了数据的全局逻辑结构,而外模式描述了数据的局部逻辑结构,一个模式可以定义多个外模式。对于每个外模式,数据库系统都有一个外模式/模式映像,它定义了该外模式与模式间的对应关系。
● 模式/内模式映像
数据库中只有一个模式和一个内模式,所以模式/内模式映像是唯一的。该映像定义了数据的全局逻辑结构(也就是模式)与存储结构(也就是内模式)之间的对应关系。
至此,我们已经对数据库系统原理作了一个初步的介绍,更多的细节日后将会一一展开,敬请期待吧~~~~