程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> PEAR MDB 數據庫抽象層 —— 一次編寫—隨處運行

PEAR MDB 數據庫抽象層 —— 一次編寫—隨處運行

編輯:關於SqlServer
Write once - run anywhere
一次編寫——隨處運行

這 是Java的一句行銷口號,但是它同時也是PHP的關鍵特性之一。許多商業模型依賴於操作系統無關性來保證產品能夠銷售給廣泛的客戶群體。因而,為什麼要 把你自己綁在某種數據庫廠商的身上呢?數據庫抽象層使得你能夠與數據庫獨立的開發你的應用程序。但是,通常情況下它們對性能的影響超過了你所希望的,要麼 他們並不足夠抽象以消除所有和特定數據庫相關的代碼。

這篇文章將教給我什麼?

這篇文章將對數據庫抽象包 PEAR MDB 有一個很好的介紹。文章的焦點將是對 MDB 超越類似包所提供的更先進的特性,例如數據類型抽象和基於 XML 的 schema 管理。對 PHP 和 SQL 的基本理解是推薦的。

為什麼另外再要一個數據庫類?

通 常, web 工程在客戶已經確定了要使用那種 RDBMS (關系型數據庫管理系統)之後被添加給已經存在的 IT 基礎結構。即使那並不是因為不同的預算可能影響的你選擇何種數據用於部署的情況。最終,你作為開發者可能簡單的偏好於不把自己綁在某個廠商身上。自此,意 味著給每個支持的數據保持版本或者犧牲更多性能但是獲得多於必須的易用性:走入 PEAR MDB 吧。

MDB 是著眼於使得編寫 RDBMS 無關的 PHP 程序成為簡單的過程的數據庫抽象層。大部分其他的 PHP 的所謂數據庫抽象層緊緊給所有支持的數據庫提供了一個公用 API 以及非常有限的抽象(大部分只是針對序列的)。MDB 另一方面能夠用來抽象所有數據庫發送和接收的數據。甚至數據庫 schema 都能被定義為 RDBMS 無關的格式。但是它提供這些功能的同時仍然保持了很高的性能以及簡單易用。這是通過深入觀察兩個流行的數據庫抽象層,PEAR DB 和 Metabase, 之後並且對它們進行了融合後獲得的。而且在融合過程中,趁著這個機會清理了它們融合後的 API 以及任何影響性能的設計。

MDB 是怎樣出現的?

早 在 2001 年的秋天,我就在尋找一種可能能夠讓我公司的程序框架與 RDBMS 獨立的數據庫抽象包。這個目標是把特定數據庫相關的代碼數量減少到零。我發現提供這樣的功能的唯一的一個包是 Metabase。但是 Metabase有一些部分是因為為了和 PHP3 兼容的讓人不舒服的 API。盡管如此,我們決定 Metabase 是我們唯一的選擇。但是即使是在給 Metabase 增加了一個性能改進的補丁之後,我們仍然感到我們放棄了太多的性能。我們在 2001 年的 PHP 國際會議上碰到了 Metabase 的作者,並且我們談論了讓像 Metabase 這樣的東西成為 PEAR 工程一部分的好處。後來不久,在 PEAR 郵件列表上就 PEAR DB 和 Metabase 融合的可能的好處又開始了一場討論。在我們公司進行了許多討論之後,我們決定承擔這個任務。數個月的艱辛工作之後,我們現在有了 MDB 的第一個穩定的 release。

MDB 給你提供了什麼?

MDB 結合了 PEAR DB 和 Metabase 的大部分特性。實際上,PEAR DB 的特性中唯一不再存在的是作為結果集返回一個對象。我們放棄了這個特性是因為這個特性不常用而且對於性能的損失是非常明顯的。許多開發上的時間用在了使得 API 盡可能的好用。最終,MDB 非常高地提供了這些功能至少和 PEAR DB 一樣快而且比 Metabase 快很多。這些最重要地特性的列表:

OO 風格的 API
預准備的查詢模擬
給所有傳遞進來以及從數據庫中取出的數據的完全的數據類型抽象(包括 LOB 支持)
事務支持
數據庫/表/索引/序列創建/拋棄/改變
RDBMS 無關的數據庫 schema 管理
繼承進 PEAR 框架(PEAR 安裝程序,PEAR 錯誤處理等)

那麼它如何使用呢?

MDB 提供了一些非常先進的抽象特性。記住這些特性只是供選擇的是很重要的。但是在編寫 RDBMS 無關的 PHP 程序時使用它們是非常重要的。一個展示使用 MDB 是多麼簡單的例子在文章的結尾的 "鏈接和文獻" 部分。如前面所說,文章的焦點是介紹使得 MDB 與其他 PHP 數據庫抽象層不同的那些特性。你可以在隨本期文章一同包裝的 CD 中找到所有這些例子腳本的代碼。

但是, 首先我們需要把 MDB 安裝上去。使用 PEAR 安裝程序這其實非常容易。我不能在這篇文章中完整的講述 PEAR 安裝程序但是我聽說下一期將非常詳細的討論 PEAR 框架的裡裡外外。讓安裝程序運行於 Windows 的工作在進行當作但是支持仍然有一點古怪。
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved