理论教育 数据库技术及其应用分析

数据库技术及其应用分析

时间:2023-05-31 理论教育 版权反馈
【摘要】:数据库技术为解决这些问题提供了非常有力的技术支持。(一)数据库和数据库管理系统数据库是存储在计算机内,有组织、可共享的数据集合。数据库中的数据按一定的数据模型组织、描述和存储,具有较小的数据冗余度,较高的数据独立性和可扩展性,并且数据库中的数据可为各种用户共享。数据模型包括数据结构、数据操作和完整性约束3个部分。例如,学生信息包括学生姓名、性别、年龄等数据项,构成一个学生记录。

数据库技术及其应用分析

社会的发展,科学技术的进步,使得人们对使用、管理各种数据的需求大大增加。如何获取不同类型、具有不同来源、用于不同目的的数据,并有效管理、组织、存储和充分利用这些数据,是非常重要的问题。数据库技术为解决这些问题提供了非常有力的技术支持。

(一)数据库和数据库管理系统

数据库是存储在计算机内,有组织、可共享的数据集合。数据库中的数据按一定的数据模型组织、描述和存储,具有较小的数据冗余度,较高的数据独立性和可扩展性,并且数据库中的数据可为各种用户共享。

数据库管理系统(data base management system,DBMS)是一个软件系统,主要用来定义和管理数据库,处理数据库与应用程序之间的联系。数据库管理系统是数据库系统的核心组成部分,它建立在操作系统之上,对数据库进行统一的管理和控制。数据库管理系统的主要功能如下:

1.描述数据库

数据库管理系统能够提供数据描述语言(data define language,DDL),描述数据库的逻辑结构、存储结构、保密要求等,使我们能够方便地建立数据库,定义、维护数据库的结构。

2.操作数据库

数据库管理系统能够提供数据操作语言(data manipulation language,DML),使用数据操作语言,我们能够方便地对数据库进行查询、插入、删除和修改等操作。

3.管理数据库

数据库管理系统能够提供对数据库的运行管理功能,保证数据的安全性和完整性,控制并发用户对数据库数据的访问,管理大量数据的存储。

4.维护数据库

数据库管理系统能够提供数据维护功能,管理数据初始导入、数据转换、备份、故障恢复和性能监视等。

(二)数据模型

数据模型是对数据的特点、数据之间关系的一种抽象表示。数据模型包括数据结构、数据操作和完整性约束3个部分。数据操作是对数据模型中各种对象的操作。数据完整性约束是对数据模型中的数据的约束规则。数据结构则是对数据、数据类型、数据之间的关系的抽象描述。其中,数据结构是刻画数据模型性质的最重要的一个方面。

现有的数据库系统都是基于某种数据模型的。实际上,数据库系统是按照数据结构的类型命名数据模型的。目前,主要的数据模型有3种:层次模型、网状模型、关系模型。

在现实世界中客观存在并可相互区分的事物称为实体,它既可以是对现实世界中客观存在的人、事物的表示,也可以是抽象的概念或联系,如借书人的借书记录、学生选课记录等。不同的数据模型以不同的方式表达客观世界实体间的关系。

1.层次模型

层次模型使用树型结构表示、组织数据。实体用记录表示,每个实体有若干数据项组成。例如,学校是一个客观存在的实体。学校的基本信息包括学校编号、学校名称、学校类别、地址、邮政编码等数据项。

层次模型中任意2个节点之间不允许有多于1种的联系,每个节点只能有不多于1个的双亲节点。层次模型适合于表现具有比较规范的层次关系的系统。例如,组织结构模型。学校的组织结构为学校下属若干学院、系,1个学院只能属于1个学校,如图5-1所示。对这类清晰的层次结构,使用层次模型比较清楚,查询检索的路径唯一,检索效率比较高。但是,层次模型结构的限制,使其难以表达比较复杂的系统。

2.网状模型

网状模型比层次模型要复杂得多,同时所能表示的实体之间的关系也复杂得多。在网状模型中,允许一个节点有多于一个的双亲节点,而且后代节点与双亲节点允许有多于一种的联系。例如,学生既可以属于某个班级,也可以属于某个学生社团,如图5-2所示。正因为网状模型比较复杂,使得网状数据库的设计、检索和处理都比较复杂。

图5-1 树型结构的层次模型

图5-2 网状模型

3.关系模型

目前,主流的数据库系统都是基于关系模型的管理数据库系统。直观地说,关系模型中数据的逻辑结构类似于表5-1、表5-2、表5-3和表5-4所示的表结构,这种表结构称为二维表。二维表结构不论是在数据表达还是在数据检索上,都比层次模型和网状模型相应的处理要简单得多。

表5-1 学生表

表5-2 课程安排表(课程计划)

表5-3 教材

表5-4 成绩单

二维表的每一行对应一条记录。每条记录可以表示一个实体的信息,也可以反映实体之间的关系。例如,学生信息包括学生姓名、性别、年龄等数据项,构成一个学生记录。教材编号、教材名称、出版社、价格等与教材相关的信息构成教材记录。成绩表则反映了课程与学生之间的关系。

在本书中有关建立数据库和设计数据库应用程序的例题均基于上述4个表。

关系模型的主要优点如下:

(1)关系模型建立在严格的数学概念的基础上,有坚实的理论支持。

(2)数据结构简单、清晰,易于操作和管理。

(3)具有比较高的数据独立性,有利于系统的扩充和维护。

(4)具有能够处理有复杂关系的对象的能力。

早期的商用数据库的数据模型主要是层次模型和网状模型,而目前应用最广泛、发展最快的是关系模型。

(三)关系数据库

关系数据库理论提出并形成于20世纪60年代末、70年代初。自20世纪80年代以来,各计算机厂商推出的数据库管理系统几乎都是基于关系模型的关系数据库。关系模型不同于层次模型和网状模型,它建立在严格数学概念的基础上。同时,它的结构简单,数据操作便于掌握,使关系数据库得到了很大的发展,并得到广泛使用。(www.daowen.com)

1.关系模型

关系数据库中数据的基本结构是表(table),即数据按行、列有规则地排列、组织。数据库中每个表都有一个唯一的表名。

关系模型的基本术语如下:

关系:一个关系在逻辑上对应一个按行、列排列的表(table)。例如表5-1所示的学生表。表中的每一行对应一个学生的信息。

属性:表中的一列称为一个属性,或称为一个字段(field)。表示所描述的对象的一个具体特征。例如,表5-1中学生的“姓名”是学生这个实体的一种特征。

域:域是属性的取值范围。例如,性别属性的取值范围是“男”或“女”。元组:表中的每一行称为元组,又称记录(record)。

主键:在关系模型中,不允许一个表中有2个完全相同的元组,表中那个能够唯一标识元组的1个属性或属性集合称为主键(key)。例如,表5-1中学生记录的主键是“学号”,不论是否有重名的学生,“学号”可以唯一地标识(区别)每个学生。表5-4所示的主键由“课程ID”和“学号”构成,即只有确定2个属性才能唯一确定1条记录。只知道课程ID会得到1组选修该课程的学生的成绩记录;而只知道学号,将得到该学生所选课程的1组成绩。

外键:如果一个属性或属性集合不是某个关系的主键,而是另外一个关系的主键,则这个属性或属性集合称为该关系的外键。例如,有学生表和成绩表等2个关系(见表5-1、表5-4)。学生表的主键是“学号”,成绩表的主键是“学号”及“课程ID”。在成绩表中,“学号”不是主键(注意“学号”只是构成主键的属性之一),但是“学号”是学生表的主键。因此“学号”是成绩表的外键。

关系模式:关系名及关系中的属性集合构成关系模式(Schema)。例如,学生表的关系模式表示如下:

学生(学号,姓名,性别,政治面貌,出生日期,住址,邮政编码)。

关系模型中的一个表与普通的二维表有着本质上的不同。关系模型中的表都具有如下性质:

①关系中每一列的所有值具有相同的数据类型,且取自同一个域;

②属性必须有不同的名称,但是不同属性的属性值可以出自相同的域,即不同属性的属性值的取值范围可以相同;

③任意2行(即2条记录)不能完全相同;

④列的次序对表达查询要求的查询表达式没有影响;

⑤行的次序对表达查询要求的查询表达式没有影响。

关系中的每个属性都是不可再分的最小数据项,即表中每一列都不可再分。例如,表5-5所示是不满足这个条件的一张表。表中的籍贯列可以再分为“省”和“市/县”。这种结构不符合关系模型的基本条件,必须改变结构,才能表达为关系模式。改变这类结构的方法有2种,第一种方法是将2个字段合并为1个字段“籍贯”,如表5-6所示;第二种方法是将籍贯分为2部分,每部分为独立的1列,如表5-7所示。采用何种方法,应根据具体的应用需求而定。

表5-5 不符合关系模型的表

表5-6 方法一

表5-7 方法二

关系模型的缺点是在执行查询操作时,没有指定检索路径,往往需要执行表的链接、扫描等操作,而这些操作都是相当耗费系统资源的,因此执行时间较长。现在普遍使用的关系数据库系统都在不同程度上采用了查询优化技术,大大提高了关系数据库系统查询操作的效率。

2.关系数据库语言

关系数据库是以关系模型为数据组织方式的数据库系统。目前各种规模的商用数据库系统基本都是关系数据库。Oracle、Sybase、DB2、MS SQL Server等企业数据库,MS Access、MS Fox Pro、Paradox桌面数据库等都是关系数据库。

数据库的各项功能是通过数据库所支持的语言实现的,主要有数据定义语言、数据操作语言和数据控制语言。在关系数据库中,标准的数据库语言是SQL语言。

SQL(structured auery language)的含义是结构化查询语言。其实,SQL语言的功能远不止数据查询,还具有数据定义、数据操作和数据控制功能。

SQL语言是与关系数据接口一同发展起来的。1970年IBM的研究人员E.F.Codd提出了关系数据库的有关概念和理论,奠定了关系数据库的理论基础。随后,IBM公司在其研制的System R上实现了SQL语言。由于这种语言功能强大,语法简单,使用灵活,很快得到广泛应用。1986年美国国家标准局(ANSI)批准SQL作为关系数据库语言的美国国家标准。1987年国际标准化组织(ISO)也通过了这个标准。自此以后,各个数据库厂家推出的数据库产品都支持SQL语言或与SQL语言有软件接口。由于SQL语言的推广和使用,各个数据库之间的数据互访、互操作具有了共同的基础。可以说,在数据库的学习中,SQL语言是非常重要的一项内容。

SQL语言具有定义功能,可以定义数据库、定义基本表、定义视图、定义索引。SQL语言还支持对数据的更新、删除和检索操作。

这里所说的基本表是一个独立存在的表,一个关系对应一个基本表。视图是从一个基本表或几个基本表中导出的一个逻辑上的表。这种逻辑上的表在查询操作上与基本表没有什么差别。

(四)数据库应用系统的体系结构

1.集中式结构

在集中式数据库系统中,数据库管理系统、数据库、数据、应用程序等全部集中存放于大型或小型中央计算机上。系统从用户终端接受输入的数据或操作请求,处于中央计算机的DBMS接受请求后,按照处理要求对数据库进行操作,并将处理结果显示在终端屏幕上。在这类系统中,应用程序和数据库的处理操作都集中在中央计算机上,多个共享用户的处理请求也全部集中在中央计算机上。当系统用户数量比较多时,系统的响应、处理性能比较差。

2.文件服务器结构

个人计算机和局域网技术的出现推动了文件服务器结构的发展。在这种结构中,文件服务器上存放共享的数据文件。个人计算机上的应用程序可以透明地存取文件服务器上的数据。当个人计算机上的应用程序请求从共享文件读取数据时,网络软件自动从服务器中检索所需要的数据。MS Access、Paradox、MS FoxPro等数据库都支持这种文件服务器模式。

在文件服务器结构中,每个用户都能独立地控制正在运行的一个DBMS的副本。但是,由于查询处理需要对数据库进行扫描,而数据库保存在服务器上,这样,被选中的文件的所有数据都要通过网络传输,从而使系统的响应性能受到很大的影响。

3.客户端/服务器结构

客户端/服务器结构是将一个大的任务分解为多个子任务,由多台计算机分别完成各个子任务。客户端主要处理用户与系统的交互等工作,一般在用户的个人计算机上完成有关工作。存储、管理、操作数据及数据库的工作在服务器上运行。当用户在客户端上提出处理请求时,有关的请求被传送到数据库服务器上,服务器上数据库引擎处理这项请求。完成处理后,将处理结果通过网络传送到客户端,由客户端输出。

客户端/服务器结构将输入、输出等需要用户较多干预的操作集中在客户端的个人计算机上进行处理,查询处理等数据处理工作在数据库服务器上进行。这种体系结构充分发挥了服务器和个人计算机的处理能力,大大减少了网络的拥挤程度,提高了系统的性能。

基本的客户端/服务器结构包括3个部分:客户平台、服务器平台和连接支持。客户平台可以是任何一种微型计算机,操作系统可以根据需要选择。服务器平台必须是多用户计算机系统,可以是高档微型计算机、专用服务器或大、中、小型计算机。

4.浏览器/Web服务器/数据库服务器结构

在客户端/服务器结构中要求客户端的计算机具有一定的处理能力,而且客户端的计算机上需要安装相应的应用程序、工具软件,结果导致客户端负载比较重。应用程序的维护、更新都比较麻烦,且需要对使用者进行培训。为了解决这个问题,出现了浏览器/Web服务器/数据库服务器结构。

对于浏览器/Web服务器/数据库服务器结构,客户端主要安装浏览器,就可以访问应用程序。这种结构中,客户端的硬件与软件的要求都不太高,只要能支持浏览器的运行即可。各种应用程序在浏览器上的操作方式都很类似,因此可以大大减少对使用者的培训,更有利于软件的推广使用。

服务器端包含Web服务器和数据库服务器。Web服务器的主要工作是处理来自浏览器的用户请求,启动有关脚本或应用程序。数据库服务器的主要工作是保存系统的数据,支持用户对数据的检索。完成全部处理后,由Web服务器将返回结果插入到HTML页面,传送至客户端的浏览器。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈