一、三个世界
1、现实世界 人们管理的对象存于现实世界中。现实世界的事物及事物之间存在着联系,这种联系是客观存在的,是由事物本身的性质决定的。例如学校的教学系统中有教师、学生、课程,教师为学生授课,学生选修课程并取得成绩。
2、概念世界 概念世界是现实世界在人们头脑中的反映,是对客观事物及其联系的一种抽象描述,从而产生概念模型。概念模型是现实世界到机器世界必然经过的中间层次。涉及到下面几个术语:
实体:我们把客观存在并且可以相互区别的事物称为实体。实体可以是实际事物,也可以是抽象事件。如一个职工、一场比赛等。
实体集:同一类实体的集合称为实体集。如全体职工。注意区分"型"与"值"的概念。如每个职工是职工实体"型"的一个具体"值"。
属性:描述实体的特性称为属性。如职工的职工号,姓名,性别,出生日期,职称等。
关键字:如果某个属性或属性组合的值能唯一地标识出实体集中的每一个实体,可以选作关键字。用作标识的关键字,也称为码。如"职工号"就可作为关键字。
联系:实体集之间的对应关系称为联系,它反映现实世界事物之间的相互关联。联系分为两种,一种是实体内部各属性之间的联系。另一种是实体之间的联系。
3、机器世界 存入计算机系统里的数据是将概念世界中的事物数据化的结果。为了准确地反映事物本身及事物之间的各种联系,数据库中的数据必须有一定的结构,这种结构用数据模型来表示。数据模型将概念世界中的实体,及实体间的联系进一步抽象成便于计算机处理的方式。
数据模型应满足三方面要求:一是能比较真实地模拟现实世界;二是容易为人所理解;三是便于在计算机上实现。数据结构、数据操作和完整性约束是构成数据模型的三要素。数据模型主要包括网状模型、层次模型、关系模型等,它是按计算机系统的观点对数据建模,用于DBMS的实现。
关系数据库采用关系模型作为数据的组织方式。 关系数据库因其严格的数学理论、使用简单灵活、数据独立性强等特点,而被公认为最有前途的一种数据库管理系统。它的发展十分迅速,目前已成为占据主导地位的数据库管理系统。自20世纪80年代以来,作为商品推出的数据库管理系统几乎都是关系型的,例如,Oracle,Sybase,Informix,Visual FoxPro等。
网络数据库也叫Web数据库。促进Internet发展的因素之一就是Web技术。由静态网页技术的HTML到动态网页技术的CGI、ASP、PHP、JSP等,Web技术经历了一个重要的变革过程。Web已经不再局限于仅仅由静态网页提供信息服务,而改变为动态的网页,可提供交互式的信息查询服务,使信息数据库服务成为了可能。Web数据库就是将数据库技术与Web技术融合在一起,使数据库系统成为Web的重要有机组成部分,从而实现数据库与网络技术的无缝结合。这一结合不仅把Web与数据库的所有优势集合在了一起,而且充分利用了大量已有数据库的信息资源。图1-1是Web数据库的基本结构图,它由数据库服务器(Database Server)、中间件(Middle Ware)、Web服务器(Web Server)、浏览器(Browser)4部分组成。
Web数据库的基本结构
它的工作过程可简单地描述成:用户通过浏览器端的操作界面以交互的方式经由Web服务器来访问数据库。用户向数据库提交的信息以及数据库返回给用户的信息都是以网页的形式显示。
1.1.1 Internet技术与相关协议
Internet技术在Web数据库技术中扮演着重要的角色。Internet(因特网)专指全球最大的、开放的、由众多网络相互连接而成的计算机网络,并通过各种协议在计算机网络中传递信息。TCP/IP协议是Internet上使用的两个最基本的协议。因此也可以说Internet是全球范围的基于分组交换原理和TCP/IP协议的计算机网络。它将信息进行分组后,以数据包为单位进行传输。Internet在进行信息传输时,主要完成两项任务。
(1)正确地将源信息文件分割成一个个数据包,并能在目的地将源信息文件的数据包再准确地重组起来。
(2)将数据包准确地送往目的地。
TCP/IP协议的作用就是为了完成上述两项任务,规范了网络上所有计算机之间数据传递的方式与数据格式,提供了数据打包和寻址的标准方法。
1.TCP/IP协议
TCP协议(Transmission Control Protocol,传输控制协议)规定了分割数据和重组数据所要遵循的规则和要进行的操作。TCP协议能保证数据发送的正确性,如果发现数据有损失,TCP将重新发送数据。
2.IP协议
在Internet上传送数据往往都是远距离的,因此在传输过程中要通过路由器一站一站的转接来实现。路由器是一种特殊的计算机,它会检测数据包的目的地主机地址,然后决定将该数据包送往何处。IP协议(Internet Protocol,网际协议)给Internet中的每一台计算机规定了一个地址,称为IP地址。IP地址的标准是由4部分组成(例如202.112.203.11),其中前两部分规定了当前使用网络的管理机构,第3部分规定了当前使用的网络地址,第4部分规定了当前使用的计算机地址。
Internet上提供的主要服务有E-mail、FTP、BBS、Telnet、WWW等。其中WWW(World Wide Web,万维网)由于其丰富的信息资源而成为Internet最为重要的服务。
3.HTTP协议
HTTP协议(Hypertext Transfer Protocol,超文本传输协议)应用在WWW上,其作用是完成客户端浏览器与Web服务器端之间的HTML数据传输。
1.1.2 Web的工作原理与工作步骤
万维网简称为Web。Web可以描述为在Internet上运行的、全球的、交互的、动态的、跨平台的、分布式的、图形化的超文本信息系统。
1.Web的工作原理
Web是伴随着Internet技术而产生的。在计算机网络中,对于提供Web服务的计算机称为Web服务器。Web采用浏览器/服务器的工作方式。每个Web服务器上都放置着大量的Web信息。Web信息的基本单位是Web页(网页),多个网页组成了一个Web节点。每个Web节点的起始页称为“主页”,且拥有一个URL地址(统一资源定位地址)。Web节点之间及网页之间都是以超文本结构(非线性的网状结构)来进行组织的。
2.Web的工作步骤
Web的工作步骤如下。
(1)用户打开客户端计算机中的浏览器软件(例如Internet Explorer)。
(2)用户输入要启动的Web主页的URL地址,浏览器将生成一个HTTP请求。
(3)浏览器连接到指定的Web服务器,并发送HTTP请求。
(4)Web服务器接到HTTP请求,根据请求的内容不同作相应的处理,再将网页以HTML文件格式发回给浏览器。
(5)浏览器将网页显示到屏幕上.
图1-2 Web的工作步骤
1.1.3 WWW世界中的标记语言
1.HTML语言
HTML(Hypertext Markup Language,超文本标记语言)是创建网页的计算机语言。所谓网页实际上就是一个HTML文档。文档内容由文本和HTML标记组成。HTML文档的扩展名就是.html或.htm。浏览器负责解释HTML文档中的标记,并将HTML文档显示成网页。
(1)HTML标记
HTML标记的作用是告诉浏览器网页的结构和格式。每一个标记用尖括号<>括起来。大多数标记都有一个开始标记和一个结束标记。标记不分大小写。多数标记都带有自己的属性。例如字体标记<FONT>有FACE、COLOR、SIZE等属性:FACE定义字体;COLOR定义字体的颜色;SIZE定义字体的大小。
使用格式:<FONT FACE= SONG SIZE=3 COLOR=RED > BEIJING </FONT>。
网页中有很多文本链接和图片链接。链接,又被称为超链接,用于链接到WWW万维网中的其他网页上。在HTML文档中表示超链接的标记是<A>,通过属性HREF指出链接的网页地址URL。
使用格式:<A HREF= > BEIJING </A>。
(2)HTML程序
HTML程序必须以<HTML>标记开始,以</HTML>标记结束。在<HTML>和</HTML>标记之间主要由两部分组成:文件头和文件体。文件头用标记<HEAD> </HEAD>来标识,文件体用标记<BODY></BODY>来标识。在文件的头部通常包含整个网页的一些信息。例如<TITLE></TITLE>标记是用来说明网页的名称;<META></META>标记是用来说明网页的其他信息,如设计者姓名和版权信息等。所有在浏览器中要显示的内容称为网页的主体,必须放在<BODY></BODY>标记中。下面给出的是一个空网页的HTML程序。
<HTML>
<HEAD>
<TITLE>(在此标记中写网页的标题)</TITLE>
</HEAD>
<BODY>
(在此标记中写网页的内容)
</BODY>
</HTML>
(3)HTML规范
HTML规范又称为HTML标准,它总在不断地发展。每一新版本的出现,HTML都会增加新的特性和内容。有关HTML版本的详细信息请访问网站。
在不同的浏览器中,网页的显示效果可能会有所不同。每一个浏览器都使用自己独特的方式解释HTML文档中的标记,并且多数浏览器不完全支持HTML的所有特性。因为,像Microsoft和Netscape公司在HTML标准上又开发了一些特有的HTML标记和属性,称之为HTML的扩展。这些标记和属性只被他们自己的浏览器所识别,不可能被其他公司的浏览器识别。如果浏览器不能识别HTML文档中的标记,则会忽略这个标记。
(4)HTML程序的编辑环境与运行环境
HTML文档是一个普通的文本文件(ASCII),不包含任何与平台、程序有关的信息。因此HTML文档可以利用任何文本编辑器来方便地生成。要注意的是HTML文档的扩展名必须是.html或.htm。运行HTML文档可以在任何浏览器下进行,并可在浏览器上查看网页的HTML源代码。
关于HTML语言中标记的种类与使用方法将会在第5章中更详细地进行介绍。
2.可扩展标记语言(XML)
HTML是Web上的通用语言,随着Internet的深入人心,WWW上的Web文件日益复杂化、多样化,人们开始感到了HTML这种固定格式的标记语言的不足。1996年W3C开始对HTML的后续语言进行研究,并于1998年正式推出了XML(Extensible Markup Language,可扩展标记语言)。在设计网页时,XML提供了比HTML更灵活的方法。
(1)XML语言的特点
XML是国际组织W3C为适应WWW的应用,将SGML (Standard Generalized Markup Language)标准进行简化形成的元标记语言。简单地说,XML是使用标记来描述内容或与内容相关的形式信息的通用语言。一个XML文档由标记和字符数据组成。
而作为元标记语言,XML不再使标记固定,允许网页的设计者定义数量不限的标记来描述内容,同时还允许设计者创建自己的使用规则。
(2)XML的DTD
DTD(Document Type Definition,文档类型定义)是一组应用在XML文档中的自定义标记语言的技术规范。DTD中定义了标记的含义及关于标记的语法规则。语法规则中确定了在XML文档中使用哪些标记符,它们应该按什么次序出现,标记符之间如何 嵌套,哪些标记符有属性等等。DTD可以包含在它所描述的XML文档中,但通常它是一份单独的文档或者一系列文档。作为外部文件可通过URL链接,被不同的XML文档 共享。
XML把DTD的定义权开放,不同行业可以根据自己的实际需求定义描述内容的DTD,以适应本行业内部的信息交流和存档需要。因此,适合于不同行业、不同平台的标记语言大批涌现。
(3)XML的CSS与XSL
强调内容描述与形式描述的分离,一方面可以使XML文件的编写者更集中精力于数据本身,而不受显示方式的细节影响;另一方面允许为相同的数据定义不同的显示方式,从而适合于不同应用、不同媒体,使XML数据得到最大程度的重用。XML文档数据的显示形式是通过样式单定义的。CSS(Cascading Style Sheets)是XML使用的一种标准的级联样式单,XSL(Extensible Style Language)则是可扩展的样式语言。
由于XML允许用户创建任何所需的标记,而通用浏览器却既无法预期用户标记的意义,又无法为显示这些标记而提供规则,因此用户必须为自己创建的XML文档编写样式单,样式单可以实现共享。
浏览器对一个XML文档的处理过程是,首先去关联它所指定的样式单文件,如果该样式单是一个XSL文件,则按照规定对XML数据进行转换然后再显示,XSL本身也是基于XML语言的,可以将XML转化为HTML后再显示。如果该样式单是一个CSS文件,浏览器就会按照样式单的规定给每个标记赋予一组样式后再显示。
1.2 Web数据库访问技术
Web数据库访问技术通常是通过三层结构来实现的,如图1-3所示。目前建立与Web数据库连接访问的技术方法可归纳为CGI技术,ODBC技术和ASP、JSP、PHP 技术。
Web数据库访问的三层结构
1.2.1 CGI技术
CGI(Common Cateway Interface,通用网关界面)是一种Web服务器上运行的基于Web浏览器输入程序的方法,是最早的访问数据库的解决方案。CGI程序可以建立网页与数据库之间的连接,将用户的查询要求转换成数据库的查询命令,然后将查询结果通过网页返回给用户。一个CGI工作的基本原理如图1-4所示。
CGI程序需要通过一个接口才能访问数据库。这种接口多种多样,数据库系统对CGI程序提供了各种数据库接口如Perl、C/C++、VB等。为了使用各种数据库系统,CGI程序支持ODBC方式,通过ODBC接口访问数据库。
CGI工作流程
1.2.2 ODBC技术
ODBC(Open Database Connectivity,开放数据库互接)是一种使用SQL的应用程序接口(API)。ODBC最显著的优点就是它生成的程序与数据库系统无关,为程序员方便地编写访问各种DBMS的数据库应用程序提供了一个统一接口,使应用程序和数据库源之间完成数据交换。ODBC的内部结构为4层:应用程序层、驱动程序管理器层、驱动程序层、数据源层。它们之间的关系如图1-5所示。由于ODBC适用于不同的数据库产品,因此许多服务器扩展程序都使用了包含ODBC层的系统结构。
ODBC的内部结构
Web服务器通过ODBC数据库驱动程序向数据库系统发出SQL请求,数据库系统接收到的是标准SQL查询语句,并将执行后的查询结果再通过ODBC传回Web服务器,Web服务器将结果以HTML网页传给Web浏览器,工作原理如图1-6所示。
Web服务器通过ODBC访问数据库
由于Java语言所显示出来的编程优势赢得了众多数据库厂商的支持。在数据库处理方面,Java提供的JDBC为数据库开发应用提供了标准的应用程序编程接口。与ODBC类似,JDBC也是一种特殊的API,是用于执行SQL语句的Java应用程序接口。它规定了Java如何与数据库之间交换数据的方法。采用Java和JDBC编写的数据库应用程序具有与平台无关的特性。
1.2.3 ASP、JSP、PHP技术
ASP是Microsoft开发的动态网页技术,主要应用于Windows NT+IIS或 Windows 9x+PWS平台。确切地说ASP不是一种语言,而是Web服务器端的开发环境。利用ASP可以产生和运行动态的、交互的、高性能的Web服务应用程序。ASP支持多种脚本语言,除了VBScript和Pscript,也支持Perl语言,并且可以在同一ASP文件中使用多种脚本语言以发挥各种脚本语言的最大优势。但ASP默认只支持VBScript和Pscript,若要使用其他脚本语言,必须安装相应的脚本引擎。ASP支持在服务器端调用ActiveX组件ADO对象实现对数据库的操作。在具体的应用中,若脚本语言中有访问数据库的请求,可通过ODBC与后台数据库相连,并通过ADO执行访问库的操作。关于ASP的编程技术将会在第7章中详细介绍。
JSP是Sun公司推出的新一代Web开发技术。作为Java家族的一员,几乎可以运行在所有的操作系统平台和Web服务器上,因此JSP的运行平台更为广泛。目前JSP支持的脚本语言只有Java。JSP使用JDBC实现对数据库的访问。目标数据库必须有一个JDBC的驱动程序,即一个从数据库到Java的接口,该接口提供了标准的方法使Java应用程序能够连接到数据库并执行对数据库的操作。JDBC不需要在服务器上创建数据源,通过JDBC、JSP就可以实现SQL语句的执行。
PHP是Rasmus Lerdorf推出的一种跨平台的嵌入式脚本语言,可以在Windows、UNIX、Linux等流行的操作系统和IIS、Apache、Netscape等Web服务器上运行,用户更换平台时,无需变换PHP代码。PHP是通过Internet合作开发的开放源代码软件,它借用了C、Java、Perl语言的语法并结合PHP自身的特性,能够快速写出动态生成页面。PHP可以通过ODBC访问各种数据库,但主要通过函数直接访问数据库。PHP支持目前绝大多数的数据库,提供许多与各类数据库直接互连的函数,包括Sybase、Oracle、SQL Server等,其中与SQL Server数据库互连是最佳组合。
1.3 网络数据库应用系统的层次体系
当前,Internet/Intranet技术发展异常迅速,越来越多的数据库应用软件运行在Internet/Intranet环境下。在此之前,数据库应用系统的发展经历了单机结构、集中式结构、客户机/服务器(C/S)结构之后,随着Internet的普及,又出现了浏览器/服务器(B/S)结构与多层结构。在构造一个应用系统时,首先考虑的是系统的体系结构,采用哪种结构取决于系统的网络环境、应用需求等因素。
1.3.1 客户机/服务器结构
1.二层C/S结构
二层C/S结构是当前非常流行的数据库系统结构,在这种结构中,客户机提出请求,服务器对客户机的服务请求做出回答。它把界面和数据处理操作分开在前端(客户端)和后端(服务器端),这个主要特点使得C/S系统的工作速度主要取决于进行大量数据操作的服务器,而不是前端的硬件设备;同时也大大降低了对网络传输速度的要求,因为只须客户端把服务请求发送给数据库服务器,数据库服务器只把服务结果传回前端,如图1-7所示。
在设计时,对数据可能有如下不同的处理形式。
(1)在处理时,客户机先向服务器索取数据,然后释放数据库,即客户机发出的是文件请求,在客户机端处理数据,最后将结果送回服务器。这种处理方式的缺点很明显:所有的应用处理都在客户端完成,这就要求客户端的计算机必须有足够的能力,以便执行需要的任何程序。更为糟糕的是,由于所有的处理均在客户端完成,每次运行时都要将文件整体传送到客户端,然后才能执行。如:Student表中有30 000条记录,客户端发出命令:
Select * From Student Where Sno='200101'
这条命令将要求服务器将Student表中的所有记录传送到客户端,然后在客户端执行查询,结果只用到一条记录;如果查询的记录不存在,网络传输的数据实际上是无 用的。如此大的数据传输量是不可想象的。因此,人们提出了在服务器中能够执行部分代码的客户机/服务器结构。
(2)在处理时,客户机接受用户要求,并发给服务器;在服务器端处理用户要求,最后将结果传回客户机显示或打印。这种处理方式网络通信量较小。客户机向服务器发出的是处理请求,而不是文件请求,处理请求中的代码在服务器端执行后向客户机传送处理后的结果。
这样,为了特定任务,客户机上的程序和服务器上的程序协同工作:客户机端的代码用于完成用户的输入输出及数据的检查,而服务器端的代码完成对数据库的操作。
客户机/服务器结构的另一个主要特点在于软件、硬件平台的无关性。数据库服务器上的数据库管理系统集中负责管理数据,它向客户端提供一个开放的使用环境,客户端通过数据库接口,如ODBC(开放数据库连接)和SQL语言访问数据库,也就是说,不管客户端采用什么样的硬件和软件,它只要能够通过网络和数据库接口程序连接到服务器,就可对数据库进行访问。
在客户机/服务器结构中,常把客户机称为前台,而把服务器端称为后台。前台应用程序的功能包括用户界面、接收用户数据、处理应用逻辑、向后台发出请求、同时接收后台返回的结果,最后再将返回的结果按一定的格式或方式显示给用户。而后台服务器则负责共享外部设备、存取共享数据、响应前台客户端的请求并回送结果等工作。前台的应用程序和数据一般是用户专用的,而后台的数据和代码是所有用户可以共享的。
由于数据库服务器不仅要管理共享数据,保证数据的完整性,还要执行一部分代码,完成客户端的一些处理请求,所以对用于服务器的计算机提出较高的要求。最好要采用一台专用的服务器,有较快的处理速度,有大容量的硬盘和内存,支持磁带等大容量的存储设备。
上面讲的客户机/服务器结构将应用分在了客户机、服务器两级,称其为两层客户机/ 服务器结构。总之,两层C/S结构的基本工作方式是客户程序向数据库服务器发送SQL请求,服务器返回数据或结果。
这种C/S结构有两种实现方式,一种是客户来完成表示部分和应用逻辑部分,而服务器完成数据访问部分,这种情况是以客户为中心的,适用于应用相对简单、数据访问量不是很大的情况。另一种是以服务器为中心的,把一些重要的应用逻辑部分放到服务器上,这样可充分利用服务器的计算能力,减少网络上需要传送的数据。通常以存储过程和触发器的形式出现,但存储过程都依赖于特定数据库,不同数据库之间很难移植,而三层C/S结构可以很好地解决这个问题。
注意:触发器(trigger)是数据库系统中,一个在插入、删除、修改操作之后运行的记录级事件代码。不同的事件可以对应不同的动作。通常有3种类型的触发器:INSERT触发器、DELETE触发器和UPDATE触发器。
2.三层C/S结构
由于两层结构的客户机/服务器系统本身固有的缺陷,使得它不能应用于一些大型、结构较为复杂的系统中,故出现了3层结构的客户机/服务器系统,将两层结构中服务器部分和客户端部分的应用单独划分出来,即采用“客户机—应用服务器—数据库服务器”结构(如图1-8所示)。典型的数据库应用可分为三部分:表示部分、应用逻辑(商业逻辑)部分和数据访问部分,三层结构便是对应于这三部分。
图1-8 三层C/S结构
其中,应用服务器和数据库服务器可位于同一主机,也可位于不同主机。客户机是应用的用户接口部分,负责用户与应用程序的交互,运行在客户机端的软件也称为表示层软件。应用服务器存放业务逻辑层(也称为功能层)软件,是应用逻辑处理的核心,实现具体业务。它能响应客户机请求,完成业务处理或复杂计算。若有数据库访问任务时,应用服务器层可根据客户机的要求向数据库服务器发送SQL指令。应用逻辑变得复杂或增加新的应用时,可增加新的应用服务器。数据库服务器便是用来执行功能层送来的SQL指令,完成数据的存储、访问和完整性约束等。操作完成后再通过应用服务器向客户机返回操作结果。
1.3.2 浏览器/服务器结构
随着Internet技术和Web技术的广泛应用,C/S结构已无法满足人们的需要。因为在典型C/S体系中,通常为客户安装前端应用程序的做法已不再现实,并且限制客户端工作环境只能基于Windows、Macintosh或UNIX等操作系统也不切实际。于是基于浏览器/服务器结构(Browser/Server)的系统应运而生。
采用B/S结构后,在客户端只需安装一个通用的浏览器即可,不再受具体操作系统和硬件的制约,实现了跨平台的应用。
基于B/S结构的典型应用通常采用三层结构:“浏览器—Web服务器—数据库服务器”,B/S模式的工作原理是:通过浏览器以超文本的形式向Web服务器提出访问数据库的请求,Web服务器接受客户请求后,激活对应的CGI程序将超文本HTML语言转化为SQL语法,将这个请求交给数据库,数据库服务器得到请求后,进行数据处理,然后将处理结果集返回给CGI程序。CGI再将结果转化为HTML,并由Web服务器转发给请求方的浏览器,如图1-9所示。
图1-9 B/S工作原理
在B/S模式中,客户端的标准配置是浏览器,如IE;业务功能处理由独立的应用服务器处理,Web服务器成为应用处理的标准配置;数据处理仍然由数据库服务器处理。
从本质上讲,B/S结构与传统的C/S结构都是以同一种请求和应答方式来执行应用的,区别主要在于:C/S是一种两层或三层结构模式,其客户端集中了大量应用软件,而B/S是一种基于超链接(HyperLink)、HTML、Java的三级或多级C/S结构,客户端仅需单一的浏览器软件,是一种全新的体系结构,解决了跨平台问题。到目前,这两种结构在不同方面都有着广泛的应用。虽然C/S结构在Internet环境下明显不如B/S结构具有优势,但它在局域网环境下仍具有优势。
1.3.3 Internet/Intranet信息系统的多层体系结构
多层结构应用软件与传统的两层结构应用软件相比,有可伸缩性好、可管理性强、安全性高、软件重用性好等诸多优点,如何在Internet/Intranet环境下构建应用软件体系结构就成为一个非常重要的问题,也是现今软件体系研究的一个新热点。
目前各种技术层出不穷,如最初的静态HTML页面、简单的CGI网关程序、Java Applet程序,现在的ASP等Web数据库技术,还有动态的Java在线游戏及PHP技术等。
实际上,多层的概念是由Sun公司提出来的。Sun公司提出的多层应用体系包括4层:客户层、顶端Web服务层、应用服务层和数据库层。其中顶端Web服务层是Sun公司多层体系结构中非常重要的一层,它主要起代理和缓存的作用。顶端Web服务器的作用是缓存本地各客户机经常使用的Java Applet程序和静态数据,通常被放置在客户机所在的局域网内,起到一个Java Applet主机(向Web浏览器传送Java Applet程序的计算机)和访问其他服务的代理作用。与普通代理服务器的作用相同。构建多层结构应用软件时,选用Java平台是一个很好的选择,因为它跨越各应用平台。总之,在Java平台上构建多层应用软件体系代表着今后Internet/Intranet应用的趋势。
西南大学计算机应用专业毕业论文
教师个人教学网站设计
前 言
自四十年代电子计算机问世以来,计算机科学发展迅速,应用领域不断扩展由于计算机的普及与广泛应用,现代社会正朝着高度信息化,自动化方向发展。
随着计算机硬件的不断成熟,成本不断降低,特别是个人台式计算机,已经是各行各业必不可少有办公设备,而且近几年个人台式计算机,笔记本电脑逐步走后门向我国普通家庭,成为“家用电器”中的一员。计算机的普及与广泛应用,除硬件方面的因素外,还有微机所使用的各种软件的开发,推广和应用起了很大的促进作用;特别是近几年来随着计算机网络的不断升温,由其是“因特网”的发展和广泛运用,网民人数在飞速增长,除了获取信息外,网络的一个非常重要的功能是拉近了人与人之间的距离。一种新兴的教学模式(远程教育)出现在人们面前。网上教学有着传统教育模式无法比拟的优势,它利用计算机和网络通信技术,将教学内容传递给地理位置相互分离的学生,使不同地点的学生可以受到相同的教育,以解决广大受教育者,尤其是那些无正规时间或集中时间进行学习的人们在时间、空间的经费上的限制,可以使受教育者打破传统教育在教育资源(师资、教材、实验和演示设备等)和教育方法(统一模式、集中模式)上的限制。在教师和学生、学生和学生之间的交互性;学习的异步性; 学习信息的广泛性;评价的及时性等方面都有极大改善!这些优势,使得远程教育在全球迅速普及开来,网上教学已经成为当今Internet技术的主要应用之一!
[摘要] 网上教学是利用计算机通讯技术与教育技术相结合,在计算机网络上开展教学的方式。近年来,它已成为当前教育技术发展中的一个新热点。远程将彻底改变我们传统的教育、教学方式,而教育、教学方式的改变,势必促进科学技术的飞速发展。本系统基于B/S开发设计,并侧重于介绍教师部分的开发。
[关键词] 网上教学 Internet SQL+PHP B/S C/S Internet Information Server(IIS)
现代开放式网上教学的特点
网上教学是利用计算机通讯技术与教育技术相结合,在计算机网络上开展教学的方式。近年来,它已成为当前教育技术发展中的一个新热点。现代开放式网上教学具有很多独特的新特点。
(1) 共享 在网上可以组织最优秀的教材和教法,使学员在网上可以学到最新知识。这包括了最好的教材、最好的教学方法与教学思想。教学资源的共享,其实质是实现了社会资源的最优配置。
(2) 交互 网上教学的最大特点是利用现代通讯技术以实施远程交互。网络教学的关键是:学员可以与远程的教师通过电子邮件、BBS等建立交互关系,学员之间也可以进行类似的交流和共同学习。
(3) 随意 学员只要具备上网的条件可以在任何时刻、任何地点进行学习,它没有播出时间的限制,也没有学习进度的限制,学员完全可以在一种轻松的氛围中进行自主的学习。特别适应于就业培训、在职教育和课外学习等。
(4) 超前性 网上教学可以开设最新的、最具权威的课程或讲座,而这在一般学校中却可能难以实现。
(5) 可更新 网上教学的网页可以做得比较简单,而教学知识点的组织及结构的表示则成为主要的问题,必须给予更多的重视。教师可以随时地补充、修改或更新网上教学的内容。
(6) 社会化 随着计算机网络教学的发展,学生可以逐步摆脱学校围墙的束缚,面对的是一个更加广阔的知识天地。教学内容更新的速度可能更快,对学员来说也意味着在将来较短的时间中准备接受更多的知识。
现代开放式远程教学与传统的远程教学也有一定的区别:
在基于网络(Internet)的教育环境下,可以最大限度地发挥学习者的主动性、积极性,既可以进行个别化教学,又可以进行协作型教学(通过各种协作式教学策略的运用而实现),还可以将“个别化”与“协作型”二者结合起来,所以是一种全新的网络教学模式。这种教学模式可以完全按照个人的需要进行,不论是教学内容、教学时间、教学方式甚至指导教师都可以按照学习者自己的意愿或需要进行选择。学习者可以在家里或是在办公室学习(通过计算机终端),也可以在旅途中学习(通过便携式多功能微机)。每个学习者在学习过程中均可完成下列操作功能:查询和访问分布在世界各地的多种信息源(必要时可以从该信息源拷贝所需的软件或资料);对选择出的信息资料进行分析、加工(排序、重组或变换)和存储;
和教师或其他学习者直接通讯(进行咨询、辅导、讨论和交流);和教师或其他学习者共享或共同操纵某个软件或文档资料的内容。由于在这种教学模式下,能为学习者提供图文音像并茂的、丰富多采的交互式人机界面,能为学习者提供符合人类联想思维与联想记忆特点的、按超文本结构组织的大规模知识库与信息库,因而易于激发学习者的学习兴趣,并为学习者实现探索式、发现式学习创造有利条件。从而有可能在这种教学模式下,真正达到让学习者主动建构知识的意义、实现自己获取知识自我更新甚至创造新知识的理想目标。
在基于网络(Internet)的教育中,除了可实施传统的讲授式策略(包括利用双向可视电话系统的同步式集中讲授,和利用电子邮件或下载教学内容、浏览网页等异步式讲授)、讨论式策略(通过Internet先登录到一台主机上,然后进入BBS系统参加讨论)以及个别辅导策略(可通过用Java语言编写的实时运行的CAI课件来实现,也可通过自由下载的CAI课件实现)以外,还可实施最具网络特色的探索式教学策略和协作式教学策略。
现代网络教学可以分为:在线式教学(On-line),如实时通信等;离线式教学(Off-line),如电子邮件等。在网络教学过程中,不仅有自学模式,也有群体教学模式。网络教学不在是一人一机的封闭式学习环境,而是一个开放的系统,实现双向教学,采取有提问、有反馈和交流的教学方法。
而传统的远程教学多是采用静态网页的形式单向地进行教学,缺少交互和交流,学生的积极性不高。达不到理想的效果。 相比之下,现代开放式的远程教学更具有现实意义。
提出问题
随着本校校园网的建设完成,宽带进入宿舍、教室等校园内的每一个角落,为了更好的利用网络优势,实现网上教学,需制作一个统一的教学网站系统来实现和管理网上教学,它可以减轻全校教师教学负担和满足学生课后自学的需要。
“教师个人教学网站”是一个适合“教学”、“辅导”及“测试”一体化的个人网站系统,网站提供的功能和日常教学一样由教师教案、作业、疑问解答、测试等功能模块组成;学生可以根据自己的需要,来进行学习和提问。问题定义是软件定义时期的第一个阶段,要精确完成软件的定义还需经可行性研究,需求分析两个阶段,所以上述定义中出现不十分明确的描述是再所难免的。
· 可行性研究
教师个人教学网站相当于一个远程教学系统。网上教学系统是基于网络开展的,特别是基于INTERNET开展的一种计算机辅助教学。
其示图如下:
关于“教师个人教学网站”的可行性问题,主要取决于数据库的科学性,其次是实现系统的技术的可行性,再其次是操作的可行性。
数据库的科学性,主要取决于入库内容的科学性,它涉及到数据库中的各种参数,即数据库中的各种属性字段;对数据库的质量起着决定性的作用。因此应与用户一道分析确定数据库中的各个属性字段,降低数据的冗余程度。
以下是进一步澄清问题的定义后,得出有结果:
a、 数据库字段:
科目 ID 章 节 教学内容 作业及解答 掌握程度 疑问解答 在线测试
b、 数据库E-R图:
或:
“通用档案管理系统”的设计与实现
贺元成1 温怀玉2
(泸州职业技术学院, 四川泸州646005)
摘要档案是科学知识的宝库、是文化的积累和沉淀,是统计分析的第一手资料,是研究决策的权威
依据。随着计算机技术在档案管理领域中的广泛应用,档案系统的通用性,灵活性、可扩展性
成为最关注的问题。本文提出了动态档案结构的概念,系统没有固定的档案数据库文件、数
据库结构和数据库类型,在运行过程中根据使用单位的需求动态生成档案结构,实现了在一
个数据库字段内存取任何类型电子文件,并自动从数据库提取、识别和运行电子文件的方法,
实现了档案管理系统软件的通用性,具有良好的应用推广应用价值。
关键词档案管理;通用性;动态管理;电子档案
建立基于计算机网络的档案管理信息系统,形
成一个现代化的集档案数据采集,加工、存储、检
索、输出和发布于一体的档案数据处理中心,是实
现各单位档案信息管理标准化和现代化的前提条
件,是提高档案管理效率、提高档案服务水平的根
本途径。“通用档案信息管理系统”软件的研发促
进了档案管理部门以新的观念、新的制度、新的模
式与手段开展档案信息管理工作。软件实现了档
案信息管理电子化、网络化,增强档案管理的科学
性,规范性和易操作性,改变了传统繁琐的档案管
理模式。该软件的通用性设计避免了各类型档案
系统的重复投入开发,具有良好的应用推广价值。
1 系统的需求分析
“通用档案管理系统”主要研究通用的档案管
理信息化解决方案,研究各单位各行业档案系统
的普遍特征,研发适合各类型层次单位的档案信
息管理系统软件。在泸州职业技术学院综合档案
管理的基础上,通过通用性的研究,将该系统的可
应用拓展到其他单位或者行业的档案信息系统建
设,以期提高地方档案工作信息化水平,系统主要
应解决以下关键问题。
(1)开发“档案信息管理系统”
主要研究档案的整理与组卷、档案归档管理、
档案内部与远程查询、电子文档的管理、打印编
目、借阅管理、统计分析等功能的设计与实现,全
面实施档案管理微机化管理,增强其科学性、通用
性、规范性和易操作性。
(2)开发“公共档案web 发布系统”
对需要让公众查阅或对外交流的档案通过互
联网web 页面进行发布,做到经济高效、方便快
捷。
(3)加强通用性研究,促进推广应用
由于该软件具有较高的推广价值,系统特别
注重通用性的研究,以减少重复开发,节约人力物
力和财力。以泸州职业技术学院的应用为起点,
直至推广应用,促进本地区及周边地区档案信息
化的建设。
(4)总结经验、技术创新
系统看法过程中注重开发经验的总结和开发
技术的创新,为开发类似的信息管理系统提供借鉴。
2 系统研发的原则
通过考察大量的管理信息系统开发实践总结
基金项目:四川省软科学项目(05ZR025-12,2007R16-005)、四川省教育厅重点课题(2006A170)和泸州市重点科技项目
(泸市科[2006]21 号、泸市科[2007]27 号)资助
作者简介:1 贺元成(1965 ),男,硕士,教授。主要研究方向:机械工程,信息化。
2 温怀玉(1977 ),男,硕士,高级工程师。主要研究方向:软件工程。
“通用档38 案管理系统”的设计与实现2007 年第4 期
出系统开发中应遵循的基本原则,遵循这些原则
可以提高管理信息系统开发的成功机会。这些基
本原则如下:
(1)针对性原则
档案管理信息系统的目的是及时、准确地收集
档案的数据并加工成信息,保证信息的畅通,为单
位各项决策、经营、计划、控制活动提供依据,因此,
在系统开发的整个过程中,开发人员应始终与用户
保持密切联系,不断地、及时地了解用户的要求和
意见,这是开发工作取得成功的必要条件之一。
(2)实用性原则
实用性是系统开发所要遵循的最重要原则,
系统必须满足用户管理上的要求,既保证系统功
能的正确性又方便实用,需要友好的用户界面、灵
活的功能调度、简便的操作和完善的系统维护措
施。为此,系统的开发必须采用成熟的技术,认真
细致地做好功能和数据的分析,并充分利用代码
技术、菜单技术及人机交互技术,力求向用户提供
良好的使用环境与信心保证。
(3)系统性的原则
管理信息系统是综合信息管理的软件系统,
有着鲜明的整体性、综合性、层次结构性和目的
性。它的整体功能是由许多子功能的有序组合而
成的,与管理活动和组织职能相互联系、相互协
调。系统各子功能处理的数据既独立又相互关
联,构成一个完整而又共享的数据体系。因此,在
管理信息系统的开发过程中,必须十分注重其功
能和数据上的整体性、系统性。
(4)创新性原则
管理信息系统的功能不是简单地用计算机模
仿传统的手工作业方式,而是发挥计算机自动化
管理的各项优势去改革传统的工作。建立的管理
信息系统不仅能够代替人去完成一般的事务性工
作,还要求具有一定的分析统计、智能功能,弥补
传统方式的不足,完成人们认为应该干而又不能
干的工作。
(5)动态适应性原则
档案管理信息系统开发的动态适应性还要强
调管理信息系统的可扩展性。随着单位规模的扩
大以及外界环境的不断变化,会出现新的管理要
求。为了适应这种变化,管理信息系统必须具有
良好的可扩展性和易维护性。
(6)标准化原则
无论是档案管理信息系统本身,还是档案管
理信息系统的开发过程,都应该遵循和保存相应
的标准。
3 系统开发相关技术
3.1 软件开发方法
应用软件系统主要有两种开发模式:生命周
期法和原型法。生命周期法强调自顶向下分阶段
开发,并要求在实际开发前必须先对系统需求严
格定义,原型法开发则首先由技术设计人员提供
一个“样品”,用户再向开发人员迅速“反馈”,并不
断对其修改提高。通过开发实践表明,原型法是
一种更好的开发模式。这是因为建立快速原型进
行系统的分析和构造可以增进软件人员和用户对
系统服务的需求理解,使比较含糊的具有不确定
性的软件需求明确化,可以防止以后由于不能满
足用户需求而造成的返工,避免不必要的经济损
失,缩短开发周期;原型法提供了一种有力的学习
手段,让用户尽早的熟悉和学习系统;使用原型法
可以很容易的确定系统的性能,确认各项主要系
统服务的可用性,确认系统设计的可行性,也很容
易生成最终版本。
3.2 软件系统运行模式
C/S 模式是较为成熟的软件运行模式,基于
局域网设计,运行速度快,安全性高,为当今主要
的软件所采用,B/S 软件运行模式是软件结构发
展的趋势,基于互联网设计,客户端不需要安装程
序。相对于单一的C/S 模式或B/S 模式,这种混
合模式的优点在于:保证敏感数据的安全性,特别
是加强了对数据库的修改、删除和增加等操作的
控制能力;经济有效的利用校园网内部的计算机
资源,简化了一部分客户端程序;既保证了复杂功
能的交互性,又保证了一般功能的易用性与统一
性。因此学院的档案管理信息系统采用C/S 模式
和B/S 混合模式进行开发。
3.3 NET 系统开发平台
通过.NET,Microsoft 提供了一种全新的开发
平台,这个平台将推动以新体系为基础的协同
Web应用开发,.NET开发平台的组成如图1 所示。
NET 开发工具,包括:IDE(Visual Studio.
NET集成开发环境),用来开发和测试应用程序;.
NET 编程语言(例如Visual Basic.NET 和新的
Visual C #),用来创建运行在CLR 下并且使用
类库的应用程序。
2007 年第4 期泸州职业技术学院学报39
3.4 系统相关数据库技术
档案管理信息系统数据库平台具有支持大量
并发数据访问的处理能力,大规模数据的存储能
力、快速的检索能力,并发处理能力和各种异构数
据库平台之间的传输、存储和转换能力。目前供
选用的有SQL server、oracle、db2。其中SQL Server
是一款面向高端的关系型数据库管理系统,它
提供新一代大型电子商务、数据仓库和数据库解
决方案。并且提供了丰富的管理工具支持数据的
完整性、安全性和作业管理,具有分布式数据库和
数据仓库功能,能进行分布式事务处理和联机分
析处理,支持客户机/服务器结构。
4 系统流程与功能设计
4.1 档案系统管理流程
档案资料由文件形成部门进行预立卷、组卷、
拟定标题审卷后,收集送交档案管理部门,档案管
理部门对有问题的盒(卷)提出修改建议返还文件
形成部门,修改完毕录入案卷目录、填写案卷封
面,办理移交手续归档。经档案档案管理部门,对
外提供借阅、统计、分析、查询等服务,并由档案管
理部门负责销毁工作。总体业务流程见图2。
4.2 档案管理系统结构
(1)多层分布式结构
档案管理信息系统是以单位现有网络为基
础,是建立在单位数据中心(统一数据库、共享数
据库)之上,涵盖了单位的全方位档案信息的管理
平台。
档案管理信息系统以统一门户的形式把各种
信息化服务集成在一起提供给档案用户,并实现
统一身份认证。
档案管理信息系统采用.NET语言平台开发,
数据库基于SQL 的多层B/S 应用系统,把能够执
行特定功能的应用逻辑代码分装成应用对象并发
布到应用服务器中,以供WEB服务器调用,多层
分布式应用结构如图3 所示。
(2)统一的数据中心
统一数据库、共享数据库在档案管理信息系
统中起着非常重要的作用:
①通过数据中心的建设为应用单位建立一个
符合国际、国家和行业标准(如国家《档案管理信
息化标准》)的共享数据库;
②建立单位的共享数据库;
③数据中心平台包含数据交换平台来实现单
位各业务应用系统与数据中心的交换,从而实现
单位数据的共享,解决单位数据的一致性、准确
性、实时性;
④数据中心平台涉及的关键技术包括共享视
图、异构数据库的脚本转换器、触发器、中介库、消
息机制等技术。
4.3 信息综合查询子系统
综合查询共享数据平台从各个业务系统抽
取出数据后,使共享数据平台的数据无论是从横
向的范围内,还是纵向的时间积累上,都是全面
的,规范的,权威的数据,根据权限供领导、员工、
社会人员查询。配置与查询的关系图如图4 所
示:
40 “通用档案管理系统”的设计与实现2007 年第4 期
领导、员工、其他人员使用系统管理员或各业
务系统查询配置管理员设置的账号功能权限和查
询配置进行方便的查询。
4.4 数据信息安全子系统
档案管理信息系统的安全子系统从最低层的
硬件安全到顶层的统一密码保护设计到整个系统
的任何一个应用点,通过硬件与软件防火墙、认证
与日志软件、杀毒软件及各种安全配置的综合应
用,达到对整个系统安全保护的目的。
4.5 系统功能模块
系统功能分为系统设置、合卷管理、文件管
理、报表系统、借阅管理、系统查询、系统维护、系
统帮助几大模块,具体功能模块结构如图5 所示:
5 系统的性能特点和意义
5.1 系统性能特点
通过技术创新,使档案系统软件具有良好的
性能,第一是实现了档案管理系统软件的通用性,
任何类型的单位均可根据自身档案特点自定义档
案类型、档案结构和档案栏目。第二是提出了动
态数据库的概念,系统没有固定的数据库文件、数
据库结构和数据库类型,在运行过程中根据使用
单位的需求动态生成,大大增加了软件的灵活性。
第三是提出了一种一个字段内存取任何类型电子
文件,并自动从数据库提取、识别和运行电子文件
的方法。
系统实现各种类型档案信息的立卷和归档,
能存储任意类型的电子文件。如能满足不同层次
的人员对档案信息录入、编辑、登记、核算、统计、
交换、查询、处理等。由于研发工作基于长期认真
调查研究,所以具备了下述明显的性能特征:
合法性:系统符合并满足国家档案局关于档
案管理的相关法律法规,能较好落实《中华人民共
和国档案法》和《中华人民共和国档案法实施办
法》,并能结合并适应不同地区的具体管理实施方
案。
安全性:系统具有良好的安全性,提供了多层
安全机制,对数据维护提供访问权限控制,为不同
的人设置不同的权限,提供数据镜像,必要时对系
统数据进行安全恢复; 具有计算机犯罪和病毒的
防范能力,确保数据永久安全。
可靠性:系统在成本可以接受的条件下,从系
统结构、设计方案、设备选型、厂商的技术服务与
维护响应能力,备件供应等方面考虑,使得系统故
障发生的可能性减少,影响尽可能小,系统能24
小时不间断提供服务,能承受大容量的用户访问。
灵活性:系统在能满足用户目前需求的基础
上,具有易扩充、易修改的特征,对功能的变化和
环境的变化具有较强的适应性; 具有友好的用户
界面,使操作简单、直观、灵活,易于学习掌握。
高效性:系统在技术上立足于长远发展,选用
开放性系统,采用先进的体系结构和技术发展的
主流产品,保证了整个系统高效运行和所采用的
计算机网络技术设备和技术指标在几年内不落
后。
5.2 系统开发的价值意义
本系统的开发适用于各种类型单位档案的管
2007 年第4 期泸州职业技术学院学报41
理。以档案工作的基本理论为指导,结合计算机
和网络管理的特点开发而成的,其意义如下:
(1)档案系统的应用可以充分发挥各个单位
档案信息的决策支持功能;
(2)有利于通过档案的有效编目和存储发挥
本单位档案的文化积累、沉淀作用;
(3)利用计算机及网络系统提供强大的查询
检索功能,方便快捷,提高了档案信息共享程度,
大大提高了档案的应用水平和利用率;
(4)使用档案管理系统后,原始档案的使用率
下降,使得档案保存时间大大延长,而且通过使用
真空压缩技术降低档案的占用空间,仓储费用,管
理成本下降;
(5)档案的日常管理维护、整理编目、统计编
研等工作由档案管理人员在计算机上实现档案数
字化及管理。取代了档案管理人员大量繁重的手
工操作,使档案管理更加科学化、规范化、人性化;
(6)基于Web 的档案管理系统对于档案资源
共享,拓宽管理范畴具有很大实用意义;
(7)档案管理信息系统的应用有利于提高档
案管理部门的服务水平和提升档案管理部门的社
会形象;
(8)档案信息化是国家信息化的重要组成部
分,通过档案软件系统的研发,档案管理信息化的
建设可促进当地信息化的发展;
(9)良好的通用性减少了各个单位的重复开
发,节约了社会人力物力和财力;
(10)项目研发推广使用,改变了传统繁琐的
档案管理模式,克服了以形式压制内容的尴尬,体
现了以人为本的现代管理思想;
(11)档案管理系统的研究及成果应用,促进
档案管理部门和档案管理专业技术人员以新的观
念、新的制度、新的模式和手段,重新审视档案管
理工作,充分发挥档案在经济社会发展中的作用;
(12)本系统的使用完善了档案管理流程,可
以及时高效地管理档案。这既提高了管理效率,
避免了档案的流失或损坏,促进档案管理部门和
其他职能部门工作协同运作;直接避免了档案丢
失破坏带来的损失,避免了查询、统计、分析不便
带来的经费浪费,减少了档案管理人员工作量,给
使用单位创造了良好的节约效益;
(13)该系统完全按照商业化软件标准进行开
发设计,具有良好的通用性,随着信息化的大力开
展,必将产生良好的推广价值。
6 结束语:
通用档案管理系统项目从理论和实践两方面
对档案管理信息系统研发进行了较为深入的研究
和探索,完成了《通用档案管理系统》的研发工作。
通过系统的研究与建设,加强了档案管理信息化
理论的研究,改进和优化了部分软件开发工具的
功能,实现了档案管理系统的通用性,系统已应用
在泸州职业技术学院、泸州市交通局等单位,取得
了良好运行效果。
参考文献:
[1] Bruce Schneier.网络信息安全的真相[M].吴世忠,马芳译. 北京:机械工业出版社,2001.49 ~ 149.
[2] 李艇.计算机网络管理与安全技术[M].北京:高等教育出版社,2003.115 ~ 147.
[3] 殷肖川,刘志宏,姬伟锋,万映辉.网络编程与开发技术[M].西安:西安交通大学出版社,2003.172 ~ 259.
[4] 杨辉,吴昊.防火墙———网络安全解决方案[M].北京:国防工业出版社,2001.66 ~ 149.
[5] 梁旦,徐国华,朱良根.基于网页监控与保护的安全数据库系统[J].计算机应用研.
[6] 丁元,刘灵师,熊德安.档案保护与档案信息编辑.沈阳:辽宁人民出版社,2003.
[7] 孟朴忱.科技(企业)档案管理工作实践.沈阳市档案局,内部资料.1997.
[8] 刘金树,孙成德.老工业基地振兴与档案信息化.沈阳:辽海出版社,2004.
[9] 徐芳.档案知识普及读本.沈阳:辽宁人民出版社,2000.
42 “通用档案管理系统”的设计与实现2007 年第4 期
写作小论文有助于提高我们的学术水平,小论文的格式有哪些要求呢?下面是由我整理的1000字小论文格式 范文 模板,欢迎大家阅读。
摘要: 随着企业规模的不断扩大,各部门所需信息既相互交错,又相对独立。这就要求各部门所用的数据库既能高度自治地 工作,又能进行信息共享。本文主要介绍多DM3数据库系统间的信息共享机制。 不同DM3数据库系统间的信息共享通过协调器实现。所有这些被协调器连接在一起的数据库系统组成了一个联邦数据库。这样既能较好地满足企业的需要,也能在保证效率的前提下,提高数据的可用性。
关键词: DBMS 复制 联邦数据库
1.引言
随着经济的发展,企业的规模越来越大,其积累的信息也越来越多。存在着各部门所处理的信息多数只对本部门有效,仅有少数信息需给 其它 某些部门共享的问题。这种信息的分布性和独立性要求对所处理的数据进行分类,使各部门既能独立地处理本部门大多数数据,也使部门间能协调处理跨部门的事务。在这种情况下,对整个企业建立一个完全的紧密耦合的分布式数据库是很困难的,也是没必要的,特别是大型企业, 这样的数据库的效率往往是很低的。
为解决这个问题,我们采用以下策略:每个部门使用一套紧密耦合的数据库系统,而在存在跨部门事务处理的数据库系统间用一个协调器联起来。这样就组成了一个横跨整个企业,各部门高度自治的联邦数据库系统。
DM2是由华中理工大学数据库多媒体技术研究所研制的数据库管理系统。它采用客户/服务器模型,客户机与服务器,服务器与服务器均通过网络互连,通过消息相互通讯,组成一个紧密耦合的分布式数据库系统。它的工作流程如下:客户机登录到一台服务器上,这台服务器便成为它的代理服务器;它接收来自客户机的消息,然后根据全局数据字典决定是自己独立完成该操作,还是与其它服务器协作处理这条消息,处理完成之后,再由代理服务器将处理结果返回给客户机。
而数据字典,作为记录数据库所有元数据的系统表,它向以上过程中提供各类有用的信息,引导它们向正确的方向运行,起着“指南针”的作用。它分为局部数据字典和全局数据字典。其中,局部数据字典用于记录一个服务器站点中数据库的控制信息,如表的模式,视图的模式及各个数据区的的文件名等信息。全局数据字典用于记录分布式数据库系统中各个服务器站点上有关全局数据的控制信息,如服务器站点信息,各服务器站点的全局表名及表内码记录,各服务器站点上的全局数据视图名及视图内码记录,用户名及口令记录,用户权限记录等信息。各个局部数据字典可以各不相同,但为了保证在各个服务器上所看到的全局数据库是一致的,因此,全局数据字典必须一致。我们所关心的是全局数据字典中的基表控制块TV_CTRL_BLOCK,它的内容主要包括:全局基表总数,每个全局基表名和其对应的表内码,该基表所在的服务器站点的编号等信息。它的功能是将各个服务器站点号与存储在其上的表名及表内码联系起来。这样,代理服务器从客户消息中找到被处理的表名,然后通过查询基表控制块TV_CTRL_BLOCK,就能知道该表存在哪个服务器上,以便将相关消息发给该服务器。
由于DM2上各个服务器站点的全局字典完全相同,任何全局表的信息都会记入全局字典。若用它来构建一个企业的数据库系统,则大量只对企业某部门有用的信息将会充斥在各部门所有服务器的全局字典中,增加了冗余。而且,当对全局表进行DDL操作时,为了确保全局字典的一致性,须对所有服务器的全局字典进行加锁。DM2对全局字典的封锁方式是采用令牌环方式,即令牌绕虚环(非实环)传输,某个服务器想对全局字典进行操作,必须等令牌到达该服务器才可以执行。每个部门建立的全局表绝大多数只对本部门有用,当对这些表进行DDL操作时,却要对所有服务器的全局字典进行封锁,通过令牌来实现对全局字典的互斥访问。假如,两个部门都要分别对本部门的内部表进行DDL操作,这应该是可以并行处理的操作,现在却只能串行执行。而且,当服务器数目庞大时,每个服务器等待令牌的时间将会很长。这严重损害了数据库的效率。
为弥补以上不足,在DM2的改进版本DM3中增加了协调器,用以联接各个独立的DM3数据库子系统,并协调各子系统间的各种关系,使各子系统既能高度自治地工作,又能进行有效的信息共享。
2.体系结构
本系统可看作多个数据库子系统被协调器联起来的,高度自治的一个联邦数据库系统。其中,每个子系统独立处理本系统内部的事务,而子系统间的信息共享由复制技术提供,副本间的一致性由协调器协调处理,处理所需的信息在初始化时写入协调器的组间数据字典中。当对某子系统中的一份数据副本进行修改时,该子系统会将修改通知协调器,由协调器对该数据的其它副本进行修改,从而保证了所有副本的一致性。
由以上可知,子系统彼此并不直接接触,而是各自都与协调器直接相联,由协调器统一管理子系统间的通信。这样,当子系统对副本进行修改时,不必关心相应的子系统处于何种状态,也不必等待回应消息,以及异常处理,所有这些都由协调器进行管理。因此,既提高了系统运行的效率,也保证了子系统的独立性。其体系结构如下图所示。
协调器主要有三大功能,首先,它对协调器和服务器进行初始化,并将有关信息存入组间字典;其次,它管理不同子系统间的通信,维护副本的一致性;最后,它在子系统出现崩溃时,进行异常管理及恢复工作。
图1 DM3多数据库系统体系结构
3.主要策略
多个DM3系统间的信息共享是通过副本实现的,副本的一致性是由协调器来维持的,是一种弱一致性。通常,多数据库系统间的一致性是通过协调器周期性地访问服务器的日志来完成的。由于副本的更新带有随机性,因此,若采用这种 方法 ,可能数据被修改多次,但其相对应的副本仍未被修改,这样就损害了数据的一致性;也可能数据并未被修改,但协调器已多次访问了服务器的日志了,这样就降低了系统的效率。
所以,本系统采用的方法是当数据被修改时,由服务器通知协调器有关信息,再由协调器通知相关系统,修改相关数据。这样,数据的修改及时(仍然是弱一致性),而协调器也不会在数据未被修改的情况下访问服务器,提高了准确性。
为了使协调器正常工作,我们对底层数据库管理系统DM2进行了修改。在基表控制块TV_CTRL_BLOCK中增加一项IsReplication。建表时,该项初始化为false;当为该表建立一个副本时,该项赋值为true。具体算法如下。
3.1初始化算法。
协调器:
从用户或应用程序接收待连接的两个系统中的服务器名,需复制的表名;
分别登录到两个系统的服务器上;
向存有待复制表的服务器发预复制消息;
等待服务器消息;
若失败,发一条失败的消息给服务器和用户或应用程序,转11);
若成功,从消息中取出待复制表的有关信息,根据这些信息,发一条建表消息给另一个系统的服务器;
等待服务器消息;
若失败,发一条失败的消息给服务器和用户或应用程序,转11);
若成功,调数据转移程序,进行数据复制;
将有关信息写入组间字典。
退出。
服务器:
当服务器收到预复制消息后,将基表控制块TV_CTRL_BLOCK中的IsReplication赋为true。同时,取出待复制表的有关信息,组成应答消息发给协调器。
当服务器收到失败的消息后,将基表控制块TV_CTRL_BLOCK中的IsReplication赋为false。
3.2维护算法。
协调器:
从组间字典读出相关信息,根据这些信息,登录到相应系统上;
等待消息;
从某系统的服务器上收到一条修改消息后,通过查找组间字典,确定该消息的目的地,然后将它转发过去;
若失败,定时重发;
转2);
服务器:
1)等待消息;
2)当收到某客户或应用程序的消息后,检查它是否是修改数据的操作(如delete,update或insert等);
若不是,转7);
若是,检查基表控制块TV_CTRL_BLOCK中的IsReplication是否为true;
若不是,转7);
若是,向协调器发修改消息;
继续执行服务器程序的其它部分。
3.3恢复算法。
若协调器所联接的系统中有一个跨掉了,则对副本的修改无法及时地反映到跨掉的系统中来。这时,需要恢复算法来进行处理。
协调器:
当协调器发现有一个系统已经崩溃后,采取以下步骤。
将与该系统相关的变量open赋值为false;
打开记时器;
等待消息;
若收到的消息是其它系统发出的修改崩溃了的系统上的副本的命令,则依次将这些消息存储起来,转3);
若收到的消息是记时器发出的时间到的消息,则向崩溃的系统发登录命令;
若登录成功,将open的值改为true;
将存储的消息依次发送过去,转9);
若登录失败,转3);
退出。
4.结论
我们曾在三个DM3数据库系统上,用两个协调器进行联接。结果,运行情况良好,各副本最终都能保证一致,且各副本间存在差异的时间间隔很短。另外,在出现异常的情况下,协调器也能正常工作。
主要参考文献:
1.周龙骧等,分布式数据库管理系统实现技术,科学出版社,1998。
2.郑振楣,于戈,郭敏,分布式数据库,科学出版社,1998。
3.王珊等,数据仓库技术与联机分析处理,科学出版社,1998。
建议用text类型,后面的长度不用设置
可以
text字段是2^16-1(65535)个字符,如果按gbk或gb2312存储的话是一个汉字占两个字节,能存3000多个汉字,按UTF-8存的话就翻倍了,一个汉字占一个字符
都可以用text存