用友软件首页

面向财务冗余数据的处理及有效控制方法研究

2016-4-24 0:0:0 wondial

面向财务冗余数据的处理及有效控制方法研究

面向财务冗余数据的处理及有效控制方法研究

  【摘 要】本文剖析了在编制和应用财务软件过程中数据表里出现冗余数据的原因及其引发的后果;在SQL Server 2000环境下,通过使用带参数的存储过程实现了对任意表中的冗余数据的删除操作;提出了构建隐含关键字避免数据冗余的方法,保证了实体完整性。

  【关键词】冗余数据;SQL Server 2000;存储过程;关键字

  1 引 言

  企业中对财务软件的应用是企业信息化水平的重要标志,但在编制或应用财务软件的过程中,如对系统升级、数据表合并或跨年度数据整理时,都经常会产生重复数据的问题。而这部分冗余数据,从数据库设计角度看,不符合实体完整性规则;从财务管理的应用角度看,会导致错误的出现。

  针对这种情况,在SQL Server 2000环境下,可以通过使用带参数的存储过程非常容易地实现对任意表中冗余记录的处理,并且在数据表设计中采用构建隐含关键字的方法避免冗余数据的产生。

  2 冗余数据出现的原因及操作中的问题

  2. 1冗余数据出现的原因分析

  目前,财务软件中广泛使用的数据库是关系型数据库,其数据模型为关系模型。关系模型源于数学,它把所有的信息(数据)都存放在二维表中;每一个表又包含若干行与列,表被称为关系。关系的严格定义如下:

  域是一组具有相同数据类型的值的集合;给定一组域Dl,D2,…,Dn,则Dl,D2,…,Dn的笛卡儿积为:Dl ×D2 ×…×Dn={(d1,d2,…,dn)|di∈Dj , j=1,2, …,n} (其中每一个元素(d1,d2,…,dn)被称为一个元组,元素中的每一个值di被称为一个分量);那么,Dl × D2 ×…× Dn的子集被称为在域Dl,D2,…,Dn上的关系,用R(Dl,D2,…,Dn)来表示。这里R表示关系的名字。

  关系应具有的一个重要性质是关系中不允许重复的元组(即重复的记录),在关系中,保证数据的正确性和一致性是通过关系模型的完整性规则来约束关系的。完整性规则包括3类:实体完整性、参照完整性和用户定义的完整性。而实体完整性约束了在一个基本关系中各实体(即记录)是可区分的,具有唯一的标识。这是本文讨论的重点。

  实体完整性要求每个基本关系中有且仅有一个不能为空值的主码(即关键字),每一个实体的主码值必须唯一。

  从关系数据库的设计角度看,如果遵循实体完整性规则设计相应的关系,那么在数据表中是不会出现冗余数据的。数据表中出现冗余数据无外乎两种情况:

  情况一:在数据表设计时并没有按照实体完整性规则建立数据表

  在这种情况下,建立数据表时并没有为该表指定相应的关键字,如果多次为该数据表添加相同的记录后,就会出现冗余数据。

  例:Create table jbbxx (kmbh char(10)qcje decimal(18,2),bqje decimal(18,2),rq datetime,czybh char(2))&建立数据表jbbxx

  Insert into jbbxx values(’10120101’,30 000.56,

  1 000.3,’07-03-02′,’01’)&多次执行记录添加语句

  情况二:在处理数据中,原表中的关键字约束的特性缺失

  例:Create table jbbxx (kmbh char(12) not null primary key,qcje decimal(18,2),bqje decimal(18,2),rq datetime,czybh char(2))&建立带有关键字的原表jbbxx

  Select * into jbbxx_bak from jbbxx where left(kmbh,4)=’1012’&由原表生成新表jbbxx_bak

  查看原表(见图1)和新表(见图2)的数据表结构,发现在由原表生成新表的过程中,原表所定义的kmbh关键字约束在形成新表后缺失了。

  2. 2操作冗余数据出现的问题

  经过上面的讨论,可知数据表中是会出现冗余数据的,并且一旦出现冗余数据,是无法通过交互方式进行修改、删除等操作的(见图3)。

  究其原因,是因为交互状态下针对的是一条记录,而由于相同记录的存在,使数据库管理系统无法对当前记录进行定位。

  3 处理冗余数据的实现方法

  3. 1实现思路

  对数据表中的冗余数据的处理,可以采用游标的方法遍历数据表中记录进行解决,但这种方法有些烦琐,本文介绍一种简单高效的方法使该问题得到很好的解决。该方法的关键是运用了SQL语言中Select查询语句的Distinct关键字,该关键字的使用能够在查询结果集中除去重复的行(即冗余数据),根据此思路可以形成一个没有冗余数据的结果表,步骤如下:

  第一步:将有冗余数据存在的表中利用Distinct筛出不重复的记录放置到新表中;

  第二步:将原表中记录删除;

  第三步:将新表中的记录插入原表。

  3. 2实现过程

  本文用存储过程实现处理过程,存储过程是一组事先编译好的Transact-SQL代码,是一个独立的数据库对象,可以作为一个单元被用户的应用程序调用。

  采用存储过程具有的优点是:(1)执行速度快。由于存储过程是已经编译好的代码,所以执行的时候不必再次进行编译,从而提高了程序的运行效率。(2)模块化编程。作为一个可重复使用的模块化单元,存储过程使得开发人员可以将复杂的功能封装起来,提供给用户简单的调用接口,不仅减少开发人员的工作量,也降低了应用的复杂度。

  本文中,通过设计带参数的存储过程可以增强通用性,将数据表名设计为参数,可实现对任意表的冗余数据处理;另外,在删除记录时,因truncate语句比delete语句使用的系统和事务日志资源少,因此采用该语句提高效率。

  Create procedure Clear_redundancy (@dbname nvarchar(25))

  As

  Declare @str nvarchar(255)

  if Exists(select * from sysobjects where name=N’aa’ And Xtype=’U’)

  drop table aa

  Set @str=’select distinct * into aa from’+@dbname

  EXEC sp_executesql @str &将无重复数据放入新表aa

  Set @str=’ truncate table ‘+@dbname

  EXEC sp_executesql @str &采用truncate快速删除记录

  Set @str=’insert into’+@dbname+’select * fromaa’

  EXEC sp_executesql @str&将aa中的记录插回到原表

  Return

  4 避免冗余数据产生的方法

  虽然采用本文提供的方法可以清除冗余数据,但更有效的做法是避免冗余数据的出现,从而从根本上解决因数据冗余造成的在操作记录时的出错现象。

  通过前面的分析,可以得知,数据冗余的产生或是由于设计数据表时未能通过关键字实现实体完整性的约束,或是指定了关键字,但在表的合并或相关操作中缺失了这一特性,因此,本文提出一种在设计表时定义隐含关键字方法,使这一问题很好地得到解决。

  在SQL Server 2000中提供了在设计表时,通过标识列属性identity可以为该列提供一个唯一的、递增的值。该机制需要同时指定种子和增量,若不指定默认值(1,1),则此值在进行数据插入和修改时都无须用户指定该值,而由数据库系统管理和维护。因此,该列具有关键字的特性,即值唯一;而且在数据表的操作中又可保持列的identity属性。

  Create table jbbxx (key_code int identity(1,1),kmbh char(10),qcje decimal(18,2),bqje decimal(18,2),rq datetime,czybh char(2))

  其中,表jbbxx中的key_code列被定义为标识列,在添加记录时,其值单调增加,保持唯一性,从而保证了实体的完整性,因此,不会在操作(如修改、删除)中出现错误。

  5 结 论

  在实际工作中,数据冗余的存在会引起操作错误的出现,所以是每个数据库管理员需要解决的问题。本文从问题的产生原因进行分析,给出了一种简单高效的解决方法,并通过定义隐含关键字方法避免了该问题的出现,可以作为在实际数据库维护工作中的有效方法。

  主要参考文献:

  [1] 萨师煊,王珊. 数据库系统概论[M]. 第3版. 北京:高等教育出版社,2000:45-55.

  [2] 许菱,秦晓海,孔令新. 巧用存储过程进行数据处理[J]. 中国管理信息化,2006,(7):62-64.

  [3] 尹萍. SQL Server数据库性能优化[J]. 计算机应用与软件,2005,(3):51-53.

  [4] 王振辉,吴广茂. SQL查询语句优化研究[J]. 计算机应用, 2005,(12):207-208.

  [5] 金天荣. SQL Server的查询优化方法的设计和实现[J]. 微计算机信息,2006,(18):239-241.

如果您的问题还没有解决,可以到 T+搜索>>上找一下答案

分享到:

微博关注

bj用友软件

最新信息

低压灯如何做生产计划 _0

低压灯如何做生产计划 _0低压灯如何做生产计划我是在一家低压灯厂家任PMC一职,最头痛的是计划老是不能按期,准确完成。主要问题是我们厂家是做内销的,客户要货太急,仓库容积小,最多只能放2-3天左右的材料.谁能帮帮我?

本人会计专业毕业  有工作经验  需要兼职会计的请给我留言哦!

本人会计专业毕业 有工作经验 需要兼职会计的请给我留言哦! 本人会计专业毕业 有工作经验 需要兼职会计的请给我留言哦![]

[/握手]
[/OK]
我刚毕业,没有实际工作经验,能做兼职吗
@qzuser1452253487:只要找得到就能做,但一般都找有经验的
楼主这种情况先找几个代账比较合适。
加微信345633819

热点文章

新闻资讯

  • 【新年首签】天津用友&通广集团签署战略协议

    【新年首签】天津用友&通广集团签署战略协议

    天津用友软件技术有限公司(以下简称天津用友)和天津通信广播集团有限公司(以下简称通广集团)就企业信息化建设事宜进行战略签约。

    参加此次会议有天津用友总经理赵永春,天津用友副总经理王成岩、通广集团副总经理马严、通广集团科技质量部部长尹刚、七一二公司技术质量部部长门国梁、七一二公司技术中心主任黄建尧等。

    image

  • 会计职场堪比宫斗剧

    会计职场堪比宫斗剧

     近几年,各种宫斗剧火爆,《甄嬛传》《芈月传》等等都脍炙人口,许多人经常打趣自己像某个人物,若是在古代能活到第几集。让人不禁想起,会计职场又何尝不是一场宫斗,每天要察言观色,明了领导的内心,就像后宫谁也不敢惹皇后一样。但当你坐上领导位置的时候,盯着你的眼睛就会很多,稍有不慎就会被取代。就像后宫的嫔妃一样,就算坐上了皇后的位置也要时刻担心有没有人觊觎。

    image

知 识 库

  • 用友软件凭证填制环节常见问题及解决方案

    用友软件凭证填制环节常见问题及解决方案

    用友软件凭证填制环节常见问题及解决方案用友软件凭证填制环节常见问题及解决方案

      用友软件的账务处理采用放射式数据处理流程,对业务数据采用集中收集、统一处理、数据共享的操作方法,凭证数据库既是数据归集的“信息仓库”,又是后续业务处理的“信息源泉”。因此,凭证填制数据的正确与否直接关系到后续账表及相关业务信息的准确性。
      在用友软件中,其基础设置及凭证管理模块为我们提供了凭证类别控制、受控科目控制、制单序时控制、支票控制、制单权限控制等功能,加强了对发生业务的及时管理和控制,通过严密的制单控制保证填制凭证的正确性。然而在实际应用中,却常因用户不理解各项控制参数的含义,以及对后续操作的影响;没有准确无误地设置相关控制参数及基础信息;没有正确完整地录入凭证辅助信息等原因,使先进的控制工具无法充分发挥效用,损失了部分数据信息,降低了软件的使用效能。对此,笔者将以用友ERP-U8.72软件为例,总结凭证填制环节的常见问题,结合典型案例,追根寻源,深入剖析其产生的原因,以便对症解决。一、凭证类别设置时常见问题
      出错信息描述:“不满足借方必有条件”,“不满足贷方必有条件”,“不满足借贷必无条件”,“不满足凭证必有条件”。
      典型案例剖析:2009年8月16日,总经理办公室支付业务招待费1 200元,转账支票号ZZR003。凭证内容如下:
      借:管理费用/招待费(660205)1 200
      贷:银行存款/工行存款(100201)1 200
      当凭证保存时,弹出出错信息框,提示“不满足借贷必无条件”。此信息说明用户之前为不同类别的凭证设置了限制条件,指定了相应的限制类型和限制科目。这样,当凭证填制时,系统就会根据所设置的凭证类别判断凭证内容是否符合限制条件,不相符时就会出现类似的出错信息。对于此类问题,用户首先应根据提示信息,认真查对所选凭证类别与所录入的业务内容是否相符,然后进一步判断究竟是凭证类别设置错误,还是会计科目选择错误?
      此案例中的凭证类别选择的是“转账凭证”,转账凭证的限制类型应为“凭证必无”,限制科目为“1001,100201,100202”,即在凭证借贷方不能出现这三个科目。而该凭证的贷方却出现了100201科目,显然违背了所设置的限制条件。进一步判断可知,此问题是因凭证类别设置错误所致的。根据业务内容该凭证类别应为“付款凭证”,而非“转账凭证”。当更正凭证类别后,问题即得到解决。经进一步分析得知,用户在填制凭证时,因为看到在业务中用到了转账支票,就认为这应该是一张转账凭证,从而导致凭证类别判断错误。而追根寻源是由于用户对业务的凭证类别判断不准,不明白凭证类别的限制条件,甚至于不清楚什么是收、付、转凭证。当问题出现时,就会因不理解凭证类别限制条件的含义而找不到问题解决的方向和方法。
      此外,对于此类问题,如果用户在认真查对后,发现凭证类别与凭证内容匹配,但仍出现出错信息,则应考虑可能是因用户粗心将凭证类别的限制条件设置有误。常见的错误有将收款凭证和付款凭证的限制类型设反了,或将转账凭证的限制类型设为“凭证必有”,或未写全限制科目。

  • 12.1用友 备份

    12.1用友 备份

    12.1用友 备份

    用友软件提供两种备份方式:手工备份和自动备份,下面我们讲解这两种方式的备份账套数据操作步骤(T6和U8与T3备份恢复方法相同,此处以T3为例):

    ㈠、手工备份

    1、先在硬盘上建立一个空文件夹

    打开我的电脑(双击)D(或E、F)盘,(空白处右击右键)新建文件夹,把这个新建的文件夹,改名为如用友数据手工备份。(双击)打开用友数据手工备份,(右击)出现新建文件夹,把所新建的文件夹改名为当天的备份日期如2016-12-16后退出

  • 最新文章排行
  • 热门文章排行

管理软件

  • T3卸载就会跳到安装界面去,用360工具也卸载不了。请问这种情况哪位老师遇见过,我们应该如何处理。谢谢、在线等。

    T3卸载就会跳到安装界面去,用360工具也卸载不了。请问这种情况哪位老师遇见过,我们应该如何处理。谢谢、在线等。

    T3卸载就会跳到安装界面去,用360工具也卸载不了。请问这种情况哪位老师遇见过,我们应该如何处理。谢谢、在线等。 T3卸载就会跳到安装界面去,用360工具也卸载不了。请问这种情况哪位老师遇见过,我们应该如何处理。谢谢、在线等。[]

    备份好账套,这种情况只能强制删除了,请备份好账套之后,停止数据库服务和T3产品服务,自动备份服务;然后删除T3安装路径以及C盘下ufcomsql文件夹,然后使用360清除无用注册表,最后重启电脑即可;

  • 用友T3-业务通“报价是否含税”起什么作用

    用友T3-业务通“报价是否含税”起什么作用

    用友T3-业务通“报价是否含税”起什么作用 用友T3-业务通“报价是否含税”起什么作用

    帐套选项中的“报价是否含税”起什么作用。在业务通产品中可以设置6中销售价格带出方案,而根据价格带出方案带出的价格含税单价还是不含税单价,是由此选项控制的。也就是说当“报价是否含税”选项选中时,带出的价格会填写在单据的含税单价位置,反之则填写在“单价”位置。另外,输入的整单折扣金额,如果报价含税则按表体存货原币含税金额的比例分摊到各存货,反之则按不含税金额比例分摊各存货。如有其它问题,请在下面回复疑问,我们将第一时间与您联系,帮助您解决问题。同时您也可以联系用友畅捷通专业服务商-用友天龙瑞德。
    用友天龙瑞德专业销售用友软件用友财务软件,维护用友T3用友T6用友U8畅捷通T+。我们将竭诚为您服务。
    联系电话:010-59798025。网址:http://www.kuaiji66.com

关于我们 | 公司动态 | 获奖记录 | 联系我们 | 招聘信息 | 用友产品中心 | 用友云基地
Copyright ©  www.kuaiji66.com  All Rights Reserved 天龙瑞德
京ICP备11046295号-1 技术支持 北京天龙瑞德信息技术有限责任公司   北京海淀上地十街辉煌国际大厦3号楼6层 总机:010-59798025   售后:4009908488
北京天龙瑞德信息技术有限责任公司