时间:2022-10-17 08:12:12
开篇:写作不仅是一种记录,更是一种创造,它让我们能够捕捉那些稍纵即逝的灵感,将它们永久地定格在纸上。下面是小编精心整理的12篇数据库设计,希望这些内容能成为您创作过程中的良师益友,陪伴您不断探索和进步。
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2015)31-0001-02
Optimal Design of Case Database in Database Course Teaching
HUANG Xin
(Jiaxing Technician College Department of Trade and Tourism,Jiaxing 314036, China)
Abstract:Aiming at the problem of selecting the teaching cases in, we analysis and research the case database designed int the domestic and mainstream textbook of database course. We propose a forum database named “simpleforumdb” as teaching and laboratorial case, and the detailed design of this database is given at the mean time.
Key words:database;course teaching;case database design
数据库技术是现代IT技术的重要支撑技术,是构建各类信息系统与应用系统的核心技术和重要基础[1]。教育部的相关文件指出“当代大学生应具备利用数据库技术对信息进行管理、加工和处理的意识与能力,用以解决本专业领域中的问题的能力”[2]。
国内主流数据库课程教材在组织内容时,虽然有的侧重数据库实现原理的介绍,有的以某一数据库管理系统(如Oracle、MySQL等)为平台介绍数据库技术的应用,有的兼顾理论和技术,但无一例外都引入了一个或多个数据库教学项目作为贯穿全书各章节、演示数据库关键概念和技术的案例。许多在教学中广泛使用的案例数据库较为简单,与实际工程项目相差较大,不能很好地覆盖数据库课程所有知识点,导致学生在未来工作中遇到实际项目时无法快速上手。如何设计合理的教学案例数据库已成为数据库课程教学亟待解决的重要课题。
1 主流数据库课程教材使用的案例数据库分析
下面从本专科两个教学层次,选取两本主流数据库课程教材中引入的案例数据库加以分析各自的优点和不足。
1.1 图书管理系统数据库
由南京师范大学郑阿奇教授主编的数据库课程系列教材被列为普通高等学校国家级规划教材,在职业院校和应用型本科院校的数据库课程教学中广泛使用。该教材以图书管理系统数据库作为教学案例[3]。
1.1.1 图书管理系统数据库逻辑结构
图书管理系统数据库的逻辑结构[3]如下:
1)管理员表:Administrator(角色名,密码,备注)
2)读者表:TReader(借书证号,密码,姓名,性别,出生时间,专业,借书量,照片,备注,联系方式)
3)图书表:TBook(ISBN,书名,作译者,出版社,出版年月,价格,复本量,库存量,分类号,内容提要,封面照片)
4)借阅表:TLend(借书证号,ISBN,图书ID,借书时间,应还时间)
5)还书表:HLend(编号,借书证号,ISBN,图书ID,借书时间,还书时间)
6)借出表:TBLend(图书ID,ISBN,是否借出)
1.1.2 图书管理系统数据库设计分析
优点:图书管理系统数据库设计较为完整,学习者不难结合其他程序设计语言(如C#、JSP、等)构造出一个实用的数据库应用系统作为课程设计。另外,该案例数据库的属性较为丰富,可涵盖SQL语言的主要数据类型。
不足:第一,可能是为了方便数据查询,图书管理系统数据库设计上存在不规范问题:部分表没有达到3NF的规范化要求。例如在借阅表TLend中,存在非主属性ISBN对码(借书证号, 图书ID , 借书时间)的部分函数依赖[4]。还书表HLend也存在类似问题。改进的方法是从借阅表TLend和还书表HLend中去除属性ISBN,同时在TLend中加入“编号”属性作为该表的主码。第二,图书管理系统数据库的设计存在冗余问题,部分属性属于冗余属性,可以从相关表中去除[4]。例如图书表TBook中每本书的“复本量”和“库存量”可通过对借出表TBLend中相关记录进行聚集函数查询(使用函数count)得到,所以这两个属性应该从图书表Tbook中去除(如果存在,为了维护数据完整性系统将付出很大的性能代价)。第三,和企业实际工程项目相比,图书管理系统数据库略显简单。
1.2 学生选课数据库
由中国人民大学王珊和萨师煊两位教授编著的《数据库系统概论》一书引入的案例数据库――学生选课数据库在国内多数本科院校授课时广泛采用[5]。《数据库系统概论》也是国内第一部介绍数据库的教材,一直被国内大多数本科院校作为课程教材和主要教学参考书。
1.2.1 学生选课数据库逻辑结构
[关键词]ORACLE数据库 环境调整 优化设计 方案
中图分类号:TP3 文献标识码:A 文章编号:1671-7597(2008)0720043-01
ORACLE数据库中数据存取性能的改善,可以进行调整级别,第一级调整是操作系统级包括硬件平台,第二级调整是ORACLE RDBMS级的调整,第三级是数据库设计级的调整,最后一个调整级是SQL级。通常依此四级调整级别对数据库进行调整、优化,数据库的整体性能会得到很大的改善。
一、数据库优化自由结构OFA(Optimal flexible Architecture)
数据库的逻辑配置对数据库性能有很大的影响,为此,ORACLE公司对表空间设计提出了一种优化结构OFA。使用这种结构进行设计会大大简化物理设计中的数据管理。优化自由结构OFA,简单地讲就是在数据库中可以高效自由地分布逻辑数据对象,因此首先要对数据库中的逻辑对象根据他们的使用方式和物理结构对数据库的影响来进行分类,这种分类包括将系统数据和用户数据分开、一般数据和索引数据分开、低活动表和高活动表分开等等。数据库逻辑设计的结果应当符合几个准则:把以同样方式使用的段类型存储在一起;按照标准使用来设计系统;存在用于例外的分离区域;最小化表空间冲突;将数据字典分离。
二、充分利用系统全局区域SGA(SYSTEM GLOBAL AREA)
SGA是Oracle数据库的心脏。用户的进程对这个内存区发送事务,并且以这里作为高速缓存读取命中的数据,以实
现加速的目的。正确的SGA大小对数据库的性能至关重要。SGA包括以下几个部分:一个是数据块缓冲区(data block buffer cache)是SGA中的一块高速缓存,占整个数据库大小的1%-2%,用来存储从数据库重读取的数据块(表、索引、簇等),因此采用least recently used (LRU,最近最少使用)的方法进行空间管理。一个是字典缓冲区。该缓冲区内的信息包括用户账号数据、数据文件名、段名、盘区位置、表说明和权限,它也采用LRU方式管理。一个是重做日志缓冲区。该缓冲区保存为数据库恢复过程中用于前滚操作。还有一个是SQL共享池。保存执行计划和运行数据库的SQL语句的语法分析树。也采用LRU算法管理。如果设置过小,语句将被连续不断地再装入到库缓存,影响系统性能。
三、规范与反规范设计数据库
第一,规范化。对于范式是符合某一级别的关系模式的集合,根据约束条件的不同,一般有1NF、2NF、3NF三种范式。规范化理论是围绕这些范式而建立的。规范化的基本思想是逐步消除数据依赖中不合适的部分,使模式中的各关系模式达到某种程度的“分离”,即采用“一事一地”的模式设计原则,因此,所谓规范化实质上就是概念的单一化。数据库中数据规范化的优点是减少了数据冗余,节约了存储空间,相应逻辑和物理的I/O次数减少,同时加快了增、删、改的速度。但是一个完全规范化的设计并不总能生成最优的性能,因为对数据库查询通常需要更多的连接操作,从而影响到查询的速度。故有时为了提高某些查询或应用的性能而有意破坏规范规则,即反规范化。
第二,反规范化。在数据库的设计过程中有时故意保留非规范化约束,或者规范化以后又反规范,这样做通常是为了改进数据库的查询性能,加快数据库系统的响应速度。反规范化的好处是降低连接操作的需求、降低外码和索引数目,减少表的个数,从而提高查询速度,这对于性能要求相对较高的数据库系统来说,能有效地改善系统的性能,但相应的问题是可能影响数据的完整性,加快查询速度的同时降低修改速度。
所以,规范与反规范都是建立在实际的操作基础之上的约束,脱离了实际两者都没有意义。只有把两者合理地结合在一起,才能相互补充,发挥各自的优点。
四、索引Index的优化设计
第一,管理组织索引。索引可以大大加快数据库的查询速度,索引把表中的逻辑值映射到安全的RowID,因此索引能进行快速定位数据的物理地址。对一个建有索引的大型表的查询时,索引数据可能会用完所有的数据块缓存空间,ORACL不得不频繁地进行磁盘读写来获取数据,因此在对一个大型表进行分区之后,可以根据相应的分区建立分区索引。DBA创建索引时,应尽量保证该索引最可能地被用于where子句中,如果对查询只简单地制定一个索引,并不一定会加快速度,因为索引必须指定一个适合所需的访问路径。
第二,聚簇的使用。Oracle提供了另一种方法来提高查询速度,就是聚簇(Cluster)。所谓聚簇,简单地说就是把几个表放在一起,按一定公共属性混合存放。聚簇根据共同码值将多个表的数据存储在同一个Oracle块中,这时检索一组Oracle块就同时得到两个表的数据,这样就可以减少需要存储的Oracle块,从而提高应用程序的性能。
五、使用最优的数据库连接和SQL优化方案
第一,使用直接的OLE DB数据库连接方式。通过ADO可以使用两种方式连接数据库,一种是传统的ODBC方式,一种是OLE DB方式。ADO是建立在OLE DB技术上的,为了支持ODBC,必须建立相应的OLE DB到ODBC的调用转换,而使用直接的OLE DB方式则不需转换,从而提高处理速度。
第二,使用Connection Pool机制。在数据库处理中,资源花销最大的是建立数据库连接,而且用户还会有一个较长的连接等待时间。解决的办法就是复用现有的Connection,也就是使用Connection Pool对象机制。Connection Pool的原理是:IIS+ASP体系中维持了一个连接缓冲池,这样,当下一个用户访问时,直接在连接缓冲池中取得一个数据库连接,而不需重新连接数据库,因此可以大大地提高系统的响应速度。
第三,高效地进行SQL语句设计。通常情况下,可以采用一些方法优化SQL对数据操作的表现。首先,减少对数据库的查询次数,即减少对系统资源的请求,使用快照和显形图等分布式数据库对象可以减少对数据库的查询次数。其次,尽量使用相同的或非常类似的SQL语句进行查询,这样不仅充分利用SQL共享池中的已经分析的语法树,要查询的数据在SGA中命中的可能性也会大大增加。还可以限制动态SQL的使用,虽然动态SQL很好用,但是即使在SQL共享池中有一个完全相同的查询值,动态SQL也会重新进行语法分析。
总之,提高系统性能需要一种系统的整体的方法,在对数据库进行优化时,应对应用程序、I/O子系统和操作系统(OS)进行相应的优化。优化是有目的地更改系统的一个或多个组件,使其满足一个或多个目标的过程。对Oracle来说,优化是进行有目的的调整组件级以改善性能,即增加吞吐量,减少响应时间。DBA能从上述方面综合考虑优化方案,相信多数ORACLE应用可以做到按最优的方式来存取数据。
参考文献:
[1][美]Joe Greene,Advanced Information Systems,Inc.et al. Oracle 8 服务器技术精粹 [M].清华大学出版社,1999.
[2]瓮正科、王新英,Oracle 8.X For Windows NT 实用教程[M].清华大学出版社,1999.
关键词:网络安全 漏洞 数据库
1 信息安全库所面临的挑战
信息技术的发展带动了全球信息化的发展,从而使信息基础设施成为社会基础设施中必不可少的关键所在。信息网络技术的应用正日益普及和广泛,应用领域也从传统的、小型业务系统逐渐向大型、关键业务系统扩展,典型的如企事业单位信息系统、金融业务系统、企业商务系统等。伴随网络的普及,安全日益成为影响网络效能的重要问题,而Internet所具有的开放性、国际性和自由性在增加应用自由度的同时,对安全提出了更高的要求,这主要表现在:
1.1 开放性导致网络的技术是全开放的,任何一个人、团体都可能获得,因而网络所面临的破坏和攻击可能是多方面的,例如:可能来自物理传输线路的攻击,也可以对网络通信协议和实现实施攻击;可以是对软件实施攻击,也可以对硬件实施攻击。
1.2 国际性意味着网络的攻击不仅仅来自本地网络的用户,它可以来自Internet上的任何一个机器,也就是说,网络安全所面临的是一个国际化的挑战。
1.3 自由性意味着网络最初对用户的使用并没有提供任何的技术约束,用户可以自由地访问网络,自由地使用和各种类型的信息。
与此同时,层出不穷的病毒、蠕虫和黑客攻击给正常的网络通信与信息资源带来沉重的负荷和影响。
如近几年来在全球肆虐的Code Red,Slammer,W32. Blaster等蠕虫病毒,除了对受害站点进行DDos攻击外,大量非正常数据包的泛洪还严重占用网络带宽,堵塞网络,并使大量服务器工作异常,具有很强的危害性。
2 安全信息数据库的设计
该子库主要存储来自于信息侦察所收集到的并支持人工修正的目标网络的基本信息。其中,包含有配置信息表(CInfo)、服务信息表(SInfo)、漏洞信息表(VInfo)和安全依赖关系表(SDR)。
CInfo表的键是主机IP地址属性;SInfo表的键是(主机IP地址、主机端口);VInfo表的键是(主机IP地址、主机漏洞ID);SDR表的键是(可能源主机IP,可能目的主机IP,主机漏洞ID)。CInfo与SInfo是一对多的关系,因为每台主机可同时开放多个端口;CInfo与VInfo是一对多的关系,每个节点可能有多个漏洞;SInfo与VInfo也是一对多的关系,每个运行服务可能存在多个漏洞。CInfo与SDR,VInfo与SDR均是一对多的关系。
3 标准漏洞子库设计
该子库由漏洞信息表(VulInfo)和漏洞影响系统信息表(VulSys)组成。前者主要记录了每个漏洞的BugID、/更新时间、漏洞类别、具体描述、修复方法等等;后者记录了每条漏洞所影响的操作系统或应用软件信息。
VulInfo表和VulSys的键值均是漏洞ID属性,它们之间是一对多的关系,因为同一个漏洞可能影响多个系统。
在VulInfo表中,我们使用Bugtraq作为标识漏洞的唯一ID,是因为Bugtraq ID即将成为业界的统一标准,各个软件供应商也已开始将自己的产品漏洞公告映射为Bugtraq编号,该编号提供了一个统一、一致、可比较的漏洞管理机制。
由于这两个组织的漏洞数据库都不提供直接的访问,因此设计一个漏洞数据获取插件。
根据各个漏洞信息的URL开启多个线程,发送相应的HTTP GET请求,然后读取Web Server端的响应。由于漏洞数量相当多,如果由每个线程同时完成读取响应,分析数据并填写数据库,不但会消耗大量的系统资源,而且很可能导致大量GET请求失败。因此,我们采取了实时线程获取原始漏洞数据并以简单的格式存储,然后主线程进行离线的数据分析,并完成写入数据库的任务。另外,由于可能存在GET请求失效的情况,将导致某些漏洞的信息缺失或不完整。为了保证得到所有已有漏洞的信息,我们还采取了日志记录机制,即,主线程开启一批线程抓取信息并等待其全部结束后,根据每个线程录入的日志找出需要重新抓取的漏洞,重新开启一批线程,如此反复,直到所有漏洞数据都被成功获取。
由于目前实际情况的限制,只能在国际安全组织站点上被动的更新漏洞库。如果可以建立国内统一的紧急相应中心漏洞数据库,那么中心可以定期的向各个网络风险评估管理系统的标准漏洞子库漏洞更新数据。
可见,执行相应的风险控制措施,使风险等级降低到可接受的水平。
参考文献:
[1]Information Assurance Technical Framework. IATF Document [EB/OL].Release 3.1.
[2]National Computer Security Center,Department of Defense Trusted Computer System Evaluation Criteria,DoD 5200.28-STD,December 1985
[3]David Moore,Vern Paxson,Stefan Savage etc. The Spread of the Sapphire/Slammer Worm[EB/OL].2003.
数据库设计系统设计数据库设计习惯系统设计分为两个部分,也可以说是两个阶段,即数据库设计与系统功能设计。构建一个完善的系统需要这两个阶段的充分考量、周密设计、合理联接以及密切配合。在这两个设计阶段中数据库设计阶段是整个系统设计的根基,数据库设计关乎系统功能实现度、稳定性、扩展性等多个方面的内容,其重要性可想而知。然而目前的情况是:从学校到社会,从教师到学生,从思想到行动都以实现功能,做上层的表面文章为主流。这不仅会为系统留下隐患,也将成为整个软件开发行业的隐患。
一、海量数据环境到来为数据库设计提出的新高度
数据库设计是近些年出现的技术领域。早期的时候,数据库是以一个黑盒的方式,附属到某个系统当中的,开发人员对它的关注很少。互联网的时代,系统数据量呈几何级数激增,数据存储与表示也使用了TB,PB乃至ZB等单位。在这种情况下各种性能问题日益凸显,数据库由于其载体与容器的身份承担了其中的很大一部分。海量数据带来的存储、查询速度以及容灾等方面的压力是这一环境下的新问题。无论是项目负责人、开发人员还是DBA(Database Administrator),都不可回避地要面对这个问题。
在这种大数据环境下人们对数据库性能的优劣俞发关注,对系统设计阶段中的数据库设计阶段也提出了新的更高的要求,数据库功能也正在从数据存储工具的角色转变成数据处理器的角色。因此,目前的系统设计中也总是将数据库从系统设计中拿出来单独进行设计。一个数据库性能的好坏,通常是在系统设计阶段就决定了的。
二、好的数据库设计所应具备的基本条件
1.充分体现系统的需求
数据库是为应用服务的,好的数据库设计应该首先能满足应用系统的业务需求,能够准确表达数据间关系。
2.能够保证数据的准确性和一致性
通过主外键、非空、限制、唯一索引等保证数据的健壮。
3.提高数据的查询效率
通过合理表结构,安排物理存储分区、增加索引等方式,提高数据的读取速度,提高查询效率。
4.有好的扩展性
好的数据库设计在必要时应能根据需求进行数据结构的扩展。
三、重视不足的数据库设计的具体体现
不良的数据库设计,必然会造成很多问题,轻则增减字段,重则系统无法运行。对数据库设计重视不足在具体设计中可体现在很多方面,现列举其中的部分内容:
1.与需求不符
数据库是需求的直观反应和表现。在数据库设计之前对用户需求没有进行详细了解与必要的分析,在设计过程中也没有同用户及使用单位进行必要的沟通。这样往往造成数据库在设计上的不实用。与用户需求不符将使整个系统无法交付使用。
2.字段设计不合理
一是设计中缺少必要的字段,造成无法跟踪数据变化、限制用户操作或无法进行数据分析。二是字段长度过短或字段类型过于明确,使可发挥、可拓展的空间太小。设计不合理的字段如果用于查询将造成SQL查询语句过于复杂,而使查询无法顺利进行。
3.数据完整性丧失
通常指存储大量数据的数据表之间的关联过多,包含主外键关系的数据表之间的关联字段设计方式不合理,或是多张数据表之间耦合度过高,更新与删除操作后就容易造成程序出错。
除上述内容之外,因对数据库设计过程重视不够而非技术不足所造成影响还有很多,在此不一一列举。需要相关人员明确的是系统设计如同所有项目一样包括各个环节。例如,汽车制造过程包括图纸设计、模型制作、样车制造、小批量生产,最后是批量生产等环节。制造过程环环相扣,后一过程将建立在前一过程正确的前提基础之上。很显然越是初始环节出现问题对整个项目带来的打击越大。在开发顺序上由于数据库设计阶段位于整个系统设计的前端,因此在此环节出现的问题其影响是具大的。
四、如何培养良好的数据库设计习惯
一般来说,在系统设计时间与任务量的安排上,数据库设计至少应占用整个项目开发的60%以上。这样才能保证系统的强壮、可靠与稳定。从事系统设计的相关人员要养成良好的数据库设计习惯主要应从以下两个方面着手。
1.转变观念
首先,很多计算机专业的学生、教师以及真正的开发设计人员受社会大环境的影响在学习与工作中没有踏实与务实的作风。再者,很多承担专业教学的教师没有真正的系统设计经历,很难给学生的系统设计习惯进行正确的引导。还有,学习的动力导致学习的效果。学生在学习前就已经对各门专业课程进行了“三六九等”的划分。认为各类流行的语言与开发工具是重要的,是简历中的“添彩”之处,是今后工作必备的。其实,各种语言一通则百通,并不需要面面俱到。因此,这就需要“产学研”人员都能转变观念,以培养正确的设计习惯。
2.增加大型系统开发经历
大型系统开发其交付后都能具有较高的实际应用价值,其对数据库设计的要求必然符合其应有的地位。之所以在观念上对数据库设计存在重视不足的问题同相关人员没有大型系统开发经历有一定的关系统,开发经验总停留在模拟系统阶段是无法真正认识到数据库设计的重要性的。
五、结语
综上所述,可见数据库设计在系统设计中的作用是举足轻重的。对数据库设计重要性的忽视必将为整个系统埋下隐患,对系统以及开发人员而言所要付出的代价也将是巨大的。
参考文献:
[1]谭怀远.让Oracle跑得更快2――基于海量数据的数据库设计与优化.电子工业出版社,2011.
【关键词】数据库设计程序 通用外挂式辅助 离散制造执行系统
数据库设计的优劣和体现性能的高低对整个系统软件的生命周期长短具有重要的影响意义,其中辅助数据库设计程序是软件开发和应用最有效的辅助设计工具。现阶段,数据库设计发展常应用的软件技术和数据处理方式是SDE中间件技术。这种技术的应用缺乏通用性和一般性,只能针对某一种具体的数据库和软件进行设计。同时,产品化软件数据库管理应用程序只是简单化的数据管理系统,不具有软件设计和数据整理的基本功能。为此,集合数据库辅助设计程序和软件系统开发为一体的辅助程序得到了越来越多人的研究和关注,文章为此对通用外挂式辅助数据库设计程序进行分析研究。
1 通用外挂式辅助数据库设计程序
1.1 概念
通用外挂式辅助数据库设计程序中的外挂式主要以用户界面为基本呈现形式,借助这种界面实现对数据库内容的灵活处理,并在相应软件系统开发的同时,实现软件和数据库设计的开发和自定义设计。
1.2 参数传递的含义
通用外挂式辅助数据库设计程序不仅需要应用辅数据库设计,而且还需要通过模块化参数信息的传递来实现对软件模块化的设计。这种设计一般需要应用函数的形式来充分展现模块的功能,并借助各种不同的参数代号信息实现各种不同的操作,进而满足不同程序模块的设计需求,具体的实现方式如下所示:
(1)Q代表另一个表字段的名称,能够将表的记录信息从一个字段传递到另一个字段上,且这种字段在新增窗体中显示为一种隐藏字段。
(2)B代表本字段的编辑可以省略掉最后一项的内容。基本含义为类型、读写字段、名称显示、Where条件、Order排序等。
(3)R代表取值为主表传入的字段值,基本含义为类型、本表字段名称和父表字段的名称。
(4)R含义为类型、表名、读写字段、显示名称、Select语句。
(5)S表示的是通用模块中用户自拟定义的字段。
(6)W表示不存在的表的字段。
1.3 通用外挂式辅助数据库设计程序的特点
(1)能够面向数据库的管理进行全方位详细设计。这种详细的设计包含视图和存储过程中数据库设计常应用的方法和技术。
(2)这种设计支持无代码的程序开发,具体的自定义设计能力很强,在模块化思想的支撑下能够以参数的形式将模块功能进行输入。
(3)能够进行流程化的处理。流程化的处理具体是指能够实现对已经建立好的数据库表格在外挂式的数据库设计程序中进行统一化的管理。
(4)开放式的数据管理。这种管理方式对数据库的格式不限制,能够对网络数据的设计和开发进行支持。
2 通用外挂式辅助数据库设计程序的实现方法
在DMES的系统管理中,数据库表越多、呈现的关系越复杂则是越难管理。在离散式制造业通用外挂式辅助数据库设计程序复杂的情况下,通用外挂式辅助数据库系统怎样实现对各种软硬件的管理是有关人员需要面临的问题。
2.1 程序框架结构的设计
通用外挂式辅助数据库设计程序系统主要由以下几部分组成:
2.1.1 管理程序
管理程序主要是对车间内部的生产和执行问题进行全面的负责和管理。
2.1.2 计划服务程序
计划服务程序能够对车间内部任务的布置和计划的调整进行全面的整合。
2.1.3 通信程序
通信程序主要是对施工现场作业的数据信息进行采集,并在信息采集的基础上有效实现软件系统和硬件系统数据信息的交互性应用。
2.1.4 接口程序
接口程序主要是实现DMES系统和其他系统进行有效整合的重要系统数据,能够为生产车间的上层系统提供一种全面化的服务,是各种数据进行交流和沟通的重要通道。程序框架结构的设计如图1所示。
2.2 DMES软件系统主要解决的问题
(1)在协助数据库资源系统进行有效管理的同时,辅助系统软件的开发。DMES软件系统在对数据库资源进行有效管理的同时,能够应用一种无代码的开发技术来实现对软件模块的开发,将软件系统的开发模式由原来单纯的代码开发转变为一种可配置的软件开发模式。
(2)利用可视化管理数据库表字段的方式进一步提升数据库表及其字段的可视化程度。
(3)利用通用性的输入条件函数,实现对数据库表格的关联性操作,并利用不同的字母代表不同的操作模块。
2.3 DMES软件系统程序的实现
DMES软件系统程序的实现应用Delphi6.0进行开发,并采用ini的方式来保存系统相应的配置,提升对数据库信息的灵活化应用,实现对各种数据库链接的统一化管理。
3 结束语
通过实践研究证明,这种设计程序的开发形式能够在最大限度上缩短软件程序的开发时间,减少软件开发中的成本错误问题,方便了开发人员的工作程序,提升了工作人员的工作效率。为此需要有关人员对通用外挂式辅助数据库设计程序进行更深一步的研究。
参考文献
[1]钟润阳,戴青云,周科,戴鑫波,王进.通用外挂式辅助数据库设计程序[J].计算机辅助工程,2009,01:83-86.
[2]钟润阳,戴青云,周科.基于外挂式通用数据库辅助设计程序的实现[A].广东省科学技术协会、香港理工大学、广东省机械工程学会.第十届粤港机电工程技术与应用研讨会暨梁天培教授纪念会文集[C].广东省科学技术协会、香港理工大学、广东省机械工程学会,2008(04).
作者简介
徐安令(1980-),男,云南省宣威市人。硕士学位。现为德宏师范高等专科学校讲师。研究方向为数据库及程序设计。
关键字:在线考试系统;数据库;设计;实现
中图分类号:TP311文献标识码:A文章编号:1009-3044(2012)03-0508-04
The Design and Implementation of Database for Online Examination System
Liu Hong-jiang
(Aba Teachers’College, Aba 623002, China)
Abstract: With the continuous development of computer and network technology as well as test technologies and methods, online exami? nation can meet the requirements of paperless examination and become one of the most important means of examination. In this trend, da? tabase will been designed for the establishment of online examination system, all these works is to expand the areas of students’ knowledge and to ensure fairness of the examination to a certain extent and also to improve the modernization level of test administration. Online ex? amination system is a typical management information system (MIS), which runs on windows 2003 sever, using a powerful and easily to op? erate environment named Microsoft SQL server 2005 as its database development platform.
Key words: online examination system; database; design; implementation
21世纪是一个“知识爆炸”的时代,信息更新的速度达到空前。计算机技术与网络技术越来越广地应用于社会的各个领域,它们在现代高等教育中的应用,是现代高等教育发展的需要,也是改革教育模式,提高学校教学效果和教学效率、提高科研和管理水平的必要手段。基于网络的在线考试和无纸化办公一样必然成为社会发展的趋势,在线考试是采用大规模试题库的计算机网络考试模式使得它颠覆了传统的考试方式,使得考试出卷、答题方式以及成绩管理发生着巨大的变革,考试过程变得方便、高效、快捷、公正。有趋势表明,标准化的在线考试方式已当今考试的发展方向,当前国际上许多考试认证如GRE,其出题、答卷以及评分都是在计算机上完成的。和传统的考试方式相比,无纸化的在线考试有着其科学、及时、准确、公平等优点,这是传统考试形式无法替代和比拟的优势。
1需求分析
需求分析是数据库设计的重要步骤之一,这一阶段的主要工作是确定使用这一数据库系统的用户,以及他们的业务活动。管理员主要负责录入开课信息,教师和学生名单以及查询学生试卷等工作。
教师主要负责录入试题,修改试题,生成试卷和阅卷等工作。
学生主要完成在规定时间内的答题任务。
2数据库设计
数据库设计对于在线考试系统的开发来说是一个十分重要的环节,数据库设计质量的优劣直接影响到数据库中数据的冗余度,一致性等问题。下面就对数据库的规范化设计进行说明。2.1关系数据理论及规范化
针对一个具体的数据库应用应该构造几个关系模式?每个关系由哪些属性组成?即如何构造适合于它的数据模式,这是关系数据库逻辑设计的问题。为了解决上述问题并使数据库设计走向规范,1971年E.F.Cldd提出了规范化理论。关系数据理论就指导产生了一个具体确定的、好的数据库模式的理论体系及范式理论。范式理论的具体内容如下:
第一范式:如果关系模式R的每一个属性都是不可分解的则R为第一范式的模式记为R∈1NF。
第二范式:如果关系模式R是第一范式,且每个非主属性都完全函数依赖于关键字,则称R为满足第二范式的模式,记为R∈2NF。
第三范式:如果关系模式R是第二范式,且没有一个非关键字属性石传递函数依赖于候选关键字属性,则称R满足第三范式的模式,记为R∈3NF。
扩充第三范式:如果关系模式R是第三范式,且每一个决定因素都包含有关键字,则称R为满足扩充第三范式的模式,记为
R∈BCNF。
第四范式:如果关系模式R是第三范式,且每个非平凡多值依赖XY(Y不是X的子集),X都含有关键字,则称R为满足第四范式的模式,记为R∈4NF
2.2数据库设计
在线考试系统的各个功能模块是否能够紧密地结合在一起以及如何结合,,关键在于数据库。因此对在线考试系统的数据库进行合理的逻辑设计和有效的物理设计是关键。
2.2.1概念设计
这一部分的工作,主要是将需求分析阶段得到的用户需求抽象为信息世界的概念模型,采用自底向上的方法,进行系统的概念设计,得到以下实体及属性的E-R图。
教师实体包括教师编号、教师姓名用户名和密码四个属性,其E-R图如图1所示。
图1教师实体及属性局部E-R图
学生实体包括学号、姓名、性别和密码四个属性,其E-R图如2图所示。
图2学生实体及属性局部E-R图
试题库实体包括课程名称、题目内容、参考答案、题目类型、难易度、备选答案A、备选答案B、备选答案C、备选答案D、备选答案E、备选答案F等属性,其E-R图如3图所示。
图3试题库实体及属性局部E-R图
试卷组成实体包括试卷代码、课程名称、试卷编号、考试日期等属性,其E-R图如4图所示。
图4试卷组成实体及属性局部E-R图
试卷实体包括试卷编号、课程名称、状态、得分、大题号、小题号、试题库中序号、学生学好、学生答案等属性,其E-R图如5图所示。
图5试卷实体及属性局部E-R图
根据需求分析,教师、题库、学生和试卷四个实体之间的关系如图6所示。
图6考试局部E-R图2.2.2逻辑设计
由于现在设计数据库系统都普遍采用关系模型的关系数据库管理系统,因此逻辑设计的主要工作是将概念设计得出的实体关系模型(E-R图)转化成关系模式。
具体如下:
教师(教师编号,教师姓名,用户名,密码)
学生(学号,姓名,性别,密码)
试题库(课程代码,课程名称,题目类型,题目内容,被选答案A,被选答案B,被选答案C,被选答案D,参考答案,难易度)
试卷组成(试卷代码,课程名称,题号(大题)1,试题类型1,小题数1,难题数1,中题数1,简单题数1,每小题分数1,题号(大题)2,试题类型2,小题数2,难题数2,中题数2,简单题数2,每小题分数2,题号(大题)3,试题类型3,小题数3,难题数3,中题数3,简单题数3,每小题分数3,题号(大题)4,试题类型4,小题数4,难题数4,中题数4,简单题数4,每小题分数4,题号(大题)5,试题类型5,小题数5,难题数5,中题数5,简单题数5,每小题分数5,题号(大题)6,试题类型6,小题数6,难题数6,中题数6,简单题数6,每小题分数6,题号(大题)7,试题类型7,小题数7,难题数7,中题数7,简单题数7,每小题分数)
试卷(试卷编号,试卷名称,大试题号,小试题号,试题库中序号,学号,学生答案,得分)
成绩(学号,试卷编号,课程名称,成绩)
3数据库表结构的建立
数据库表结构的建立在逻辑设计阶段得出的关系模型的基础上,并对其进行适当的优化,各关系转化后的表结构具体如下:
Teacher表(教师信息表):主要字段有教师编号,用户名,密码及权限,其中教师编号为主键,由于教师对系统掌握的程度不同,故增加一个权限字段,管理员的权限为H,理工科教师为权限为M,文科艺体教师的权限为L。
Student(学生信息表):主要字段有学号、姓名、性别和密码,其中学号为主键。
Paper_lib(试题库表):主要字段有标识、题目类型、题目内容、备选答案A、备选答案B、备选答案C、备选答案D、参考答案和难易度。其中增加一个标识来作为主键,用于确定记录的唯一性。在该表中,增加一个标识来作为主键,确定记录的唯一性。
Paper_comp (试卷组成表):主要字段有标识、试卷名称、课程名称、试卷代码、题号(大题)1、试题类型1、小题数1、难题数1、中等题数1、简单题数1、……、题号(大题)7、试题类型7、小题数7、难题数7、中等题数7、简单题数7、考试时间、考试状态、考试学期,教学班号,教师编号等。其中,教师编号为外键,与教师表建立关系。在该表中,增加一个标识作为主键,确定记录的唯一性。
Paper(试卷表):主要字段有标识、试卷代码、试卷编号、试题(大题)号、小题号、学生答案、试题库中序号、学号、得分。其中学生学号为外键,与学生表建立关系;试卷代码为外键,与试卷组成表建立关系。在该表中,增加一个标识作为主键,确定记录的唯一性
4数据库的连接
4.1数据库平台选择
只有选择合适的数据库系统,然后根据数据库设计阶段得出的表结构,用具体的数据库语言来实现之后,才能实现数据库的连接。目前流行的数据库系统有很多,例如SQL Server,MySQL,Sybase,Oracle等,这里我们选择Microsoft的SQLserver 2005作为在线考试系统的数据库开发平台。
4.2系统开发平台选择
在线考试系统可以选择的开发平台也很多,例如jsp,PHP,.Net或者是asp等。这里我们选择一种轻量级而且开源的开发平台PHP,PHP(Hypertext Preprocessor,超文本预处理器)是一种HTML内嵌式的语言,混合了C、Java、Perl等多种语言的特点,被广泛应用的开源式的多用途脚本语言。PHP最重要的特征是它的数据库集成层,完全支持SQL标准,可以支持大多数数据库系统,并且具有数据库访问速度快、运行效率高、性能稳定、操作简单等优势。PHP提供了标准的数据库接口,数据库连接方便,兼容性强;扩展性强;即可以用来开发WEB应用程序,也可用来开发普通的应用程序,应用范围非常广.
4.3数据库连接
PHP与SQL Server数据库的连接有两种方式,一种是PHP通过ODBC访问SQL Server 2005。ODBC(Open DataBase Connectivity)即开放式接口,是由微软主导的数据库连接标准,目前所有的关系数据库都提供了ODBC驱动程序,所以ODBC已经成为数据库访问的业界标准,并得到了广泛应用。另外一种是PHP直接访问SQL Server 2005时,利用PHP提供的Mssql函数库来创建连接。分为一般和永久两种连接方式:
一般连接使用的函数是mssql_connect。
永久连接使用的函数是mssql_pconnect。
其语法如下:
int mssql_connect(string [servername],string [username], string [password]);
int mssql_pconnect(string [servername],string [username], string [password]);
在系统中,采用的是第一种方式使用mssql_connect函数进行数据库的连接,创建一个php与数据库之间的连接文件,命名为conn_db.php来实现的。conn_db.php的代码如下:
$dbconnected=@mssql_connect("数据库服务器名称或IP","用户名","密码")
or die("连接数据库服务器失败!");
mssql_select_db("database",$dbconnected);//选择要操作的数据库
?>
为了系统的安全,用@符号来屏蔽系统在客户端浏览器显示错误提示,同时用die()函数来显示连接数据库服务器失败的错误提示并直接退出程序。
用mssql_close函数关闭连接,创建一个php与数据库之间的断开文件,命名为close.php
@mssql_close($dbconnected);
?>
5结论
本文从需求分析、概要设计、逻辑设计及数据库的实现及连接等方面进行简单地阐述。对于在线考试系统的数据库设计有一定的参考价值。
参考文献:
[1]申时凯,李海雁.数据库应用技术[M].2版.北京:中国铁道出版社,2005.
[2]陈恭和.数据库基础与SQL应用教程[M].北京:高等教育出版社,2003.
[3]石志国.JSP网络开发详解[M].北京:电子工业出版社,2007.
关键词:农业信息数据库;设计;探究
1. 农业信息数据库整体技术框架选用的分析
现阶段,主要有两类技术框架可供选择,一是.NET技术,二是B/S结构。NET技术是微软设计并主推的一种技术框架,不仅在当前获得了一定的应用,而且具有广泛的应用前景。相较其他技术框架而言,.NET技术优势明显,表现如下:一,检索功能强大,既快又准;二,并发处理数方面优于其它;三,是微软的主推项目,具有十分广阔的发展前景及应用前景;四,利用网络便可有效处理数据中心的一系列外部扩建问题,既不需要客户端软件安装,又不需要客户端软件升级,还不需要相应的跟踪服务,节省了大量运营成本。所谓B/S结构指的是,浏览器与服务器结构,是一种基于C/S结构的改良产品。[1]该种结构将WWW浏览器作为操作者的工作界面,利用服务器端来完成对绝大部分关键事物逻辑的处理,并表现出“3-tier结构”特点。B/S技术也具有一定的优势,表现如下:一,在很大程度上,实现了对客户端电脑载荷的有效精简,进而降低了使用者的总体成本;二,在实际应用过程中,该结构易于把握;三,不仅具有一次性开发到位的特点,而且在访问及操作方面,突破了时间、空间以及接入方式的诸多限制;四,可根据设置相应的访问权限,从而保证整个数据库具有较高的安全级别。在进行农业信息数据库开发环节,建议采用如下技术手段:在技术框架方面选择.NET2.0;在体系结构方面选择B/S。
2.农业信息数据库的设计要求
2.1数据库的建设原则及其构建风格
2.1.1数据库的建设原则
在建设数据库的过程中,应紧紧围绕建设目标进行,既要做大,又要做强,还要做精,另外,应保证在整体风格上趋于统一,还应保证各个数据库具有自己的特色,即做好统分布置[2]。
2.1.2数据库的构建风格
在建设数据库过程中,应在遵循建设原则的基础上,体现其主体风格——清新简洁,一改传统数据库的诸多不足(拘谨以及繁杂等)。标识由三大部分组成:一,数据库全称;二,数据库英文拼写;三,数据库标识。标识显示在数据库系统的每一个页面上,且显示在操作页的左上角位置。选择淡蓝色作为首页的基准色调,并选用宋体字,无论是字体大小,还是内容布局,均应充分照顾到视觉感官的舒适性。值得一提的是,首页的相关设计要保持相对固定,以为其它数据库设计提供参照,另外,在设计其它数据库的过程中,应注意各自特点的体现。
2.2子数据库的构建方式阐述
2.2.1整体架构
数据中心的建设是一个相对漫长的过程,短则数年,多则数十年。在此过程中,数据库在数量及容量方面也随之不断发展和扩充,所以,要对体系结构的整体性能进行综合考虑,包括稳定性,包括安全性,包括长远性,还包括运营成本等。总而言之,要保证整体架构的科学性。
2.2.2后台建设及应用
数据库后台建设质量的高低是至关重要的,和数据库实际工作效率息息相关。所以,在后台建设及应用的过程中,应特别注意以下几点:一,批量数据处理;二,数据格式规范化;三,防止同类数据反复录入等[3]。
3.农业信息数据库的建设内容及其开发设计
3.1农业信息数据库的建设目的
在农业信息化进程中,农业信息数据库是不可或缺的组成部分,将会对当地的农业发展及社会进步产生至关重要的影响。所以,设计并构建科学合理的农业信息数据库系统便成了当务之急,是推动我国农业信息化不断深入的一个重要手段。
3.2农产品树状分类数据仓库群
将初级农业产品用作数据库系统的一个基本分类原则。利用树状结构这一形式以实现对农产品数据库群的合理构建。以“玉米树状分类数据库”为例。在该数据库中,将玉米的一些基本信息(品种、栽培以及加工等)定义为一级结点。加工这一项可作进一步细化,包括加工企业,包括加工产品,还包括加工技术等,此为二级节点。加工产品这一项还可作进一步细化,包括生产企业,包括用途,还包括市场需求等,此为三级节点。这些不同级别的节点信息,最终构建了一个相对完整的玉米树状分类数据库。
信息采集及存储环节,采用如下方式进行编码:信息类别汉语拼音缩写+数字序号(例如,玉米品种1——ympzl)。该数据库覆盖范围非常广泛,涉及数百个基本品种,是一个极为丰富、系统的分类数据库群。第一期建设计划主要包括以下15大种类:一,水稻;二,玉米;三,大豆;四,高粱;五,西红柿;六,胡萝卜;七,马铃薯;八,苹果;九,桃;十,梨;十一,猪;十二,牛;十三,羊;十四,鸡;十五,蛋。
数据采集方式属于半自动式,先对采集对象进行人工界定,然后在抓取软件的帮助下,对信息对象进行采集,并储存在本地,最终展开相应分析及整理。数据库管理软件的诸多功能如下:一,数据录入;二,数据修改;三,数据删除;四,数据查找;五,数据分析;六,数据统计。对数据资源进行采集之前,应确定采集方式:一,主要方式,包括网上收集,包括共享,还包括自由数据整理;二,辅助方式,包括购置,还包括交换等。计划采集100G的数据资源[4]。
3.3农业决策支持系统
所谓农业决策支持系统指的是,以政府机构为主要服务对象的一个资源整合体系。在建设该系统的过程中,一方面应以原有系统为基础进行优化升级,另一方面应致力于系统集成软件的有效开发,以实现对该系统的重新分层组建。
3.4农业预警及其农产品动态信息监控数据库
该数据库能对农业生产信息进行采集和分析,能对农村经济发展信息进行采集和分析,进而总结出符合实际情况的农产品供求信息,还有价格行情。
该数据库能以互联网为通道,也能以电话网为通道,因而在数据采集方面具有一定的便捷性。另外,该系统建立了一套较为成熟的信息制度化与程序化的互动机制,不仅能够及时发出农业预警,还能实现对农产品动态信息的有效监控。
3.5农业图片资源及其文献资源集成数据库
对于农业数据信息而言,图片资源是不可或缺的组成部分。现阶段,涉农图片不仅形式杂乱,而且较为分散,所以,主要采用以下方式进行收集:一,征集;二,共享;三,网上收集;四,扫描加工;五,购买;六,自行拍摄。在设计图片数据库管理软件的过程中,应使其具备如下功能:一,图片编辑;二,图片分类;三,图片录入;四,图片检索等。另外,应基于“分类数据库”这种形式,对图片资源展开相应的集成处理。集成数据量200G。
4.结语
本文设计并构建了一种现代化的农业信息数据库系统,希望能够为我国农业经济的发展提供一些助益。(作者单位:成都理工大学)
参考文献:
[1]张伟,欧吉顺,周楚新.利用数据挖掘技术建设农业智能综合信息服务平台[J].农业网络信息.2011(08).
[2]夏斌,丁立,乔红波,高瑞.中文农业信息垂直搜索引擎的设计与实现[J].河南农业大学学报.2010(06).
一、成立数据小组
大型数据库数据元素多,在设计上有必要成立专门的数据小组。由于数据库设计者不一定是使用者,对系统设计中的数据元素不可能考虑周全,数据库设计出来后,往往难以找到所需的库表,因此数据小组最好由熟悉业务的项目骨干组成。
数据小组的职能并非是设计数据库,而是通过需求分析,在参考其他相似系统的基础上,提取系统的基本数据元素,担负对数据库的审核。审核内容包括审核新的数据库元素是否完全、能否实现全部业务需求;对旧数据库(如果存在旧系统)的分析及数据转换;数据库设计的审核、控制及必要调整。
二、设计原则
1.规范命名。所有的库名、表名、域名必须遵循统一的命名规则,并进行必要说明,以方便设计、维护、查询。
2.控制字段的引用。在设计时,可以选择适当的数据库设计管理工具,以方便开发人员的分布式设计和数据小组的集中审核管理。采用统一的命名规则,如果设计的字段已经存在,可直接引用;否则,应重新设计。
3.库表重复控制。在设计过程中,如果发现大部分字段都已存在,开发人员应怀疑所设计的库表是否已存在。通过对字段所在库表及相应设计人员的查询,可以确认库表是否确实重复。
4.并发控制。设计中应进行并发控制,即对于同一个库表,在同一时间只有一个人有控制权,其他人只能进行查询。
5.必要的讨论。数据库设计完成后,数据小组应与相关人员进行讨论,通过讨论来熟悉数据库,从而对设计中存在的问题进行控制或从中获取数据库设计的必要信息。
6.数据小组的审核。库表的定版、修改最终都要通过数据小组的审核,以保证符合必要的要求。
7.头文件处理。每次数据修改后,数据小组要对相应的头文件进行修改(可由管理软件自动完成),并通知相关的开发人员,以便进行相应的程序修改。
三、设计技巧
1.分类拆分数据量大的表。对于经常使用的表(如某些参数表或代码对照表),由于其使用频率很高,要尽量减少表中的记录数量。例如,银行的户主账表原来设计成一张表,虽然可以方便程序的设计与维护,但经过分析发现,由于数据量太大,会影响数据的迅速定位。如果将户主账表分别设计为活期户主账、定期户主账及对公户主账等,则可以大大提高查询效率。
2.索引设计。对于大的数据库表,合理的索引能够提高整个数据库的操作效率。在索引设计中,索引字段应挑选重复值较少的字段;在对建有复合索引的字段进行检索时,应注意按照复合索引字段建立的顺序进行。例如,如果对一个5万多条记录的流水表以日期和流水号为序建立复合索引,由于在该表中日期的重复值接近整个表的记录数,用流水号进行查询所用的时间接近3秒;而如果以流水号为索引字段建立索引进行相同的查询,所用时间不到1秒。因此在大型数据库设计中,只有进行合理的索引字段选择,才能有效提高整个数据库的操作效率。
3.数据操作的优化。在大型数据库中,如何提高数据操作效率值得关注。例如,每在数据库流水表中增加一笔业务,就必须从流水控制表中取出流水号,并将其流水号的数值加一。正常情况下,单笔操作的反应速度尚属正常,但当用它进行批量业务处理时,速度会明显减慢。经过分析发现,每次对流水控制表中的流水号数值加一时都要锁定该表,而该表却是整个系统操作的核心,有可能在操作时被其他进程锁定,因而使整个事务操作速度变慢。对这一问题的解决的办法是,根据批量业务的总笔数批量申请流水号,并对流水控制表进行一次更新,即可提高批量业务处理的速度。另一个例子是对插表的优化。对于大批量的业务处理,如果在插入数据库表时用普通的Insert语句,速度会很慢。其原因在于,每次插表都要进行一次I/O操作,花费较长的时间。改进后,可以用Put语句等缓冲区形式等满页后再进行I/O操作,从而提高效率。对大的数据库表进行删除时,一般会直接用Delete语句,这个语句虽然可以进行小表操作,但对大表却会因带来大事务而导致删除速度很慢甚至失败。解决的方法是去掉事务,但更有效的办法是先进行Drop操作再进行重建。
4.数据库参数的调整。数据库参数的调整是一个经验不断积累的过程,应由有经验的系统管理员完成。以Informix数据库为例,记录锁的数目太少会造成锁表的失败;逻辑日志的文件数目太少会造成插入大表失败等,这些问题都应根据实际情况进行必要的调整。
5.必要的工具。在整个数据库的开发与设计过程中,可以先开发一些小的应用工具,如自动生成库表的头文件、插入数据的初始化、数据插入的函数封装、错误跟踪或自动显示等,以此提高数据库的设计与开发效率。
6.避免长事务。对单个大表的删除或插入操作会带来大事务,解决的办法是对参数进行调整,也可以在插入时对文件进行分割。对于一个由一系列小事务顺序操作共同构成的长事务(如银行交易系统的日终交易),可以由一系列操作完成整个事务,但其缺点是有可能因整个事务太大而使不能完成,或者,由于偶然的意外而使事务重做所需的时间太长。较好的解决方法是,把整个事务分解成几个较小的事务,再由应用程序控制整个系统的流程。这样,如果其中某个事务不成功,则只需重做该事务,因而既可节约时间,又可避免长事务。
【关键词】Hibernate;品种数据库;对象
Abstract:Introduces the principle and characteristics of Hibernate technology, as well as the design and application of the seed database, display the advantages of Hibernate technology, the seed of object logic hypothesis.
1、引言
近年来,伴随着生物信息技术的研究开展以及品种数字化管理需求的上升,品种数据库的研究与管理越来越显得重要,传统的关系型数据库对于表现相对独立的品种表现尚可,但是对于表达具有遗传、继承、多态(生物多样性)、突变等特性的种子特征则显得无能为力。而最近在java技术领域异军突起的hibernate技术则很完美的解决了这一问题,它的“面向对象”技术特征可以对种子品种的上述生物学特性进行表达,并可以进行抽象的数据逻辑操作。
2、hibernate技术的基本原理与品种的数字表达
2.1hibernate的基本原理
Hibernate是一个轻量级的对象映射框架,它主要技术特点就是把数据库的内容对象化,使得每一条记录都对应一个对象的实例,而数据一旦变成了对象的实例,就自然而然的具备了对象的特征,即继承、多态、封装等。对于种子数据的操作自然就变成了”面向对象”的操作。作为数据对象的种子,具有状态,即对象的数据值。对象还有操作,就是对于对象本身数据值的操作。这样科研人员就可以按照对自然事物的认知习惯来对数据进行操作,而不是按照机器的思维去研究自然事物。利用hibernate框架映射后台数据处理类,把较为复杂的数据库操作都封装在DAO(data access object)中,由DAO提供一些数据访问接口,那么程序员只要调用这些接口,就实现了原本需要复杂的Structured Query Language(结构化查询语言)才能完成的功能。
2.2品种的数字表达
种子品种具有各种各样的性状,以水稻为例,以下为可用浮点数表示性状参数,生育日数、活动积温、株高、穗长等;以逻辑数据类型表示的是否抗倒伏特性;字符串类型的数据如品种名称、配套栽培技术、母本等等。传统的数据库记录方式只是将数据直接存储到数据库中供程序调用,如下所示:
(注:以上数据仅供举例,具体数据可能有差异)
但是,经过hibernate框架的映射处理,这些数据将会被映射为数据对象,由静态数据变成具有多种状态属性及操作的动态数据。
上述数据表格将会被映射成class rice。每个字段都将对应class中的属性,每个相对应的属性都有get和set方法来获得或者修改对象的属性值。这样,水稻就可以抽象为一个class rice,这个抽象的class具有所有水稻的一般特性,那么任何一个水稻品种都是继承于rice这个抽象类,并且变异或者进化出新的特性。
3、基于hibernate技术的品种数据库系统设计
3.1三层结构设计
品种数据库按照其功能划分为表示层,业务逻辑层和数据层。表示层负责与用户进行交互,负责将数据传输到业务逻辑层,并且将服务器处理完的数据回馈到用户。业务逻辑层负责表达程序的主题思想,是核心部分,它负责将用户数据处理后提交到数据层,或者将数据从数据库中提出发送到表示层。数据层负责与数据库打交道,所有与数据库相关的操作都封装在这一层,hibernate主要位于数据层与逻辑层之间,我们利用hibernate创建的DAO(数据访问对象)就位于数据层,里面包含对品种数据库的操作,例如增加、删除、修改、查询等等。
3.2品种数据库应用的关键步骤
3.2.1创建hibernate的配置文件和映射文件
这两个文件可以由集成开发环境自动生成,这里就简单的说一下它们的作用,Hibernate配置文件主要负责与数据库进行连接,其中包含数据库所在服务器的ip端口,用户名和密码,以及应用的数据库方言等等,一般以xml后缀形式存在。映射文件主要的作用就是将数据库中的表与实体类相对应,例如水稻表就对应水稻的class,玉米表就对应玉米的class,该文件一般以hbm后缀存在。
3.2.2获得数据工厂并存储品种数据
sessionFactory=new AnnotationConfiguration().configure().buildSessionFactory();
public static SessionFactory getSessionFactory() {return sessionFactory;}
Session session=HibernateUtil.getSessionFactory().openSession();
tx=session.beginTransaction();
session.save(pinzhong);
mit();
}
3.2.3以dao(数据访问对象)的方式提供数据接口
为了对三层结构中的业务逻辑层提供数据,Hibernate在品种数据访问对象中提供创建和存储接口、品种对象的修改和删除接口、按照品种对象的唯一id查询并获得品种对象的接口、获取全部品种对象的接口。这里面所说的品种对象,就是由在3.2.1中提到的映射文件生成的实体类对象、它们对应着数据库中记载着的品种记录,品种的id用来保证每条记录的唯一性。
3.3设计针对品种遗传特性的逻辑运算
由于数据经由hibernate映射成为了对象,对象具有属性和操作,那么在class的设计中就可以设计加载杂交操作,还是以水稻为例,水稻a,b,c都继承于水稻这个class,水稻c=水稻b.add(水稻a),也就是说水稻c的父本和母本分别是水稻b和水稻c,如果我们在数据库中有父母本显性基因和隐性基因的记录,那么对这两种基因进行“逻辑与运算”,我们就可以根据程序生成指定父母本杂交后代的大致估算结果。
4、结束语
将hibernate框架技术应用到种子品种数据库中,对于由众多参数构成的具有继承变异等生物特性的品种数据,实例证明,具有一定的优势和可行性。将“品种数据表”映射到“品种实体类”使其具有“类对象”功能,对于今后的种子品种研究工作是一个很好的铺垫,具有一定的推广意义。
参考文献
[1]宋汉增,沈琳.利用Hibernate对象持久化服务简化Java数据库访问[J].计算机应用,2003年12期
[2]朱庆伟,吴宇红.一种对象/关系映射框架的分析和应用[J].电子科技,2004年01期
【关键词】在线考试系统 数据库
1 引言
随着信息化社会的迅速发展,在线考试已经逐渐在高校中流行起来,数据库作为在线考试系统功能实现的基础,做好数据库的设计和应用十分必要。
2 需求分析
本系统作为一个通用的高校在线考试系统,可以满足高校各科目的考试需求,因此在系统的分析设计阶段需要充分考虑不同考试科目的公共特性,具备一定的可设置的弹性化设计空间。
本系统主要有教师、学生、监考人员和管理员四种用户,其中教师主要完成试题库管理、试卷管理等功能;学生主要完成在线考试功能;监考人员主要完成监控考场、启动考试、回收试卷等功能;管理员主要完成对用户、权限、考试课程和考试等管理功能。
3 概念设计
E-R图是一种用于描述静态数据结构的概念模型,提供表示实体类型、属性和联系的方法,用来描述现实世界的概念模型。把该系统的需求说明抽象为信息世界的概念模型,采用自底向上的方法,进行系统的概念设计,部分E-R图1所示。
选择题实体,包含编号、课程编号、题目、选项A、选项B、选项C、选项D、答案、章节、知识点、难易度等属性;
一般题实体,包含编号、课程编号、题目、答案、章节、知识点、难易度等属性;
试卷规则实体,包含规则编号、课程编号、单选题数量、多选题数量、填空题数量、判断题数量、综合题数量、单选题分值、多选题分值、填空题分值、判断题分值、综合题分值、总分和考试时间等属性;
试卷实体,包含编号、学号、规则编号、题型、题目编号、题目序号、学生答案、是否正确、得分等属性;
4 逻辑结构设计
逻辑结构设计就是把E-R图中的实体、实体的属性和实体之间的联系转化为数据库支持的关系模式,在转化过程中,注意命名问题、非原子属性问题和联系转换问题,根据设计创建对应的数据表,具体如下:
管理员表(编号姓名,密码);
教师表(编号,姓名,密码,系部,联系方式);
学生表(学号,姓名,密码,年级,班级,联系方式);
课程表(课程编号,课程名称);
班级表(班级编号,班级名称,系部,专业);
上课班级表(编号,课程编号,班级,上课教师编号,出卷教师编号,组卷规则编号);
考场表(考场编号,课程编号,班级,考场人数,考试开始时间,考试结束时间,监考老师编号,考场密码,考场状态);
单选题表(编号,课程编号,题目,选项A,选项B,选项C,选项D,答案,章节,知识点,难易度);
多选题表(编号,课程编号,题目,选项A,选项B,选项C,选项D,选项E,答案,章节,知识点,难易度);
填空题表(编号,课程编号,题目,答案,章节,知识点,难易度);
判断题表(编号,课程编号,题目,答案,章节,知识点,难易度);
综合题表(编号,课程编号,题目,答案,章节,知识点,难易度);
试卷规则表(规则编号,课程编号,单选题数量,多选题数量,填空题数量,判断题数量,综合题数量,单选题分值,多选题分值,填空题分值,判断题分值,综合题分值,总分,考试时间);
题型表(题型编号,题型名称);
试卷表(编号,学号,规则编号,题型,题目编号,题目序号,学生答案,正确答案,是否正确,得分)。
5 数据库实现
本考试系统选择SQL Server2005作为数据库开发平台,为了充分利用数据库优势提高系统运行速度和效率,采用数据库连接池技术,连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个;释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏,能明显提高对数据库操作的性能。
系统部分功能如随机组卷和客观题自动评阅功能将在数据库端实现。随机组卷功能将通过用户设置的题型、分值、章节、知识点和难易程度等要求通过存储过程完成,而客观题的自动评阅功能将通过在试卷表中建立触发器来实现,部分代码如下:
create TRIGGER judgeAsr ON paper
FOR UPDATE
AS
select @mid=id,@rid=rid,@qid=qid,@questionid=questionid,@typeid=typeid,@stuAsr=stuAsr from inserted
if(@typeid=1)
begin
select @rightAsr=answer from singleQuestions where [id]=@questionid;
select @weight=singleScore from rule where rid=@rid;
end
--多选、判断、填空题的代码类似,此处省略
if(@rightAsr=@stuAsr)
updatepaperManage set isRight='T',score=@weight where [id]=@mid
else
updatepaperManage set isRight='F',score=0 where [id]=@mid
6 小结
一个好的的在线考试系统离不开数据库的支持,所以,如何根据系统的需求分析设计出合理的数据库,对系统的后期实现有着十分重要的意义。
参考文献
[1]钟美莺.在线考试系统数据库设计应用研究[J].数据库与信息管理,2015(21).
[2]刘洪江.在线考试系统的数据库设计与实现[J].电脑知识与技术,2012(01).
[3]雷晓敏,网络在线考试系统的数据库设计[J].中小企业管理与科技,2011(11).
关键词:数据库设计;概念模型;逻辑模型;物理结构
中图分类号:G717 文献标志码:A 文章编号:1674-9324(2012)12-0244-02
数据库结构的设计,重则会决定软件系统的成败,轻则也会直接影响系统运行速度及系统的使用率。在设计数据库时,不但要考虑存取速度,还要考虑数据的冗余和一致性等问题。可以肯定的说:数据库设计的好坏,对将来程序的设计和系统的最终功能实现都起着非常重要的作用。数据库设计的第一步就是需求分析,即确定存储哪些数据,建立哪些应用,常用的操作及对象有哪些。根据对系统的初步需求分析与调研,对学生管理系统的总体功能进行如下设计:信息管理模块、考勤管理模块、宿舍管理模块、岗前实习管理模块、有处分学生学习班管理模块和系统管理模块。
一、数据库概念模型设计
根据前面对系统功能的细化分析,设计系统的数据流图,最后得到系统全局实体—关系模型。全局实体—关系模型必须满足所有的系统需要,还要恰当地展示一个一致的数据库模型。
二、数据库逻辑结构设计
实体—关系模型是对用户需求的一种抽象的表达形式,它不能为任何一个具体的数据库管理系统所支持,它是独立于任何一种具体的数据模型的。为了能够建立起最终的物理系统,接下来的任务是:将概念结构通过转化规则转化为本系统设计的数据结构,然后根据数据库管理系统的特点,选定的数据库管理系统支持下的数据模型,最后通过优化算法得到优化的数据模型。这些模式在功能性、完整性和一致性约束及数据库的可扩充性等方面应满足用户的各种要求。设计数据库逻辑结构有下面三个步骤:首先,将通过概念设计所得的实体—关系图转换为关系模型;就需要将实体、属性和联系转换为相应的关系模型;其次,将转换来的关系模型向特定DBMS支持下的数据模型转换;最后,优化处理得到的关系模型。
(一)实体模型转换为关系模型
鉴别数据库中的数据元素、关系,以及定义所需的数据库表和各个数据库表中的项目这些初始工作之后,所做的细化的过程就是范化。任何数据库的设计都需要满足特殊的约定,这会使数据库既简洁又结构明晰,反之数据库结果会非常混乱,所造成的直接后果是给数据的更新带来麻烦,给数据库带来大量冗余信息,给编程人员带来不便并造成不可避免的错误。
(二)实体—关系图模式向关系模式的转换
数据库表中的每一个属性都是不可以再分解的,这些属性(字段)由基本类型构成,包括数字类型、日期时间类型和字符串类型。数据库表部分设计如下:
①学生信息(学生编号,密码,曾用名,籍贯,户籍性质,照片,家庭住址,邮政编码,家庭座机,学生手机,父亲姓名,父亲手机,母亲姓名,母亲手机)
②专业信息(班级名称,校区,二级学院,所属系,专业,入学日期,学制)
③班级信息(班级名称,学生编号,班主任,学生姓名,性别,民族,身份证号,出生日期,政治面貌,类别,入学分数,是否住宿,辅导员,实习单位,处分标志,在校情况)
④考勤处分极限(处分名称,处分级别,违纪数量)
⑤考勤信息(教师编号,学生编号,学年,学期,日期,节次,违纪内容,违纪数量)
……
另外还有课程管理库表、教职工登录库表、岗前实习处分信息库表、岗前实习处分极限库表、岗前实习小结信息库表、宿舍处分极限库表、宿舍管理分配库表、学生住宿分配库表、宿舍违纪分值库表、宿舍处分信息库表、学生处分信息库表、有处分学生学习班信息库表,这里不再一一列举。
(三)对关系模型进行优化处理
在以上的设计中,由于学生信息实体的信息量较大,而实际系统运行时,不是所有信息都需要,如果都调入内存会占用系统资源,而且安全性也会遭到威胁。通过以上分析,特把“学生信息”数据库表分为两个数据库表,即“学生登录”数据库表和“学生信息”数据库表,“学生登录”数据库表具体设计如下:
学生登录(学生编号,密码)
原“学生信息”表对应减少密码项,避免发生数据冗余和数据的不一致性。
三、数据库物理结构设计
由于数据库的物理结构是与开发环境和选定的数据库管理系统软件产品有关的,因此数据库的物理设计依赖具体的数据库管理系统产品。数据库物理设计步骤如下图,后面会给出详细的解释。不论是对数据库的物理结构的确定,还是对物理结构进行评价,必须满足原始设计要求(需求分析),如果不满足就需要退回重新设计或修改,直到设计出符合要求的具体数据库。
(一)数据库的物理结构设计
1.确定数据的存储结构。在物理结构中,存储记录是数据的基本存取单位,存储记录结构包括记录的组成、数据项的类型和长度以及逻辑记录到存储记录的映射。下面举两个例子来简要说明存取时间、空间和维护代价是决定存储结构的主要因素:(1)假设现在需要查询计算机技术系的所有学生名单,如果将同一个系的学生集中存放,则会显著地减少访问磁盘的次数。聚簇后不必重复存储的聚簇码值,可以减少部分存储空间。(2)任课教师要按课程更新学生上课考勤信息,操作涉及学生和教师关系的连接操作,为提高效率,可把具有教师关系和学生关系在物理上聚簇在一起。根据以上设计思想,做如下部分设计:(1)学生基本信息、考勤处分极限、宿舍处分极限、岗前实习处分极限、教职工登录、班级、课程管理、宿舍清单、宿舍的分配:在一定时间内变动不大,更新速度相对较慢,考虑到查找的方便性,进行聚簇存储。(2)考勤信息、宿舍处分信息、岗前实习处分信息、学生处分信息:最经常的操作是查找、插入、删除,为提高效率,考虑建立“B+树”索引,则平均查找次数为“B+树”的层数,故对数据库设计到有索引的物理存储。
2.存取路径的设计。为了提高系统的性能,根据应用情况,如数据的异变部分和稳定部分、存取效率较高和较低等进行划分,可以进行如下设计:(1)各种文件的存放位置设计;(2)为保证读写速度,考虑表和索引的存放;(3)设计大表存放形式,用以加快存取速度;(4)将不同学院的学生放在不同磁盘上,如果教师集中录入考勤时,速度不会影响太大。
3.数据存放位置的设计。通过数据存放位置的规划来提高系统的性能,为保证读写速度考虑表和索引的存放。如考勤信息、宿舍处分信息、学生处分信息表的索引。
4.系统配置的设计。数据库管理系统的每个参数都有默认值,我们一般很少对默认初始值进行设置。但是根据不同系统的特点,这些默认参考值不一定都很恰当,需要我们根据最初的需求分析和实际的数据库表设计,适当调整参数的初始值,让我们设计的系统占用空间最小,系统运行速度最快。通常情况下,这些配置变量包括:同时打开的数据库对象数量,使用的缓冲区长度、个数、时间片大小、数据库的大小、装填因子、锁的数目,等等。
我们对这些参数值重新设置后,就能最大限度的保证系统运行效率。经过初步设计后,在系统真正投入运行或运行一段时间后,根据系统实际运行情况再做出调整,通过这种不断地调整,使学生管理软件系统的性能达到最优状态。(1)登录系统的极限数值设计。新生入学时,要求他们输入自己的个人信息,设计要求最多可以有120人同时打开学生基本信息库进行操作(通常打开3个机房共学生使用);平时同时使用的数据库还有考勤库、处分库等,考虑到老师们中午或下午课程结束后,可能会统一进行考勤录入,估算最多有200人同时打开学生考勤库进行操作;有50人同时打开学生处分库进行操作;对于其他数据库,由于同时操作的可能性不会太大,设计成最多可以有100人同时打开相应数据库进行操作;参考学院教职工和学生数。综上所述,设置max_connecionts为300。(2)同时打开数据库表个数的最初参数非常重要,如锁的数目等。本文设计的学生管理系统目前共涉及数据库表的个数为17,设计初期可以使用系统默认的数值。
(二)评价数据库的物理结构
系统运行的效率、占用的空间、维护系统所花费的代价,都是我们在设计系统的初期需要考虑的事情。
四、结束语
一个数据库应用系统的设计需要反复几次,才能达到比较理想的状态,这个反复的时间可能比最初设计系统的时间还要长,花费还要多,这也正是软件系统设计的规律。所以,在最初的调研阶段,要真正做好需求分析,不同阶段做好不同的文档设计,最后才可能得到性能高的数据库。
参考文献:
[1]伯乐.数据库系统教程[M].北京:高等教育出版社,2003.
[2]罗宇.操作系统[M].北京:机械工业出版社,2005:319-352.
[3]萨师煊,王珊.数据库系统概论[M].北京:高等教育出版社,2009.
关键词:灌区;数据库;空间数据库
中图分类号:TP311.13 文献标识码:A文章编号:1007-9599 (2010) 07-0000-01
Shijin Irrigation-district Database Design and Construction
Zhang Yongzeng,Yang Ming
(Hebei Shijin Irrigation District,Administration Bureau,Shijiazhuang050051,China)
Abstract:Shijin Irrigation District as example,this paper study the design of the irrigation method and content of the database.While the establishment of the attribute database,spatial database been established,to provides a rich data base for the irrigation work,in large measure to improve work efficiency.
Keywords:Irrigation-district;Database;Spatial database
一、背景
石津灌区是国家大Ⅱ型灌区,位于河北省中南部,骨干工程控制面积4144平方公里,耕地面积435万亩,设计灌溉面积250万亩,受益范围包括石家庄、邢台、衡水3个市的14个县市区,114个乡,其水源工程为岗南、黄壁庄两座联合运营的大型水库,兴利库容12.4亿立方米。总干渠全长134公里,干渠8条,总长183公里。
石津灌区管理局成立于1949年,多年的信息记载模式大部分是纸质或电子表格,而灌区涉及的信息量大而繁杂,还包括渠道、管理机构、水工建筑物等空间数据,传统的信息管理模式记录分散,查询及管理甚为不便,而空间数据只能通过纸质地图查询,降低了信息的提取利用效率,甚至影响了用水管理决策的制定和生成。因此,建立一个包括空间数据库在内的完整的灌区数据库是十分重要和必要的。
二、数据库设计
(一)数据库建设目标
1.建立标准、规范的数据编码系统
对灌区各类基础信息和空间信息进行编码,必须依据国家、行业有关标准(如河流编码、水库编码等)有关编码规定,尤其要遵从《全国大型灌区基础数据库建设指南》。
2.设计完善的数据库结构,对数据进行合理分类
在空间数据库中重点建设灌区空间数据与灌区基础数据之间的关系,按照监测点、全灌区两种级别将专题数字矢量图、专题数字栅格图、试验观测表格、专题声像资料、专题文本等五种类型进行分类结构设计,将灌区基础数据库和灌区专题数据库进行结构设计和优化,根据应用需求再逐步补充、完善数据库,以满足信息查询、汇报演示的要求。
3.数据库建库与数据导入
实施基础数据库的建库,实施数据库的物理结构建设和数据的导入。数据库建库包括空间数据库建库、多媒体数据库建库、实时监测数据建库和灌区属性数据库的建库,进而根据数据类型的不同,进行矢量地图数据和属性表格数据的分类入库。
(二)空间数据库设计
灌区空间基础数据是指与灌区空间数据有关的基础地图类数据。石津灌区空间数据库包括基础地理数据库和灌区专题空间数据两个部分。
基础地理数据库:基础地理空间数据是石津灌区所在区域的基本图形或影像数据,可为整个灌区提供电子底图。已收集到的数据包括:河北省石家庄市、衡水市、邢台市的1:10万地形图、三市的行政区划图、水系分布图、交通图。图上所有要素按照点、线、面要素进行分层,各层信息严格按照数据分类编码体系规范化分类编码,以.shp文件的形式进行存储(灌区各GIS应用软件都是基于ArcGIS Engine组件开发的)。
专题数据库:根据灌区的需求,我们将专题数据库分为灌区工情数据库(水工建筑物数据库)、水情信息数据库、实时监测数据库、水费征收数据库。将这些点状数据信息以shp文件的形式存储。
1.工情数据库:包含了灌区的闸门、渠道、倒虹吸、渡槽等各类水工建筑物,这些设施的数据是制定输水、配水计划的参考依据,也为管理人员更好的了解灌区情况提供了数据基础。
2.水情信息数据库:包含了灌区监测点的闸位、水位、雨情、墒情和地下水的非实时数据,可按时间或监测点统计分析水情信息的变化,预测用水量等重要信息。
3.实时监测数据库:包含了灌区监测点的闸位、水位、雨情和墒情的实时数据,通过建立接口,读取灌区已建设好的水情遥测系统监测到的最新数据,一般是半个小时更新一次。
4.水费征收数据库:包含了灌区所辖范围内各村的用水量及水费征收数据。能以村为单位查询历年用水量及水费收缴情况。
(三)属性数据库设计
灌区的属性数据库除了包含上述各空间数据所对应的属性数据以外,还包括了灌区各管理机构的基本信息和社会、经济基础资料等。在属性数据库当中,需要把各要素的关键信息作为属性字段存储,多媒体数据分别以图像、声音和视频等字段类型存储,各专题要素的对象链接包括文本、声音、照片、动画等。与空间数据库的链接通过关系数据表中的关键字段实现。
(四)元数据库设计
元数据的英文名称是“Metadata“,它是“关于数据的数据”,在地理空间信息中,用于描述地理数据集的内容、质量、空间参考、表示方式、管理方式以及数据集的其他特征,它是实现地理空间信息共享的核心标准之一。元数据可以用来组织和管理空间信息,并挖掘空间信息资源,通过它可以在广域网或因特网上准确地识别、定位和访问空间信息,帮助数据使用者查询所需空间信息;还可以用来建立空间信息的数据目录和数据交换中心,通过数据目录和数据交换中心等提供的空间元数据内容,用户可以共享空间信息、维护数据结果,以及对它们进行优化等等。
石津灌区的元数据库按照《基础地理信息数字产品元数据》(CH/T 1007-2001)规定进行设计,将空间元数据内容分两个层次:第一层是目录信息,主要用于对数据集信息进行宏观描述,它适合在数字地球的国家级空间信息交换中心或区域以及全球范围内管理和查询空间信息时使用。第二层是详细信息,用来详细或全面描述地理空间信息的空间元数据标准内容,是数据集生产者在提供空间数据集时必须要提供的信息。