儘管你已經聽說過關聯式資料庫和 NoSQL 資料庫,但很大機會你完全不知道平坦檔資料庫(Flat file database)是什麼。平坦檔資料庫的確是真實存在的,但是近來它們並沒有得到多少關注。我們將在今天的文章中學習到,與過去的幾年相比,現在已有更好的方法來處理平坦檔資料庫。實際上,如果你正使用任何 Navicat 的資料庫開發和管理用戶端,那麼這已是最佳的選擇!
歷史和限制
自最早的電腦問世以來,平坦檔資料庫就已經存在。它們是一種將資料儲存在純文字檔案中的資料庫,其中檔案的每一行都包含一個記錄,並且欄位之間用分隔字元(通常是逗號或製表符)分隔。這樣,與關聯式資料庫相比,平坦檔資料庫與試算表有更多的共同點。由於其簡單的結構,平坦檔資料庫中表示的「表」僅支援有限的功能,例如記錄和欄排序。
平坦檔資料庫發展成為應用程序的後端。與結構化資料庫檔案相比,平坦檔資料庫的簡單結構佔用的空間更少,並且對配置資料更為適合。如果你精通程式設計,則可以找到適用於大多數語言的 ODBC 驅動程式,用於與平坦檔資料庫進行介面銜接。不幸的是,大多數關聯式資料庫用戶端無法直接連接到平坦檔資料庫。但是,關聯式資料庫提供了匯入平坦檔資料庫的命令,以及在更大的關聯式資料庫中使用平坦檔資料庫的命令。
匯入平坦檔
如果你對平坦檔資料庫的結構感到熟悉,那是因為它與逗號分隔值(Comma-Separated Values,CSV)、制表符分隔值(Tab-Separated Values,TSV)或任何分隔字元分隔值(Delimiter Separated Values,DSV)檔案非常相似。
每種關聯式資料庫都提供其自己的命令,用於從平坦檔匯入資料。例如,MySQL 提供了 LOAD DATA INFILE 陳述式。你必須首先建立資料庫和資料表,但是只需為每個資料集建立一次。完成此操作後,使用 LOAD DATA INFILE 就可以快速匯入資料!這是匯入 CSV(逗號分隔值)檔案的範例陳述式:
LOAD DATA INFILE 'c:/path/to/file.csv' INTO TABLE discounts FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n' IGNORE 1 ROWS;
使用 Navicat 匯入
Navicat 強大的匯入工具是一個精靈主導的程序,可以幫助你匯入多種格式的檔案:DSV、JSON、XML 等。
你可以選擇記錄分隔字元、欄位分隔字元和文字辨識符號:
隨著匯入的進行,你將得到一個完整的進度報告,包括已處理的資料表和列的數量,以及遇到的錯誤和花費的時間:
總結
在今天的文章中,我們了解了平坦檔資料庫,以及如何使用原生資料庫命令和 Navicat 將它們匯入到關聯式資料庫中。
如果你想更深入地了解 Navicat 的匯入工具,可以看一下我幾年前寫的一篇文章 Importing XML, CSV, Text, and MS Excel Files into MySQL,講解了如何使用Navicat for MySQL匯入各種格式的資料。
Rob Gravelle 居住於加拿大渥太華,是一名有 20 多年經驗的 IT 專家。過住,Rob 曾為情報相關的組織(如加拿大邊境服務局和各種商業組織)建置系統。在業餘時間,Rob 是一名出色的吉他演奏家,並發行了幾張 CD。如果你想僱用 Rob,可以傳送電子郵件到 Email住址會使用灌水程式保護機制。你需要啟動Javascript才能觀看它。