淺析Unix操作系統(tǒng)數(shù)據(jù)庫
在Unix操作系統(tǒng)中,我們要對數(shù)據(jù)庫了解很多,因為數(shù)據(jù)庫很重要,今天,我們就來講解Unix操作系統(tǒng)中一些數(shù)據(jù)庫方面的工具。Unix操作系統(tǒng)提供多種數(shù)據(jù)庫,其中許多是開放源碼的,Unix操作系統(tǒng)一些數(shù)據(jù)庫適用于各種應用程序,Unix操作系統(tǒng)一些數(shù)據(jù)庫是專用的。但是,Unix操作系統(tǒng)大多數(shù)數(shù)據(jù)庫是很大的獨立應用程序(例如,MySQL 需要單獨的安裝、一些配置和它自己的守護進程),對于許多軟件可能不需要使用這么復雜的數(shù)據(jù)庫。
請考慮一個在桌面上使用的地址簿程序:它適合部署 MySQL 來存儲姓名和電話號碼嗎?可能不適合。另外,如果應用程序要在非常小的設(shè)備或能力很有限的計算機上運行,那么應該怎么辦?這類硬件可能不支持多處理、大量內(nèi)存占用或?qū)ξ锢泶鎯Φ拇罅啃枨蟆?/P>
顯然,Unix操作系統(tǒng)可以使用嵌入式數(shù)據(jù)庫。通常情況下,嵌入式數(shù)據(jù)庫打包為庫,與應用程序代碼直接鏈接。這種解決方案讓應用程序獨立于外部服務,但是也要付出一定的代價:通常不能用 Structured Query Language (SQL) 表達查詢。
SQLite 結(jié)合了這兩方面的優(yōu)勢:這個軟件很小,可以把它嵌入任何應用程序,同時可以用 SQL 查詢數(shù)據(jù)。PHP 和 Ruby on Rails 使用 SQLite 作為默認的存儲引擎,Apple iPhone 也是如此。
Unix操作系統(tǒng)為了構(gòu)建 SQLite,需要從 SQLite 下載頁面下載源代碼集(由所有源代碼組成的單一文件)、解壓它并運行 ./configure && make && sudo make install。
- $ # As of March 2009, the latest version was 3.6.11.
- $ wget http://www.sqlite.org/sqlite-amalgamation-3.6.11.tar.gz
- $ tar xzf sqlite-amalgamation-3.6.11.tar.gz
- $ cd sqlite-3.6.11
- $ ./configure && make
- $ sudo make install
Unix操作系統(tǒng)構(gòu)建過程生成一個庫和相關(guān)聯(lián)的應用程序編程接口 (API) 頭文件,以及一個單獨的命令行實用程序 sqlite3,它有助于研究特性。用數(shù)據(jù)庫名啟動 sqlite3 即可創(chuàng)建數(shù)據(jù)庫。甚至可以在命令行上直接放上 SQL,這對于腳本編程非常有意義:
- $ sqlite3 comics.db "CREATE TABLE issues \
- (issue INT PRIMARY KEY, \
- title TEXT NOT_NULL)"
- $ sqlite3 comics.db "INSERT INTO issues (issue, title) \
- VALUES ('1', 'Amazing Adventures')"
- $ sqlite3 comics.db "SELECT * FROM issues"
- 1|Amazing Adventures
***個命令創(chuàng)建數(shù)據(jù)庫(如果數(shù)據(jù)庫還不存在的話)和一個表,這個表包含兩列 —— 期號和標題。Unix操作系統(tǒng)第二個命令插入一行,***一個命令顯示表的內(nèi)容。
SQLite 提供觸發(fā)器、日志記錄和序列。SQLite 還是無類型的,除非您指定類型。例如,這里聲明的 issues 表沒有類型,但是仍然可以正常工作:
- $ sqlite3 comics.db "create table issues (issue primary key, title)"
- $ sqlite3 comics.db "INSERT INTO issues (issue, title) \
- VALUES (1, 'Amazing Adventures')"
- $ sqlite3 comics.db "SELECT * FROM issues"1|Amazing Adventures
沒有類型是一個特性,而不是 bug,它有許多應用。大家可以看出Unix操作系統(tǒng)中,SQLite能夠適合大多數(shù)場合的數(shù)據(jù)庫。這給我們帶來了很大的方便。讓我們一起運用它吧。
【編輯推薦】