国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

關系數(shù)據(jù)庫去重與索引實現(xiàn)的研究

2015-04-08 11:24毛金玲
關鍵詞:數(shù)據(jù)庫設計

毛金玲

摘要:數(shù)據(jù)庫去重的實現(xiàn)中主要介紹了如何通過嵌套匹配,查找以主鍵為中心的重復元組,并建立相應的臨時表存儲全部重復數(shù)據(jù)去掉后的數(shù)據(jù)和重復數(shù)據(jù)刪除至一條元組的數(shù)據(jù),將兩個臨時表合一,即為最后實驗所需的數(shù)據(jù)表。數(shù)據(jù)庫倒排索引的實現(xiàn)中主要利用MySQL軟件自帶的全文索引功能,在正確的引擎下對數(shù)據(jù)表中的每個屬性列建立相應的全文索引。

關鍵詞:數(shù)據(jù)庫設計 去重實現(xiàn) 索引實現(xiàn)

1 數(shù)據(jù)庫設計

本系統(tǒng)為面向關系數(shù)據(jù)庫的關鍵字查詢系統(tǒng),在實驗中本文選取了IMDB 數(shù)據(jù)集,為了進行實驗,將數(shù)據(jù)集整理為以下七個表數(shù)據(jù)結構。

實驗數(shù)據(jù)集(電影信息數(shù)據(jù)庫):

Actor(演員表)、Consume(設計師)、Director(導演信息)、Business(投資)、Editor(編輯)、Color(顏色信息)、Keyword(關鍵詞)。本數(shù)據(jù)庫抽象的數(shù)據(jù)庫關系E-R圖如圖1所示。

2 數(shù)據(jù)庫去重實現(xiàn)

本系統(tǒng)主要采用MySQL關系型數(shù)據(jù)庫,對數(shù)據(jù)庫的基本操作如下。(系統(tǒng)實現(xiàn))

2.1 在程序中定義了DBbase基。其中 MySQL驅動類描述符為“net.sourceforge.jtds.jdbc.Driver”。

protected final String password = "123456 ";

protected static finalString mysql = "net.sourceforge

.jtds.jdbc.Driver ";

2.2 實現(xiàn)數(shù)據(jù)庫的連接功能。

import java.sql.DriverManager;

import java.sql.Connection;

import java.sql.SQLException;

public class cc {

private static String dburl = "jdbc:mysql://localhost:3306/diany?user=root&password=123456";

public conn() {

try {

Connection con = DriverManager.getConnection(dburl);

System.out.println("connect successfully");

}

catch(SQLException se) {

se.printStackTrace();

}

}

public static void main(String[] args) {

new conn();

}

}

2.3 提交數(shù)據(jù)庫方法。

public void commit() throws SQLException

{

conn.commit();

}

2.4 回滾數(shù)據(jù)庫方法。

public void rollback() throws SQLException

{

conn.rollback();

}

2.5 關閉數(shù)據(jù)庫方法。

public void close() throws SQLException

{

ptmt.close();

conn.close();

}

在實驗數(shù)據(jù)集中,默認**name屬性值不重復,當然我們所熟知的actorname為演員名,而重名也是很常見的,在允許重名時為每個表新建一個屬性列id,并設為Primary Key,但是在本實驗中設定不重名。這就要刪除數(shù)據(jù)庫表中重復的元組以設定Primary Key。(以Consume表為例)

原始表中設定Primary Key:Consumename。出現(xiàn)錯誤Duplicate entry ‘Greenwood Jane Ifor key ‘PRIMARY,說明在Keyword表中存在consumename屬性值一樣的元組,需要對關系表去重來確定主鍵。

3 數(shù)據(jù)庫索引實現(xiàn)

索引的實現(xiàn)相對簡單,由于數(shù)據(jù)庫管理系統(tǒng)中支持文本屬性的全文索引,所以可以直接利用關系數(shù)據(jù)庫的全文索引。全文索引是一個倒排文件,它以屬性對的形式記錄了每一個關鍵字以及關鍵字出現(xiàn)的位置,一些關系數(shù)據(jù)庫系統(tǒng)中,不僅僅能記錄關鍵字所出現(xiàn)的位置,同時還能返回與查詢的相關性得分。

全文索引在MySQL中是一個FULLTEXT類型索引。FULLTEXT索引用于MyISAM表,可以在CREATE TABLE 時或之后使用ALTER TABLE或CREATE INDEX在CHAR、VARCHAR或TEXT 列上創(chuàng)建。對于大的數(shù)據(jù)庫,將數(shù)據(jù)裝載到一個沒有FULLTEXT 索引的表中,然后再使用ALTER TABLE(或CREATE INDEX)創(chuàng)建索引,這將是非常快的。將數(shù)據(jù)裝載到一個已經(jīng)有FULLTEXT索引的表中,將是非常慢的。

索引表一般使用倒排表(InversionList),即由索引項查找相應的文檔。索引表也要記錄索引項在文檔中的位置,以便檢索器計算索引項之間的相鄰或接近關系。當數(shù)據(jù)量很大時,必須實現(xiàn)即時索引,否則不能夠跟上信息急劇增加的速度。即是指在索引過程中邊建立邊存入索引庫。索引算法對索引器的性能有很大的影響。一個搜索引擎的有效性在很大程度上取決于建立索引的質量,本系統(tǒng)在創(chuàng)建索引時有兩種方法:

3.1 在創(chuàng)建表時,直接把全文索引加在SQL語句中,這種方式的全文搜索通過MATCH()函數(shù)完成。(以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 自帶的創(chuàng)建全文索引的功能,以actor表為例,實現(xiàn)如圖2所示。

4 結語

數(shù)據(jù)庫去重的實現(xiàn)中主要介紹了如何通過嵌套匹配,查找以主鍵為中心的重復元組,并建立相應的臨時表存儲全部重復數(shù)據(jù)去掉后的數(shù)據(jù)和重復數(shù)據(jù)刪除至一條元組的數(shù)據(jù),將兩個臨時表合一,即為最后實驗所需的數(shù)據(jù)表。數(shù)據(jù)庫倒排索引的實現(xiàn)中主要利用MySQL軟件自帶的全文索引功能,在正確的引擎下對數(shù)據(jù)表中的每個屬性列建立相應的全文索引。

參考文獻:

[1]Zhang J, Zhao H, Wang S. QuickCN: A Combined Approach for Efficient Keyword Search over Databases[A]. Proceedings of the 12th International Conference on Database Systems for Advanced Applications[C] ,2007, 1032-1035.

[2]Guo L, Ju F, Hao W. DBease:Making Databases User-friendly and Easily Accessible[A]. Fifth Biennial Conference on Innovative Data Systems Research[C], 2011, 45-56.

[3]Ju F, Guo L, Li Z. Interactive SQL Query Suggestion: Making Databases User-Friendly[A]. Proceedings of the 27th ICDE[C], 2011, 351-362.

猜你喜歡
數(shù)據(jù)庫設計
醫(yī)療設備信息管理系統(tǒng)的設計與實現(xiàn)
圖書館入館教育考試系統(tǒng)分析與設計
試論數(shù)據(jù)庫設計在網(wǎng)站開發(fā)中的應用
基于WEB的科研信息管理系統(tǒng)的設計與實現(xiàn)
面向等級考試,探討高校理工科計算機基礎課程教學改革
網(wǎng)站管理系統(tǒng)中數(shù)據(jù)庫設計的應用研究
《數(shù)據(jù)庫原理及應用》在線考試系統(tǒng)的設計
基于PHP+MySql的學生請銷假系統(tǒng)的設計
農(nóng)村宅基地確權數(shù)據(jù)自動提取方法研究與應用
基于.NET的電子政務系統(tǒng)設計