top of page

「技術層面看資料庫挑戰:以WikiData、AAA為例」

講者: 王文岳(李梅樹紀念館資訊組召集人、Wikidata Taiwan 共同主持人)

時間: 2019年5月14日 15:00PM

地點: 新樂園

本場工作坊講師王文岳首先解釋了資料庫的概念,目前大家所理解的資料庫應該稱為資料平台更為合適,而這個平台是由「前端」、「API(應用程式介面)」、「資料庫主控」、及儲存資料的「資料庫」…等不同的單元所構成。

而一個資料平台,除了軟體之外,還須有硬體來承載資料的運行,而硬體設備需依使用者及資料庫擁有者的資料使用量、使用連線流量、使用頻率以及使用目地…等因素來考量硬用的使用規格。為打造一完整的資料庫平台,現有硬體建議有以下㠭項:

  1. Serverless:無伺服器運算,又被稱為功能即服務,是雲端運算的一種模型。以平台即服務為基礎,無伺服器運算提供一個微型的架構,終端客戶不需要部署、組態或管理伺服器服務,程式碼運行所需要的伺服器服務皆由雲端平台來提供;

  2. 伺服器主機租賃服務:向系統服務商購買雲端虛擬機器之服務,每年依租用伺服器規格內容,繳交不同需求之費用給供應商;

  3. 單位自組Server:單位內自行聘請伺服器及硬體維護工程師,自行購買伺服器主機並申請網址,將伺服器架設在單位之內,可自行管理方便存取,但每年需花費大量維護費用。

軟體的部份,則可以分為以下幾項做討論:

  1. 前端:也就是使用者在利用資料庫平台查找資料時能看到的畫面,但畫面在設計上,除了一般的UI之外,也建議各單位在實做時,若是行有餘力可聘用UX設計人員,讓前端介面在使用上獲得最佳效能。

  2. 資訊安全議題:2018年有480億個有問題的檔案被攔截,而資料庫收的就是檔案,管理者和單位要如何知道要上傳的檔案是否有任何問題?已停用的Flash因為被發現大量的植入惡意程式,一張GIF動畫圖片也可被植入木馬病毒,更別提一般網站上最常見的DDoS攻擊(駭客使用網路上兩個或以上被攻陷的電腦作為「殭屍」向特定的目標發動「阻斷服務」式攻擊時,稱為分散式阻斷服務攻擊。)

  3. 資料庫的設計:一般人類讀取資料庫的想法,是類似表格的閱讀的方式,但電腦的讀取方式卻不一樣;講者強調,資料庫端及工程師在與單位和使用者溝通協調時,必需要特別注意的是要「填入的值」而非「值的欄位名稱」,因為填入的值若是有牽涉到需要運算時,必需被定義為「數值」,但若不需要運算,則可將該欄位定義為「文字」。「值」和「文字」兩欄位設定在初始建立資料庫時就需要定義,無法在事後進行更改。其中,更重要的是,填入欄位的「值」必需要統一,講者在這裡以「作品尺寸」和「創作年份」為例,不同單位或使用者對於尺寸和年代的表達有數種以上,但若是欄位格式不統一,且沒有唯一值,電腦在運作時無法判讀。而以AAA標準為例,其中收錄尺寸的方式並無法最迅速的對尺寸進行檢索;而Wikidata將所有數值拆分,使所有欄位能以最大幅度加速查詢。

  4. 在資料庫互通方面,良善的資料格式與妥善的API設計為資料庫互通的關鍵,而非欄位或是內容。AAA雖然並未提供API可供使用,但是有提供結構化資料,因此可以直接使用,而Wikidata提供API與資料下載外,更提供可連結到外部資料庫的連結,達到真正的資料庫互聯。

最後要強調的,為什麼一個資料平台需要對工程師友善? 沒有任何一個資料平台有機會一直活下去勢必會歷經轉手、改版、倒閉的可能,這個時候系統規格書將變得非常重要。

IMG_7725.jpg
F23A3784-3387-4CA5-8E54-86A7F98BC813.jpg
IMG_7732.jpg
IMG_7748.jpg
bottom of page