數據庫是Linux應用中的主要部分
Linux上的主要數據庫包括
商業數據庫: Oracle
Sybase
DB
Informix
自由軟件數據庫: MySQL
PostgreSQL
Msql等
商業數據庫
由於商業數據庫有很好的技術支持
這裡只簡單介紹一下
(
) IBM DB
(/data/db
/linux/)
(
) Informix (/informix/products/linux/) Informix目前支持Linux是Informix SE
ESQL/C
Connect
(
) Oracle (/iplatform/linux/) Oracle目前支持Linux的是Oralce
i
i
(
) Sybase (/products/databaseservers/linux/l) Sybase目前支持Linux的是Adaptive Server Enterprise
(
)Ingres (/products/betas/ingres_linux/) CA目前支持Linux的是Ingres II數據庫
自由軟件數據庫
MYSQL
MysQL是瑞典的T
c
X公司負責開發和維護的
它是一個真正的多用戶
多線程SQL數據庫服務器
MysQL是以一個客戶機/服務器結構實現其功能的
它由一個服務器守護程序mysqld和很多不同的客戶程序和庫組成
SQL是一種標准化的語言
它使得存儲
更新和存取信息更容易
MySQL主要特點是快速
健壯和易用
MySQL的官方發音是
My Ess Que Ell
(不是MY
SEQUEL)
目前MySQL的最新版本是
MySQL的網址是
MySQL的標志是一個小海豚
(
)MySQL的優點
它使用的核心線程是完全多線程
支持多處理器
有多種列類型
和
字節長度自有符號/無符號整數
FLOAT
DOUBLE
CHAR
VARCHAR
TEXT
BLOB
DATE
TIME
DATETIME
TIMESTAMP
YEAR
和ENUM類型
它通過一個高度優化的類庫實現SQL函數庫並像他們能達到的一樣快速
通常在查詢初始化後不該有任何內存分配
沒有內存漏洞
全面支持SQL的GROUP BY和ORDER BY子句
支持聚合函數(COUNT()
COUNT(DISTINCT)
AVG()
STD()
SUM()
MAX()和MIN())
你可以在同一查詢中混來自不同數據庫的表
支持ANSI SQL的LEFT
UTER JOIN和ODBC
所有列都有缺省值
你可以用INSERT插入一個表列的子集
那些沒用明確給定值的列設置為他們的決省值
MySQL可以工作在不同的平台上
支持C
C++
Java
Perl
PHP
Python和TCL API
(
) MySQL的缺點
MySQL最大的缺點是其安全系統
主要是復雜而非標准
另外只有到調用mysqladmin來重讀用戶權限時才發生改變
MySQL的另一個主要的缺陷之一是缺乏標准的RI(Referential Integrity
RI)機制
Rl限制的缺乏(在給定字段域上的一種固定的范圍限制)可以通過大量的數據類型來補償
MySQL沒有一種存儲過程(Stored Procedure)語言
這是對習慣於企業級數據庫的程序員的最大限制
MySQL不支持熱備份
MySQL的價格隨平台和安裝方式變化
Linux的MySQL如果由用戶自己或系統管理員而不是第三方安裝則是免費的
第三方案則必須付許可費
Unix或Linux自行安裝免費
Unix或Linux第三方安裝
美元
需要一個應用組件
美元
mSQL
mSQL(mini SQL)是一個單用戶數據庫管理系統
個人使用免費
商業使用收費
由於它的短小精悍
使其開發的應用系統特別受到互聯網用戶青睐
mSQL(mini SQL)是一種小型的關系數據庫
性能不是太好
對SQL語言的支持也不夠完全
但在一些網絡數據庫應用中是足夠了
由於mSQL較簡單
在運行簡單的SQL語句時速度比MySQL略快
而MySQL在線程和索引上下了功夫
運行復雜的SQL語句時比mSQL
PostgreSQL等都要快一些
MSQL的網址是
au
最新版本是
MSQL的標志是一個山羊
安全性方面
mSQL通過ACL文件設定各主機上各用戶的訪問權限
缺省是全部可讀/寫
mSQL缺乏ANSI SQL的大多數特征
它僅僅實現了一個最最少的API
沒有事務和參考完整性
mSQL與Lite(一種類似C的腳本語言
與分發一起發行)緊密結合
可以得到一個稱為W
mSQL的一個網站集成包
它是JDBC
ODBC
Perl和PHP API
PostgreSQL
PostgreSQL是屬於
對象
關連
式的數據庫管理系統(ORDBMS)
PostgreSQL的前身叫做Ingres
是於
年至
年間由著名的柏克萊大學所發展出來的
由於PostgreSQL是用C語言寫成的
所以在不同的Unix平台上移植非常方便
PostgreSQL可以在Linux
FreeBSD
SCO Unix
HP Unix
Solaris
AIX等平台上運行
PostgreSQ的網址是
最新版本是
PostgreSQL的官方發音是
Post
gres
Q
L
PostgreSQ的標志是一個大象
(
)PostgreSQL的主要優點
對事務的支持與MySQL相比
經歷了更為徹底的測試
PostgreSQL支持存儲過程
對於一個嚴肅的商業應用來說
作為數據庫本身
有眾多的商業邏輯的存在
此時使用存儲過程可以在較少地增加數據庫服務器的負擔的前提下
對這樣的商業邏輯進行封裝
並可以利用數據庫服務器本身的內在機制對存儲過程的執行進行優化
此外存儲過程的存在也避免了在網絡上大量的原始的SQL語句的傳輸
這樣的優勢是顯而易見的
PostgreSQL支持視圖
視圖的存在同樣可以最大限度地利用數據庫服務器內在的優化機制
而且對於視圖權限的合理使用
事實上可以提供行級別的權限
這是MySQL的權限系統所無法實現的
PostgreSQL支持觸發器
觸發器的存在不可避免的會影響數據庫運行的效率
但是與此同時
觸發器的存在也有利於對商業邏輯的封裝
可以減少應用程序中對同一商業邏輯的重復控制
合理地使用觸發器也有利於保證數據的完整性
PostgreSQL支持約束
約束的作用更多地表現在對數據完整性的保證上
合理地使用約束
也可以減少編程的工作量
PostgreSQL支持子查詢
雖然在很多情況下在SQL語句中使用子查詢效率低下
而且絕大多數情況下可以使用帶條件的多表連接來替代子查詢
但是子查詢的存在在很多時候仍然不可避免
而且使用子查詢的SQL語句與使用帶條件的多表連接相比具有更高的程序可讀性
PostgreSQL支持R
trees這樣可擴展的索引類型
可以更方便地處理一些特殊數據
支持ODBC
PostgreSQL可以更方便地使用UDF(用戶定義函數)進行擴展
(
)PostgreSQL的主要缺點
PostgreSQL運行速度明顯低於MySQL
因為MySQL使用了線程
而PostgreSQL使用的是進程
在不同線程之間的環境轉換和訪問公用的存儲區域顯然要比在不同的進程之間要快得多
PostgreSQL目前仍不完全適應
×
小時運行
這是因為你必須每隔一段時間運行一次VACUUM
PostgreSQL在權限系統上不過完善
PostgreSQL只支持對於每一個用戶在一個數據庫上或一個數據表上的INSERT
SELECT和UPDATE/DELETE的授權
而MySQL允許你定義一整套的不同的數據級
表級和列級的權限
由於PostgreSQL生成每頁的速度要比MySQL慢
所以不足以用來作高流量網站應用
Postgres沒有與MySQL的mysql_insertid()等價的函數調用
如果在MySQL的數據庫中插入一行數據
MySQL將返回這行主關鍵字的ID
而在Postgres中完成這樣一個操作需要繞許多圈子
如果大量應用就會降低效率
PostgreSQL還欠缺一些比較高端的數據庫管理系統需要的特性
比如對大對象的有效支持
以及查詢緩沖等提高數據庫性能的機制等
Linux下的數據庫系統還有一些
如dbm是linux下的一種非關系數據庫
它實際上是文件形式的哈希表
每一對名字/值項稱為一個記錄
dbm有好幾個版本
如ndbm
gdbm等
總結
以上我們主要介紹了Linux環境下的一些主要的數據庫
其他自由軟件數據庫還有Gadfly
BeagleSQL
Berkely DB
GNU SQL等
From:http://tw.wingwit.com/Article/program/Oracle/201311/17297.html