基因数据库分析系统的设计与实现---毕业论文_第1页
基因数据库分析系统的设计与实现---毕业论文_第2页
基因数据库分析系统的设计与实现---毕业论文_第3页
基因数据库分析系统的设计与实现---毕业论文_第4页
基因数据库分析系统的设计与实现---毕业论文_第5页
免费预览已结束,剩余66页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本本 科科 毕毕 业业 论论 文文 基因数据库分析系统的设计与实现基因数据库分析系统的设计与实现 Design and Implementation of Gene Database Analysis System 姓 名: 学 号: 学 院:软件学院 系:软件工程 专 业:软件工程 年 级: 指导教师: 教授 年年 月月 摘摘 要要 生物信息学是当前的研究热点,它是由生命科学、计算机科学、信息科学和数学 科学等学科交汇融合所形成的一门交叉学科。要分析生物信息学中的大量数据并找出 它们之间的隐含规律,数据挖掘是目前最有效的数据分析手段。在生物序列分析和临 床医学数据分析中,数据挖掘技术有着非常广阔的前景。 基因数据库分析系统以生物序列数据库和临床医学数据库管理系统为基础,并在 数据库管理系统之上添加部分生物序列分析功能和临床数据关联规则挖掘功能。其中, 临床医学数据库管理与分析系统由中山医院与厦门大学软件学院合作开发。作者及其 项目组共同参与了项目的开发。本文将对基因数据库分析系统的框架和功能做出介绍, 详细描述作者本人的主要工作内容,并对系统进行展示。 基因数据库分析系统是以 J2EE 为开发环境,并在 Struts、Spring 和 Hibernate 三个 架构的基础上来实现系统的开发,包括 Web 界面的开发、业务编码的实现等。系统采 用 JSP 和 JavaScript 语言相结合的设计来开发多用户界面,利用 Struts 完成页面导航。 此外,系统用 Hibernate 完成数据的持久化工作,并通过 Spring 来管理业务层的 JavaBeans,将 Struts 和 Hibernate 两层良好的结合起来。 关键词:关键词:生物序列;临床数据;数据挖掘 Design and Implementation of Gene Database Analysis System Abstract Nowadays, Bioinformatics is one of the hottest research topics, which is an interdisciplinary combines Bioscience, Computer Science, Information Technology, Mathematics and so on. As one of the most powerful tools for data analysis, Data Mining is prevalently applied for mining knowledge out of large amount of data. In the research of biological sequence and clinical data, great promise can be seen for application of Data Mining. Gene Database Analysis System is based on the DBAS of biological sequence and clinical data, and it joined a new module to analyze biological sequence. The clinical database and analysis system is a project developed with the cooperation between Zhong Shan Hospital, Xiamen and Software School of Xiamen University. As one member of the develop team, the author introduced the design and framework of the system, elaborated the detail work, including the implementation, results and so on. Based on the J2EE environment and the architectures of Struts, Spring and Hibernate, the system were implemented, such as web UI, business and so on. The system used the combination of JSP and JavaScript to develop the web UI, and let Struts to implement all the navigation. Furthermore, the system adopted Hibernate for the persistence of data, and managed JavaBeans on Business Layer through Spring, which connected the Struts layer and Hibernate layer. Key words: Biological Sequence; Clinical Data; Data Mining 目目 录录 第一章第一章绪论绪论 1 1.1项目背景及意义项目背景及意义1 1.2现状与存在的问题现状与存在的问题2 1.2.1DNA 数据库现状2 1.2.2蛋白质序列数据库现状3 1.2.3临床数据库的现状3 1.2.4本系统的现状3 1.3主要工作内容及特色主要工作内容及特色5 1.4本文结构本文结构6 第二章第二章基因基因数数据库分析系统的设计据库分析系统的设计 7 2.1系统框架设计系统框架设计7 2.1.1功能框架8 2.1.2技术架构9 2.2数据库设计数据库设计12 2.3系统模块设计系统模块设计16 2.3.1系统管理管理模块16 2.3.2DNA 序列数据库管理模块20 2.3.3蛋白质家族管理模块21 2.3.4临床数据库管理模块22 2.4小小结结23 第三章第三章基因数据库分析系统的实基因数据库分析系统的实现现 24 3.1开发流程开发流程24 3.2系统管理系统管理26 3.3DNA 序列数据库管理序列数据库管理28 3.4蛋白质家族管理蛋白质家族管理30 3.5生物序列分析模块生物序列分析模块32 3.6系统集成系统集成34 3.7小结小结39 第四章第四章总结与展望总结与展望 40 参考文献参考文献 42 致谢致谢 44 第一章 绪论 1 CONTENTS Chapter 1 Introduction.1 1.1Background and Significance1 1.2Current Situation and Problems.2 1.2.1DNA Database .2 1.2.2Protein Sequence Database3 1.2.3Clinical Database .3 1.2.4The Status of the System3 1.3Contents and Tasks5 1.4Architecture of Thesis6 Chapter 2 Design of Gene Database Analysis System.7 2.1Framework Design.7 2.1.1Functional Framework.8 2.1.2Technical Architecture.9 2.2Database Design .12 2.3System Module Design.12 2.3.1System Management Module.16 2.3.2DNA Sequence Database Management Module20 2.3.3Protein Family Management Module.21 2.3.4Clinical Database Management Module22 2.4Summary.23 Chapter 3 Implementation of Gene Database Analysis System 24 3.1Program Flow.23 3.2System Management24 3.3DNA Sequence Database Management28 3.4Protein Family Management.30 3.5Protein Family Pattern Mining Module.32 3.6Integration of Gene Database Analysis System.32 3.7Summary.34 Chapter 4 Conclusions and Future Work40 References42 Acknowledgements.44 第一章 绪论 1 第一章第一章绪论绪论 1.1项目背景及意义项目背景及意义 生物信息学(Bioinformatics)是生命科学、计算机科学、信息科学和数学等学科 交汇融合所形成的一门交叉学科1,是当前的研究热点。随着基因组研究的进展与生 物技术的发展,生命科学数据呈爆炸式增长,迫使人们寻求强有力的数据分析工具2。 数据挖掘3是目前最有效的数据分析手段,用于发现大量数据所隐含的各种规律。在 生物序列分析中,数据挖掘技术有着非常广阔的前景,对于提高数据处理能力、产生 有价值的生物学知识起着重要作用。 在数据挖掘领域中 ,关联规则(Association rule4)是一个应用较为广泛的研究方 向。两个或多个变量的取值之间存在某种规律性,如“同时发生”或“从一个对象可以推 出另一个对象”,就称为关联5。关联规则挖掘就是通过关联分析找出数据库中隐藏的 知识,利用这些知识可以根据已知情况对未知问题进行推测。关联规则挖掘是数据挖 掘领域的一个重要技术,近年来,在基因表达数据分析上得到广泛应用6。利用关联 规则挖掘从基因表达数据中揭露不同基因或同一基因在不同环境下的相关联系,以帮 助鉴定致病基因。 生物序列模式7通常对应着生物序列中重要的功能(或结构)元素。例如,由于进化 等目的对基因进行复制产生大量的连续的重复序列称为重复片段(Tandem Repeats),这 种模式同它们的生物功能一样不能被完全理解,但是,它们被确定在基因组织和进化 上起着重要的作用;同一个蛋白质家族中的所有序列或大部分序列中包含着在进化过 程中比较保守的区域,形成特定的序列模式,它们对于蛋白质的结构和功能是非常关 键的;共表达基因序列上游区域包含着在进化过程中表现更为保守的区域,形成特定 的序列模式,它们是一类重要的功能序列,能够调控基因的表达。因此,发现这些重 要的生物序列模式对开展蛋白质家族分析、转录调控分析、基因组注释、非编码区功 能元素识别等研究具有重要的意义。生物序列模式挖掘的目的就是在生物序列中寻找 基因数据库分析系统的设计与实现 2 这样的序列模式,是识别基因及功能元素进而预测生物序列功能和解释序列间相互关 系等的一种关键技术。 但是,当前的较多的工作是对 DNA8910,RNA,蛋白质等基因数据中序列的挖 掘。而对于根据临床特征以及病理资料分析出基因与病症之间的关联规则1112的研究 还相对较少,这方面的数据也相对比较匮乏。本课题基于这样的背景,提出基因序列 数据库与临床数据库的设计与实现。 1.2现状与存在的问题现状与存在的问题 目前,数据挖掘技术在生物序列模式挖掘中的应用已经相对成熟,网络上可以找 到世界各大组织搭建的生物序列数据库。事实上,欧美等发达国家在生物信息方面已 有较长时间的积累,基因数据库与蛋白质家族数据库都已发展得相当完善。在各个一 级数据库的基础上又发展、建设了许多二级数据库,方便学者、专家研究使用;国内 虽然已经开始逐渐重视该领域的发展,但是与国外差距仍然比较明细。 临床医学数据库方面,由于其数据库本身发展不够完善,网络上基本上找不到相 应的网络资源。数据匮乏的情况下,导致了数据挖掘在临床医学数据的应用上也受到 了不小的限制。在欧美发达国家,各方面受到病人资料隐私权的限制,发展也相对缓 慢;国内也尚处于起步阶段。 1.2.11.2.1 DNA 数据库现状数据库现状 EMBL13是欧洲生物信息研究所创建的一个核苷酸序列数据库。EMBL 的数据来 源主要有两部分,一部分由科研人员或某些基因组测序机构通过计算机网络直接提交, 另一部分则来自科技文献或专利(Stoesser17等, 1998)。EMBL 与 DDBJ14、GenBank16 建有合作关系,他们分别在全世界范围内收集核酸序列信息,每天都将新发现或更新 过的数据相互交换。此外还有美国国家生物技术信息中心 NCBI (National Center for Biotechnology Information )建立的 DNA 序列数据库 GenBank16以及 DDBJ14(DNA Data Bank of Japan)等 DNA 数据库,他们之间部分互相合作,互相交互数据,共同维 第一章 绪论 3 护全球的 DNA 数据库。现在,DNA 数据库的规模正在以指数方式增长,平均不到 9 个月就增加一倍17。 1.2.21.2.2 蛋白质序列数据库现状蛋白质序列数据库现状 蛋白质序列的搜集比 DNA 早,蛋白质序列数据库的雏形可以追溯到上个世纪 60 年代。这方面做得比较好的有:蛋白质序列数据库 PIR18、序列数据库 PIR18、序列 数据库 PIR18以及美国的 NBRF18、日本的国际蛋白质信息数据库 JIPID18(Japanese International Protein Information Database)和德国的慕尼黑蛋白质序列信息中心 MIPS (Munich Information Center for Protein Sequences )合作成立的国际蛋白质信息中心 PIR International。另一个重要的蛋白质序列数据库则是 SwissProt 19。该数据库由瑞士日 内瓦大学于 1986 年创建,目前由瑞士生物信息学研究所(Swiss Institute of Bioinformatics,简称 SIB)和欧洲生物信息学研究所 EBI 共同维护和管理。PIR 和 SwissProt 是创建最早、使用最为广泛的两个蛋白质数据库。 1.2.31.2.3 临床数据库的现状临床数据库的现状 与生物序列数据库的蓬勃发展相比,临床数据库的发展显得道路坎坷。首先,数 据获取比较有难度。一般来说临床数据的直接来源是医院,这就需要与医院达成合作 意向。医院也在必须征求病人及家属同意之后才能将这些数据用于研究建库。其次, 出对病人隐私的考虑,搭建成功的数据库不能向外界公开,各家闭门造车,无法通过 合理、适当的交流与合作来加快、促进临床数据库的建设。这也是导致目前网络上生 物序列数据库繁多,而临床医学数据库寥寥无几的原因。在数据和数据库方面受到了 限制,这也进一步限制了数据挖掘技术在临床数据中的应用,阻碍其发展。 1.2.41.2.4 本系统的现状本系统的现状 系统的需求一部分是来自厦门大学中山医院的一个课题项目,该项目的工作是希 望根据已获取的各个部位癌症的临床数据和基因切片数据,利用数据挖掘的关联规则 基因数据库分析系统的设计与实现 4 挖掘方法在基因和临床病症及病理资料之间找到某些关联或其他有价值的信息 。在这 个数据库及其分析系统中,配合本课题中其他研究人员,根据他们提出的算法实现数 据库管理与分析系统。 课题组希望以该项目作为起点,在关注于数据挖掘技术在生物序列分析的应用的 同时,着手于数据挖掘在临床数据中的应用与研究。本项目实现的系统将为后续的研 究工作提供数据支持与其他服务。 事实上,欧美等发达国家在生物信息方面已有较长时间的积累。从数据库的角度 来讲,早在 60 年代,美国就建立了手工搜集数据的蛋白质数据库。美国洛斯阿拉莫斯 国家实验室 1979 年就已经建立起 GenBank 数据库,欧洲分子生物学实验室 1982 年就 已经提供核酸序列数据库 EMBL 的服务,日本也于 1984 年着手建立国家级的核酸序 列数据库 DDBJ 并于 1987 年开始提供服务。从网络资源来看,国外互联网上的生物信 息学网点非常繁多,大到代表国家级研究机构的,小到代表专业实验室的都有,大型 机构的网点一般提供相关新闻,数据库服务和软件在线服务,小型科研机构一般是介 绍自己的研究成果,有的还提供自己设计的算法的在线服务,总体而言,基本都是面 向生物信息学专业人士,各种分析方法虽然很全面,但却分散在不同的网点,分析结 果也需专业人士来解读。 目前,绝大部分的核酸和蛋白质数据库由美国,欧洲和日本的 3 家数据库系统产 生;他们共同组成了 DDBJ/EMBL/GenBank 国际核酸序列数据库,每天交换数据,同 步更新。其他一些国家,如德国,法国,意大利,瑞士,澳大利亚,丹麦和以色列等, 在分享网络共享资源的同时,也分别建有自己的生物信息学机构,二级或更高级的具 有各自特色的专业数据库以及自己的分析技术,服务于本国生物(医学)研究和开发, 有些服务也开放于全世界。 国内对生物信息学领域也越来越重视,在一些著名院士和教授的带领下,在各自 领域取得了一定成绩,有的在国际上还占有一席之地,如北京大学在生物信息学网站 建设方面,中科院生物物理所在 EST 序列拼接方面以及在基因组演化方面,天津大学 在 DNA 序列的几何学分析方面,中科院理论物理所,清华大学,内蒙古大学等等; 北京大学于 1997 年 3 月成立了生物信息学中心,中科院上海生命科学研究院也于 第一章 绪论 5 2000 年 3 月成立了生物信息学中心,分别维护着国内两个专业水平相对较高的生物信 息学网站,但从全国总体上来看与国际水平差距很大。 1.3主要工作内容主要工作内容及特色及特色 本项目与中山医院合作,立足于临床数据库与基因数据库的管理系统,并且在这 个项目的基础上,实现对临床数据和肿瘤基因的关联规则挖掘,DNA 序列模式挖掘以 及蛋白质家族挖掘的分析功能。主要的工作内容有: 1.生物序列数据库的设计与创建:生物序列数据库分为 DNA 序列数据库和蛋白 质家族数据库,根据 fasta 序列文件的格式,并结合后续生物序列分析系统的 需要设计而成; 2.Web 界面开发:用 HTML 语言开发出系统的 web 界面,并作为原型进一步理 解需求; 3.业务编码实现:以 web 界面为出发点,由界面驱动来编写功能点。具体包括 系统管理、DNA 序列数据库的管理和蛋白质家族数据库的管理等; 4.生物序列分析模块:将文献提供的生物序列挖掘算法整合入本项目系统中; 5.系统测试、维护与部署:完成系统的测试与维护,保证系统的健壮与可用性, 最后完成部署工作。 在项目中,本人负责除生物序列模式挖掘算法实现、临床医学数据库设计与创建 外的所有功能模块的开发、编码工作。 本项目完成的基因数据库分析系统,将是一个成熟的软件。系统的特点包括良好 的界面,直观简单的功能导航,以及能够方便的管理临床数据、基因序列数据和蛋白 质家族数据。在数据准备充分的情况下,可以对数据进行挖掘、分析。并且,由于它 具有良好的可扩展性,可以继续添加其他的数据挖掘算法。系统目的在于统一对生物 序列进行管理,并便于进行算法研究工作。 基因数据库分析系统的设计与实现 6 1.4本文结构本文结构 本文共分为五章,主要介绍了项目的开发背景、框架设计和开发过程,以及最后 系统的结果展示。本文的结构和各章的主要内容如下: 第一章绪论,主要结束本项目的来源和背景资料、现行系统存在的情况以及 项目的工作内容,并对本文的结构进行概述。 第二章基因数据库分析系统的系统设计,系统的结束本系统的框架和功能。 首先,对系统的框架进行简要的说明。然后,针对系统各个模块进行 展开。并进一步说明开发的内容和开发流程。最后给出了系统的开发 平台。 第三章基因数据库分析系统实现,详细介绍工作流程中各部分任务的开发与 实现,主要包括系统管理、DNA 序列数据库管理、蛋白质家族数据库 管理以及生物序列分析模块等。 第四章基因数据库分析系统集成,这一章节中,本文将展示和说明项目的开 发成果。 第五章总结与展望,对本文和项目开发结果进行概述和总结,并提出进一步 改进的计划。 第二章 基因数据库分析系统的设计 7 第二章第二章基因数据库分析系统的设计基因数据库分析系统的设计 良好的系统设计是一个项目成功、顺利开发的基础和开端。为待开发的系统设计 一个优秀的系统设计框架,是保证系统的功能全面、可行以及具有良好的可扩展性的 必要条件。在本章中,我们将重点介绍基因数据库分析系统的系统功、技术框架、数 据库设计,并且针对每个功能模块进行扩展。 系统框架设计系统框架设计 基因数据库分析系统框架设计这部分内容,包含了系统的功能框架和技术框架两 个方面。系统的功能模块的运作,建立在 SSH(即 Struts20, Spring21, Hibernate22)技 术框架的基础上,由用户触发功能点,通过 SSH Framework 24 25对数据库进行管理, 如图 2.1 所示: 图图 2.1 系统框架图系统框架图 客户通过客户终端浏览器向应用程序框架发送请求,引发底层的应用程序框架与 上层的具体应用程序交互。交互的结果产生数据改动,具体的应用程序再通过系统框 架将数据改动写入数据库中。系统的开发以及编码工作,按照功能框架中所列出的各 个功能模块来进行开发。应用程序建立在 SSH 应用框架的基础上,与数据库和用户客 户端进行交互。 基因数据库分析系统的设计与实现 8 2.1.12.1.1 功能框架功能框架 本系统将是实验室中,用来管理临床数据库、基因序列数据库和蛋白质数据库的 工具,并方便于其他研究人员进行后续的研究、开发工作。它可以用来存储网络上其 他生物信息数据库里的公共生物序列信息,存储与中山医院的合作项目里特定的临床 数据信息,并进行简单的分析与统计工作。系统要求具有良好的扩展性,能极大地方 便对数据进行管理和研究工作。 系统的主要功能包括:系统管理、用户管理、临床数据库管理、DNA 序列数据库 管理、蛋白质家族序列数据库管理和序列模式挖掘子系统,如图 2.2 所示: 基因数据库分析系统 系统管理临床数据库管理DNA数据库管理蛋白质家族管理 用户增删改 权限设置 用户登录 临床数据查询 数据增删改 统计与分析 DNA查询 DNA序列增删 改 蛋白质家族查 询 家族增删改 生物序列分析 系统 图图 2.2 系统功能框架图系统功能框架图 由图 2.2 可以看出,本系统可以分为如下几个功能模块: 1.系统及用户的管理 实现对用户的管理,包括添加新用户、删除老用户等。通过用户权限对用户 进行分类,不同权限的用户将查看到不同的数据库; 2.临床数据库管理模块 实现对临床数据的增加、删除、修改以及查询等常规的数据库管理功能,以 及对临床数据的简单分析、统计; 第二章 基因数据库分析系统的设计 9 3.DNA 序列数据库管理模块 实现对 DNA 序列数据的存储、修改及查询功能,方便 DNA 序列数据的存储、 查找与提取; 4.蛋白质家族管理模块 实现对蛋白质序列数据的增加、删除、修改、查询等常规数据库管理操作, 便于后期研究应用; 5.生物序列分析模块 实现项目组提出的算法,完成生物序列分析功能。 生物序列模式挖掘分析模块是李晟提出的算法实现所得。该模块具有可扩展性, 可以添加新的算法来分析数据库中的序列数据。 其他几个模块属于基础功能模块,系统管理里面包含用户管理,可以修改用户的 基本资料。管理员可以设置其他用户的试用权限,赋予不同类型的用户能满足其需要 的功能。用户登录之后,将根据其权限,显示不一样的导航栏内容,杜绝越限操作的 出现。 2.1.22.1.2 技术架构技术架构 在软件架构设计中,我们往往建立软件系统的高层结构,常常用到分层架构模式。 分层模式是一种将系统的行为或功能以层为首要的组织单位来进行分配(划分)的结 构模式。一般情况下,层内的元素只信赖于当前层和之下的相邻层中的其它元素。 业务层持久层 DAO Classes UI Layer Struts MVC Struts action ActionForm JSP etc 表现层 Service dispatch Domain model business objects Bussiness Layer Spring Transactions Hibernate Session Management Hibernate Data source Connection pool Query language And other hibernate support Persistence 基因数据库分析系统的设计与实现 10 图图 2.3 Struts-Spring-Hibernate 框架的说明图框架的说明图 如大部分的 Web 应用,基因数据库分析系统采用 MVC25 (Model-View-Controller) 架构,在职责上能被分成 4 层:表示层(Presentation Layer)、持久层(Persistence Layer)、业务层(Business Layer)和域模型层(Domain model Layer)。每个层在功 能上都十分明确,而且不与其他层混合。每个层都相互独立,通过一个通信接口与当 前层和之下的相邻层中的其他元素相互联系。 下面将结合本项目用到的 SSH 框架技术,详细地介绍这四层中的表示层、业务层 和持久层,说明一下在本项目的系统中,各个层提供了什么。如图 2.3 所示, Struts、Spring、Hibernate 相结合,搭建起系统的框架。各个层次的特点如下: 1. 表示层(表现层): 一般来讲,一个典型的 Web 应用的前端应该是表示层。在本项目系统里,使 用的目前已经相当成熟的 Struts 框架。 表示层所负责的内容如下: (1) 管理用户的请求,做出相应的响应; (2) 提供一个流程控制器,委派调用业务逻辑和其他上层处理; (3) 处理异常; (4) 为显示提供一个数据模型; (5) 用户界面的验证。 为了符合高内聚的要求,并且降低耦合度,表示层应该不包含如下内容: (1) 与数据库直接通信; (2) 与应用程序相关联的业务逻辑及校验; (3) 事务处理。 2. 业务层: 一个典型 Web 应用的中间部分是业务层或者服务层。从编码的视角来看,这 层是最容易被忽视的一层。我们往往在用户界面层或持久层周围看到这些业务处 理的代码,这其实是不正确的。因为它会造成程序代码的高耦合,这样一来,随 第二章 基因数据库分析系统的设计 11 着时间推移,这些代码将很难维护。为此,可以通过采用良好的框架来避免这些 问题。 本项目的系统在这一层采用的是 Spring 框架技术。Spring 致力于“依赖注入” (dependency injection)也即 控制反转(Inversion of Control=IoC)这样的简单 概念。这里我们将关注于 Spring 的依赖注入和面向方面编程。另外,Spring 把程 序中所涉及到的包含业务逻辑和数据存取对象(Data Access Object)的 Objects-例 如 transaction management handler(事务管理控制)、Object Factories(对象工厂)、 service objects(服务组件)都通过 XML 来配置联系起来。 业务层所负责的内容如下: (1) 处理应用程序的业务逻辑和业务校验; (2) 管理事务; (3) 提供与其他层相互作用的接口; (4) 管理业务层级别的对象的依赖; (5) 在表示层和持久层之间增加了一个灵活的机制,使他们不直接联系在一起; (6) 通过揭示从表示层到业务层之间的上下文(Context)来得到业务逻辑 (business services); (7) 管理程序的执行(从业务层到持久层)。 3. 持久层: 典型的 Web 应用的后端是持久层,而开发者总是低估构建他们自己的持久层 框架的挑战性。系统内部的持久层不但需要大量调试时间,而且还经常因为缺少 功能使之变得难以控制。这是持久层的通病。幸运地是,有几个对象/关系映射 ORM(Object/Relation Mapping)开源框架很好地解决这类问题,尤其是 Hibernate。 本项目在持久层采用的就是 Hibernate。它为 Java 提供了持久化机制和查询服 务。Hibernate 的持久对象是基于 POJO(Plain Old Java Object)和 Java 集合 (Collections)的。 持久层所负责的内容如下: 基因数据库分析系统的设计与实现 12 (1) 如何查询对象的相关信息; (2) 如何存储、更新、删除数据库记录; (3) 支持大部分主流数据库,并且支持父表/子表(Parent/child)关系、事务 处理、继承和多态。 如上所述,Struts 关注于表现层,并提供控制器组成了 MVC 结构里的 V(View) 和 C(Controller);Spring 管理业务层的 JavaBeans 与 Hibernate 共同构成 M(Model),如图 2.4 所示。 ViewDispatcher Controller Model Client 刷 新 视 图 用户请求 用户请求结果 执 行 改 变 模 型 JSP和Struts Struts Spring和Hibernate Servlet和Spring 图图 2.4 结合结合 MVC 和和 SSH 如图 2.4 所示,Dispatcher 负责将客户端发来的请求 URL 映射成命令实例,即 Struts 中的 Action。 Action 再与 Model 进行交互,这里的 Model 由一系列的系统后端 服务组成,包括 Hibernate 提供的数据库访问等;而 Spring 则统一管理 Model 中的系 统服务。 第二章 基因数据库分析系统的设计 13 如上所述,系统是基于 SSH 的技术框架构建起来的,具有灵活度强扩展性好和开 发效率高等优点。 2.2数据库设计数据库设计 本项目的数据库采用开源的 MySql 存储,可以与 J2EE 项目良好的结合,具有体 积小、速度快、总体拥有成本低等特点。本项目的数据库设计如图 2.5 所示: 基因数据库分析系统的设计与实现 14 source1 PKSOURCE_ID SOURCE_NAME SCIENTIFIC_NAME ORGANISM_NAME locus1 PKLOCUS_ID LOCUS_NAME SEQ_LENGTH MOLECULE_TYPE CLASS_SIGN LATEST_DATE fea_element1 PKQualifier_ID Qualifier_NAME Qualifier_VALUE FK1,I1FEA_ID reference1 PKREF_ID AUTHORS TITLE JOURNAL PUBMED REMARK FK1,I1seq_file_ID organism1 PKORGANISM_ID ORGANISM_NAME FK1,I1SOURCE_ID fea_location1 PKLOCA_ID START END FK1,I1FEA_ID version1 PKRETRIEVE_ID VERSION_ID GI PRE_VERSION accession1 PKACCESSION_ID SEC_RETR_ID SRD_RETR_ID RETR_ID seq_file1 PKSEQ_FILE_ID KEYWORDS SEQUENCES FK3,I1LOCUS_ID FK2,I2DEFINITION_ID FK4,I3SOURCE_ID FK1,I4ACCESSION_ID FK5,I5VERSION_ID DELETED ref_num feature1 PKFEA_ID NAME FK1,I1seq_file_ID definition1 PKDEFINITION_ID GENUS SPECIES GENE_SOURCE SOURCE_BG b1 b2 b3 b4 b5 psquence1 PKpsid Pname Squence FK1,I1PId Deleted user1 PKUSER_ID PASSWORD USER_NAME USER_RIGHT Deleted pfam1 PKPid PfamID Accession Type Description SquSum Deleted 图图 2.5 数据库关系设计图图数据库关系设计图图 如图 2.8 所示是系统数据库关系设计图,USER 表属于系统管理模块,PFAM 和 PSEQUENCE 表属于蛋白质家族管理模块,其他各表属于 DNA 序列管理模块。下面 将对比较重要的表进行描述。表 2.1 所示的是系统管理模块的 SUER 表: 第二章 基因数据库分析系统的设计 15 表表 2.1 用户用户 USER 表表 字段名类型说明 USER_IDINTEGERUSER 表的主键 USER_NAMEVARCHAR用户名 PASSWORDVARCHAR密码 DELETEDBOOLEAN是否已删除 PURVIEWINTEGER权限字段 USER_ID 是用户登陆时,可以用来标识用户的唯一字段,由系统自动生成。 USER_NAME 是用户给自己起的用户名,由于不具有唯一性,因此不能用来作为 登陆系统的账号。 DELETED 字段用来实现“软删除”,该标志位为真的记录被认为是删除掉的,将 无法查询到。 PURVIEW 字段用来实现用户对数据库的访问权限的设置。它一共有 4 位,第一 位为 1 表示是管理员,第二至四位为 1 分别表示对临床数据库、DNA 序列数据库及蛋 白质家族数据库有访问的权限。 USER 表是系统管理部分的数据基础,在创建完 USER 表之后,我就开始进行 JSP 界面的开发和其他编码工作。 DNA 序列数据库管理这方面所涉及到的数据库表比较多,鉴于篇幅的关系,这里 只展示比较重要的两个。首先要展示的是如表 2.2 所示的 LOCUS 表: 表表 2.2 数据库数据库 LOCUS 表表 字段名类型说明 LOCUS_IDINTEGERLOCUS 表的主键,自动生成 LOCUS_NAMEVARCHAR历史上用来标识基因的名称 SEQ_LENGTHINTEGER记录基因序列的长度 MOLECULEVARCHAR记录该基因的分子生物类型 LOCUS 表里存储的是这个序列的基本信息,比如名称、序列长度、分子生物类型 等等。这些信息本身对数据序列模式挖掘没有什么用处,但是用于 DNA 序列查询的 时候具有比较高的参考价值。 另一个比较重要的表是如表 2.3 所示的主文件表: 基因数据库分析系统的设计与实现 16 表表 2.3 数据库数据库 Seq_file 表表 字段名类型说明 Seq_File_IDINTEGERSEQ_FILE 表的主键,自动生成 KeywordsVARCHAR该序列文件的关键字 SEQUENCETEXT保存该文件的序列 LOCUS_IDINTEGERLOCUS 表的外键 DEFINITION_IDINTEGERDEFINITION 表的外键 SOURCE_IDINTEGERSOURCE 表的外键 ACCESSION_IDINTEGERACCESSION 表的外键 VERSION_IDINTEGERVERSION 表的外键 DELETEDINTEGER标识该记录是否已被删除 Seq_file 是 DNA 序列数据库中比较重要的一个表,它连接着包含有其他重要信息 的表,例如上面介绍到的 LOCUS 以及 ACCESSION、DEFINITION、SOURCE 等。 SEQ_FILE 表里比较重要的字段是 SEQUENCE,该字段存储的是最重要的信息DNA 序列。由于一般的 DNA 序列长度都比较长,因此这里采用 TEXT 的类型来存储。 蛋白质家族管理模块只涉及到两个表,下表所示的是蛋白质家族的 PFAM 表: 表表 2.4 蛋白质家族蛋白质家族 PFAM 表表 字段名类型说明 PIDINTEGERPFAM 表的主键 PFAMIDVARCHAR蛋白质家族 ID ACCESSIONVARCHAR家族的提取号码 TYPEBOOLEAN该蛋白质家族的类型 DESCRIPTION SQUSUM DELETED INTEGER INTEGER BOOLEAN 权限字段 该家族所存储的序列数量 是否已删除 PID 是在数据库中用于标识蛋白质家族的唯一 ID,由系统自动生成。 PFAMID、ACCESSION、TYPE、DESCRIPTION 这四个字段根据 PFAM 上的家 族信息录入,用于根据关键字查询。 SQUSUM 字段存储的信息是,在该家族中所包含有的序列的数量,当加入新的或 这删除已有的蛋白质序列时,自动增加或减少。 DELETED 字段其他主表的意义一样,用于实现软删除。 表表 2.5 蛋白质序列蛋白质序列 SEQUENCE 表表 第二章 基因数据库分析系统的设计 17 字段名类型说明 PSIDINTEGERSEQUENCE 表的主键 PNAMEVARCHAR蛋白质序列的名称 SEQUENCETEXT该序列的内容 PIDINTEGER连接到 PFAM 表的外键 DELETEDBOOLEAN是否已删除 表 2.5 所示的是蛋白质家族下存储序列的 SEQUENCE 表,该表存储的主要信息是 SEQUENCE 字段的序列内容。 DELETED 字段同样用于实现软删除,标识该字段是否已被删除。 PID 是连接到 PFAM 表的外键,每条 SEQUENCE 的记录都对应一条 PFAM 的记 录。 PNAME 与 PFAM 数据库中的相应位置相符,一般用于关键字查询。 2.3系统模块设计系统模块设计 在上一节中,文章介绍了系统的框架设计,包括系统功能框架和技术架构两个方 面。接下来在本小节中,文章将对基因数据库分析系统的各个部分进行详细说明。 2.3.12.3.1 系统管理管理模块系统管理管理模块 基因数据库分析系统的用户分为两种,超级管理员和普通用户。普通用户可以修 改自己的密码和名字,但是登录名不能改。普通用户根据权限值的不同,可以访问一 个或者某几个基因数据库。 表表 2.6 权限值与权限内容对应表权限值与权限内容对应表 权限位对应权限 1000系统用户管理权 0100临床数据库访问权 0010DNA 数据库访问权 0001蛋白质家族数据库访问权 基因数据库分析系统的设计与实现 18 超级管理员除了拥有对所有的基因数据库的访问权限,还拥有对普通用户的管理 权限,可以增加、删除用户,修改普通用户的权限值等等。权限值是一个 4 位长的数 字串,从左到右的 4 位分别对应着用户管理权限、临床数据库访问权限、DNA 数据库 访问权限和蛋白质家族数据库访问权限,如上面的表 2.6 所示。 普通用户的用例图如图 2.5: User 管理个人资料 用户登录 图图 2.5 普通用户系统用例图普通用户系统用例图 从图 2.5 可以看出,普通用户 User 在系统管理这块只能管理自己的个人资料,对 自己的各项信息进行管理。超级管理员的用例图如所示: 管理个人资料 administrator 管理普通用户 管理用户数据库访问权限 用户登录 图图 2.6 管理员用例图管理员用例图 第二章 基因数据库分析系统的设计 19 从图 2.5 和图 2.6 可以看出普通用户和管理员都可以管理个人资料,修改个人基础 信息。用户可以修改的个人资料包括用户名、密码,用户的 ID 则是从注册之日起就无 法更改的信息。 管理员还具有管理普通用户的权力。在管理普通用户这个用例里,管理员可以添 加新的用户、修改已有用户、删除不必要的用户和设置普通用户的访问权限等管理权 力。其中,设置用户的数据库访问权限是通过设置用户资料里权限值这一项的一个标 志位来完成的。在图中,把管理用户和管理用户访问权限分成两个用例来展示,是为 了突出管理用户访问权限这一权限。 图图 2.7 系统管理类图系统管理类图 基因数据库分析系统的设计与实现 20 系统管理部分的业务逻辑相对比较简单,所以涉及到的 JAVA 类比较少。该部分 的业务逻辑主要是:超级管理员对普通用户的管理(包括用户添加、删除、修改和数 据库访问权限的设置等)和普通用户对个人资料的管理(包括用户名和密码的设置等) 。系统管理的类图展示如图 2.7 所示。 从图 2.7 中可以看出系统管理模块涉及的域模型是跟数据库中 USER 表对应的 User 类,该 User 类向 UserManageBiz 和 IndividualManageBiz 提供对用户信息进行修 改的接口。从页面传送过来的 URL 在分派器中被映射为相应的 Action,而 Action 再 通过 Spring 找到 UserMangageBiz 和 IndividualManageBiz,从而完成系统管理操作。 接下去,将详细描述管理员查询所有普通用户这一功能点的具体流程,要展示的 是这一过程的顺序图,如图 2.8 所示: 图图 2.8 查询所有用户顺序图查询所有用户顺序图 图 2.8 展示了管理员查询用户这一功能的详细设计: 1. 页面响应:为查询用户这一功能提供按钮,用于发送查询的请求 URL; 2. 配置文件:配置从请求 URL 到相应查询用户的 Action 的映射; 3. 编写 Action 类:通过 Spring 查找到相应的 Biz 与服务交互,完成功能代码; 4. 编写 Biz 类:为 Action 提供接口,完成数据读写查操作。 第二章 基因数据库分析系统的设计 21 2.3.22.3.2 DNA 序列数据库管理模块序列数据库管理模块 DNA 序列数据库只对于具有相关权限的用户可见,这部分的用例图如图 2.9 所示: User 查询DNA序列 添加DNA序列文件 删除DNA序列 修改DNA序列 模式挖掘DNA序列 图图 2.9 基因基因 DNA 序列数据库管理用例图序列数据库管理用例图 从图中可以看出来,用户在 DNA 序列数据库管理模块里可以进行如下操作: 1. 查询 DNA 序列 一个序列附带有许多字段,包括序列名称,序列所在的基因,基因所在的生 物体位置,还有发现这段序列的相关文献等等。在 DNA 序列查询里,系统设计成 可以根据上述任意字段进行查询,并根据查询结果进行其他操作; 2. 添加 DNA 序列 当确定系统里没有我们需要的目标序列的时候

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论