1 概述
目前網絡服務,特別是局域網搜索引擎在企業網絡內得到廣泛應用,但是企業內網搜索引擎,搜索到的信息單一,只有標題,沒有與標題(關鍵詞)相關的信息,不方便使用者了解是否已經獲得自己需要的信息,所以類似百度、谷歌等的局域網搜索引擎在企業網中將有著廣泛的應用前景。
因此實現對企業內網中文件的搜索的快速性和準確性,優化搜索結果,返回用戶需要的信息,以及對整個搜索引擎的實現。使得企業資源更好的共享、信息的實時性,避免了舊的復雜、層層傳遞的麻煩,大大提高了資源的有效利用率。然而,要做到高效,準確的搜索到用戶所需要的相關信息,就必須從數據庫設計開始,因為在現在的應用系統中,衡量應用系統成敗的標準之一就是對數據查詢及處理的速度。
2 關鍵詞及信息管理
企業內網搜索引擎是對內網中的信息資源進行搜集整理,然后高效率的為內網用戶提供查詢的系統。企業內網搜索引擎它包括網站信息添加、網站信息修改和網站信息刪除幾部分。目前企業內網搜索引擎的工作模式是基于關鍵詞的檢索,應用這種搜索方式,用戶可以用邏輯組合方式在企業內網搜索引擎導航上輸入與自己搜索相關的關鍵詞,企業內網搜索引擎則根據用戶輸入的關鍵詞尋找用戶所需內網中資源的地址,然后使用相關的技術將在導航上輸入的關鍵詞的所有相關網址及指向相關網址的鏈接按照一定的順序返回給用戶。例如,百度。用戶輸入的關鍵詞經過處理后,企業內網搜索引擎程序便開始工作,從索引數據庫中找出所有包含關鍵詞的網頁信息,并且根據排名算法計算出哪些網頁應該排在前面,然后按照一定格式返回到頁面。
3 數據結構及數據庫設計
企業內網搜索引擎的數據結構為倒排索引(也稱倒排文件),倒排索引是指用相關記錄的非主屬性值\\(也叫外鍵\\)來查找記錄而組織形成的文件叫倒排文件。所有外鍵值都存在于倒排文件中,并列出了與之相關的所有主鍵值的記錄,主要用于比較復雜的查詢。與傳統的數據庫查詢不同,在企業內網搜索引擎收集完數據及關鍵詞的預處理階段,需要一種高效快速的數據結構來對用戶提供檢索服務。然而目前最有效高速的數據結構就是“倒排文件”。倒排文件可以被簡單的定義為“用文檔中的關鍵詞作為索引,內網中的文檔作為索引目標”的結構。
在現在的應用系統中,衡量應用系統成敗的標準之一就是對數據查詢及處理的速度。需要設計一個搜索引擎數據庫用于存放相關信息,一旦有文章更新則更新文章中的信息及關鍵詞段,企業內網搜索引擎在內存中完成所有的文章關鍵詞段搜索,并且在此期間不允許有其他的操作,比如說文章的更新等等。在對企業內網搜索引擎的功能模塊進行分析以后,建立了數據庫。
3.1 數據流圖
1\\) 數據庫需求分析:對企業內網搜索引擎的實施與應用的必要性和可行性進行論證,羅列出相關對象及其屬性,形成數據字典。
2\\) 數據庫系統分析:在需求分析的結果上進行總體分析,了解數據庫整體結構。
3\\) 數據庫功能和對象分析:對總體分析進行細化從對象和功能方面進行詳細描述。
4\\) 數據庫設計:選用SQL Server對功能和對象建立表。
3.3 各表之間關系
3.4.1 Web對象
用途:為Web頁面提供存儲,提取,URL操作,方便對Web頁面的增加,刪除與修改。
約束:數據系統中包含多個實例持久性:持久對象
屬性描述
屬性:url 類型:String 描述:本網頁的URL。
屬性:title 類型:String 描述:記錄網頁的標題
屬性:time 類型:time 描述:記錄網頁添加時間
屬性:content 類型:String 描述:記錄與網頁相關的內容,并顯示出搜索到的網頁的相關信息。
3.4.2 Admin對象
用途:為系統提供后臺管理,設置管理員登錄,并且登錄密碼采用MD5加密。
約束:數據系統中包含多個實例屬性描述屬性:username 類型:String 描述:記錄管理員登錄名屬性:password 類型:String 描述:記錄管理員登錄密碼屬性:login_ip 類型:String 描述:記錄登錄的IP地址3.4.3 Keyword對象。
用途:當用戶在導航欄上輸入關鍵詞后,為系統提供對關鍵詞的管理。
約束:數據系統中包含多個實例屬性描述屬性:keyword 類型:String 描述:記錄用戶在內網中導航上輸入的關鍵詞。
4 完整性約束
完整性約束條件也稱為完整性規則,關系完整性約束是為確保數據庫中數據的相容性和正確性,對關系模型提出的某種約束條件或規則,是數據庫中數據必須滿足的語義約束條件。
4.1 數據庫約束
數據庫顧名思義就是指一個用戶或者管理員定義的表的集合;然而數據庫約束是指所建立的數據庫必須滿足某個特定的條件(本數據庫中各表之間的相互聯系)。
4.2 表約束
表約束就是指該表的每條記錄必須滿足某個特定的條件(只涉及該表本身而不涉及數據庫中的其他表和其他域)。SQL允許把約束定義在字段和表上,允許對數據施予任意的控制,若用戶想在字段里存儲違反約束的數據,那么就會出現錯誤。這種情況同時也適用于數值來自缺省值的情況。表約束有以下幾種類型:
1\\) 檢查約束:是最常見的約束類型。允許在某個字段里聲明的數值使一個結果為真的布爾表達式。
2\\) 非空約束:只是簡單地聲明一個字段必須不能是 NULL ,非空約束在功能上等效于創建一個檢查約束。
3\\) 唯一約束:保證在一個字段或者一組字段里的數據與表中其它行的數據相比是唯一的。
4\\) 主鍵:只是唯一約束和非空約束的組合。
5\\) 外鍵:聲明一個字段的數值必須匹配另外一個表中出現的數值。
以上約束類型的語法參考SQL數據庫,例如要強制一個產品的價格的檢查約束,可以使用下面語法:
CREATE TABLE products \\(pdn integer,name text,price numeric CHECK \\(price > 0\\)\\);5 數據備份與數據安全。
數據備份分為完全備份和差異備份。完全備份就是將整個數據都做備份;差異備份是從上一次完全備份后所做的數據進行備份。數據安全是一種主動的包含措施,數據本身的安全必須基于可靠的加密算法與安全體系,其中在企業內網搜索引擎的數據庫建立中就采用了MD5加密算法,保證內網中的數據庫信息的數據安全性。
參考文獻:
[1] 袁津生,李群,蔡岳.搜索引擎原理與實踐[M].北京郵電大學出版社.
[2] 吳潔明,軟件工程應用實踐教程[M].清華大學出版社.
[3] 王珊,薩師煊.數據庫系統概[M].論高等教育出版社.
[4] 王珊,崔敬東,高慶成.SQL Server 2005數據庫技術與應用 [M].清華大學出版社.