简介:关于设计数据方面的的相关大学硕士和相关本科毕业论文以及相关设计数据论文开题报告范文和职称论文写作参考文献资料下载。
摘 要:本文根据数据库设计理论,结合毕业论文管理平台实际开发经验,分析总结了当前数据库主键的设计方法和优缺点,并在此基础上进一步提出了关系数据库主键新生成算法,通过长期运维的软件信息系统验证了此方法的科学性、可行性和有效性.
关键词:毕业论文管理平台;主键;GUID
O引言
毕业论文管理平台( http://www.hn rti.com)是湖南广播电视大学为适应当前远程教育管理要求而设计集论文论题申报/审核、写作指导、测评审阅、论文答辩、质量监控、成绩管理于一体的综合信息管理平台.平台采用B/S结构设计,即浏览器/服务器结构,用户操作是通过Web浏览器来实现,充分享受Web技术所带来的各种方便《例如跨系统平台、免客户端维护、跨越防火墙、功能扩展性好等),主要事务逻辑在服务器端实现,形成浏览器、Web服务器与应用服务器、数据库服务器组成的三层体系结构.使用了最新的VisualStudi0 20081具、ASP.NET技术开发而成,通过ADO.NET与数据库连接,实现数据信息的存取操作.
1.主键的概念及设计方法
1.1主键的概念
主键( Primary Key),又称主码,指数据库表中对储存数据对象予以唯一和完整标识的数据列或属性的组合.一个数据表最多只能有一个主键,且主键的取值不能缺失,即不能为空值( Null).主键的存在就代表着表结构的完整性、表记录的唯一性和表关系的一致性.
1.2主键的设计方法
既然主键显示如此重要,那么采用哪些字段来作为表的主键比较合理呢?传统的主键设计方法大致有如下几种:
1.2.1、编号法
编号法就是数据库表记录中使用中唯一的业务编号字段作为表主键.在实际应用中,编号法会有编号重复、编号修改不可预知等问题:
1.2.2、自动编号法
自动编号法即为数据表新建一个IDENTITY字段、自动按固定增量增长.如此,既满足主键的设计原则,又很方便操作.但在手工插入和事务处理环境中,数据操作会非常麻烦:
1.2.3、Max加一法
Max加一法即:把自动编号法中自动增长策略去掉,插入记录时先读取Max()函数值累计加一后设为主键键值.如此避免了自动编号问题,主键类型仍保持为数值型.显而易见,在表记录比较多时,非常影响表操作效率:
1.2.4、自制加一法
自制加一法就是额外建立一张数据表,字段为表名和当前序列值.当有数据插入时,先读取相应表的最大值并加一后设为主键值再进行插入操作.此方式在实际操作过程中,往往需要加锁(LOCK)算法《读取值时先LOCK.读取后再UNLOCK)来避免数据的重复插入,所以应用场景相对较少.
1.2.5、GUID主键法
GUID主键法就是数据库表主键采用Uniqueidentifier数据类型,键值可以由DBMS自动生成,也可以由应用程序生成.GUID是GloballY Unique ldentifier的缩写,意为全球唯一标识符,它是一个128位(16字节)的随机数,其算法是通过以太网卡地址、纳秒级时间、芯片ID码和许多可能的数字生成.理论上来说,即使一台电脑每秒能产生10000000个GUID,也可以保证3240年不会重复.其优点是便于数据库移和对某些对象或常量进行永久标识,缺点是键值较长,不容易记忆和输入,而且这个值是随机、无规律的.相对来说,数据库存储空间会增大,索引时间也会变慢.
1.2.6、COMB主键法
Jimmy Nilsson在他的“The Cost of GUIDs as PrimaryKeys”一文中设计了“COMB”类型.COMB数据类型的基本设计思路是:通过组合的方式,保留Uniqueidentifier类型的前10个字节,用后6个字节表示GUID生成的时间信息,从而在保留GUID唯一性的同时,又增加了其递增有序性.
2.毕业论文管理平台中主键设计需求与实现
2.1毕业论文管理平台的数据设计需求
湖南电大毕业论文管理平台的建设目标为:在“统一规划、统一标准、统一设计、统一建设、统一管理”的总体原则下,建立功能完善、结构合理,稳定通用、安全可靠的数据环境:以实时或准实时系统为主框架,实现各功能模块业务处理,包括:数据规划、录入、共享、事务处理、查询、统计分析、打印报表等功能;建立包括客户端、应用服务器、WEB服务器和数据库服务器的分布式多层模型体系结构:实现数据的查询、统计,报表的定义及格式输出;实现信息系统的安全管理,提供专用灵活的权限控制工具,确保系统安全可靠运行.建立与内部数据、其它应用系统之间的信息交换接口,并预留与未来发展系统之间的接口.
2.2毕业论文管理平台中主键生成算法
在实际的设计应用中,毕业论文管理平台的主键最终采用固定36位长度的字符串类型,由程序方式生成键值插入到数据记录中.算法如下:
设计:方格网计算土方量演示教程(地形数据、设计数据)
在上面的生成算法中,首先调用System.Guid.NewGuid方法生成一个新GUID类型并填充到字节数组中,然后分别用当前时间与参考时间的天数和毫秒级差值转换为数组后复制到此数组的前6个字节(表示生成时间)中.这样,通过将时间信息与Uniqueldentifier的有效组合,在保留Uniqueldentifier的唯一性的同时,又增加了有序性,从而将大幅度提高索引效率.同时,也保留了GUID方便的可移植特性,数据迁移的过程中不会产生冲突.
3.总结
本文就主键设计提出了一些思考和实现方法,通过长期运维的软件系统验证了此方法的科学性、可行性和有效性.当然,在软件项目开发过程中,表的主键设计仍没有一个定论,不同的设计者有不同的方法和习惯,哪怕同一个人,在不同的项目环境中,也会采用不同的设计原则,因为主键设计必须结合使用场景、系统规模、性能要求等方面进行综合考虑和设计,达到数据库最优化目标.通过上述设计方法,希望能给大家在进行数据库设计时提供一个新的参考.
参考文献
[1]Jimmy Nilsson. The Cost of GUIDs as Primary Keys[D].2002.
[2]王珊,萨师煊.数据库系统概述[M],北京:高等教育出版社,2006.
[3]钟兆超,钟福连,浅谈数据库主键的设计方法[J]硅谷,2008(20).
总结:这是一篇与设计数据论文范文相关的免费优秀学术论文范文资料,为你的论文写作提供参考。
设计引用文献:
[1] 系统设计和大数据论文参考文献范文 系统设计和大数据类有关硕士论文范文2500字
[2] 系统设计和数据挖掘论文例文 系统设计和数据挖掘有关专升本论文范文2万字
[3] 系统设计和数据迁移毕业论文模板范文 系统设计和数据迁移方面有关函授毕业论文范文3000字