SQL SEEVER数据库中触发器管理.docx
《SQL SEEVER数据库中触发器管理.docx》由会员分享,可在线阅读,更多相关《SQL SEEVER数据库中触发器管理.docx(38页珍藏版)》请在冰豆网上搜索。
![SQL SEEVER数据库中触发器管理.docx](https://file1.bdocx.com/fileroot1/2022-11/29/c5f0d470-48e3-4dde-8e88-17ddf379cf74/c5f0d470-48e3-4dde-8e88-17ddf379cf741.gif)
SQLSEEVER数据库中触发器管理
SQLSEEVER数据库中触发器管理的
用户接口研究与应用
摘要:
信息化时代的到来,数据库的广泛使用,使得触发器的作用日益凸显。
它是SQLServer数据库为应用程序开发人员提供的一种保证数据库中数据完整性的方法,是一种特殊的存储过程,常应用于加强数据的完整性约束和业务规则。
针对SQLServer数据库管理员管理触发器不便的问题,本文考虑设计一个基于安全控制、基于实用性的SQLServer数据库中触发器管理的用户接口。
它以Web数据库及.NET为技术支持,实现查询、添加、修改、删除等功能,方便用户进行统一管理,使管理过程变得简单、便捷,有效提高DBA管理数据库的效率。
关键词:
ASP.NET;SQLServer2000;触发器;用户接口
TheUserInterfaceBasedOnSQLServer
DatabaseTriggerManagement
WangJie
DirectedByWuDaSheng,
Abstract:
Thedatabasetechnologyiswidelyusedininformationage,sotriggerisplayingamoreandmoreimportantrole.TriggerisakindofmethodthatSQLserverprovidesforapplicationdevelopertoassurancedatabaseinthedataintegrity;itisakindofspecialstoredprocedure,whichisappliedinstrengtheningtheintegrityofthedataconstraintsandbusinessrules.Inconnectionwithinconvenienceoftriggermanagement,wetrytodesigntheuserinterfaceofSQLServerdatabasetriggermanagementbasedonsecuritycontrolandavailability.IttakesWebDatabaseand.NETtechnologyastechnicalsupport,andrealizesthefunctionsofquerying,adding,editing,deletingandsoon,whichmakesuserscentralizemanagementconvenientlyandsimplifytheprocess,effectivelyimprovesefficiencyofDBAdatabasemanagement.
KeyWords:
ASP.NET;SQLServer2000;Trigger;UserInterface
目录
1绪论4
1.1课题背景4
1.2研究目的4
1.3研究意义5
2SQLSERVER数据库及触发器用户接口概况6
2.1SQLSERVER数据库概述6
2.2SQLSERVER触发器概述7
2.2.1触发器结构7
2.2.2触发器的工作原理8
2.2.3 触发器的优点9
2.2用户接口概述9
2.3.1用户接口的人机交互形式9
2.3.2用户接口的发展沿革10
2.3.3SQLSERVER中触发器用户接口研究12
3开发技术及运行环境15
3.1数据库应用系统开发技术15
3.1.1B/S结构15
3.1.2ADO.NET技术15
3.2web数据库及开发技术17
3.2.1Web数据库概述17
3.2.2ASP.NET概述17
3.3系统运行环境19
4系统设计19
4.1系统设计思想19
4.2功能模块设计19
4.2.1功能模块设计19
4.3.2系统架构20
5系统设计实现20
5.1登录设计实现20
5.2系统界面模板实现23
5.3系统功能设计实现23
5.3.1查询功能实现23
5.3.2操作功能实现27
5.3.3修改密码功能实现32
5.3.4描述功能实现33
5.3.5联系我们33
总结34
参考文献35
1绪论
1.1课题背景
数据库触发器管理系统中面向用户的部分就是系统的用户接口。
对用户接口的研究始于上世纪70年代,当时的用户界面主要是以命令语言为主的,主要的交互设备是字母数字终端与键盘、行式打印机。
大约到了80年代中期以后,在命令驱动的基础上,逐渐出现了菜单选择方式的用户接口技术。
进入90年代,一批具有窗口风格的直接操纵界面陆续出现,同时,随着人工智能理论和方法在信息检索中的应用,用户接口逐渐出现了一些基于专家系统技术、具有一定推理和学写能力的中介系统[1]。
现在,随着虚拟现实、科学可视化及多媒体技术的飞速发展,新的人机交互方式将逐渐为人们所重视。
用户接口的重要性在于它极大地影响了最终用户的使用,影响了计算机的推广应用,甚至影响了人们的工作和生活。
当前,用户接口与INTERNET、多媒体、信息处理并列成为二十一世纪的研究重点。
用户接口可以为用户提供一定的帮助,辅助用户理解信息和表达信息的需求,构造出查
询策略;可以有效地支持用户选择信息资源、理解检出的结果、管理检索的进程。
用户界面
设计是否友好、是否合理也将直接影响信息检索系统的检索效率。
尤其随着web的兴起,用户接口的研究越来越引起重视,设计既简单、有效的信息用户接口已成为刻不容缓的课题。
SQLServer数据库作为一种应用广泛的数据库管理工具,具有许多显著的优点:
易用性、适合分布式组织的可伸缩性、用于决策支持的数据仓库功能、与许多其他服务器软件紧密关联的集成性、良好的性价比等[2]。
其优点诸多,但是在用户接口这个领域却存在缺陷。
SQLServer数据库中也包含对触发器管理的用户接口,查询分析器及企业管理器都是非常成熟的用户接口,但是它们都是桌面版应用程序用户接口,而基于使用越发广泛的Web对这一领域的研究却非常少。
本论文正是从这点出发,立足与己有的知识成果的基础上,以Web技术做支持,把用户接口技术应用到SQLServer数据库的触发器管理系统中来,对系统的用户接口从理论层面上进行分析,提高触发器管理效率。
填补了该领域的空白,引导SQLServer数据库技术基于Web的发展趋势,起到了抛砖引玉的效果,是该论文的独到之处。
1.2研究目的
本课题研究的目的是在当前SQLSERVER数据库中触发器使用普及化及用户接口管理高效化的发展背景下,分析使用用户接口管理触发器的发展趋势,在此基础上设计一个统一管理触发器的用户接口。
从数据库管理员的实际管理需要出发,该接口实现自动提取基本表中的触发器(id、名称、所属基本表名、内容)、建立触发器功能描述界面,可添加、修改触发器的功能以及可在前台添加、修改、删除触发器等功能。
使数据库管理员对触发器的管理、维护更加方便。
1.3研究意义
用户接口(userInterface)又称用户界面、人机界面、人机接口,是为方便用户使用计算机资源所建立的用户和计算机之间的联系。
通常指软件接口,即在人机联系的硬设备接口基础上开发的软件,它由人、计算机硬件和软件三者结合而成。
关于人机交互,目前尚没有统一的定义,ACM(美国计算机学会)提供了一个定义[3]。
人机交互是研究为方便用户使用,交互式计算机系统的设计、评价和实现,是对影响交互系统的各种因素进行研究的一门科学。
在SQLServer数据库触发器的用户管理系统中,为了准确地从数据库中获取用户真正需要的信息,系统与用户之间需要不断地进行交互和协作,通过采用选择关键字、显示查询结果、提供相关操作机制等人机交互方式,这些面向用户的部分就是用户接口。
随着数据库领域的快速发展,触发器作为数据库技术的一种也得到更多的应用,而本文研究的用户接口作为连接最终用户与数据库之间的桥梁,也越来越引起人们的重视和兴趣。
用户接口的地位和作用正在不断得到强化和扩展,计算机技术的发展,不仅是其处理、存储能力的快速提高和成本的下降,更是不断改善人机交流界面和交流方式的进步历程,由于用户界面技术直接影响到系统的使用效果,接口系统也受到计算机专家的极大关注。
随着数据库的数据量越来越多,业务规则也日趋复杂,功能和服务更是丰富多彩。
因此,用户在使用数据库时,不仅面临大量的决策分析工作,同时还要对一大堆问题进行选择和判断。
对此,即使是数据库管理员有时也难以应对。
没有一个有效的用户接口,系统的功能就难以充分发挥。
用户接口的重要性在于它极大地影响了最终用户的使用,影响了计算机的推广应用,甚至影响了人们的工作和生活。
而在信息检索系统中,用户接口可以为用户提供一定的帮助,辅助用户理解信息和表达信息的需求,构造出查询策略;可以有效地支持用户选择信息资源、理解检出的结果、管理检索的进程。
用户界面设计是否友好、是否合理也将直接影响信息系统的运行效率[4]。
2SQLSERVER数据库及触发器用户接口概况
2.1SQLSERVER数据库概述
随着信息技术的发展,计算机处理数据的方式也发生着变化,文件管理系统到数据库管理系统发生巨大转变。
MicrosoftSQLServer2000是一个分布式的关系型数据库管理系统,具有客户机/服务器体系结构,采用了Transact-sql的sql语言在客户机与服务器间传递客户机的请求与服务器的处理结果。
SQLServer2000能够满足今天的商业环境要求不同类型的数据库解决方案。
它一种应用广泛的数据库管理系统,具有许多显著的优点:
易用性、适合分布式组织的可伸缩性、用于决策支持的数据仓库功能、与许多其他服务器软件紧密关联的集成性、良好的性价比等。
性能、可伸缩性及可靠性是基本要求,而进入市场时间也非常关键。
除这些核心企业品质外,SQLServer2000还为您的数据管理与分析带来了灵活性,允许单位在快速变化的环境中从容响应,从而获得竞争优势。
从数据管理和分析角度看,将原始数据转化为商业智能和充分利用Web带来的机会非常重要。
作为一个完备的数据库和数据分析包,SQLServer2000为快速开发新一代企业级商业应用程序、为企业赢得核心竞争优势打开了胜利之门。
作为重要的基准测试可伸缩性和速度奖的记录保持者,SQLServer2000是一个具备完全Web支持的数据库产品,提供了对可扩展标记语言(XML)的核心支持以及在Internet上和防火墙外进行查询的能力。
SQLServer是一个关系数据库管理系统它最初是由MicrosoftSybase和Ashton-Tate三家公司共同开发的于1988年推出了第一个OS/2版本。
在WindowsNT推出后,Microsoft与Sybase在SQLServer的开发上就分道扬镳了。
Microsoft将SQLServer移植到WindowsNT系统上,专注于开发推广SQLServer的WindowsNT版本。
Sybase则较专注于SQLServer在UNIX操作系统上的应用。
SQLServer2000是Microsoft公司推出的SQLServer数据库管理系统的较新版本,该版本继承了SQLServer7.0版本优点同时又比它增加了许多更先进的功能,具有使用方便、可伸缩性好与相关软件集成程度高等优点,可跨越从运行MicrosoftWindows98的膝上型电脑到运行MicrosoftWindows2000的大型多处理器的服务器等多种平台使用。
但SQLServer2000并不是现在的最新版本,经过几年的发展,SQLServer2005成为SQLServer数据库管理系统的最新版本。
SQLServer2005是一个全面的数据库平台,使用集成的商业智能(BI)工具提供了企业级的数据管理。
SQLServer2005数据库引擎为关系型数据和结构化数据提供了更安全可靠的存储功能,可以构建和管理用于业务的高可用和高性能的数据应用程序。
SQLServer2005数据引擎可成为企业数据管理解决方案的核心。
此外SQLServer2005结合了分析、报表、集成和通知功能。
这使企业可以构建和部署经济有效的BI解决方案,帮助团队通过记分卡、Dashboard、Webservices和移动设备将数据应用推向业务的各个领域[5]。
本文以SQLServer2000为例重点讨论。
2.2SQLSERVER触发器概述
MicrosoftSQLServer2000提供了两种主要机制来强制业务规则和数据完整性:
约束和触发器。
触发器是一种特殊类型的存储过程,它在指定的表中的数据发生变化时自动生效。
唤醒调用触发器以响应INSERT、UPDATE或DELETE语句。
触发器可以查询其它表,并可以包含复杂的Transact-SQL语句。
将触发器和触发它的语句作为可在触发器内回滚的单
个事务对待。
如果检测到严重错误(例如,磁盘空间不足),则整个事务即自动回滚[6]。
触发器是近年来在关系数据库管理系统中应用得比较多的一种完整性保护措施,其功能比一般完整性约束要强得多。
一般而言,在完整性约束功能中,当系统检查出数据中有违反完整性约束条件时,仅给出必要提示以通知用户。
而数据库触发器是响应插入、更新或删除数据库事件而执行的过程,可用于管理复杂的完整性约束,或监控对关系的修改,或通知其他程序关系已发生修改。
2.2.1触发器结构
触发器有3个组成部分,这3个部分分别是事件、条件和动作[7]。
如图2-1所示为触发器结构示意图。
图2-1触发器结构示意图
在触发器中,事件指对数据库的插入、删除和修改等操作,触发器在这些事件发生时开始工作。
在SQL语言中,触发器的事件有3种类型,即INSERT事件、UPDATE事件和DELETE事件。
当向某一个表中插入数据时,如果该表有INSERT类型的触发器,那么INSERT触发器就触发执行。
UPDATE、DELETE事件触发过程类似。
条件是触发器是否触发执行的依据。
如果条件成立,那么执行相应的动作;如果条件不成立,那么触发器什么也不做。
在SQL语言中,表示条件的关键字有3个,即AFTER、BEFORE和INSTEADOF。
AFTER关键字表示该触发器在触发事件成功完成以后,执行动作部分的操作。
在该触发器执行之前,所有的级联动作和约束检查也都必须成功地完成,系统默认为该关键字。
BEFORE关键字表示该在触发事件执行之前,执行动作部分的操作。
在该触发器执行之后,所有的级联动作和约束检查才执行。
INSTEADOF关键字表示在出发事件发生时,只执行动作部分而不执行触发事件的操作。
这时,触发事件可以激发触发器本身的操作,而自己并不执行[8]。
AFTER、BEFORE和INSTEADOF条件触发器执行过程如图2-2所示。
图2-2AFTER、BEFORE和INSTEADOF条件触发器执行过程
2.2.2触发器的工作原理
SQLServer触发器在执行时须用到两个特殊的表,即删除操作产生deleted表,插入产生inserted表。
Inserted表和deleted表是两个逻辑表,它们存放于内存中,不存放在数据库中,由系统自动维护。
这两个表的结构总是与触发器作用的数据表的结构相同。
触发器工作完成后,与该触发器相关的这两个表也会被自动删除。
这两个表用来检查一些数据更新的影响并为触发器动作设置条件。
我们把这两个表称为触表器检查表,被定义了触发器的数据表称为触发器表。
我们不能直接改变触发器检查表中的数据,但是能够使用Select语句来检测Insert、Update或Delete操作带来的影响[8]。
(1)在Insert语句执行期间,插入的新行同时被加到inserted表和触发器表中。
Inserted表中的行是触发器表中插入新行的副本。
(2)在Delete语句执行期间,被删除的行从触发器表移动到deleted表中。
Deleted表和触发器表通常没有相同的行。
(3)在Update语句执行期间,被修改的行从触发器表移动到deleted表中。
修改后的行被同时加到inserted表和触发器表中。
2.2.3 触发器的优点
(1)触发器是自动的:
它们在对表的数据作了任何修改(比如手工输入或者应用程序采取的操作)之后立即被激活。
(2)触发器可以通过数据库中的相关表进行层叠更改。
例如,可以在titles表的title_id列上写入一个删除触发器,以使其它表中的各匹配行采取删除操作。
该触发器用title_id列作为唯一键,在titleauthor、sales及roysched表中对各匹配行进行定位。
(3)触发器可以强制限制,这些限制比用CHECK约束所定义的更复杂。
与CHECK约束不同的是,触发器可以引用其它表中的列。
例如,触发器可以回滚试图对价格低于10美元的书(存储在titles表中)应用折扣(存储在discounts表中)的更新[9]。
2.2用户接口概述
2.3.1用户接口的人机交互形式
目前,实用的各种用户界面的人机交互形式可以归结为以下5种类型:
(l)命令语言形式
命令语言广泛应用于计算机系统的人机对话,是用户驱动界面的代表。
它具有功能强大,灵活,便于用户组合的特点;早期用户非常熟悉的Unix,Ms一Dos等操作系统和Basie、Lisp、Prolog等编程语言以及数据库查询语言SQL等向用户提供了不同级别的形式语言和具有自然语言特征的半形式语言界面。
但由于命令系统具有严格的语法和语义且不够形象,对使用者的专业要求比较高,需要进行认真的培训及良好的记忆,因而不便于普及。
(2)菜单选择方式
菜单选择是继命令语言之后出现的一类较为直观并得到广泛应用的用户界面。
对于非专业用户来说,可以方便使用菜单选择,减少用户的击键次数,降低击键操作的出错率。
但菜单选择也有一些缺点,例如:
会占用过多的屏幕空间,要求过快的显示速率,对于熟练用户来说,还可能出现菜单层次过多及选项复杂的情况,以致影响操作速度等。
另外,按照菜单项的显示方式区分,又有正文菜单和图形菜单之分,它们分别是基于字符用户界面(CUI)和图形用户界面(GUI)。
(3)表格填充方式
当用户需要向系统送入一组数据时,较直观的方法是提供有明确数据对象名称和范围的一张表格,让用户用交互方式进行填空,也可返回修改;既有输入提示,也有语法或值域检查。
它是一类十分有用的用户界面风格,尤其适合各类数据库系统、信息管理系统及数据处理系统的数据输入。
(4)直接操纵方式
直接操纵用户界面是Schneiderman于1983年首先提出的概念[10],其特点是以物理动作或带标记的按钮取代复杂的语法;采用特别的操作以及目标的连续显示,并使用户作用在目标上的效果立即可见,同时还允许快速而可逆的交互动作,明显地提高用户的积极性。
初学者只要模仿一个有经验的用户示范,就能够很快地学会基本功能;专业人员则可以迅速地执行各种任务,甚至可以定义新的功能和特性;在直接操纵方式下,用户是动作的指挥者,处于控制地位,同时系统对于用户操作的响应也是可预见的。
各种全屏幕正文编辑器、电子表格软件、CAI、电子游戏及一些窗口系统都具有直接操纵的界面风格。
(5)自然语言的人机对话方式
上述各类风格均是经过人们精心设计、由系统予以实现的人机对话方法。
它们与人们日常生活中的对话相差很远,因而需要进行学习、训练,人们更希望采用日常生活中的自然语言进行人机交流,从而使计算机界面技术提高到一个新的水平。
用自然语言查询数据库的优势在于:
①用户只以应用领域的概念访问数据库,无需了解数据库的逻辑和存储结构,具有更强的非过程性;②用户不需要或者只需要很少的培训就能够直接查询数据库信息,大大减轻了用户的培训负担:
③用户可以简单明了地提出查询请求。
但由于自然语言本身固有的多义性及缺乏严格定义的特点,自然语言处理(简称NLP)还具有相当的难度。
国外有关数据库自然语言用户接口的研究可以追溯到上世纪60年代。
几十年来,先后出现了许多试验性和商用系统,其中有代表性的系统有:
BSSEBALL、LUNAR、LIFER、Themis、ASK、PARLANCE、LOQUI、CLARE、SystemX及微软公司在SQL6.5/7.0中提供的EnglishQuery等数据库查询接口等[11]。
2.3.2用户接口的发展沿革
随着计算机系统的发展,用户界面的发展经历了批处理、联机终端、菜单等阶段,正处于以图形用户界面为主流的阶段。
交互式系统的发展趋势也逐渐从“以机器为中心”,转移到“以人为中心”、“人机和谐交互”的方向上。
人机交互方式的发展也从命令方式、项目菜单方式到直接操纵方式、基于工CON多窗口方式和分布多用户协同方式。
1.命令行界面(CommandLineInterface,CLI)
出现于1963年,这是第一代的人机界面(图2-3)[12]。
在这种界面中,人被看成操作员,机器只做出被动的反应,人只能使用手一种交互通道通过键盘输入信息,界面输出只能为静态单一字符。
这种用户界面需要记忆大量的语法和规则,对用户有一定熟练性要求、而且容易出错,人机交互的自然性和效率都很差。
但是由于其灵活、快捷、高效等特点,所以仍然
得到了很多专业用户的欢迎[13]。
图2-3字符用户界面概念模型
2.图形用户界面(GraphicalUserInterface,GUI)
图形用户界面出现在1984年,被广泛地应用于各种微机和图形工作站上。
比较成熟的商品化系统有Apple的Macintosh、IBM的PM(PresentationManager)、Microsoft的Windows和运行于Unix环境下的X-Window、OpenLook和OSF/Motif等等。
各类图形界面的共同特征是以窗口管理系统为核心,使用的交互设备比较单一,主要是键盘和鼠标。
GUI从界面的表达形式上又被称作WIMP界面,其中W表示Window(窗口)、I表示Icon(图标按钮)、M表示Menu(菜单)、P表示Pointer(指点设备)。
基于图标按钮的界面蕴涵了文化和语言独立性,提高了视觉目标搜索的效率。
基于菜单的界面提供比字符界面更加丰富的表现形式,通过不同的字体、颜色、形状扩大了界面的表示域范围。
WIMP界面可看作是第二代人机界面。
其缺点在于需要占用较大的屏幕空间,并难以表达和支持非空间性的抽象信息的交互。
同时图形用户界面的人机交互过程极大地依赖与视觉和手动控制的参与,具有强烈的直接操纵特点。
3.多媒体用户界面
多媒体用户界面的出现将图形用户界面的媒体形式进行了扩展。
之前的图形用户界面只有两种媒体:
文本和图形(图像),都是静态的媒体。
多媒体技术引入了动化、音频、视频等动态媒体,大大丰富了计算机信息的表现形式,拓宽了计算机输入的带宽,提高了用户接收
信