数据库应用程序开发入门篇——数据库的发展阶段、体系结构
写在前面:在学习各种数据库操作及应用程序开发之前,了解一下数据的基本概念、体系结构总是有所帮助的。对于文中的概念、体系结构可能无法一下子全都理解到位,这有待以后学习和工作中逐步体会。
免责声明:以下材料整理自参考书目或者网络,本文旨在学习数据库技术,无意侵权。
1.计算机处理数据的目的——更有效的获取和利用信息
计算机的一个重要功能就是对信息的处理。人类认识世界、改造世界的一切有意义的活动都离不开信息资源的利用、加工和处理。信息资源开发的越充分,加工越合理,信息利用的效率就越高,产生的价值就越大。而信息一般通过数据的形式来表示,而计算机能够实际处理的就是各种各样的数据。
数据与信息的联系与区别——形与质的关系
a.数据是信息的载体,而信息是数据的内涵;信息是加载在数据之上,对数据作具有含义的解释,信息依赖数据来表达,数据则生动具体地表现出信息。
b.数据是符号,是物理性的,信息是对数据进行加工处理之后得到的并对决策产生影响的数据,是逻辑性的概念。
2.数据管理技术的发展阶段——人工管理阶段、文件系统阶段、数据库系统阶段
数据管理随着计算机硬件和软件的发展而不断发展,40多年来经历了三个阶段:人工管理阶段、文件系统阶段和数据库系统阶段。
1)人工管理阶段
二十世纪五十年代中期以前,计算机主要用于科学计算。这一时期的外存只有纸带、卡片、磁带,没有磁盘等直接存取的设备,没有操作系统,没有管理数据的软件;数据处理方式基本是批处理。这一阶段的数据和程序之间的关系如下图所示:
人工管理数据特点:
a.不能单独保存数据。数据和程序是一个整体,数据只能为本程序所用,数据只有和相应的程序一起保存才有价值,否则毫无用处。
b.应用程序管理数据,计算机系统不提供对用户数据的管理功能。
c.数据不能共享,存在大量冗余,浪费存储空间。
2)文件系统阶段
二十世纪五十年代后期到六十年代中期,计算机开始大量用于数据处理工作,大量的数据存储、检索和维护工作提上议事日程。
此阶段硬件方面,拥有磁盘、磁鼓等直接存取设备;软件方面,操作系统中已经有专门的数据管理软件,一般称为文件系统;数据处理方式:批处理以及联机实时处理。文件系统阶段数据和程序之间的关系如下图所示:
文件系统管理数据特点:
a.数据以文件的形式长期保存在外部存储器上;
b.数据的逻辑结构和物理结构有了区别,但比较简单。程序与数据之间具有"设备独立性",即程序能实现按名存取,而不必关心数据的物理位置。
c.文件组织方式多样化,但文件之间相互独立、缺乏联系。数据之间的联系要通过程序去改造。
d.数据面向应用。 数据不再属于某个特定的程序,可以重复使用,即数据面向应用。但是文件结构的设计仍是给予特定的用途,程序基于特定的物理结构和存取方法,因此程序和数据结构之间的依赖关系并未根本改变。
e.文件系统管理数据由专门的软件即文件系统进行数据管理,文件系统把数据组织成相互独立的数据文件,利用“按文件名访问,按记录存取”的管理技术,可以对文件进行修改、插入、删除等操作;
缺点:数据冗余度大 、数据和程序缺乏独立性 、增删数据困难、 数据独立性差。
一旦数据的逻辑结构改变,必须修改应用程序,修改文件结构的定义,修改应用程序。例如,应用程序改用不同的高级语言等,将引起文件的数据结构改变,因此数据与程序之间仍缺乏独立性。
3)数据库系统阶段
二十世纪六十年代后期以来,数据管理技术进入了数据库系统阶段。
此阶段 硬件方面:拥有大容量磁盘,硬件价格下降;
软件方面:软件价格上升,为编制和维护系统软件及应用程序的成本相对增加;
数据处理方式:统一管理数据的专门软件系统,即数据库管理系统。
数据库阶段数据和程序之间的关系如下图所示:
数据库系统的特点:
a.数据结构化;
数据结构化是数据库与文件系统的根本区别。在文件系统中,尽管记录内部已经有了某些结构,但记录之间没有联系。
b.数据共享性高,冗余度低,易扩充;
数据库系统从整体角度描述数据,数据不再面向某个应用,而是面向整个系统,因此数据可以被多个用户、多个应用共享使用。数据共享可以大大减少数据冗余,节约存储空间。
c.数据独立性高
数据独立性包括物理独立性、逻辑独立性。
数据的物理存储改变,应用程序不需改变。数据与程序独立,把数据的定义从程序中分离,数据的存取由DBMS负责,简化应用程序的复杂程度,大大减少应用程序的维护和修改。
d.数据由DBMS统一管理和控制。
数据库的共享是并发的共享,即多个用户可以同时存取数据库中的数据,甚至可以同时存取数据库中的同一个数据。
以上三个阶段的背景及特点总结如下表所示:
比较项目 |
人工管理 |
文件系统 |
数据库系统 |
背景 |
应用背景 |
科学计算 |
科学计算、管理 |
大规模管理 |
硬件背景 |
无直接存取存储设备 |
磁盘、磁鼓 |
大容量磁盘 |
软件背景 |
没有操作系统 |
有文件系统 |
数据库管理系统 |
数据处理方式 |
批处理 |
批处理、联机实时处理 |
批处理、联机实时处理、分布处理 |
特点 |
数据管理者 |
人 |
文件系统 |
数据库管理系统 |
数据面对的对象 |
某一应用程序 |
某一应用程序 |
整个应用系统 |
数据共享程度 |
无共享、数据冗余度极大 |
共享性差、数据冗余度大 |
共享性高、数据冗余度小 |
数据独立性 |
数据不独立、完全依赖程序 |
数据独立性差 |
数据具有高度物理独立性和逻辑独立性 |
数据结构化 |
无结构 |
记录内有结构、整体无结构 |
整体结构化、用数据模型描述 |
数据控制能力 |
应用程序自己控制 |
应用程序自己控制 |
由数据库管理系统提供数据安全性、完整性、并发控制和恢复能力 |
3.数据库体系结构
数据库系统结构常见的分类方式有两种:从数据库管理系统的角度看,数据库系统通常采用三级模式结构;从数据库最终的用户角度看,数据库系统的体系结构分为单用户结构、主从式结构、分布式结构和客户/服务器结构等外部体系结构。
1)三级模式结构——三级结构,两级映像,两级数据独立性
尽管实际的数据库系统的类型和规模可能相差很大,软件产品多种多样,但是绝大多数的数据库系统都遵循美国国家标准委员会下的标准计划和要求委员会(SPARC)公布的数据库体系结构标准,即SPARC三级模式结构。三级模式结构如下图所示:
a.三级模式——概念模式、外部模式、内部模式
(1)概念模式
定义:概念模式(简称模式,也称逻辑模式)是对数据库全局逻辑结构的描述,是数据库所有用户的公共数据视图。
概念模式描述:
所有实体、实体的属性和实体间的联系;
数据的约束;
数据的语义信息;
安全性和完整性信息。
(2)外部模式
定义:外部模式(也称子模式或用户模式)是用户观念下局部数据结构的逻辑描述,是数据库用户(包括应用程序员和最终用户)能够看见和使用的局部数据的逻辑结构和特征的描述。
设置外部模式有如下优点:方便用户使用,简化了用户接口;保证数据的独立性;有利于数据共享;有利于数据安全和保密。
(3)内部模式
定义:内部模式(也称存储模式)是对数据库中数据物理结构和存储方式的描述,是数据在数据库内部的表示形式。
定义了所有内部记录类型、索引和文件的组织方式,以及所有数据控制方面的细节。
内部模式与下面的工作相关:数据和索引的存储空间分配;用于存储的记录描述(数据项的存储大小);记录放置;数据压缩和数据加密技术。
b. 两级映象——模式/内模式映象、外模式/模式映象
为了提高数据库系统中的数据独立性,数据库系统在这三级模式间提供了两层映像:外部模式/概念模式映像和概念模式/内部模式映像。所谓映像是一种对应规则,它指出了映像双方是如何进行转换的。
数据按外模式的描述提供给用户,按内模式的描述存储在磁盘中, 而概念模式提供了连接这两级的相对稳定的中间观点,并使得任何一级的改变都不受另一级的牵制。
(1)模式/内模式映象:用于定义概念模式和内模式之间的对应性。一般在内模式中描述。
(2)外模式/模式映象:用于定义外模式和概念模式间的对应性。在外模式中描述。
两级映射关系如下图所示:
c. 两级数据独立性—— 物理数据独立性、逻辑数据独立性
定义:数据独立性是指应用程序和数据库的数据结构之间相互独立,不受影响。
(1) 物理数据独立性:修改内模式时尽量不影响概念模式及外模式。
(2) 逻辑数据独立性:修改概念模式时尽量不影响外模式和应用程序。
通过这两种映像,可以是数据库具有较高的数据独立性,也可以是逻辑结构和物理结构得以分离,换来了用户使用数据库的方便,最终把用户对数据库的逻辑操作导向为对数据库的物理操作。
2)外部体系结构
数据库的外部体系结构分为以下几种:
a.单用户结构
整个数据库系统(应用程序、DBMS、数据)装在一台计算机上,为一个用户独占,不同机器之间不能共享数据。
这是早期的最简单的数据库系统。例如,一个企业的各个部门都使用本部门的机器来管理本部门的数据,各个部门的机器是独立的。由于不同部门之间不能共享数据,因此企业内部存在大量的冗余数据
b.主从式结构
这是一个主机带多个终端的多用户结构。数据库系统,包括应用程序、DBMS、数据,都集中存放在主机上,所有处理任务都由主机来完成。各个用户通过主机的终端并发地存取数据库,共享数据资源。
优点是易于管理、控制与维护;缺点是当终端用户数目增加到一定程度后,主机的任务会过分繁重,成为瓶颈,从而使系统性能下降系统的可靠性依赖主机,当主机出现故障时,整个系统都不能使用。
主从结构示意图如下:
数据库中的数据在逻辑上是一个整体,但物理地分布在计算机网络的不同结点上。网络中的每个结点都可以独立处理本地数据库中的数据,执行局部应用,同时也可以同时存取和处理多个异地数据库中的数据,执行全局应用。
优点:适应了地理上分散的公司、团体和组织对于数据库应用的需求
缺点:数据的分布存放给数据的处理、管理与维护带来困难;当用户需要经常访问远程数据时,系统效率会明显地受到网络传输的制约。
分布式结构示意图如下所示:
客户/服务器结构数据库系统,把DBMS功能和应用分开。网络中某个(些)结点上的计算机专门用于执行DBMS功能,称为数据库服务器,简称服务器;其他结点上的计算机安装DBMS的外围应用开发工具,用户的应用系统,称为客户机。
客户/服务器结构的优点:
客户端的用户请求被传送到数据库服务器,数据库服务器进行处理后,只将结果返回给用户,从而显著减少了数据传输量;
数据库更加开放,客户与服务器一般都能在多种不同的硬件和软件平台上运行,可以使用不同厂商的数据库应用开发工具。
客户/服务器结构的缺点:
出现所谓“胖客户”问题既系统安装复杂,工作量大,应用维护困难,难于保密,造成安全性差,相同的应用程序要重复安装在每一台客户机上,从系统总体来看,大大浪费了系统资源;系统规模达到数百数千台客户机,它们的硬件配置、操作系统又常常不同,要为每一个客户机安装应用程序和相应的工具模块,其安装维护代价便不可接受了。
e.浏览器/应用服务器/数据库服务器结构
即B/S结构,客户端的浏览器软件界面统一,广大用户容易掌握,大大减少了培训时间与费用;服务器端分为两部分即应用服务器和数据库服务等。B/S结构大大减少了系统开发和维护代价,能够支持数万甚至更多的用户。
以上内容当做数据库学习的第一步啦,对于某些概念性的东西理解需要慢慢体会。
4.参考资料
(1)数据库原理及开发应用 清华大学出版社 周屹等编著
(2)http://wenku.baidu.com/view/956366553c1ec5da50e27069.html
(3)http://wenku.it168.com/d_000397481.shtml