一种减少数据库冗余的方法

文档序号:6441551阅读:1723来源:国知局
专利名称:一种减少数据库冗余的方法
技术领域
本发明涉及数据库中的数据处理方法,特别是一种减少数据库冗 余的方法。
背景技术
一般在各类数据库管理系统中,都要设计成许多数据库。通常数 据库中个字段的名称、类型、宽度都是根据用户的实际需要在系统开 发时设计完成的,系统运行时大多不会改变数据库的结构类型。系统 设计中如果数据库中字段的类型、宽度大小设计不合适,将会造成大 量的数据空间的浪费。VFP数据库管理系统数据库的特性是,当增加一条数据库记录时, 即使没有输入任何数据,也要占用相当的磁盘空间。因为在设计一个 数据库结构时,每个字段都要考虑最大输入情况,这样即使大多数记 录的数据内容不多,也要占用同样多的数据空间。当一个数据库中的 记录数非常大时,就会造成大量磁盘空间的浪费。当在VFP6系统中建立一个数据表时,如果数据表中存在一个以上的备注字段,将会产生一个与该数据表同名的备注文件,后缀为.FPT。 当其中一个字段数据的类型为备注型(M)时,该数据表就会为备注字段预留4个字节作为其字段的特殊数据,这4个字节并不是用来保存 数据的,而是用来存放该条记录的备注字段数据在备注文件(.FPT) 中的位置,它相当于一个指针,负责指出该记录备注字段的数据库存 放在备注文件中的位置。备注文件中包含一个头记录以及任意数目的 快结构。头记录中包含指向下一个子有块的指针以及以字节为单位表 示块的大小。头记录之后是包含块标头与备注文本的各个块,表文件 中包含有用于引用备注块的块编号。备注文件中某个块的位置可由该 块的编号与块的大小相乘得到。所有的备注块均由偶数的块边界地址 开始。每一备注块可以占用一个以上的连续块。备注块是备注字段的 最小处理单位。在每个备注块前面的8个字节是系统占用的,这8个 字节前四个字节指明块中数据的类型,第5到第8个字节代表该备注 字段的长度,这样,当我们设置备注块大小为64时(系统默认长度为 64),每个备注块实际只能存放64-8=56个字节。当存放的数据大于 56个字节时,将会增加一个备注块。因此,当我们建立一个数据表时,应根据数据表存放数据的内容来确定备注块的大小,系统默认的备注 块大小为64个字节,使用设置命令SET BLOCK-SIZE TO nBytes指定 系统为备注字段分配磁盘空间的块的大小,如果nBytes等于O,磁盘 空间按单个字节分配,如果nBytes为1-32之间的一个整数,系统分 配磁盘空间块大小为nBytes乘以512, nBytes值大于32,系统将会 将nBytes看做备注块的大小。一般情况下,可以通过mline ()读取备注中某一行中的数据值,而备注字段每一行的字符大小可以通过SET MEMOWIDTH TO nColumns 来指定备注字段的宽度,这个nColumns值得大小在8到8192之间, 用户可以根据数据库中某一宽度最大字符型字段的宽度设置这个值, 如在数据库中家庭住址为最大值,最多需要60个字符宽度,那么我们 可以把nColumns的设置为60,这样就完成了对备注字段的设置。发明内容本发明的目的是提供一种减少数据库冗余的方法,主要解决现有 数据库在字段设置中容易产生大量冗余的技术问题,提高了数据库对 存储空间的利用率。为解决上述技术问题,本发明是这样实现的一种减少数据库冗余的方法,其特征在于该设计的数据库中, 设计一个备注字段用来存放用户需要保存、字符宽度比较大的多个字 符型字段内容,通过程序控制分别把输入的数据保存在备注字段中的 某一行并在数据后加入特殊字符,这样就保证了每一个字段内容对应 于备注字段中的特殊字符之间记录内容。所述的的减少数据库冗余的方法,其特征在于其特征在于该特殊字符时回车换行字符。藉由上述技术方案,本发明具有的技术效果是 通过本发明方法,保证了在备注字段中只存放有用的数据内容,而不保存后缀空格等无用信息,当大宽度字符型字段比较多并且数据库的记录数非常大时,利用这种方法减少数据冗余效果更加明显。
具体实施方式
以下通过一个简单的实施例来演示本发明方法一个数据库,包括姓名、性别、其它内容三个字段,这里姓名、 性别为字符型,宽度分别为8和2,其它内容设为备注类型,存放工 作人员的联系电话、工作单位、家庭住址、通信地址等内容,设计完 成后,增加一条空记录内容。新建一个表单,表单中的姓名、性别编辑框对应于数据库中相应 的数据字段,在表单中的INIT时间中写入如下代码SET MEMO-WIDTH TO 60狄以下为编辑框提取数据内容;Thisform. text3. value:MLINE (其它内容,1)Thisform. text4. value=MUNE (其它内容,2)Thisform. text5. value=MLINE (其它内容,3)Thisform. text6. value=MLINE (其它内容,4)在联系电话、工作单位、家庭住址、通信地址编辑框中的LOSTFOCUS 事件中分别写入如下代码NRW=1 &&表明该字段内容为备注字段中第几条内容,1代表联系 电话,2代表工作单位,3代表家庭住址,4代表通信地址;NR="FOR 1=1 TO 4 &&代码共有4个字段内容取自备注字段,用户可 根据情况来设定; IF I=NRWZNR=NR+ALLT (THIS. VALUE) +CHR (13) ELSENR二NR+MLINE(其它内容,1)+C服(13)ENDIFENFFORREPL其它内容WITH NR运行这个表单可以看到,输入在编辑框中的数据将会保存在备注 字段中,下次运行时刻将备注字段中的内容取出来,这样就减少了磁 盘的运用空间。综上所述仅为本发明的较佳实施例而已,并非用来限定本发明的 实施范围。即凡依本发明申请专利范围的内容所作的等效变化与修饰, 都应为本发明的技术范畴。
权利要求
1. 一种减少数据库冗余的方法,其特征在于该设计的数据库中,设计一个备注字段用来存放用户需要保存、字符宽度比较大的多个字符型字段内容,通过程序控制分别把输入的数据保存在备注字段中的某一行并在数据后加入特殊字符,这样就保证了每一个字段内容对应于备注字段中的特殊字符之间记录内容。
2、 根据权利要求1所述的的减少数据库冗余的方法,其特征在 于其特征在于该特殊字符时回车换行字符。
全文摘要
本发明涉及数据库中的数据处理方法,特别是一种减少数据库冗余的方法。该设计的数据库中,设计一个备注字段用来存放用户需要保存、字符宽度比较大的多个字符型字段内容,通过程序控制分别把输入的数据保存在备注字段中的某一行并在数据后加入特殊字符,这样就保证了每一个字段内容对应于备注字段中的特殊字符之间记录内容。本方法主要解决现有数据库在字段设置中容易产生大量冗余的技术问题,提高了数据库对存储空间的利用率。
文档编号G06F17/30GK101241487SQ20071003713
公开日2008年8月13日 申请日期2007年2月5日 优先权日2007年2月5日
发明者王晓崎, 敏 项 申请人:上海市民办文绮中学;项 敏
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1