Navicat 部落格

什麼是平坦檔資料庫? 2021 年 1 月 7 日,由 Robert Gravelle 撰寫

儘管你已經聽說過關聯式資料庫和 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 等。

import_formats (32K)

你可以選擇記錄分隔字元、欄位分隔字元和文字辨識符號:

delimiter_screen (22K)

隨著匯入的進行,你將得到一個完整的進度報告,包括已處理的資料表和列的數量,以及遇到的錯誤和花費的時間:

progress_report (43K)

總結

在今天的文章中,我們了解了平坦檔資料庫,以及如何使用原生資料庫命令和 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才能觀看它

Navicat 文章
頻道記錄
分享
部落格封存檔