CN101241487A - 一种减少数据库冗余的方法 - Google Patents
一种减少数据库冗余的方法 Download PDFInfo
- Publication number
- CN101241487A CN101241487A CNA2007100371317A CN200710037131A CN101241487A CN 101241487 A CN101241487 A CN 101241487A CN A2007100371317 A CNA2007100371317 A CN A2007100371317A CN 200710037131 A CN200710037131 A CN 200710037131A CN 101241487 A CN101241487 A CN 101241487A
- Authority
- CN
- China
- Prior art keywords
- field
- database
- data
- character
- memo
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及数据库中的数据处理方法,特别是一种减少数据库冗余的方法。该设计的数据库中,设计一个备注字段用来存放用户需要保存、字符宽度比较大的多个字符型字段内容,通过程序控制分别把输入的数据保存在备注字段中的某一行并在数据后加入特殊字符,这样就保证了每一个字段内容对应于备注字段中的特殊字符之间记录内容。本方法主要解决现有数据库在字段设置中容易产生大量冗余的技术问题,提高了数据库对存储空间的利用率。
Description
技术领域
本发明涉及数据库中的数据处理方法,特别是一种减少数据库冗余的方法。
背景技术
一般在各类数据库管理系统中,都要设计成许多数据库。通常数据库中个字段的名称、类型、宽度都是根据用户的实际需要在系统开发时设计完成的,系统运行时大多不会改变数据库的结构类型。系统设计中如果数据库中字段的类型、宽度大小设计不合适,将会造成大量的数据空间的浪费。
VFP数据库管理系统数据库的特性是,当增加一条数据库记录时,即使没有输入任何数据,也要占用相当的磁盘空间。因为在设计一个数据库结构时,每个字段都要考虑最大输入情况,这样即使大多数记录的数据内容不多,也要占用同样多的数据空间。当一个数据库中的记录数非常大时,就会造成大量磁盘空间的浪费。
当在VFP6系统中建立一个数据表时,如果数据表中存在一个以上的备注字段,将会产生一个与该数据表同名的备注文件,后缀为.FPT。当其中一个字段数据的类型为备注型(M)时,该数据表就会为备注字段预留4个字节作为其字段的特殊数据,这4个字节并不是用来保存数据的,而是用来存放该条记录的备注字段数据在备注文件(.FPT)中的位置,它相当于一个指针,负责指出该记录备注字段的数据库存放在备注文件中的位置。备注文件中包含一个头记录以及任意数目的快结构。头记录中包含指向下一个子有块的指针以及以字节为单位表示块的大小。头记录之后是包含块标头与备注文本的各个块,表文件中包含有用于引用备注块的块编号。备注文件中某个块的位置可由该块的编号与块的大小相乘得到。所有的备注块均由偶数的块边界地址开始。每一备注块可以占用一个以上的连续块。备注块是备注字段的最小处理单位。在每个备注块前面的8个字节是系统占用的,这8个字节前四个字节指明块中数据的类型,第5到第8个字节代表该备注字段的长度,这样,当我们设置备注块大小为64时(系统默认长度为64),每个备注块实际只能存放64-8=56个字节。当存放的数据大于56个字节时,将会增加一个备注块。因此,当我们建立一个数据表时,应根据数据表存放数据的内容来确定备注块的大小,系统默认的备注块大小为64个字节,使用设置命令SET BLOCK-SIZE TO nBytes指定系统为备注字段分配磁盘空间的块的大小,如果nBytes等于0,磁盘空间按单个字节分配,如果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)
Thi sform.text4.value=MLINE(其它内容,2)
Thisform.text5.value=MLINE(其它内容,3)
Thi sform.text6.value=MLINE(其它内容,4)
在联系电话、工作单位、家庭住址、通信地址编辑框中的LOSTFOCUS事件中分别写入如下代码:
NRW=1&&表明该字段内容为备注字段中第几条内容,1代表联系电话,2代表工作单位,3代表家庭住址,4代表通信地址;
NR=”
FOR I=1 TO 4&&代码共有4个字段内容取自备注字段,用户可根据情况来设定;
IF I=NRWZ
NR=NR+ALLT(THIS.VALUE)+CHR(13)
ELSE
NR=NR+MLINE(其它内容,I)+CHR(13)
ENDIF
ENFFOR
REPL其它内容WITH NR
运行这个表单可以看到,输入在编辑框中的数据将会保存在备注字段中,下次运行时刻将备注字段中的内容取出来,这样就减少了磁盘的运用空间。
综上所述仅为本发明的较佳实施例而已,并非用来限定本发明的实施范围。即凡依本发明申请专利范围的内容所作的等效变化与修饰,都应为本发明的技术范畴。
Claims (2)
1. 一种减少数据库冗余的方法,其特征在于:该设计的数据库中,设计一个备注字段用来存放用户需要保存、字符宽度比较大的多个字符型字段内容,通过程序控制分别把输入的数据保存在备注字段中的某一行并在数据后加入特殊字符,这样就保证了每一个字段内容对应于备注字段中的特殊字符之间记录内容。
2. 根据权利要求1所述的的减少数据库冗余的方法,其特征在于:其特征在于:该特殊字符时回车换行字符。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2007100371317A CN101241487A (zh) | 2007-02-05 | 2007-02-05 | 一种减少数据库冗余的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2007100371317A CN101241487A (zh) | 2007-02-05 | 2007-02-05 | 一种减少数据库冗余的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101241487A true CN101241487A (zh) | 2008-08-13 |
Family
ID=39933024
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2007100371317A Pending CN101241487A (zh) | 2007-02-05 | 2007-02-05 | 一种减少数据库冗余的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101241487A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102930036A (zh) * | 2012-11-09 | 2013-02-13 | 南京大学 | 用于bsm安全审计日志的冗余及无用数据删减方法 |
CN106649641A (zh) * | 2016-12-08 | 2017-05-10 | 北京五八信息技术有限公司 | 一种对数据库对象集合schema信息的处理方法、装置及管理系统 |
CN106649590A (zh) * | 2016-11-18 | 2017-05-10 | 北京奇虎科技有限公司 | 一种处理数据库的存储空间的方法和装置 |
-
2007
- 2007-02-05 CN CNA2007100371317A patent/CN101241487A/zh active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102930036A (zh) * | 2012-11-09 | 2013-02-13 | 南京大学 | 用于bsm安全审计日志的冗余及无用数据删减方法 |
CN102930036B (zh) * | 2012-11-09 | 2015-05-13 | 南京大学 | 用于bsm安全审计日志的冗余及无用数据删减方法 |
CN106649590A (zh) * | 2016-11-18 | 2017-05-10 | 北京奇虎科技有限公司 | 一种处理数据库的存储空间的方法和装置 |
CN106649641A (zh) * | 2016-12-08 | 2017-05-10 | 北京五八信息技术有限公司 | 一种对数据库对象集合schema信息的处理方法、装置及管理系统 |
CN106649641B (zh) * | 2016-12-08 | 2020-05-26 | 北京五八信息技术有限公司 | 一种对数据库对象集合schema信息的处理方法、装置及管理系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102200892B (zh) | 一种基于动态raid系统的扩容方法 | |
CN106708427A (zh) | 一种适用于键值对数据的存储方法 | |
CN102682108B (zh) | 一种行列混合的数据库存储方法 | |
CN105389264B (zh) | 存储系统中垃圾收集的方法和系统 | |
CN110188108A (zh) | 数据存储方法、装置、系统、计算机设备及存储介质 | |
CN109416666A (zh) | 具有压缩数据和标签的缓存 | |
CN104536908B (zh) | 一种面向单机的海量小记录高效存储管理方法 | |
CN106909515A (zh) | 面向混合主存的多核共享末级缓存管理方法及装置 | |
ATE335334T1 (de) | Vlan tabellenverwaltungssystem in hardwarebasierten paketvermittlungsstellen für speichereffizientes auslesen und einschreiben | |
CN102681946A (zh) | 内存访问方法和装置 | |
MY127614A (en) | File management method | |
WO2005103882A3 (en) | Data structure for a hardware database management system | |
CN104220991A (zh) | 用于允许数据在nand闪存上的有效存储的架构 | |
CN103838853A (zh) | 一种基于不同存储介质的混合文件系统 | |
CN103488685A (zh) | 一种基于分布式存储系统的碎片文件存储方法 | |
CN106294423A (zh) | 数据库分表的写入方法及装置 | |
CN106557427A (zh) | 共享内存数据库的内存管理方法及装置 | |
CN105095518A (zh) | 一种数据转换方法及装置 | |
CN100479436C (zh) | 静态多接口范围匹配表的管理维护方法 | |
CN108139882A (zh) | 针对网络装置实施阶层分布式链接列表的系统及方法 | |
BR0208783A (pt) | Métodos para reorganizar dados e para registrar mudanças por um sistema de administração de banco de dados, aparelho para reorganizar dados, e, meio de armazenamento legivel por computador | |
CN101241487A (zh) | 一种减少数据库冗余的方法 | |
CN110489490A (zh) | 基于分布式数据库的数据存储和查询方法 | |
CN107291881A (zh) | 基于HBase的海量日志存储和查询方法 | |
CN106777037A (zh) | 一种生成运营平台一体化报表的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20080813 |