麒麟v10 上部署 TiDB v5.1.2 生产环境优化实践
908
2023-06-19
本文讲述了在线数据库系统的设计与实现,数据库系统的优点
在高校计算机相关专业的数据库基础知识的教学过程中 (如《大学计算机基础》、《数据库系统》等课程),教师通常需要部署数据库环境完成数据库的演示和讲解,传统的数据库软件大都基于C/S架构,版本众多、安装步骤各异,而且不同的软件对多用户、远程连接等功能的支持程度也各不相同,教师面临着耗费精力进行数据库部署的问题。同时由于课堂演示计算机的性能和系统环境往往不确定,教师甚至每节课前都票要完成数据库环境的部署,这使课堂教学质量受到了制约。而学生在课下练习时,同样需要安装部署数据库环境,复杂烦琐的步骤(例SqlServer)在一定程度影响了其学习积极性。面对数据库教学中的这些问题我们设计实现了在线数据库系统,该系统采用B/S模式,服务器端可以部署集成多种传统的关系数据库软件使用户可以在浏览器端完成对多种关系数据库的基本操作,完全摆脱了复杂的客户端。本文所提出的在线数据库系统,可以减轻教师的负担,为数据库初学者提供方便,从而提高数据库教学的效率
系统架构和功能设计
在线数据库系统设计的关键在于支持大部分常用的关系数据库软件,对用户输入的数据库操作信息进行检查和过滤,然后把服务端数据库操作结果用友好的界面展示给用户
系统的整体架构如图1所示,其中最上层为Web接口,提供用户访问的Web接口和友好的界面。中间层中的数据安全、权限验证这些基本模块验证用户请求的权限,并完成数据操作安全的处理,然后调用下一层的相关功能响应用户请求,用户管理是对用户基本信息的增删改查,数据库管理完成对系统中数据库信息的管理,该层通过调用数据库访问层完成数据库的基本操作,然后将其结果返回给上层。系统中可同时部署多种不同的数据库软件,数据库访问层提供了对不同数据库的统一访问接口。
系统用户分为普通用户和管理员两类,系统为用户提供的主要功能如图2所示1.用户功能:普通用户注册、登录、注销,查看个人的权限、操作历史等信息,并可以修改密码和个人资料。
2.数据库功能:普通用户从系统提供的多种数据库软件中进行选择,提交自己需要完成的数据库操作命令并查看运行结果
3.管理员功能:管理员对普通用户的信息进行增删改查,并管理数据库软件的加入和退出,配置数据库软件的基本信息,管理数据库软件的加入和退出.
整个系统以Web服务的形式在服务器中进行部署,然后由系统维护人员在服务器上安装数据库软件以提供服务端的数据库服务。系统管理员登录系统进行数据库的基本配置,最后用户使用浏览器访问系统,即可完成对数据库表、视图、存储过程等内容的操作.
系统详细设计与实现
系统基于B/S架构,以跨平台性强的Java语言作为开发语言,充分利用了Java技术在Web开发中的优点,采用了流行的Spring3和Struts2作为Web框架,可迅速完成其开发、部署和测试。系统分为前端和后端两部分,按照MVC设计思想,系统的整体架构可更详细地划分为页面显示层、应用层、服务层、模型层、数据持久化层、数据库连接层这六层。下面结合图3对各个层的设计进行详细介绍。
页面显示层: 基于JSP,采用包括CSS层叠样式表和JavaScript在内的多种动态网页制作技术实现的Web页面。页面显示层将用户请求通过HTTP协议传递给服务器端的应用层,并将服务端返回的结果在浏览器中显示出来,页面显示层完成与用户的全部交互。
应用层: 对应于图3中的Action包(“包”是Java中功能相似或相关的类和接口的集合),其中基类BaseAction类封装了获取web页面请求参数、过滤非法数据以及验证用户权限的基本方法,对于来自Web页面的HTIP请求,首先获取其中的请求参数中所包含的用户信息及数据库操作信息,然后对用户权限进行校验,对数据库操作信息进行检查,防止SQL注入攻击。AuthenticationAction类提供用户注册、登录、退出等功能方法,UserAction类提供用户增删改查管理的功能方法,DataBaseAction类提供数据库信息管理的功能方法。应用层的类调用服务层的类实现系统功能,为页面显示层服务,是整个系统服务端的应用功能的总接
服务层: 对应于与图3中的Service包,其中包合数据库服务和用户服务两部分,应用层通过接口IDatabaseService和lIUserService来调用服务,接口类的加入,使上层调用服务层功能方法的类与服务层具体的实现类隔离开来。Userservice类通过调用下层的IUserDao接口完成用户信息管理,DatabaseService类通过调用下层的IDatabaseDao和IDbConnect实现数据库信息的管理,以及数据库的访问操作
数据持久化层: 对应于图3的DAO包,包含DatabaseDao和UserDao两部分,将系统中的用户信息以及数据库信息持久化到系统数据库中,在访问数据库时需要调用DbOperation包中的接口.
数据库连接层:对应于图3的DbOperation包,由于系统中可以部署多种不同的数据库软件,需要有相应的类完成与其的连接,这些类均继承IDbConnect接口以保持一致。数据库连接类基于JDBC技术,实现了与多种关系数据库的连接、验证和SQL服务调用,并将其中的基本方法进行了封装和扩展,使其更加灵活易用。
模型层: 对应于图3的Model包,其中的类均是对一些基本属性的封装,Database类封装数据库软件名称.数据库名称、SQL语句等信息,User类封装普通用户的用户名、密码、权限等信息,Admin封装了管理员的用户名、密码等信息。应用层、服务层和数据持久层都对模型层有依赖关系。
此外,系统对于在应用层和服务层中出现的异常也进行了封装,对所有的异常进行统一管理(见图3的Exception包)。系统的分层设计,使程序的各模块之间高内聚、低耦合的特性增强,符合软件工程的基本思想使系统的架构趋于稳定,更能适应需求的变化。
系统运行与测试
1.运行环境。系统的运行环境如表1所示,其中服务器端的配置为系统目前部署测试时所采用的配置。
2,功能测试。按照软件测试的基本步骤,采用黑盒测试的错误推测法和错误推测法对系统的各个功能模块进行测试,以测试用户登录模块为例,预期当在界面中输入用户名或密码错误时,页面提示“用户名或密码错误,请重新输入”,并不进行页面跳转,正确时跳转到系统主页面,经测试实际输出结果与预期一致。
3.性能测试。对系统的性能测试采用负载测试和压力测试相结合的方法展开,选取每分钟增加若干用户请求和混合加压作为测试数据。测试的结果表明系统可支持2500用户并目响应时间小于3秒,压力测试结果显示(PU和内存占用率在86%和88%以内。
四、总结与展望
本文所设计和实现的在线数据库系统,立足于简化在数据库基础知识教学过程中数据库环境搭建的烦琐步骤,为教师和初学者提供简单方便在线的关系数据库服务。系统架构合理,运行状况稳定,简单易操作,从目前的反馈结果来看,系统在一定程度上提高了课堂教学质量,可以推广使用。但是,系统在用户数据库操作结果的页面显示效果还需要优化,用户权限控制等方面仍存在不足,同时教师在实践过程中发现了数据库在线测试试题、学生与教师互动等新的需求,这将是系统下一步改进与完善的方向。
数据结构化
数据库系统实现整体数据结构化,这是数据库的重要待征十一,也是数据库系统与文件系统的本质区别。文件系统中记录的结构和记录之间的联系被固化在程席中重要程席员加以维护,这种工作模式既家中了程席员的负担,又不利于结构的变动。而整体结构化是指数据不再仅仅针对某一/应用,而是面向整个组织和企业。不仅数据内部是结构化,整体也是结构化,数据之间是具有联系的。在数据库系统中,不仅数据是整体结构化的,而且存储数据的方式也是灵活的可以存取数据库中的某一个或某一组数据项、一个记录或一组数录。而在文件系统中,数据的存取单位是记录,不能精细到数据项。
数据的共享性高、冗余“度低且易扩充
数据库系统从整体的角度看待和描述数据,数据不再面向某个应用而是面向整个系统,因此数据可以被多个用户多个应用共享使用,数据共享可以大大减少数据几余,节约存储空间。数据共享还能够避免数据之间的不相容性和不一致性。由于数据面向整个系统,是有结构的数据,不仅可以被多个应用共享使用,而且容易增加新的应用,这就使得数据库系统弹性大,易于扩充,可以适应各种用户的要求,可以选取整体数据的各种子集用于不同的应用系统,当应用需求改变是,只要重新选取不同子集便可以满足新的需求,
数据独立性高
数据独立性
借助数据库管理数据的一个显著优点,包括物理独立性和逻辑独立性.
物理独立性
指用户的应用程序与数据库中数据的物理存储是相互独立的。数据库种怎样存储数据用户程序不需要知道。应用程序处理的只是数据结构,这样数据的物理储存改变应用程序可以不用改变
逻辑独立性
是指用户的应用程序与数据库的逻辑结构是相互独立的。也就是说,数据的逻结构改变时用户程序也可以不变,数据与程序的独立性吧数据的定义从程序种分离出去,加上存取数据的方式由数据库管理系统负责提供,从而简化了应用程序的编制,大大减少了应用程序的维护修改。
上文就是小编为大家整理的在线数据库系统的设计与实现,数据库系统的优点
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。