24h購物| | PChome| 登入
2004-06-10 13:24:53| 人氣2,667| 回應2 | 上一篇 | 下一篇

放棄您的桌上型資料庫(DBF,Access, Paradox)

推薦 0 收藏 0 轉貼0 訂閱站台

放棄您的桌上型資料庫(DBF,Access, Paradox)

(78 本文內字數)
(3340 閱讀)



標題夠聳動吧!還記得DBASE,Clipper輝煌的那個年代嗎?其實到現在都還很懷念,因為可以掌控的東西比現在還多,記得當年看到 Windows 3.1炫麗的外表,著實令人為之震撼,但美麗的外表卻藏著多年以來的愛恨情仇,因為如果以資料庫應用程式而言,DOS環境比現在Windows好太多了。

筆者以過來人的經驗與各位分享,自從Windows 95開始漸漸流行之後,就決心轉入Windows 應用軟體開發,雖然那時DOS軟體還充斥著大街小巷,抱著不落人後的心情開始研發視窗軟體,以前都是用Clipper撰寫一些應用程式,自然而然使用 DBF當做資料庫,後來在Windows環境第一個採用的就是號稱有火狐狸之稱的FoxPro 2.x一直到Visual FoxPro都有開發專案的實務,開發工具的差異及複雜度我們就暫且不提,記得當筆者以FoxPro 3.0開發完成第一個專案,非常高興的給客戶上線使用後,才發現原來痛苦的事在後面接踵而來,客戶採用網路作業,同時會有多人上線使用,當系統運作一段期間之後,發現DBF的索引檔很容易損壞,但是依照過去的經驗實在不太相信次數如此頻繁造成後續的維護成本驟增,這是一個慘痛的教訓,但當時並不覺得全部是 DBF所造成的問題,有些部份可能也是FoxPro所產生的錯誤,雖然自此以後未再採用微軟的開發工具,但並無法避免這類的情形再度發生。

後來從16位元程式到32位元程式,筆者都曾經撰寫以DBF為相關的應用系統,這中間卻發現一個有趣的現象,如果以一個相同軟體而言,撰寫16位元採用的DBF比32位元的DBF還要穩定許多,經過多次的測試後,愈能獨佔系統資源的軟體愈能保持DBF的穩定,相同的問題也發生在其他的Desktop DB中,像Paradox,Access..等等,筆者時常在網路的討論看到如何修復索引檔、如何救出已損壞的資料,所以說在DOS下因為單人單工的作業或者檔案控制可以由設計師來操控,這方面的穩定性是大大的超越Windows,但總不能本末倒置的再回去寫DOS的應用軟體,所以在什麼場合應用什麼資料庫,就是考驗設計師的智慧與經驗,筆者認為以目前的環境而言,除非具備以下幾項條件,否則應該放棄這些檔案型態的資料庫。

資料量不大(二三千筆資料)
唯讀資料(儘量不做資料存取動作)
特殊用途(只作用在暫存檔或者其他輔助資料庫存取)

分析產生問題的原因,因為以前在DOS環境是單機作業,使用者不得不按步就班的照著程式的流程來運作,不會因為您同時在執行其他程式而影響導致所有執行中的程式一併發生問題,而且以Windows 9X系列的檔案系統而言,會自動將資料Cache放在記憶體內,如果因為不正常因素關閉程式,那將導致許多的資料
無法即時存入資料庫,但這個問題卻跟作業系統息息相關,偏偏設計師是無法自己掌控的,除非您保証Windows不當機,但這似乎不太可能,除非您沒聽過Windows 9x 七天到自動當機的真實笑話。


為什麼不採用Desktop DB,因為有下面這麼多的問題,如果您有親身的經驗,相信就能夠體認到其中的苦衷。

* 孤兒資料(資料不一致,常見於一對多表示式,有尾無頭)
* 空白資料(因為當機後,產生的許多空白資料)
* 索引損壞
* 資料流失
* 過帳無效(因為交易過程的突然當機,導致交易中斷,造成資料不準確)
* 資料龐大、無法運算
* 安全性考量
* 跨區域處理
* internet應用

但是還是有許多的設計師無法放棄,在筆者周圍的朋友中,常常也會有這方面的討論,這當中所提出抗拒的因素有:

* 程式不大:的確,會採用小型資料庫的設計師大部份的軟體規模都不是太大,不過除非這個軟體只賣一次並且永遠不會再有擴充的機會,但有時總無法如願,畢竟開發出來的軟體當然希望能賣愈多愈好,但每個客戶的需求卻不一樣,所以原來的小程式就會變得愈來愈複雜,但是當有一天你遇到一個瓶頸之後,卻受限於資料庫的因素而無法升級時,光想要將這麼複雜的程式邏輯再搬到另外一個地方,這絕對不是一件輕鬆的差事。
* 資料庫太過於複雜:學習關連式資料庫確實須要花費較多的時間,不過如果對照上述所提到採用小型資料庫會遇到的問題而言,可以這樣說,一個是要時間花在前面,並且可以無限擴充,另外卻是將時間浪費在惱人的資料維護,而因為資料無預期損壞而導致的錯誤,將花費更多心力及時間。
* 價格因素:資料庫的價格昂貴也是造成卻步的原因,如果一套軟體成本內有一半都是資料庫授權費用,身為軟體公司的老闆大概很難接受辛辛苦苦撰寫的產品卻要將所得大半付給其他資料庫公司,這種現象在中小企業的商用軟體最為明顯,所以選擇一套自由軟體來搭配,就不會有這種問題。



目前使用桌上型資料庫的設計師一定還是佔了絕大部份,或許現在還可以繼續使用,即使出現問題再解決即可,但還是應該評估整體系統因為資料庫因素發生問題而產生的額外成本,再來考慮是否值得繼續維持原狀,接下來的環境將不再侷限於區域網路內的資料流通,緊接著而來的Internet勢必將更為普及,當所有軟體都在Internet上執行時,企業內部的系統也不能夠獨立於外。


後記:如果您是一位程式設計師,有沒有遇到客戶打電話來問一些莫名奇怪的問題,其中「這個程式即將關閉,請洽詢程式設計師」會不會很眼熟呢?很多User知道筆者是一個程式設計師,結果Excel發生錯誤出現這則訊息,打電話來詢問,真是令人哭笑不得,到底Microsoft是不是故意的呢?

台長: byron
人氣(2,667) | 回應(2)| 推薦 (0)| 收藏 (0)| 轉寄
全站分類: 興趣嗜好(收藏、園藝、棋奕、汽機車)

葉醫師
請教版主,10年後的現在, 有更具體的建議嗎?
2016-09-04 00:53:13
日本藤素
感謝分享!

http://www.yyj.tw/
2019-12-23 04:19:22
是 (若未登入"個人新聞台帳號"則看不到回覆唷!)
* 請輸入識別碼:
請輸入圖片中算式的結果(可能為0) 
(有*為必填)
TOP
詳全文