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

1.1 信息、数据与数据处理

数据库系统已经成为现代社会人们日常生活的重要组成部分,在每天的工作和学习中,人们经常与数据库系统打交道,如在网上选课、预订火车票或飞机票、在图书馆的网站上查找图书、网上购物等。数据库中存储的数据本身可提供信息,经过数据处理又可提供一些信息。

1.信息

信息(Information)是现实世界中各种事物(包括有生命的和无生命的、有形的和无形的)的存在方式、运动形态,以及它们之间的联系等诸多要素在人脑中的反映,是通过人脑抽象后形成的概念。人们不仅可以认识和理解信息,还可以对它进行推理、加工和传播。信息甚至可为达成某种目的提供决策依据,例如,根据某种商品第一季度的销售数量来决定第二季度的进货数量。

2.数据

数据(Data)是信息的载体,是信息的一种符号化表示,而采用什么符号,完全是人为规定的。例如,为了便于用计算机处理信息,我们把信息转换为计算机能够识别的符号,即采用0和1两个符号的编码来表示各种各样的信息。所以数据的概念具有两方面的含义:一是数据的内容是信息,二是数据的表现形式是符号。凡是能够被计算机处理的数字、字符、图形、图像、声音等统称为数据。数据具有如下基本特征。

(1)数据有型和值之分。

【例1.1】 描述一个学生的基本信息的型和值。

型:学生(学号,姓名,性别,出生日期,系别,总学分)。

值:student('001102','程明','男','90-02-01','计算机',50)。

值:student('001103','王燕','女','90-01-03','计算机',50)。

计算机的数据库系统在处理数据时,首先要建立外部对象特定的型,然后将数据按型进行存储。

(2)数据有类型和取值范围的约束。

【例1.1】中的学号、姓名、性别、系别是字符型的数据,出生日期是日期型的数据,总学分是数值型的数据。性别的取值范围可以是{男,女}或{0,1},总学分的取值范围可以是0≤总学分≤200。

3.信息与数据的关系

信息和数据既有联系又有区别。信息是数据的内涵,而数据是承载信息的物理符号,或称为载体。信息是抽象的,同一信息可以有不同的数据表示形式。例如,在足球世界杯期间,同一场比赛的新闻,可以分别在报纸上以文字形式、在电台中以声音形式、在电视上以图像形式来表现。数据可以表示信息,但不是任何数据都能表示信息,对同一数据也可以有不同的理解。比如2000,可以理解为一个数值,也可以理解为2000年。

4.数据处理

数据处理是指将数据转换成信息的过程,这一过程主要涉及对所输入的数据进行加工整理,包括对数据进行收集、存储、加工、分类、检索和传播等一系列活动。其根本目的是从大量、已知的数据出发,根据事物之间的固有联系和变化规律,采用分析、推理、归纳等手段,提取出对人们有价值、有意义的信息,作为制定某种决策的依据。

数据与信息之间的关系如图1.1所示,其中数据是输入,而信息是输出。数据加上语义后就能表达一定的信息,人们所说的“信息处理”的真正含义应该是为了产生信息而处理数据。例如,“出生日期”是人有生以来不可改变的基本特征之一,属于原始数据,而“年龄”是当年与出生年份相减而得到的数字,具有相对性,可视为二次数据;职工的“参加工作时间”、产品的“购置日期”是职工和产品的原始数据,职工的“工龄”、产品的“报废日期”则是经过简单计算所得到的结果。

图1.1 数据与信息之间的关系

在数据处理活动中,计算过程相对简单,很少涉及复杂的数学模型,但是有数据量大,且数据之间有着复杂的逻辑联系的特点。因此数据处理活动的焦点不是计算,而是把数据管理好。

5 . 数据管理

数据管理是指对数据进行收集、整理、编目、组织、存储、查询、维护和传送等各种操作。数据管理是数据处理的基本环节,是数据处理活动必有的共性部分。因此,对数据管理应当加以重视,集中精力开发出通用而方便、实用的软件,把数据有效地管理起来,以最大限度地减轻计算机软件用户的负担。数据管理技术正是瞄准这一目标而逐渐完善起来的一门计算机软件技术。 yKPiCEBikLTfkLk2QSJ/aAt2/lzewOpFNFyf2vYP9c5ldu8L20nSy5NoAQLXEmxx



1.2 数据管理技术的发展历史

在计算机诞生初期,计算机主要用于科学计算,那时的数据管理是以人工的方式进行的,后来发展到文件系统,再后来才是数据库系统。也就是说,数据管理技术的发展经历了人工管理阶段、文件系统阶段和数据库系统阶段。

1.人工管理阶段

20世纪50年代初期,即计算机诞生初期,计算机主要用于科学计算。这个时期的计算机,在硬件方面没有磁盘这样的直接存储设备,在软件方面没有操作系统,更没有数据管理软件,数据处理方式以批处理为主。所以为了完成科学计算和数据处理,数据管理必须手动完成,这个阶段称为人工管理阶段。人工管理阶段的特点有以下几个。

(1)数据不保存在计算机内。计算机主要用于科学计算,不对数据进行其他处理,也没有直接存储设备,数据与应用程序一起运行,运行完成后所占用的空间和应用程序所占用的空间一起被释放。

(2)数据不共享。数据是面向应用程序的,一组数据只对应一个应用程序,当多个应用程序涉及相同数据时,必须各自定义,因此数据存在大量的冗余。

(3)数据不具有独立性。数据完全依赖于应用程序,一旦数据发生变化,必须对应用程序做相应修改,这就说明数据不具有独立性。该特点加重了程序员的负担。

(4)应用程序管理数据。数据没有软件专门管理,由应用程序设计、定义和管理,应用程序不仅要规定数据的逻辑结构,还要设计物理结构。

在人工管理阶段,应用程序与数据之间有着一一对应关系,如图1.2所示。

图1.2 人工管理阶段应用程序与数据之间的关系

2 . 文件系统阶段

20世纪50年代后期到20世纪60年代后期,计算机在硬件方面已经有了磁盘、磁鼓等直接存储设备,在软件方面有了操作系统,并且已经有了专门的数据管理软件,即文件系统,数据处理方式不仅有批处理,还有联机实时处理。这个阶段称为文件系统阶段,文件系统阶段的特点有以下几个。

(1)数据可以长期保存。计算机大量用于数据处理,数据可以长期保存在计算机中,可以对其进行插入、删除、修改和查询等操作。

(2)数据共享性差。在文件系统中,一个文件基本上对应一个应用程序,不同应用程序在涉及相同数据时,也必须建立各自的文件,而不能共享相同数据,因此数据的冗余度很大。同时冗余度大也容易造成数据不一致,给数据的修改和维护带来困难。

(3)数据独立性差。数据仍然依赖于应用程序,缺乏独立性,不能反映现实世界事物之间的内在联系。

(4)文件系统管理数据。有专门的软件即文件系统进行数据管理。文件系统把数据组织成相互独立的数据文件。

在文件系统阶段,应用程序与数据之间的关系如图1.3所示。

3 . 数据库系统阶段

20世纪60年代后期以来,随着数据量急剧增长,数据管理规模一再扩大,数据应用范围也越来越广。这时计算机在硬件方面已经有大容量磁盘、磁盘阵列,硬件价格下降,软件价格上升。在数据处理方式上,不仅有批处理,还有联机实时处理和分布式处理等。在这种背景下,文件系统已经不能满足需求,于是为了满足多用户、多应用共享数据的需求,数据库技术应运而生,出现了专门管理数据的软件,即数据库管理系统(DataBase Management System,DBMS)。

图1.3 文件系统阶段应用程序与数据之间的关系

在数据库系统阶段,应用程序与数据(存在数据库中)之间的关系如图1.4所示。

图1.4 数据库系统阶段应用程序与数据之间的关系

20世纪70年代以来,数据库技术得到了迅速发展,弥补了文件系统的许多缺陷,能够更加有效地管理数据。概括起来,数据库系统阶段的特点有以下几个。

(1)数据可以长期保存在数据库管理系统内。采用数据模型描述复杂的数据,数据模型不仅要描述数据的本身特征,还要描述数据间的联系。

(2)数据具有较高的共享性。多个应用程序需要使用相同数据时,数据不用再重新定义,因为数据与数据之间有联系,所以数据具有较高的共享性,这同时大大减少了数据冗余,节约了存储空间。数据共享还能有效避免数据的不相容性和不一致性。

(3)数据具有较高的独立性。数据库结构包括物理结构、整体逻辑结构和局部逻辑结构3部分。数据独立性包括物理数据独立性和逻辑数据独立性两方面。物理数据独立性指应用程序与数据的物理结构相互独立,物理结构改变基本不影响数据的整体逻辑结构、用户逻辑结构和应用程序。逻辑数据独立性指数据的整体逻辑结构发生变化基本不影响用户逻辑结构和应用程序。

(4)采用数据库管理系统管理数据。数据库管理系统对数据的操作更加灵活、安全。 yKPiCEBikLTfkLk2QSJ/aAt2/lzewOpFNFyf2vYP9c5ldu8L20nSy5NoAQLXEmxx



1.3 数据模型

数据模型(Data Model)是对现实世界的数据和信息的模拟和抽象,用来描述数据、组织数据和对数据进行操作。现有的数据库系统均是基于某种数据模型的,数据模型是数据库系统的核心和基础。

1.3.1 数据模型的组成要素

数据模型通常由数据结构、数据操作和数据的完整性约束3个要素组成。

1 . 数据结构

数据结构用于描述系统的静态特征,是对数据库的组成对象以及对象之间关系的描述。数据结构规定了如何描述数据的类型、内容、性质和数据之间的关系等。数据结构是刻画数据模型性质最重要的方面,是数据模型的基础。因此,在数据库系统中,人们通常按照数据结构的类型来命名数据模型。例如,将层次结构、网状结构和关系结构的数据模型分别命名为层次模型、网状模型和关系模型。

2 . 数据操作

数据操作用于描述数据库系统的动态特征,是指数据库中各种对象所允许执行的操作及其规则的集合。数据库主要有检索和更新(包括插入、删除、修改)两大类操作。数据模型必须定义操作的确切含义、操作符号、操作规则(如优先级)以及实现操作的语言。

3.数据的完整性约束

数据的完整性约束是一组完整性规则的集合。完整性规则是给定的数据模型中数据及其联系所具有的制约和依存规则,用以限定符合数据模型的数据库状态以及状态的变化,以保证数据正确、有效和相容。

数据模型应该反映和规定自身必须遵守的、基本的、通用的完整性约束。例如,关系模型中的关系必须满足实体完整性和参照完整性两个约束。此外,数据模型还应该提供定义完整性约束的机制,以反映具体应用所涉及的数据必须遵守的特定的语义约束条件。例如,某大学的数据库规定学生的姓名不能为空、学生成绩不能为负数等。

1.3.2 常用数据模型

目前,数据库领域主流的数据模型是关系模型,除此之外还有层次模型、网状模型、面向对象数据模型、半结构化数据模型等。

1.关系模型

关系模型(Relation Model)是目前最常用的一种数据模型,关系数据库系统采用关系模型作为数据的组织方式。

1970年美国IBM公司San Jose研究室的研究员科德(E.F.Codd)首次提出了数据库系统的关系模型,开创了数据库关系方法和关系理论的研究,为数据库技术奠定了理论基础。关系模型的建立是数据库发展历史中最重要的事件之一。由于E.F.Codd的杰出贡献,他于1981年获得图灵奖。此后许多人把研究方向转到关系方法上,提出了关系数据库系统。

20世纪80年代以后,计算机厂商新推出的数据库管理系统几乎都支持关系模型,非关系数据库管理系统的产品也都加上了关系接口。数据库领域当前的研究工作大都是以关系方法为基础的。关系数据库管理系统已成为目前应用最广泛的数据库管理系统之一,例如,现在国内外广泛使用的MySQL、Oracle、SQL Server、TiDB、openGauss和OceanBase等都是关系数据库管理系统。

关系模型不仅要描述对象本身的数据结构,还要描述对象之间的关系。

【例1.2】 某关系数据库中存在student(学生)、course(课程)和score(成绩)3个关系,一个学生可以选修多门课程,一门课程也可以被多个学生选修,并通过考试获得成绩。用关系模型来描述三者之间的关系如图1.5所示,其中student表中的sno和score表中的sno、course表中的cno和score表中的cno存在关联关系。

图1.5 关系模型

(1)关系模型的数据结构

关系模型是用二维表结构表示实体及实体间联系的数据模型,在用户看来,关系模型的数据结构就是一张二维表,它由行和列组成,如图1.6所示。

图1.6 二维表

(2)关系模型的基本术语

关系(Relation):在关系模型中二维表称为关系,一个关系对应一张表,如student表。

元组(Tuple):表中的一行即一个元组,表示一个实体或一条联系。

属性(Attribute):表中的一列即一个属性,每个属性有一个名字即属性名。例如,student表中的属性有sno(学号)、sname(姓名)、sex(性别)、birthday(出生日期)和dept(系别)等。

主键或主码(Primary Key):表中的某个属性或属性集,它可以唯一确定元组,如student表中的sno、course表中的cno。

域(Domain):属性的取值范围,例如,sex的域是{男,女},dept的域是一个学校所有系别的集合。

分量:元组中的一个属性值。

关系模式:对关系的描述,一般表示为关系名(属性1,属性2,…,属性 n ),如学生(学号,姓名,性别,…)。

键或码(Key):属性或属性的集合,其值能够唯一标识元组。例如,sno就是关系student的键,可以用于确定一个学生。在实际使用中,键又分为候选键、主键、外键等。

主属性和非主属性:关系中,候选键中的属性称为主属性,不包含在任何候选键中的属性称为非主属性。

(3)关系的性质

关系具有如下性质:

①列是同质的,即每一列中的分量是同类型的数据,来自同一个域;

②每一列为一个属性,要给予不同的名字;

③关系中没有重复的元组,任意一个元组在关系中都是唯一的;

④元组的顺序可以任意交换;

⑤属性在理论上是无序的,但在使用中按习惯考虑顺序;

⑥所有的属性值都是不可分解的。

2.层次模型

层次模型用树状结构来表示各类实体及实体间的联系,因此层次模型也称为树状结构图。由于树状结构的特性,层次模型对具有1: n 的层次关系的事物描述得非常自然、直观,容易理解,现实世界中的学校组织结构关系等适合用层次模型表示,如图1.7所示。

图1.7 层次模型

3.网状模型

网状模型是用有向图表示实体及实体间联系的数据模型。网状模型的使用比层次模型更普遍,反映的是实体间普遍存在的更为复杂的联系。层次模型实际上是网状模型的一个特例。现实生活中的人与人之间的关系可以用网状模型表示,如图1.8所示。

图1.8 网状模型

相比于层次模型,网状模型适合描述较为复杂的现实世界。它的缺点是由于数据结构太复杂,不利于用户掌握。同时,有向图中可以到达某一个节点的路径有多条,因此应用开发者必须选择相对较优的路径来进行搜索以提高查询效率,这对应用开发者的要求是较高的。

4.面向对象数据模型

面向对象编程已经成为主流的软件开发方法,这导致了面向对象数据模型(Object-Oriented Data Model)的产生。该模型是面向对象程序设计方法与数据库技术相结合的产物,它的基本目标是以更接近人类思维的方式描述客观世界的事物及其联系。

面向对象数据模型具有封装性、信息隐匿性、持久性、继承性、代码共享性和软件重用性等特性,除此之外,面向对象数据模型最大的特点是有丰富的语义,便于更自然地描述现实世界。

5 . 半结构化数据模型

半结构化数据模型(Semi-Structured Data Model)允许那些相同类型的数据有不同的属性集。这和我们前面提到的数据模型形成了对比,通常数据模型中某种特定类型的所有数据必须有相同的属性集。

举一个半结构化数据的例子,即员工的简历。员工的简历结构不像员工基本信息结构那样一致,每个员工的简历各不相同。有的员工的简历很简单,比如只包括教育情况;有的员工的简历却很复杂,比如包括工作情况、婚姻情况、出入境情况、户口迁移情况、党籍情况、技术技能等。 yKPiCEBikLTfkLk2QSJ/aAt2/lzewOpFNFyf2vYP9c5ldu8L20nSy5NoAQLXEmxx

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