国产18禁黄网站免费观看,99爱在线精品免费观看,粉嫩metart人体欣赏,99久久99精品久久久久久,6080亚洲人久久精品

移植實(shí)務(wù):從Access到MySQL

時(shí)間:2008-10-11 07:11:00   來源:無憂考網(wǎng)     [字體: ]
很多MySQL用戶都有過將Access移植到MySQL的計(jì)劃,不過這個(gè)移植過程性能和實(shí)踐的相關(guān)描述資料很少。本文將為大家總結(jié)將Access應(yīng)用程序成功移植到MySQL的要點(diǎn)和注意事項(xiàng)。

  由于Access應(yīng)用程序往往是以即席(ad hoc)模式創(chuàng)建的,移植難度很大。MySQL用戶通常會遇到的兩個(gè)移植問題是:第一,數(shù)據(jù)移植問題,由于Access模式設(shè)計(jì)較差,數(shù)據(jù)質(zhì)量很低,往往會造成數(shù)據(jù)轉(zhuǎn)換過程很復(fù)雜;第二,應(yīng)用程序移植問題,Access應(yīng)用程序中的窗體和報(bào)表常包含了邏輯或設(shè)計(jì)錯(cuò)誤,不可能實(shí)現(xiàn)這些文件的自動轉(zhuǎn)換。

  成功的移植途徑要完成以下三個(gè)基本任務(wù):重構(gòu)模式、清洗數(shù)據(jù)和重寫應(yīng)用程序。

  從Access到MySQL的移植動因

  Access數(shù)據(jù)庫由于其操作簡單易用,成本較低在中小企業(yè)中的市場非常廣闊。中等技術(shù)程度的部門開發(fā)人員都會把Access作為數(shù)據(jù)庫開發(fā)的默認(rèn)選擇。大家往往通過將企業(yè)數(shù)據(jù)下載到Excel里,然后將電子表格轉(zhuǎn)換成Access數(shù)據(jù)庫,然后添加即席窗體和報(bào)表來構(gòu)建Access應(yīng)用程序。由于這些程序由用戶組織構(gòu)建的,所以往往缺乏對數(shù)據(jù)形式的要求。

  在Access應(yīng)用軟件移植上,MySQL用戶面臨的壓力越來越大,包括以下幾個(gè)方面:

  數(shù)據(jù)質(zhì)量低下:Access應(yīng)用程序常常包含了過期的企業(yè)數(shù)據(jù)或來自拙劣定義模式下的損壞數(shù)據(jù);
  安全性能低下:Access應(yīng)用程序沒有嵌入企業(yè)安全組件,不允許進(jìn)行類似于基于角色的訪問控制等的高級安全設(shè)置;
  可管理性有限:網(wǎng)絡(luò)技術(shù)無法集中管理Access應(yīng)用程序;
  沒有基于網(wǎng)絡(luò)發(fā)布機(jī)制:Access應(yīng)用程序無法通過網(wǎng)絡(luò)進(jìn)行訪問;
  不符合SOX依從性:企業(yè)的審核程序往往會把Access應(yīng)用程序看作是一個(gè)重要的風(fēng)險(xiǎn)來源。
  數(shù)據(jù)移植問題

  MySQL本身提供了一個(gè)數(shù)據(jù)移植工具—— MySQL Migration Tool。不過這個(gè)工具實(shí)際上和待轉(zhuǎn)換的數(shù)據(jù)庫的基本模式和數(shù)據(jù)一樣并不好用。而Access的模式和數(shù)據(jù)質(zhì)量問題太過深入且普遍存在,所以MySQL用戶常常會發(fā)現(xiàn)在MySQL從頭開始重建數(shù)據(jù)模式還有來得更容易些。

  Access移植過程中最兩個(gè)常見的與數(shù)據(jù)質(zhì)量相關(guān)的問題是:

  1. Access數(shù)據(jù)模式不是基于SQL的模式:Access開發(fā)人員往往不熟悉SQL模式設(shè)計(jì)基礎(chǔ)。MySQL的數(shù)據(jù)庫管理員會發(fā)現(xiàn),Access模式類似于Excel的電子表格,而和典型的SQL模式相去甚遠(yuǎn)。例如,這種模式缺乏主鍵、外鍵和參照完整性約束。

  2. Access數(shù)據(jù)“不干凈”:Access數(shù)據(jù)庫中往往包含很多毀壞的數(shù)據(jù),其中部分原因是由于沒有對表進(jìn)行嚴(yán)格定義。有MySQL用戶曾經(jīng)發(fā)現(xiàn)在一個(gè)Access數(shù)據(jù)庫中,在本來應(yīng)該是日期字段的區(qū)域填入的卻是文本字符串。

  應(yīng)用程序移植問題

  成功把數(shù)據(jù)從Access接入到MySQL僅僅解決了一部分問題,還需要處理與Access應(yīng)用程序相關(guān)的窗體和報(bào)表問題。此外,你可以把多個(gè)Access應(yīng)用整合成一個(gè)web應(yīng)用;同樣的,還可以把多個(gè)Access窗體整合成一個(gè)網(wǎng)頁。雖然可以用ODBC從Access存取MySQL數(shù)據(jù),不過大多數(shù)MySQL用戶還是選擇重新編寫應(yīng)用程序。其中的原因包括:

  質(zhì)量問題:鑒于原始的Access應(yīng)用程序不是由專業(yè)的編程人員寫的,MySQL用戶對其邏輯可行性往往持有懷疑態(tài)度。
  想要是應(yīng)用程序適用于網(wǎng)絡(luò):大多數(shù)MySQL用戶都想把Access應(yīng)用程序轉(zhuǎn)換成動態(tài)的網(wǎng)絡(luò)架構(gòu)。
  出于安全要求:MySQL用戶往往希望為程序加入企業(yè)級的安全特性,例如Siteminder/LDAP驗(yàn)證和基于角色的訪問控制機(jī)制等。
  雖然有現(xiàn)成的工具可以將Access應(yīng)用程序自動轉(zhuǎn)換成Java,不過大部分MySQL用戶發(fā)現(xiàn)自動轉(zhuǎn)換的成功率很低。一條可行的途徑是使用類似于PHP的編程語言或ActiveGrid這樣的web 2.0 visual builder來接入Access應(yīng)用程序。