基于AVL树的重复数据消除技术

  • 格式:pdf
  • 大小:301.00 KB
  • 文档页数:2
数据清洗是建立数据仓库及进行数据挖掘的一个重要步骤。在 数据挖掘过程中, 重复冗余的数据会造成挖掘结果的偏差。因此, 重复数据在数据清洗过程中 需要予以清除。 在实际应用中, 存在大 量的以文本格式存在的记录, 对于这些不以 数据库形式存放的 数据,
重复数据的消除显得尤为重要。
template <class Comparable>
开的md5 的c 语言版本, 并对其作了一次封装。其中,M nit, D51 MD5Update 和M D5Final 为M 的。 D5 语言版本中的实现函数。 MD5Key& MD5Key::GenKey (unsigned char *block, int size)
) MD5_CTX context;
};
1.1 AV 树: 随着计算机技术的 L 不断发展, 将几G甚至几十 GB的 库全部 数据 装人内 存在技术上的限 不存在。 此, 制已 因 本文采 用了AVL 树作为记录组织的内存结构, 通过在AVL 树中把对象识 别标志的 全部数据或当前工作部分数据驻留 在内 存中,以消除传统
算法的UO瓶颈, 获得高存取速度。 AVL树又称为高度平衡的二叉搜索树, 1962 年由两位俄罗 是
(2) 把对象识别标志的 键值以M 算法生成唯一的 D5 信息摘要。 MD5 算法简要的叙述可以为: M 以512 位分组来处理输人的信 D5 息, 且每一分组又被划分为 16 个32 位子分组, 经过了一系列的处 理后, 算法的 输出由四 32 位分组组成, 个 将这四个32 位分组级联
后将生成一个 128 位散列值。 M 算法生成的值分布十分均匀, D5 能够在整体上保证了AVL树
M 5 的全称是M D essage-D igest A thm5 (信息一 要算法 l画 摘 5), 在90 年 初由M L 代 IT aboratoryfor C puter Science 和RSAD om ata
Security Inc 的Ronald L. Rivest 开发出来, D2, M 和M 4 发 经M D3 D (就是把一个任意长度的字节串变换成一定长的大整数) 。不管是 MD2, MD4 还是M D5, 它们都需要获得一个随机长度的信息并产生 一个 128 位的 信息摘要。
斯 学 数 家G.M delson-V .A elsky和E.M andi。 的。 谓高 平 .L 提出 所 度 衡
二叉树的意思就是, 树中的任意节点, 其左右子树的高度差不会超 过 1。 一棵AVL 树或者是空树, 或者是具有下列性质的二叉搜索树: 它的左子树和右子树都是AVL树, 且左子树和右子树的高度之差的
class In dexNode
{
p rivate :
本文利用对将对象识别标志的键值擂人 AVL 树并同步到文件 以满足长期使用需求的 算法作了 研究, 并成功的使用C十 +语言予以
实现。 1 理论方法及相关技术
C omparable data;
int level; int height;
ection d ir;
M 5 的典型应用是对一段信息 (M D essage) 产生信息摘要
(M essage-Digest) ,以防止被篡改。本文利用了M 的数字签名功 D5 能来识别重复数据: 我们将记录的唯一标志作为输人, 通过M 算 D5 法生成信息摘要, 那么, 只要这些唯一标志不同, 128 位摘要信 其 息也必不相同。 D5 算法可以帮助我们实现将不能比 M 较的任意对象 信息映射到128 位数值串, 从而能够被方便地插人树形数据结构,
1.2 M 5 (信息 摘要算法5) : 由 VL树的数据结构存储在 D 一 于A
内存结构中, 为了减少数据存储空间, 而且为了避免出现子树发展 不均衡的趋势,即为了旋转操作更少发生, 我们对于对象识别标志
的键值使用 MD5 算法予以压缩。
unsigned char digest [l6] ;
high_end = low_end 二0; MD51nit (&context) ; M pdate (&context, block, size) ; D5U MD5Final (digest, &context) ;
在查重应用上的 效率。另外, 由于M 生成的是唯一的 D5 信息摘要只 有 16 个字节 (128 位) ,因此可以大大减少存放对象识别标志的键
值所需要的内存。 由于 M 算法的公开性和安全性,经过许多程序员的努力, D5 MD5 算法已经被广泛使用在各种程序语言中。本文就直接使用了公
绝对值不超过 10 由于这种二叉排序树关于树的深度是平衡的。从而有较高的检 节 索 率r 为 现 意 金 人 效 实 任 点左右子树的相对平衡 . AVL 树在插人数据 留 时根据左右子树的高 是 ,黔 进行旋转巳达到平衡状态。这一操作会 会矗 带来一定的开销, 但 终提高查询效率。而且 旋转操作由于 完全是指针操作, 并且每次旋转仅需要很少的步骤 所以整体上. AVLTree 的插人效率很高。
md5算法可以帮助我们实现将不能比较的任意对象信息映射到128位数值串且每一分组又被划分为1632位子分组经过了一系列的处算法的输出由四个32位分组组成将这四个32位分组级联后将生成一个128md5算法生成的值分布十分均匀能够在整体上保证了avl在查重应用上的效率
科 技 动态
[摘 要」 据 洗 建 数 仓 及 行 据 拓 “ 重 步 。 数 挖 过 中重 冗 的 数 清 是 立 据 库 进 教 挖 的 个 要 骤 在 据 掘 程 ,复 余
快速的 进行查找, 二是不允许该结构中出 复值。 现重 AVL树是一个
数 据会造成 挖掘结果的 偏差。 便 VL树 对象 标志K 记录 本文 用A 作为 识别 ey的 结构, 过判断生 通 成的M D5 信息 要的 入 摘 擂 操作来 该‘y是 经 在, 判断 否已 存 从而实 复 据的 除 现重 数 清 。
[关键词」 L树 D 复 录 据 洗 A V ;M 5;重 记 ;数 清
展 来。 作 让大 量信 而 它的 用是 容 息被 ‘ 缩” 种 。 压 成一 保密的 格式
e n r tur SaveKey (digest) ;
1
(3) 在AVL 树中插入生成的MD5 键值 为了实现快速查找重复数据,我们需要把所有出现过的对象识 别标志组织到一个结构中,这个结构应当满足以下两点: 一是能够