• 沒有找到結果。

1.1 研究動機與目的

當今在網際網路中最普遍的搜尋資訊方式,是使用網路搜尋引擎,例如:

Google 、Yahoo 、Bing,給予關鍵字進行查詢。關鍵字查詢(Keyword Search)是 指使用者可輸入一些關鍵字代表自己的搜尋意圖,而搜尋引擎會比對關鍵字和資 料物件中的文字,再將包含關鍵字的資料物件回傳給使用者。搜尋引擎的資料,

大多是屬於文字文件(Text Document),也稱為非結構化資料。

近年來關聯式資料庫,例如:Microsoft SQL Server、Oracle、MySQL 等已被 廣泛地使用來儲存管理資料。論文[13]提出「資料庫的實用性、普及性,最重要 在於所提供的功能」。不同於文字文件,在資料庫裡的資料屬於結構化資料,受 限於資料庫結構上的本質,目前對關聯式資料庫進行資料的查詢,需要透過給定 結構化查詢語言 SQL 進行查詢。由於 SQL 語言並非一般使用者能夠給定,因此 對於資料庫資料進行查詢,必須透過資料庫應用程式設計師先行設計好的下拉式 選單介面,選取固定的欄位指定查詢條件,系統再將各個條件做邏輯運算 AND 起來轉成 SQL 查詢。這些提供查詢的欄位在程式設計時便預先決定,使用者查詢 方式不能像採用搜尋引擎的方式,隨意輸入表格欄位名稱或條件關鍵字進行查詢,

因而限制了一般使用者對於資料的查詢方式。若關聯式資料庫能提供使用者如同 使用搜尋引擎的查詢方式,也就是給定關鍵字查詢,系統再將使用者給定之關鍵

字查詢自動產生出 SQL 結構化查詢語言之查詢語句,對資料庫進行資料查詢,將 可以提供使用者指定查詢條件更大的彈性。不過在一般搜尋引擎的操作方法,系 統是將所輸入的每一個查詢關鍵字,都與資料文件做字串比對。而對於關聯式資 料庫資料,有數值類型的資料。若將有些數值條件式(例如:year>2000)都當成查 詢關鍵字做字串比對並不適合。所以我們希望在對於關聯式資料庫查詢的查詢格 式上,除了查詢關鍵字外,還能提供像是數值條件式(例如:year>2000)這種輸入 格式。

因此本論文的研究目的是對關聯式資料庫,探討如何將以關鍵字和數值條件 式描述的查詢,自動轉換成一個對應的結構化查詢語言的 SQL 語句,並能符合使 用者的搜尋意圖。除此之外,由於使用者對資料庫裡的資料內容瞭解有限,我們 也將探討如何將對應 SQL 查詢的執行結果,以統計的觀點選取適當欄位提供查詢 結果中重要結果的摘要,幫助使用者得到與查詢結果相關的重要資訊。

1.2 研究的範圍與限制

本論文所考慮的底層資料庫是關聯式資料庫,資料庫儲存資料限定於英文資 料;而資料庫綱目(Schema)的命名,假設皆為具有意義的英文字彙。在資料庫綱 目設計上,研究的前提是資料庫綱要採用第一正規化(First Normal Form),是資料 庫正規化中的其中一種形式,其規則是滿足「每個欄位只能含有一個屬性值」條 件。其目的是要排除重複資料的出現,每個欄位都只能存放單一種類值。而在使

用者輸入查詢關鍵字的準則上,查詢輸入格式除了提供關鍵字為查詢條件之外,

還提供欄位、運算子及常數組合成條件式(例如:year > 2012),並能 And 或 Or 等 邏輯運算子對查詢條件進行組合。

查詢所轉換出的 SQL 結構化查詢語言,本論文只考慮基本資料庫查詢條件句 型,其中 SELECT 子句,描述取得哪些的欄位資料;FROM 子句,描述資料從資 料庫的哪些資料表取得;WHERE 子句,表示資料所要符合的條件。在此不考慮 聚合函數(aggregation functions),例如:Avg、Count、Min、Max 等,以及巢狀式 子查詢(nested subqueries)等較複雜的 SQL 查詢。

本論文研究重點在於提出一個處理流程及策略,能將使用者給予的查詢關鍵 字和數值條件式自動進行拆解、分析。將拆解出來的查詢條件,組合出使用者想 表達的搜尋意圖,進而轉換成結構化查詢語言的查詢格式。最後並提出對 SQL 查詢結果的重要資料摘要呈現的方法。

1.3 論文方法

為了達到前述目的,本論文提出對關聯式資料庫進行關鍵字查詢的處理過程 主要分成兩大步驟:在第一步驟,系統會將使用者所給定的查詢關鍵字進行查詢 拆解 (Query Segmentation),先將每一個關鍵字以特性個別標記,再進行分組,建 立關鍵字所代表各項搜尋意圖之查詢條件。第二步驟,將上個步驟找出的各個查 詢條件,進行條件組合(Condition Combination),再產生對應 SQL 查詢語句(SQL

Query Generation)。在各個查詢條件組合中,透過設計查詢條件單位以邏輯運算 子組合運算的優先順序指定括弧位置,產生最可能表達使用者給予關鍵字查詢的 搜尋意圖的條件組合。最後再將條件組合的結果,轉換成結構化查詢語言描述,

且送至關聯式資料庫進行查詢。而由 SQL 查詢的執行回傳結果,系統會依統計觀 點 分 析 查 詢 結 果 中 欄 位 值 的 一 致 性 和 分 佈 變 化 差 異 進 行 結 果 摘 要 (Result

Summary)。

1.4 論文架構

本論文以下章節內容簡介如下:第二章說明相關文獻探討,第三章介紹系統 處理流程,第四章詳述查詢關鍵字拆解以及條件組合的處理方法,第五章說明完 成 SQL 查詢語句及查詢結果摘要之方法,第六章顯示實驗結果與討論,最後在第 七章總結本論文並提出未來研究方向。