论文部分内容阅读
摘 要:根据现阶段软件系统中数据库设计方面,分析在数据库设计中,经常遇到的一些问题,并且提供一系列解决方法,并从中选出一个最优的设计解决方案。
关键词:数据库设计;软件系统;数据表;预留字段;数据表设计解决方案
1.选题依据
在项目设计的实际应用中,往往在我们用到的有实际意义的字段之外,还有一些隐形的字段,也就是常说的预留字段,没有这些字段,虽然对整个项目的业务方面没有任何影响,但是加上这些字段,我们在程序实际编码阶段就会省去很多时间,少走很多弯路,提高一些效率。
程序设计发展到现在这个时代,每个系统并不是独立的,而是可以通过WebService等技术实现数据共享,通过接口发送数据和接收数据,不管何种语言实现的系统,最底层的意义其实都是对数据,也就是对持久层的CRUD操作,只要有数据的存在,就可以做出各种方便大家工作的应用,所以,数据的处理(生产、加工、发送、接收)就显得尤为重要,提高数据处理的效率,最终也就能把握整个项目的进度。
2.研究对象及方法
2.1研究对象:
数据库数据表预留字段
2.2研究方法:
阅览数据库设计资料,结合实际项目中遇到的问题,总结归纳出解决方案。
2.2.1总结归纳法:
总结软件系统现发展阶段,在数据接收和处理时会遇到什么问题,分析归纳出通用预留字段。
3.调查与分析
3.1数据库设计时的标准化范式原则
3.3.1标准化可以保证表内的字段都是最基础的要素,而这一措施有助于消除数据库中的数据冗余。标准化有好几种形式,但Third Normal Form (3NF)通常被认为在性能、扩展性和数据完整性方面达到了最好平衡。简单来说,3NF规定:
表内的每一个值都只能被表达一次。
表内的每一行都应该被唯一的标识 (有唯一键)。
表内不应该存储依赖于其他键的非键信息。
遵守3NF 标准的数据库具有以下特点:有一组表专门存放通过键连接起来的关联数据。比方说,某个存放客户及其有关定单的3NF 数据库就可能有两个表:Customer 和 Order。Order 表不包含定单关联客户的任何信息,但表内会存放一个键值,该键指向Customer 表里包含该客户信息的那一行。3.2软件系统接收数据现状分析:
3.2.1在数据接收时,因为通过接口传过来的数据是对方封装完成后的数据,所以这些数据并不是所有的都会在自己的系统中都有涉及,系统往往仅需要对方数据的部分字段内容,这样在数据接收时就会发生一个冲突,在面临这种冲突时,这里提供常常使用的两个方法来处理这个冲突。
3.2.2全部接收:在数据库中建立一个临时表,这个临时表用来接收对方的发送过来的全部数据,而对于己方系统适用的正式数据表,则根据实际需求来设计,当需要用到对方发送过来的数据的时候,后期再从临时表中提取出来,存入己方的正式数据表中。
3.2.3部分接收:只是建立己方系统适用的正式数据表,在接收对方发送过来的数据的过程中,直接提取出自己需要的字段数据存入正式数据表,而其他没有涉及到的数据,则直接抛弃不存。
3.3最终将选择的方法:在实际应用中,我们常常选用的是第一种,全部接收的方法,也就是建立临时表的方法,因为从系统升级、拓展及完善的角度考虑,此时己方不涉及的数据,在将来有可能会用得到,如果直接提取此时所涉及的数据存入正式数据表,就不可避免会丢数据,而丢失掉的数据由于是对方发送过来的,并不能保证下次再要的时候能再次发送或者保证数据的原始性,这部分数据有可能再发送后,对方系统又再次改变过。
4.鉴于现阶段系统发展阶段面临的数据库设计问题,实施预留字段机制
在通过调用服务接收数据时,这时,是对方向己方发送数据,有时并不全是逐条发送,而是会同时发送多条数据,例如,在配电生产指挥系统中,调用对方的接口服务(用户电话故障报警服务),因为同一时间段内,不会只有一个用户会遇到停电故障,这时,这个接口发送过来的数据就会有多条的情况发生。
假设对方的数据是通过xml的格式来发送的,我们在接收到xml后,第一步,要解析数据,解析完数据后,就将这些数据逐一存到临时表,如果对方会同时发送多条数据,我们接收时也会正确解析,逐一保存。
而预留字段机制正是要体现在临时表的设计中,这些预留字段就是为了能正确的接收数据,适应多样化的系统需求而建立。
5.分析和结论
设计临时表时,除了对方发送的数据的所有字段之外,会有哪些常用的预留字段呢?
想知道哪些常用的预留字段,就要对数据接收后的数据处理的状态进行分析:因为在接收完数据后,总是要对这些数据进行提取处理的,这样就要有一个标识该条数据是否已处理的标志位,称为isDeal(是否已处理,0:未处理,接收数据时的默认值;1:已处理,此条数据已被提取处理过),在临时表提取数据存入正式表的过程就是模型转换的过程;此外还需要有一个标识该条数据时的接收时间,称为receiveDate(接收时间,方便后期的查询处理,比如:某个时间段内接收了多少条数据),由此看来,常用的预留字段为isDeal和receiveDate。
对于receiveDate字段的默认值就是存入数据表时的服务器时间。
对于isDeal字段的处理方式,其默认值是0,在每次模型转换后,将该字段置为1,另外,在模型转换开始之前,过滤条件为该字段等于0,提取符合过滤条件的数据,然后进行模型转换,而该字段为1时,表明该条数据已经处理过了,不需要再处理了。
参考文献
[1] 徐彬荣,面向对象的文献数据库设计 情报杂志 2003(6)
[2] 徐小凤,计算机辅助数据库设计的研究 计算机应用技术 2003
[3] 吴爽,软件开发中的数据库设计的理论和实践 计算机光盘软件与应用2011(6)
[4] 张健沛 莫日根 王嘉芳,分布式数据库设计中一种新的需求分析表示方法 哈尔滨工程大学学报2000.(2)
[5] 瞿佳胜,基于UML和Oracle的空间数据库设计方法研究 计算机科学与技术2010
[6] 王志毅 陈宁,基于信息化建设的企业数据库设计 商业时代2010(5)
[7] 李长海 郭颖 董广辉,浅析数据库设计 数字技术与应用 2010(8)
[8] 刘智 刘加伶 闫河 李唯唯,数据库设计中的主观过程讨论 计算机时代 2010(7)
[9] 张清清,我国共享软件发展的营销策略分析 科技创业月刊 2011(4)
[10] 吉辉,试论软件业发展概况 科技创业月刊 2010(2)
关键词:数据库设计;软件系统;数据表;预留字段;数据表设计解决方案
1.选题依据
在项目设计的实际应用中,往往在我们用到的有实际意义的字段之外,还有一些隐形的字段,也就是常说的预留字段,没有这些字段,虽然对整个项目的业务方面没有任何影响,但是加上这些字段,我们在程序实际编码阶段就会省去很多时间,少走很多弯路,提高一些效率。
程序设计发展到现在这个时代,每个系统并不是独立的,而是可以通过WebService等技术实现数据共享,通过接口发送数据和接收数据,不管何种语言实现的系统,最底层的意义其实都是对数据,也就是对持久层的CRUD操作,只要有数据的存在,就可以做出各种方便大家工作的应用,所以,数据的处理(生产、加工、发送、接收)就显得尤为重要,提高数据处理的效率,最终也就能把握整个项目的进度。
2.研究对象及方法
2.1研究对象:
数据库数据表预留字段
2.2研究方法:
阅览数据库设计资料,结合实际项目中遇到的问题,总结归纳出解决方案。
2.2.1总结归纳法:
总结软件系统现发展阶段,在数据接收和处理时会遇到什么问题,分析归纳出通用预留字段。
3.调查与分析
3.1数据库设计时的标准化范式原则
3.3.1标准化可以保证表内的字段都是最基础的要素,而这一措施有助于消除数据库中的数据冗余。标准化有好几种形式,但Third Normal Form (3NF)通常被认为在性能、扩展性和数据完整性方面达到了最好平衡。简单来说,3NF规定:
表内的每一个值都只能被表达一次。
表内的每一行都应该被唯一的标识 (有唯一键)。
表内不应该存储依赖于其他键的非键信息。
遵守3NF 标准的数据库具有以下特点:有一组表专门存放通过键连接起来的关联数据。比方说,某个存放客户及其有关定单的3NF 数据库就可能有两个表:Customer 和 Order。Order 表不包含定单关联客户的任何信息,但表内会存放一个键值,该键指向Customer 表里包含该客户信息的那一行。3.2软件系统接收数据现状分析:
3.2.1在数据接收时,因为通过接口传过来的数据是对方封装完成后的数据,所以这些数据并不是所有的都会在自己的系统中都有涉及,系统往往仅需要对方数据的部分字段内容,这样在数据接收时就会发生一个冲突,在面临这种冲突时,这里提供常常使用的两个方法来处理这个冲突。
3.2.2全部接收:在数据库中建立一个临时表,这个临时表用来接收对方的发送过来的全部数据,而对于己方系统适用的正式数据表,则根据实际需求来设计,当需要用到对方发送过来的数据的时候,后期再从临时表中提取出来,存入己方的正式数据表中。
3.2.3部分接收:只是建立己方系统适用的正式数据表,在接收对方发送过来的数据的过程中,直接提取出自己需要的字段数据存入正式数据表,而其他没有涉及到的数据,则直接抛弃不存。
3.3最终将选择的方法:在实际应用中,我们常常选用的是第一种,全部接收的方法,也就是建立临时表的方法,因为从系统升级、拓展及完善的角度考虑,此时己方不涉及的数据,在将来有可能会用得到,如果直接提取此时所涉及的数据存入正式数据表,就不可避免会丢数据,而丢失掉的数据由于是对方发送过来的,并不能保证下次再要的时候能再次发送或者保证数据的原始性,这部分数据有可能再发送后,对方系统又再次改变过。
4.鉴于现阶段系统发展阶段面临的数据库设计问题,实施预留字段机制
在通过调用服务接收数据时,这时,是对方向己方发送数据,有时并不全是逐条发送,而是会同时发送多条数据,例如,在配电生产指挥系统中,调用对方的接口服务(用户电话故障报警服务),因为同一时间段内,不会只有一个用户会遇到停电故障,这时,这个接口发送过来的数据就会有多条的情况发生。
假设对方的数据是通过xml的格式来发送的,我们在接收到xml后,第一步,要解析数据,解析完数据后,就将这些数据逐一存到临时表,如果对方会同时发送多条数据,我们接收时也会正确解析,逐一保存。
而预留字段机制正是要体现在临时表的设计中,这些预留字段就是为了能正确的接收数据,适应多样化的系统需求而建立。
5.分析和结论
设计临时表时,除了对方发送的数据的所有字段之外,会有哪些常用的预留字段呢?
想知道哪些常用的预留字段,就要对数据接收后的数据处理的状态进行分析:因为在接收完数据后,总是要对这些数据进行提取处理的,这样就要有一个标识该条数据是否已处理的标志位,称为isDeal(是否已处理,0:未处理,接收数据时的默认值;1:已处理,此条数据已被提取处理过),在临时表提取数据存入正式表的过程就是模型转换的过程;此外还需要有一个标识该条数据时的接收时间,称为receiveDate(接收时间,方便后期的查询处理,比如:某个时间段内接收了多少条数据),由此看来,常用的预留字段为isDeal和receiveDate。
对于receiveDate字段的默认值就是存入数据表时的服务器时间。
对于isDeal字段的处理方式,其默认值是0,在每次模型转换后,将该字段置为1,另外,在模型转换开始之前,过滤条件为该字段等于0,提取符合过滤条件的数据,然后进行模型转换,而该字段为1时,表明该条数据已经处理过了,不需要再处理了。
参考文献
[1] 徐彬荣,面向对象的文献数据库设计 情报杂志 2003(6)
[2] 徐小凤,计算机辅助数据库设计的研究 计算机应用技术 2003
[3] 吴爽,软件开发中的数据库设计的理论和实践 计算机光盘软件与应用2011(6)
[4] 张健沛 莫日根 王嘉芳,分布式数据库设计中一种新的需求分析表示方法 哈尔滨工程大学学报2000.(2)
[5] 瞿佳胜,基于UML和Oracle的空间数据库设计方法研究 计算机科学与技术2010
[6] 王志毅 陈宁,基于信息化建设的企业数据库设计 商业时代2010(5)
[7] 李长海 郭颖 董广辉,浅析数据库设计 数字技术与应用 2010(8)
[8] 刘智 刘加伶 闫河 李唯唯,数据库设计中的主观过程讨论 计算机时代 2010(7)
[9] 张清清,我国共享软件发展的营销策略分析 科技创业月刊 2011(4)
[10] 吉辉,试论软件业发展概况 科技创业月刊 2010(2)