首页 > 代码库 > 对数据库技术的发展及SQL数据库的认识
对数据库技术的发展及SQL数据库的认识
一、数据库管理技术的发展
数据库技术就是研究如何科学的管理数据以便为人们提供可共享的、安全的、可靠的数据的技术。数据库技术包括数据管理和数据处理两部分内容。
人工管理阶段
20世纪50年代中期以前,计算机主要用于科学计算。在这一阶段,计算机除硬件外,没有管理数据的软件,数据处理方式是批处理。数据的组织和管理完全靠程序员手工完成, 此阶段数据的管理效率很低,其特点如下。
1. 数据不保存
此阶段计算机主要用于科学计算,并不对数据进行其他操作,一般不需要将数据长期保存,只是在计算某一课题时将数据批量输入,数据处理完后不保存原始程序和数据。 计算 机断电之后计算结果也会随之消失。
2. 应用程序管理数据
数据需要由应用程序自己管理,没有相应的软件系统负责数据的管理工作。程序员不仅要规定数据的逻辑结构,而且要设计数据的物理结构,包括存储结构、存取方法和输 入输出方式等,使得程序员负担很重。
3. 数据不共享
一组数据只能对应一个程序,数据是面向应用的。各个应用程序的数据各自组织,无法互相利用和互相参照,因此程序与程序之间有大量的冗余数据。
4. 数据不具有独立性
数据的逻辑结构和物理结构都不具有独立性。当数据的逻辑结构或物理结构发生变化后,必须对应用程序做相应的修改,从而给程序员设计和维护应用程序带来繁重的负担。
文件系统阶段
20世纪50年代后期到60年代中期,硬件方面已有了磁盘、磁鼓等存储设备;软件方面,操作系统中已经有了专门的数据管理软件,一般称为文件系统。这时的计算机不仅用 于科学计算,也大量用于数据处理。
1. 文件系统的优点
此阶段数据管理具有如下特点。
(1) 数据可以长期保存
由于计算机大量用于数据处理,数据需要长期保留以便在外存上反复进行查询、修改、插入和删除等操作。
(2) 文件系统管理数据
由专门的软件即文件系统进行数据管理,文件系统把数据组织成相互独立的数据文件,利用“按文件名访问,按记录进行存取”的管理技术,可以对文件中的数据进行修改、 插入和删除操作。文件系统实现了记录内的结构化,但就文件整体而言是无结构的。程序和数据之间由文件系统提供的存取方法进行转换,使应用程序与数据之间有了一定的独 立性。程序员可以不必过多地考虑物理细节,将精力集中于算法。而且数据在存储上的改变不一定反映在程序上,大大节省了维护程序的工作量。
2. 文件系统的缺点
尽管文件系统有上述优点,但它仍存在一些缺点,主要表现在以下几个方面:
(1) 数据的共享性差,冗余度高
在文件系统中,数据的建立、存取都仍依赖于应用程序,基本是一个(或一组)数据文件对应于一个应用程序,即数据仍然是面向应用的。当不同的应用程序具有部分相 同的数据时,也必须建立各自的文件,而不能共享相同的数据,因此数据的冗余度大,浪费存储空间。同时,由于相同数据的重复存储和各自管理,容易造成数据的不一致 性,给数据的修改和维护带来困难。
(2) 数据的独立性不足
文件系统中的数据虽然有了一定的独立性,但是由于数据文件只存储数据,由应用程序来确定数据的逻辑结构,设计数据的物理结构,一旦数据的逻辑结构或物理结构 需要改变,必须修改应用程序;或者由于语言环境的改变需要修改应用程序时,也将引起文件数据结构的改变。因此数据与应用程序之间的逻辑独立性不强。另外,要想对现 有的数据再增加一些新的应用会很困难,系统不容易扩充。
(3) 并发访问容易产生异常
文件系统缺少对并发操作进行控制的机制,所以系统虽然允许多个用户同时访问数据,但是由于并发的更新操作相互影响,容易导致数据的不一致。
(4) 数据的安全控制难以实现
数据不是集中管理。在数据的结构、编码、表示格式、命名以及输出格式等方面不容
易做到规范化、标准化,所以其安全性、完整性得不到可靠保证,而且文件系统难以实现对不同用户的不同访问权限的安全性约束。
数据库管理阶段
从20世纪60年代末期开始,计算机管理的数据对象规模越来越大,应用范围越来越广,数据量急剧增加,数据处理的速度和共享性的要求也越来越高。与此同时,磁盘 技术也取得了重要发展,为数据库技术的发展提供了物质条件。随之,人们开发了一种新的、先进的数据管理方法:将数据存储在数据库中,由数据库管理软件对其进行统一 管理,应用程序通过数据库管理软件来访问数据。
1. 数据结构化
数据结构化是数据库与文件系统的本质区别。
在文件系统中,相互独立的文件的记录内部是有结构的。传统文件的最简单形式是等长同格式的记录集合。
2. 数据共享性高、冗余度低、易扩充
数据库系统从整体角度看待和描述数据,数据不再面向某个应用而是面向整个系统,因此数据可以被多个用户、多个应用共享使用。数据共享可以大大减少数据冗余,节 约 存储空间,还能够避免数据之间的不相容性与不一致性。
所谓数据的不一致性是指同一数据不同拷贝的值不一样。采用人工管理或文件系统管理时,由于数据被重复存储,当不同的应用使用和修改不同的拷贝时就很容易造成数据 的不一致。在数据库中数据共享减少了由于数据冗余造成的不一致现象。
由于数据面向整个系统,是有结构的数据,不仅可以被多个应用共享使用,而且容易增加新的应用。这就使得数据库系统弹性大,易于扩充,可以适应各种用户的要求。可以 取整体数据的各种子集用于不同的应用系统,当应用需求改变或增加时,只要重新选取不同的子集或加上一部分数据便可以满足新的需求。
3. 数据独立性高
数据独立性是数据库领域中的一个常用术语,包括数据的物理独立性和数据的逻辑独立性。
物理独立性是指用户的应用程序与存储在磁盘上的数据库中数据是相互独立的。也就是说,数据在磁盘上的数据库中如何存储是由DBMS管理的,用户程序不需要了解,应用程序要处理的只是数据的逻辑结构,这样当数据的物理存储改变了,应用程序不用改变。
逻辑独立性是指用户的应用程序与数据库的逻辑结构是相互独立的。也就是说,数据的逻辑结构改变了,用户程序可以不变。
数据与程序的独立把数据的定义从程序中分离出去,加上数据的存取又由DBMS负责,从而简化了应用程序的编制,大大减少了应用程序的维护和修改。
4. 数据由DBMS统一管理和控制
数据库的共享是并发的(Concurrency)共享,即多个用户可以同时存取数据库中的数据,甚至可以同时存取数据库中同一个数据。
为此,DBMS还必须提供以下几方面的数据控制功能。
(1) 数据的安全性(Security)保护
数据的安全性是指保护数据,以防止不合法的使用造成数据的泄密和破坏,使每个用户只能按规定对某些数据以某些方式进行使用和处理。
(2) 数据的完整性(Integrity)检查
数据的完整性指数据的正确性、有效性和相容性。完整性检查将数据控制在有效的范围内或保证数据之间满足一定的关系。
(3) 并发(Concurrency)控制
当多个用户的并发进程同时存取、修改数据库时,可能会发生相互干扰而得到错误的结果或使得数据库的完整性遭到破坏,因此必须对多用户的并发操作加以控制和协调。
(4) 数据库恢复(Recovery)
计算机系统的硬件故障、软件故障、操作员的失误以及故意的破坏也会影响数据库中数据的正确性,甚至造成数据库部分或全部数据的丢失。DBMS必须具有将数据库从错误 状态恢复到某一已知的正确状态(亦称为完整状态或一致状态)的功能,这就是数据库的恢复功能。
综上所述,数据库是长期存储在计算机内有组织的、大量的、共享的数据集合。它可以供各种用户共享,具有最小冗余度和较高的数据独立性。DBMS在数据库建立、使用和 维护时对数据库进行统一控制,以保证数据的完整性和安全性,并在多用户同时使用数据库时进行并发控制,在发生故障后对系统进行恢复。
数据库系统的出现使信息系统从以加工数据的程序为中心转向围绕共享的数据库为中心的新阶段。这样既便于数据的集中管理,又有利于应用程序的研制和维护,提高了数据 的利用率和相容性,提高了决策的可靠性。
二、数据库系统
数据库系统的组成
数据库系统是指计算机系统引入数据库后的系统。一般包括四个主要部分:数据库、数据库管理系统、应用程序和数据库管理员,数据库管理系统是核心
1.数据库
数据库是存放数据的仓库,数据是按一定的格式存放的。数据库数据具有永久存储、有组织和可共享三个基本特点
2.数据库管理系统
数据库管理系统是指位于用户和操作系统之间的一层数据管理软件。数据库系统如何科学的组织和存储数据,如何高效的获取和维护数据,都是由数据库管理软件来完成, 它是数据库系统的核心。
3.应用程序
应用程序是指以数据库以及数据库数据为基础的应用程序,如图书馆管理系统。
4.数据库管理员
数据库管理员负责数据库的规划、设计、协调、维护和管理等工作,主要保证数据库正确和高效运行。
数据库管理系统
数据库管理系统的主要功能有如下几点:
1.数据定义
DBMS提供数据定义语言DDL,用户可以通过DDL对数据库的对象进行定义,同时可以定义数据库的三级结构、两级映像,定义数据库的完整性约束等。
2.数据库的操纵功能
DBMS提供数据库的操纵语言DML,用户可以通过DML对数据库中的数据进行增删改查等操作。
3.数据库的保护功能
DBMS对数据库的保护主要是通过数据库的恢复、数据库的并发控制、数据库的完整性控制、数据库的安全性控制4个方面。
4.数据库的存储管理
DBMS的存储管理子系统提供了数据库中数据和应用程序一个界面,DBMS语句转换底层的文件系统命令,起到数据上的存储、检索和更新的作用。
5.数据库的维护功能
DBMS中实现数据库维护功能的实用程序主要有数据加载程序、备份程序、文件重组程序、性能监控程序。
6.数据字典
数据库系统中存放三级结构定义的数据库成为数据字典,对数据库的操作都要通过访问DD才能实现。
三、数据库系统的结构
数据库的三级模式
外模式
模式
内模式
1. 外模式/模式映像
当模式改变时(如增加新的关系、新的属性、改变属性的数据类型等),由数据库管理员对各个外模式/模式的映像作相应改变,可以使外模式保持不变。应用程序是依据数据 的外模式编写的,从而应用程序不必修改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性。
2. 模式/内模式映像
数据库中只有一个模式,也只有一个内模式,所以模式/内模式映像是唯一的,它定义了数据库全局逻辑结构与存储结构之间的对应关系,该映像定义通常包含在概念模式 的定义描述中。
当数据库的内模式存储结构改变了(如选用了另一种存储结构),由数据库管理员对模式/内模式映像作相应改变,可以使模式保持不变,从而应用程序也不必改变,保证了数 据与程序的物理独立性,简称数据的物理独立性。
在数据库的三级模式结构中,数据库模式即全局逻辑结构是数据库的中心与关键,它独立于数据库的其他层次。因此,设计数据库模式时,应首先确定数据库的逻辑模式。
数据库的内模式依赖于它的全局逻辑结构,但独立于数据库的外模式和具体的存储设备。它是将全局逻辑结构中所定义的数据结构及其联系按照一定的物理存储策略进行组织, 以达到较好的时间与空间效率。
数据库的外模式面向具体的应用程序,它定义在逻辑模式之上,但独立于内模式和存储设备。当应用需求发生较大变化,相应外模式不能满足其视图要求时,外模式就需要进 行相应地修改,所以设计外模式时应充分考虑到应用的扩充性。不同的应用程序有时可以共用同一个外模式。
数据库的二级映像保证了数据库外模式的稳定性,从底层保证了应用程序的稳定性,除非应用需求本身发生变化,否则应用程序一般不需要修改。
数据库的三级模式与二级映像实现了数据与程序之间的独立性,使数据的定义和描述可以从应用程序中分离出来。另外,由于数据的存取由DBMS管理,用户不必考虑存取路 径等细节,从而简化了应用程序的编制,大大降低了应用程序的维护和修改成本。
对数据库技术的发展及SQL数据库的认识