


全文预览已结束
付费下载
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
关系数据库去重与索引实现的研究 摘要:数据库去重的实现中主要介绍了如何通过嵌套匹配,查找以主键为中心的重复元组,并建立相应的临时表存储全部重复数据去掉后的数据和重复数据删除至一条元组的数据,将两个临时表合一,即为最后实验所需的数据表。数据库倒排索引的实现中主要利用MySQL软件自带的全文索引功能,在正确的引擎下对数据表中的每个属性列建立相应的全文索引。 下载 关键词:数据库设计 去重实现 索引实现 1 数据库设计 本系统为面向关系数据库的关键字查询系统,在实验中本文选取了IMDB 数据集,为了进行实验,将数据集整理为以下七个表数据结构。 实验数据集(电影信息数据库): Actor(演员表)、Consume(设计师)、Director(导演信息)、Business(投资)、Editor(编辑)、Color(颜色信息)、Keyword(关键词)。本数据库抽象的数据库关系E-R图如图1所示。 2 数据库去重实现 本系统主要采用MySQL关系型数据库,对数据库的基本操作如下。(系统实现) 2.1 在程序中定义了DBbase基。其中 MySQL驱动类描述符为“ing password = 123456 ; protected static finalString mysql = 实现数据库的连接功能。 import j import jtatic String dburl = jdbc:mysql:/localhost:3306/diany?user=root&password=123456; public conn() try Connection con = DriverManasuccessfully); catch(SQLException se) se.printStackTrace(); public static void main(String args) new conn(); 2.3 提交数据库方法。 public void commit() throws SQLException c回滚数据库方法。 public void rollback() throws SQLException c关闭数据库方法。 public void close() throws SQLException p在实验数据集中,默认*name属性值不重复,当然我们所熟知的actorname为演员名,而重名也是很常见的,在允许重名时为每个表新建一个属性列id,并设为Primary Key,但是在本实验中设定不重名。这就要删除数据库表中重复的元组以设定Primary Key。(以Consume表为例) 原始表中设定Primary Key:Consumename。出现错误Duplicate entry Greenwood Jane Ifor key PRIMARY,说明在Keyword表中存在consumename属性值一样的元组,需要对关系表去重来确定主键。 3 数据库索引实现 索引的实现相对简单,由于数据库管理系统中支持文本属性的全文索引,所以可以直接利用关系数据库的全文索引。全文索引是一个倒排文件,它以属性对的形式记录了每一个关键字以及关键字出现的位置,一些关系数据库系统中,不仅仅能记录关键字所出现的位置,同时还能返回与查询的相关性得分。 全文索引在MySQL中是一个FULLTEXT类型索引。FULLTEXT索引用于MyISAM表,可以在CREATE TABLE 时或之后使用ALTER TABLE或CREATE INDEX在CHAR、VARCHAR或TEXT 列上创建。对于大的数据库,将数据装载到一个没有FULLTEXT 索引的表中,然后再使用ALTER TABLE(或CREATE INDEX)创建索引,这将是非常快的。将数据装载到一个已经有FULLTEXT索引的表中,将是非常慢的。 索引表一般使用倒排表(InversionList),即由索引项查找相应的文档。索引表也要记录索引项在文档中的位置,以便检索器计算索引项之间的相邻或接近关系。当数据量很大时,必须实现即时索引,否则不能够跟上信息急剧增加的速度。即是指在索引过程中边建立边存入索引库。索引算法对索引器的性能有很大的影响。一个搜索引擎的有效性在很大程度上取决于建立索引的质量,本系统在创建索引时有两种方法: 3.1 在创建表时,直接把全文索引加在SQL语句中,这种方式的全文搜索通过MATCH()函数完成。(以actor表为例) mysql CREATE TABLE actor ( -actorname varchar(50) PRIMARY KEY, -sex varchar(2), - mvname varchar(50), -mvyear varchar(10), - mvactorname varchar(10), - position varchar(20), -made varchar(10), -setname varchar(50), -episode varchar(10), -date varchar(10), -classification varchar(30), -FULLTEXT(actorname,sex,mvname,mvyear,mvactorname,position,made,setname,episode,date,classification) -); 3.2 Navicat for MySQL 自带的创建全文索引的功能,以actor表为例,实现如图2所示。 4 结语 数据库去重的实现中主要介绍了如何通过嵌套匹配,查找以主键为中心的重复元组,并建立相应的临时表存储全部重复数据去掉后的数据和重复数据删除至一条元组的数据,将两个临时表合一,即为最后实验所需的数据表。数据库倒排索引的实现中主要利用MySQL软件自带的全文索引功能,在正确的引擎下对数据表中的每个属性列建立相应的全文索引。 参考文献: Zhang J, Zhao H, Wang S. QuickCN: A Combined Approach for Efficient Keyword Search over Databasestabase Systems for Advanced ApplicationsC ,2007, 1032-1035. Guo L, Ju F, Hao W. DBease:Making Databases
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论