熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Oracle >> 正文

Linux環境主要數據庫簡介

2013-11-13 15:46:53  來源: Oracle 

  數據庫是Linux應用中的主要部分Linux上的主要數據庫包括商業數據庫: OracleSybaseDBInformix自由軟件數據庫: MySQLPostgreSQLMsql等
    商業數據庫
  
    由於商業數據庫有很好的技術支持這裡只簡單介紹一下
  
    () IBM DB (/data/db/linux/)
  
    () Informix (/informix/products/linux/) Informix目前支持Linux是Informix SEESQL/CConnect
  
    () Oracle (/iplatform/linux/) Oracle目前支持Linux的是Oralce ii
  
    () Sybase (/products/databaseservers/linux/l) Sybase目前支持Linux的是Adaptive Server Enterprise
  
    ()Ingres (/products/betas/ingres_linux/) CA目前支持Linux的是Ingres II數據庫
  
    自由軟件數據庫
  
    MYSQL
  
    MysQL是瑞典的TcX公司負責開發和維護的它是一個真正的多用戶多線程SQL數據庫服務器MysQL是以一個客戶機/服務器結構實現其功能的它由一個服務器守護程序mysqld和很多不同的客戶程序和庫組成SQL是一種標准化的語言它使得存儲更新和存取信息更容易MySQL主要特點是快速健壯和易用MySQL的官方發音是My Ess Que Ell(不是MYSEQUEL)目前MySQL的最新版本是MySQL的網址是MySQL的標志是一個小海豚
  
    ()MySQL的優點
  
    它使用的核心線程是完全多線程支持多處理器
  
    有多種列類型字節長度自有符號/無符號整數FLOATDOUBLECHARVARCHARTEXTBLOBDATETIMEDATETIMETIMESTAMPYEAR和ENUM類型
  
    它通過一個高度優化的類庫實現SQL函數庫並像他們能達到的一樣快速通常在查詢初始化後不該有任何內存分配沒有內存漏洞
  
    全面支持SQL的GROUP BY和ORDER BY子句支持聚合函數(COUNT()COUNT(DISTINCT)AVG()STD()SUM()MAX()和MIN())你可以在同一查詢中混來自不同數據庫的表
  
    支持ANSI SQL的LEFT UTER JOIN和ODBC
  
    所有列都有缺省值你可以用INSERT插入一個表列的子集那些沒用明確給定值的列設置為他們的決省值
  
     MySQL可以工作在不同的平台上支持CC++JavaPerlPHPPython和TCL API
  
    () MySQL的缺點
  
    MySQL最大的缺點是其安全系統主要是復雜而非標准另外只有到調用mysqladmin來重讀用戶權限時才發生改變
  
    MySQL的另一個主要的缺陷之一是缺乏標准的RI(Referential IntegrityRI)機制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語句時比mSQLPostgreSQL等都要快一些MSQL的網址是au最新版本是MSQL的標志是一個山羊
  
    安全性方面mSQL通過ACL文件設定各主機上各用戶的訪問權限缺省是全部可讀/寫mSQL缺乏ANSI SQL的大多數特征它僅僅實現了一個最最少的API沒有事務和參考完整性mSQL與Lite(一種類似C的腳本語言與分發一起發行)緊密結合可以得到一個稱為WmSQL的一個網站集成包它是JDBCODBCPerl和PHP API
  
    PostgreSQL
  
    PostgreSQL是屬於對象關連式的數據庫管理系統(ORDBMS)PostgreSQL的前身叫做Ingres是於年至年間由著名的柏克萊大學所發展出來的由於PostgreSQL是用C語言寫成的所以在不同的Unix平台上移植非常方便PostgreSQL可以在LinuxFreeBSDSCO UnixHP UnixSolarisAIX等平台上運行PostgreSQ的網址是最新版本是PostgreSQL的官方發音是PostgresQLPostgreSQ的標志是一個大象
  
    ()PostgreSQL的主要優點
  
    對事務的支持與MySQL相比經歷了更為徹底的測試
  
    PostgreSQL支持存儲過程對於一個嚴肅的商業應用來說作為數據庫本身有眾多的商業邏輯的存在此時使用存儲過程可以在較少地增加數據庫服務器的負擔的前提下對這樣的商業邏輯進行封裝並可以利用數據庫服務器本身的內在機制對存儲過程的執行進行優化此外存儲過程的存在也避免了在網絡上大量的原始的SQL語句的傳輸這樣的優勢是顯而易見的
  
    PostgreSQL支持視圖視圖的存在同樣可以最大限度地利用數據庫服務器內在的優化機制而且對於視圖權限的合理使用事實上可以提供行級別的權限這是MySQL的權限系統所無法實現的
  
    PostgreSQL支持觸發器觸發器的存在不可避免的會影響數據庫運行的效率但是與此同時觸發器的存在也有利於對商業邏輯的封裝可以減少應用程序中對同一商業邏輯的重復控制合理地使用觸發器也有利於保證數據的完整性
  
    PostgreSQL支持約束約束的作用更多地表現在對數據完整性的保證上合理地使用約束也可以減少編程的工作量
  
    PostgreSQL支持子查詢雖然在很多情況下在SQL語句中使用子查詢效率低下而且絕大多數情況下可以使用帶條件的多表連接來替代子查詢但是子查詢的存在在很多時候仍然不可避免而且使用子查詢的SQL語句與使用帶條件的多表連接相比具有更高的程序可讀性
  
    PostgreSQL支持Rtrees這樣可擴展的索引類型可以更方便地處理一些特殊數據支持ODBC
  
    PostgreSQL可以更方便地使用UDF(用戶定義函數)進行擴展
  
    ()PostgreSQL的主要缺點
  
    PostgreSQL運行速度明顯低於MySQL因為MySQL使用了線程而PostgreSQL使用的是進程在不同線程之間的環境轉換和訪問公用的存儲區域顯然要比在不同的進程之間要快得多
  
    PostgreSQL目前仍不完全適應×小時運行這是因為你必須每隔一段時間運行一次VACUUM
  
    PostgreSQL在權限系統上不過完善PostgreSQL只支持對於每一個用戶在一個數據庫上或一個數據表上的INSERTSELECT和UPDATE/DELETE的授權而MySQL允許你定義一整套的不同的數據級表級和列級的權限
  
    由於PostgreSQL生成每頁的速度要比MySQL慢所以不足以用來作高流量網站應用Postgres沒有與MySQL的mysql_insertid()等價的函數調用如果在MySQL的數據庫中插入一行數據MySQL將返回這行主關鍵字的ID而在Postgres中完成這樣一個操作需要繞許多圈子如果大量應用就會降低效率
  
    PostgreSQL還欠缺一些比較高端的數據庫管理系統需要的特性比如對大對象的有效支持以及查詢緩沖等提高數據庫性能的機制等
  
    Linux下的數據庫系統還有一些如dbm是linux下的一種非關系數據庫它實際上是文件形式的哈希表每一對名字/值項稱為一個記錄 dbm有好幾個版本如ndbmgdbm等
  
    總結以上我們主要介紹了Linux環境下的一些主要的數據庫其他自由軟件數據庫還有GadflyBeagleSQLBerkely DBGNU SQL等
  

From:http://tw.wingwit.com/Article/program/Oracle/201311/17297.html
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.