数据库原理与应用——引言(三)

  • Post author:
  • Post category:其他




数据库原理与应用——引言(三)



一、数据库技术和分类的发展历史



1. 根据数据模型的发展

  • 无管理阶段(1960年之前):科学计算,世界上第一台电子计算机是用来计算炮弹的弹道的。此时没有对数据做永久保存的需求。
  • 非数值应用:银行用户账户管理,学生基本信息管理,发现需要对数据长期保存,永久保存,于是在计算机发展历史上出现了操作系统,操作系统提供就文件系统,文件系统可实现简单的数据管理。
  • 当数据越来越复杂,数据管理需求越来越强,文件系统就不能满足需求,于是数据库管理系统应运而生。

    • 1964年出现第一个DBMS:IDS,网状数据模型
    • 1969年IBM推出第一个商用DBMS,层次数据模型
    • 1970年数据库领域发生划时代意义的突破,IBM的研究员E.F.Codd提出关系数据模型。

关系数据模型有一系列好处,它的数据结构非常简单:表,它将现实世界中的实体以及实体与实体之间的联系统一用表来表示,数据库中被管理的数据都存储成表,用户对数据库查询,查询出的结果仍然是表,形成一个封闭的空间,在这样的空间中,可以定义一个代数系统,即关系代数,有了这个关系代数之后,可以用数学的方法,来研究数据库中的问题,把数据库技术从单纯的工程技术领域学科上升到理论高度,可以用数学方法来研究它。这就是关系数据模型提出的最重要意义。自从1970年提出关系数据模型,关系数据模型很快替代了网状数据模型、层次数据模型,成为主流数据模型,一直到现在。但是关系数据模型还是存在一些不足和缺点。为了弥补这些不足,人们先后提出面向对象、演绎、E-R、XML…等数据模型,希望取代关系数据模型,但都没有成功… 直到现在,关系数据模型仍然是主流数据模型。



2. 根据DBMS体系结构的发展

  • 集中式数据库系统——在计算机技术发展的早期,一台主机带了很多终端 (十几个,二十几个),通过远程终端访问一台机器,不是用现在的网络通信,应用程序和数据库系统都跑在这一台机器上。很显然,数据库本身集中存放在这一台主机上面。
  • 并行数据库系统——随着计算机技术的发展,出现了并行计算机系统,为了提高计算机的运行效率,在一台机器上会有多个CPU,每台并行计算机的多个CPU中,每个CPU可能会带有自己的内存甚至硬盘,不管怎样,这样的并行计算机还是一台机器,在这样一台并行计算机环境下面,建数据库的话,从数据的分布方式来看,它还是集中存储在一台机器上,但这台机器它毕竟是一台并行计算机,它有多个CPU,有并行处理能力,所以从数据库系统角度来讲,研究怎么来充分利用它的并行处理能力来提高效率,于是考虑并行计算机系统的软硬件特点,在底层存储和查询优化上做了改进,形成了并行数据库系统。
  • 分布式数据库系统——70年代中后期,随着局域网和其他网络技术的发展,出现了分布式计算机系统,当时单台计算机的处理能力比较弱,一个大型的复杂计算任务,单台计算机完成不了,可以用多台处理能力比较弱的计算机,连成一个网络,在一个分布式操作系统的管理下,形成一个分布式系统,将多台联网计算机的处理能力整合起来共同协调完成一个复杂任务,使得这个系统达到一个中型机的处理能力,联网的每台机器相当于一个微型计算机。从数据管理角度来讲,也出现了分布式数据库系统,比如一个企业级的数据库,规模很大,现有任何一个计算机都满足不了存储和查询需求,此时可以借助分布式计算机系统的技术,将多台机器连成一个网络,把逻辑上企业级的大型数据库在物理上切分成若干块,分别存放在联网的多台计算机上,使得逻辑上完整的大型数据库的存储和查询能力分担到多台计算机上,这样联网的多台计算机每台负责一部分的数据存储和数据查询能力,整体合在一起对外呈现完整的数据库。
  • 联邦数据库系统——研究的也是在分布式环境下解决数据管理问题,与分布式数据库系统最大的差别是,一般的分布式数据库系统有一个统一的全局模式,虽然物理上数据是分布式的,但逻辑上给用户展现的是一个数据库;联邦数据库系统是一种松散耦合,物理上是多个数据库,逻辑上给用户展现的也是多个数据库,每个节点上的用户看到的数据是不一样的,可以更好的支持很多异构的已有数据库的集成问题。
  • 移动数据库系统——随着无线通信技术的发展,出现了移动数据库系统,研究怎么充分利用移动网络提供的移动通信能力,使用户在任何时间任何任何地点在移动终端如手机、平板上获得他所需要的企业数据。



3. 根据基于数据库的应用系统体系结构的发展

数据库是任何信息系统的基础和核心,应用的发展对DBMS的发展也提出了很多要求。

  • 集中式体系结构——主机+终端(没有处理能力),应用程序和数据库系统都跑在一台主机上。
  • 分布式结构——随着计算机网络的发展,出现了分布式体系结构。在分布式环境下,进行应用的开发。联网的计算机,每台计算机的地位都是平等的,在分布式数据系统的管理下,可能都存储了一部分数据,但是又需要其他节点上的数据,支持取其他节点的数据。这种结构叫分布式结构。
  • 客户端/服务器结构——80年代初,数据库还是集中存放,用一台处理能力比较强的机器作为服务器,把数据库系统安装在服务器,它负责管理整个企业的数据库,在该服务器上只跑DBMS,应用程序通过网络可以连接很多普通的处理能力相对比较弱的PC机,作为客户端,应用程序跑在客户机上,当它需要数据时,通过网络向DB Server提出请求,把SQL语句发过来,DB Server接收到查询请求之后,从海量的数据里面把你要的数据找到,通过网络再送给你,客户端拿到数据之后,去做各种各样的业务处理,服务器就不管了。联网的计算机之间有了分工,形成Client/Server结构。

    在这里插入图片描述

缺点:运行信息系统,需要在客户端安装应用程序。

  • 三层或多层结构——90年代初,随着互联网技术的发展,又出现了典型的信息系统体系结构, 三层或多层结构。前端是一个IE浏览器,用户通过IE通过Internet或者企业内部网Intranet,通过http协议向Web Server提出网络请求,Web Server接到请求之后,发现不是一个普通的网页页面请求,而是一个对信息系统业务模块的请求,会向对应的应用服务器App Server提出一个业务功能模块调用请求。不同的开发技术做法不一样,在运行过程中需要访问数据库,就需要向DB Server提出请求,数据库是存在这里的。形成一个结果之后,变成用户所要的结果如报表、页面等等,App Server会通过Web Server把结果转换成标准的HTML页面,HTML页面会通过Internet或Intranet送回给IE,用户就可以在浏览器上看到结果页面。

    在这里插入图片描述

    优点:1.前端简单,只需要一个浏览器,不需要安装任何应用程序,通过浏览器发出请求,处理请求的业务模块都跑在应用服务器(App Server)上,不同的技术会有差别。前端能跑浏览器就行,对客户端的要求低;2.因为在客户端不需要事先安装应用程序,当用户的业务需求发生变化的时候,对信息系统某些功能模块进行升级,用传统的Client/Server结构 ,这么多客户端都要安装新版本的应用程序,才能用新功能;BS架构下,如果功能升级,只需要替换App Server上的模块,所有客户端通过浏览器看到的就是最新的。从信息系统的运行和维护方面会带来很多好处。缺点就是因为中间有很多环节转换,会导致效率下降。另外,BS架构的活动范围可以很大,如在家通过VPN,就可以和在校园办公室一样,可以访问所有的校园内部所有的信息系统。传统的Client/Server结构用的是局域网,不容易实现大范围任意的活动。总之。两种结构都用的很广泛,很多软件同时支持两种结构,用户可以根据自身需要去选择。
  • 移动计算——90年代中后期,98年前后,随着移动互联网的发展就出现了移动计算技术,与上面的移动数据库系统相对应,研究怎么在移动计算环境下有效管理数据,开发应用程序,使用户在任何时间任何地点在智能移动终端如手机、平板上获得他所需要的数据。
  • 网格计算/云计算——都属于分布式计算技术,强调虚拟化,简单来说,网格计算的目的是把全世界联网的计算机的计算资源整合起来形成一个巨大的虚拟计算机。grid来源于传统的电力行业,早期用户用电的时候自己要想办法发电,后来随着技术的发展形成了社会分工,有发电厂专门发电,有电力公司负责电力的配送,各种各样的电器生产企业去生产终端电器,如冰箱、洗衣机等等,每家每户在盖房子的时候,电源插头都留好了,电器买来之后直接插上就可以用了,至于电是怎么来的,是哪个电厂发的电,都不用去管,用了多少电直接付钱就行了,grid是配送电的网络,跟grid比对,分布式计算这个环境下,大家都通过Internet连接起来,是不是有办法把联网的计算机的计算能力整合起来,像供电一样,形成一个巨大的虚拟计算机,按照理想,将来在家里除了有电插头还有计算力插头,拿一个小终端一插,背后就是全世界联网的计算机形成的巨大的虚拟计算机,可以提交一个复杂的计算任务,很快返回结果,你不需要关心是哪台服务器帮你做的计算,你只需要很快拿到结果就行了,然后根据计算量向你收钱,这就是网格计算的思想;后来的云计算和网格计算的本质是一样的,云计算更多的是工业界从商业运行模式上提出的概念,云计算也是虚拟计算,可以把互联网背后联网的这些计算资源看作云,它的背后也是个巨大的虚拟计算环境,连上去提出请求,它根据你的请求资源的情况向你收钱,应用:如IBM的蓝云,亚马逊的弹性计算云等等…,亚马逊把Mybase数据库做成一个云上的服务,如果需要2G的双核CPU,4G的内存,500G的硬盘的服务器,在这个服务器上需要安装一个Mybase数据库,将来我要管理的数据规模有二三百G,向亚马逊的云服务申请页面提出申请,把对计算资源的要求提出来提交给它,它就会分配资源,组合出你需要的资源,做好之后把访问资源的链接给你,拿到资源之后,知道服务器的IP地址,知道访问的Mybase数据库的链接字,就可以用了,就跟实验室里面连接一台服务器是一样的,往里面加载数据,做实验,最后按天、按月算钱,和自己买台机器相比便宜多了,做完还回去,不会再收钱,相当于租用它的资源,把实验数据从租的数据库中导出来存放在它的存储服务上(更便宜),隔了半年或一年之后又想要使用这个资源,或者想把实验改进一下,可以重新租计算环境,把实验数据导进来,做完再还回去。这比买一套服务器或者数据库的版权便宜的多。作为数据库领域的研究者,研究怎么样在网格或云计算环境下,有效管理数据,然后基于这些被管理的数据,在这样的好环境下进行应用系统的开发。



4. 根据数据库的应用领域的发展

  • OLTP(On-Line Transaction Processing):联机事务处理,基于结构化的数据以事务型的应用为主的应用领域,日常事务处理,如学籍管理,选课,学生基本信息管理,这一类应用就是OLTP应用,属于传统应用领域,也是最基本应用最多的领域。
  • 工程数据库:把数据库用来管理工程设计类数据,如CAD,CAM里面的机械零件设计等工程设计类数据,可以用关系型数据库、面向对象数据库甚至采用其他数据模型的数据库管理工程设计类数据,之所以叫工程数据库,是按照它的应用领域来分的,不管采用什么数据模型,如果用它来管理工程设计类数据,我们就把它叫工程数据库。
  • 多媒体数据库:同上,把数据库用来管理多媒体数据。
  • 演绎数据库:演绎数据库是指具有演绎推理能力的数据库。一般地,它用一个数据库管理系统和一个规则管理系统来实现。将推理用的事实数据存放在数据库中,称为外延数据库;用逻辑规则定义要导出的事实,称为内涵数据库。主要研究内容为,如何有效地计算逻辑规则推理。具体为:递归查询的优化、规则的一致性维护等。
  • 时态数据库:管理数据的时态信息,普通数据库没有把时间信息管理起来,比如企业数据库中关于员工的工资信息,把张三的工资有1500修改为1800,将来做查询的时候,他的工资就是1800,他原来的1500的信息就没有了。如果想要知道某一年某个员工的工资是多少就不知道。时态数据库把数据的时间信息管理起来,可以回答各种与时间相关的查询。
  • 空间数据库:用数据库管理时空地理信息,如GIS地理数据,卫星遥感遥测数据,牵涉到空间物体的点线面,空间物体之间的关系信息。
  • 数据仓库、OLAP、数据挖掘:在一些企业的信息系统里面,如果日常业务系统经过很多年运行,积累了大量的日常运行数据以后,怎么样在这些数据里面发现一些对经营决策有用的规律,数据仓库、OLAP、数据挖掘都是用来做这些事情的,希望在企业日常运行所积累的海量数据中想办法发掘内在规律,为我们的经营决策提供服务。联机分析处理OLAP(Online Analytical Processing)是一种软件技术,与OLTP相对应,它使分析人员能够迅速、一致、交互地从各个方面观察信息,以达到深入理解数据的目的,数据挖掘跟它类似。
  • 知识管理:用数据库管理企业的知识,IBM推出知识管理产品,基于XML的数据库引擎,技术文档、图纸、老师傅经验积累利用数据库技术把它们管理起来,方面后面的人查询检索学习。相当于知识的管理和积累。



二、什么是数据库系统?

在这里插入图片描述

数据库系统就是由DBMS,DBMS管理的数据,一个企业的数据库,在DBMS基础上开发的应用程序,以及复杂管理整个系统的管理员DBA这样几部分组织起来的系统叫做数据库系统。DBMS是核心,DBA是相当关键的角色,他对整个数据库系统的正常运行和维护起到了非常重要的作用。

  • 应用程序+DBMS+数据库+DBA —> 数据库系统
  • DBMS是数据库系统的核心

    • 提供了高级的用户接口(第三章),对用户来讲非常容易使用和理解
    • 支持有效的查询处理和优化(第四章)
    • 支持有效的目录管理:使得关系模型的高层概念和操作系统底层所存储的文件对象之间实现有效的转换和映射。
    • 提供有效的并发控制和恢复功能:在一个企业数据库,经常会有成千上万的用户同时访问系统,DBMS会有并发控制机制,当大量用户并发访问时,及时响应,不至于破坏数据的一致性,之间不产生冲突。恢复机制:保证出现各种软硬件故障时,不破坏数据库的一致性。
    • 提供完整性约束检查机制:可以自动按照用户定义的规则,帮助用户维护数据库中数据之间的关联关系,保证数据的一致性。
    • 提供完善的访问控制:保证只有授权的合法用户才能访问他有权访问的数据,非法用户进不了数据库。

      正是由于它的这些特点,而成为现在信息系统的基础和核心。



三、数据库系统的生命周期

  • 数据库系统规划阶段
  • 数据库设计阶段
  • 数据库创建和加载阶段
  • 数据库运行、管理和维护阶段
  • 数据库扩充和重构阶段

当一个企业想要实现信息化,基于数据库系统开发一个信息系统的时候,要对它进行规划,对信息系统的规模和边界进行规划,为了实现这样一个系统,应该采用什么样的架构,BS还是CS架构?如果采用某种架构,应该采用什么样的服务器,在上面应该使用什么样的操作系统,什么样的DBMS产品才能满足你的要求;规划好之后,我们把软硬件平台和架构明确后,要进行数据库设计(第六章),比如为了开发出这个应用系统,决定采用关系型数据库,那应该设计多少张表,每张表的模式是什么,表与表之间的联系是什么;数据库设计好之后,向数据库加载数据,在这个基础上开发应用程序;然后运行、管理、维护这个数据库;最后根据用户需求的变化和发展,对数据库做适当的扩充和重构。一个数据库系统长时间运行,可能不能满足新的应用需求,或者会产生一个垃圾或问题,DBA需要经常的维护、重构、调整,使它能够不断满足应用发展的需要。

在这里插入图片描述

数据库设计依据用户的信息需求,用户需要在我的数据库中管理哪些数据;对数据的处理需求,用户希望对这些数据做些什么处理;考虑所用数据库产品的特性,比如用的是Oracle,还是SQL Server,不同的数据库,特性可能不一样;考虑服务器硬件和操作系统的特性;综合考虑这些方面的因素来进行数据库的设计,最后得到你的那个数据库的数据模式,以及一些典型的应用,完成数据库的设计(具体第六章详细讲。)



版权声明:本文为zsl2010zsl原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。