office交流網(wǎng)--QQ交流群號(hào)及微信交流群

Access培訓(xùn)群:792054000         Excel免費(fèi)交流群群:686050929          Outlook交流群:221378704    

Word交流群:218156588             PPT交流群:324131555

微信交流群(請(qǐng)用微信掃碼)

        

微軟“殺”不死的數(shù)據(jù)庫(kù)軟件Access

2019-11-14 13:05:00
Matthew MacDonald
轉(zhuǎn)貼:
CSDN
8376

作者 | Matthew MacDonald
譯者 | 蘇本如,責(zé)編 | 郭芮


以下為譯文:


在萬圣節(jié),你可以講這樣一個(gè)萬圣節(jié)的故事來嚇唬一下普通的公司程序員。假想一下,如果你將寶貴的業(yè)務(wù)數(shù)據(jù)放在一個(gè)由科技巨頭微軟公司支持的友好數(shù)據(jù)庫(kù)程序中,一開始,一切看起來都是那么地完美,但是你就是無法擺脫那種厄運(yùn)即將來臨的詭異的感覺。


接著,你的噩夢(mèng)開始了。在只有三個(gè)人使用這些表格時(shí),效果非常好。但是,當(dāng)整個(gè)公司都加入進(jìn)來使用時(shí),一些神秘磨人的小故障就會(huì)接踵而來。你的老板讓你構(gòu)建一個(gè)Web界面,使得遠(yuǎn)程辦公室可以使用數(shù)據(jù)庫(kù),但是你卻發(fā)現(xiàn)——什么數(shù)據(jù)庫(kù)也找不到,只有一個(gè)巨大的,沒有靈魂的空洞,而那里應(yīng)該有Web支持的。你想從它當(dāng)中尋找你所期望的傳統(tǒng)數(shù)據(jù)庫(kù)的一些行為嗎?別做夢(mèng)了!想要安全模型嗎?不,這里的每個(gè)用戶都可以訪問所有內(nèi)容。想要數(shù)據(jù)完整性嗎?還是醒醒吧,因?yàn)楦緵]有記錄數(shù)據(jù)庫(kù)操作的日志文件。想要遵守開發(fā)標(biāo)準(zhǔn)嗎?別問,就此打?。】吹竭@里時(shí),你是不是覺得心都涼了!


然而,這些就是最讓人寒心的嗎?你想多了!就是這樣的破東西甚至還要收你的費(fèi)!


這就是Microsoft Access(以下簡(jiǎn)稱Access)的故事。Access是一款使用方便的數(shù)據(jù)庫(kù)軟件,它已經(jīng)有近30年的歷史,但是至少在10年前,它就已經(jīng)漸顯老態(tài)。你可能認(rèn)為Access早就死了,但是你錯(cuò)了。事實(shí)上,Access仍然像只僵尸一樣躑躅而行,它的使用率既沒有增長(zhǎng)也沒有下降。微軟公司已經(jīng)不止一次試圖終止它的生命,然而它的用戶社區(qū)卻一次又一次成功地讓它起死回生。而其他像FrontPage和Visual Basic 6這樣的傳統(tǒng)軟件產(chǎn)品,卻因?yàn)楸蝗死渎涠缫驯谎跊]在塵埃之中。


將Access視為一個(gè)遺留軟件噩夢(mèng),是顯而易見的事。但是它的故事對(duì)每個(gè)軟件設(shè)計(jì)師都有借鑒意義。它可以讓我們洞察是什么讓一個(gè)產(chǎn)品存活下來、茁壯成長(zhǎng),并且在它的生命周期結(jié)束后,仍然歷時(shí)彌久,保持不死之身。


Access到底有多普及?

首先讓我們澄清一件事:Access并沒有死亡,而且也不會(huì)即將死亡。這似乎違背了數(shù)據(jù)庫(kù)軟件世界中所有合理的和被大家認(rèn)可的公理,但是這是我們不得不接受的事實(shí)。


數(shù)據(jù)研究公司的統(tǒng)計(jì)結(jié)果在這點(diǎn)上保持了高度的一致:使用Access的公司數(shù)量不多,但是忠誠(chéng)度很高。HG Insights統(tǒng)計(jì)出目前使用Access的公司有140,000家,這是使用更加專業(yè)的SQL Server的公司數(shù)量的一半。Infoclutch公司的統(tǒng)計(jì)結(jié)果與其一致。而DB-Engines根據(jù)數(shù)據(jù)庫(kù)軟件在搜索、社交媒體和Stack Overflow等網(wǎng)站中出現(xiàn)的頻率對(duì)其進(jìn)行排名,它得出的結(jié)論是:Access在世界上最流行的數(shù)據(jù)庫(kù)排名中名列第九!

也就是說:Access擠進(jìn)了DB-Engines的數(shù)據(jù)庫(kù)排名的前十名,和它排在一起的同時(shí)還有許多功能非常強(qiáng)大的數(shù)據(jù)庫(kù)。


這些統(tǒng)計(jì)數(shù)字幾乎肯定夸大了Access的普及程度。許多企業(yè)使用不止一種類型的數(shù)據(jù)庫(kù)軟件,他們?cè)贏ccess上運(yùn)行的應(yīng)用程序幾乎可以肯定范圍更小,處理的數(shù)據(jù)更少,而且除非公司的掌舵人有自殺的傾向,否則他們不會(huì)把公司日常運(yùn)營(yíng)管理中至關(guān)重要的數(shù)據(jù)運(yùn)行在Access數(shù)據(jù)庫(kù)上。同樣地,很多公司對(duì)一些他們正在使用的技術(shù)并不知情,比如說,每一個(gè)有WordPress網(wǎng)站的企業(yè)也都依賴MySQL數(shù)據(jù)庫(kù),即使這些數(shù)據(jù)庫(kù)是其他公司為他們托管的。


對(duì)于Access數(shù)據(jù)庫(kù)的隱性普及,我深有體會(huì)。在2009年,我一時(shí)興起,寫了一本關(guān)于Access的書。寫這本書的理由很簡(jiǎn)單,多年來,我一直在使用Access來編寫一些快速的、臨時(shí)的數(shù)據(jù)解決方案,比如跟蹤一組書籍,或者管理咨詢工作中的發(fā)票和付款。所有這些場(chǎng)景都需要用到Excel不能提供的結(jié)構(gòu)和數(shù)據(jù)編輯控件,這些都可以很容易地在Access數(shù)據(jù)庫(kù)環(huán)境下找到。使用幾張表,一些約束關(guān)系,一組小查詢,一到兩個(gè)報(bào)告,一個(gè)下午的時(shí)間就搞定了。


但是,我從來不建議任何人在他們的電子商務(wù)網(wǎng)站后面運(yùn)行一個(gè)Access數(shù)據(jù)庫(kù),如果你真的敢這樣做,你就自求多福吧。

我寫那本書的目的是為了記住我學(xué)到的技巧和避免重蹈覆轍,我相信那本書很快就會(huì)消失得無影無蹤。但是令我驚訝的是,它居然成了我最受歡迎的書目之一。那本書銷售至今都沒有停止,現(xiàn)在大約每一天或兩天都能賣出一本。顯然,現(xiàn)在仍然有人對(duì)Access感興趣,即使僅僅是因?yàn)樗麄冃枰鉀Q上一代業(yè)余程序員留給他們的爛攤子。


微軟試圖殺死Access,但是失敗了


每一個(gè)混跡于科技圈的人都曾經(jīng)目睹過一款最受歡迎的軟件過早地走向了盡頭。谷歌公司的廢棄項(xiàng)目可以排成一整片的墓地,微軟公司也曾因?yàn)槔溲獨(dú)⑺雷约旱暮⒆樱ㄜ浖┒裘阎ㄓ袝r(shí)甚至一次殺掉幾個(gè))。比如當(dāng)年微軟宣布放棄Expression Studio這個(gè)旨于與Adobe競(jìng)爭(zhēng)的完整軟件家族時(shí),這個(gè)軟件家族中的所有軟件(包括網(wǎng)絡(luò)、設(shè)計(jì)和媒體編碼工具等軟件)都一次性被放棄了。

但是不知道出于何種原因,當(dāng)微軟公司把屠刀指向Access時(shí),它卻意外地手下留情了。


微軟的第一個(gè)錯(cuò)誤是決定不一步殺死Access,這完全不像它在殺死Silverlight、PhotoDraw、Minecraft和許多其他軟件時(shí)的決絕。相反,微軟首先試圖弱化Access的重要性,它通過故意冷落Access來邊緣化它。比如說,在MS Office 2013發(fā)布的幾個(gè)月前,微軟甚至沒有正式的答案來確定是否會(huì)有Access 2013。


接下來,微軟開始修改它的特性,去掉一些舊的,但是有時(shí)仍然很流行的功能。比如說,導(dǎo)入像dBASE這樣的舊格式的能力被移除,創(chuàng)建透視表的能力也被移除,為SQL Server數(shù)據(jù)庫(kù)創(chuàng)建Access前端的能力也不再提供,與此同時(shí),將Access數(shù)據(jù)庫(kù)遷移到SQLServer的升遷向?qū)б搽S之消失了。這就像Hostel這部恐怖影片特許放影的噩夢(mèng)。每一次發(fā)布,微軟都會(huì)從Access身上砍掉一塊,但仍然保留了它的主程序。


最引人注目的是,微軟試圖提供一條脫離Access世界的升級(jí)路徑。微軟接二連三地創(chuàng)建并放棄了至少三種不同的框架,試圖將Access數(shù)據(jù)庫(kù)放到web上。包括兩個(gè)Access Web數(shù)據(jù)庫(kù)(在Access 2010中引入)和一個(gè)Access Web應(yīng)用程序(在Access 2013中引入),它們都是構(gòu)建在SharePoint和SQL Server上。但是兩者都沒有成功,而Access 2019就成了十多年來第一個(gè)完全沒有Web功能的軟件版本。


這些是我們?cè)谄渌恍┦〉能浖袥]有看到的東西。我們看到微軟試圖在Access之外給它提供一個(gè)升級(jí)路徑,但是失敗了,最后它被迫完全放棄。這就像弗蘭肯斯坦的怪物一樣,造物主拋棄了他的創(chuàng)造物,但是卻無法殺死它。


Access和它的持久生命力向我們揭示了什么?


老舊的軟件系統(tǒng)在技術(shù)領(lǐng)域長(zhǎng)久存留并不是一件令人驚訝的事。畢竟,我們現(xiàn)在還有人在使用COBOL。但是Access的不尋常之處在于,盡管受到了創(chuàng)建它的公司的惡意地忽視,但是它依然經(jīng)久不衰。


是什么原因讓Access可以無視它的局限性而如此經(jīng)久不衰呢?這里面有文化和實(shí)踐兩方面的原因,但以下三個(gè)原因更為突出。


1. 高級(jí)用戶的需求缺口


Access的受眾是一個(gè)特殊的群體,軟件開發(fā)很少以他們作為目標(biāo)受眾:這些人屬于技術(shù)人員,但是又不是真正的代碼編寫者,他們可能知道如何繞過office宏,但是他們又沒有正式的編程背景。在不算久遠(yuǎn)的那個(gè)時(shí)代,我們稱這些人為“power user(高級(jí)用戶)”。

高級(jí)用戶可能是一個(gè)危險(xiǎn)的群體。只需要給他們一點(diǎn)幫助,他們就可以制造出一種非常強(qiáng)大的武器來傷害到他們自己。他們具有我們必須重視的未開發(fā)潛力。為這一類的技術(shù)人員提供一種解決問題的方法,而不需要他們編寫一頁(yè)頁(yè)的代碼,他們就可以在這些方面有所作為,如自動(dòng)化小任務(wù),管理自己的數(shù)據(jù)孤島,幫助他們保持本地環(huán)境的組織性和有效性。


如今,人們?nèi)匀豢释褂脽o代碼或輕代碼工具。那些工作積極的人們希望自己完成自己的工作,而不是為每一次數(shù)據(jù)庫(kù)檢索付費(fèi)給昂貴的專業(yè)人員。但是到目前為止,我們提供給他們的唯一產(chǎn)品是上一代人使用的VBA宏語言和一些昂貴的工具,像PowerApps這種工具只有在你的企業(yè)注冊(cè)了一堆微軟云產(chǎn)品時(shí)才能夠?yàn)槟愎ぷ鳌?/p>


2. 真正的力量是賦予別人力量


如果說Access的成功有一個(gè)秘訣的話,那就是:Access之所以成功,是因?yàn)樗屓藗兏械綇?qiáng)大。

下面是另一個(gè)在工作中使用 Access的例子。我的搭檔需要跟蹤一個(gè)有多個(gè)地點(diǎn)的小型音樂學(xué)校的家庭、學(xué)生、班級(jí)和出勤率。不存在多人同時(shí)編輯數(shù)據(jù)庫(kù)的危險(xiǎn),也不需要將其他平臺(tái)上查詢數(shù)據(jù)。這種場(chǎng)景下,一個(gè)具備完全功能的SQL Server應(yīng)用程序會(huì)更好用嗎?答案是“是的”,甚至一個(gè)免費(fèi)使用的SQL Server Express會(huì)更好用。但是,即使設(shè)計(jì)這樣的應(yīng)用程序是一項(xiàng)簡(jiǎn)單的任務(wù),它也不是一天可以完成的事情。對(duì)于這個(gè)應(yīng)用程序的用戶來說,沒有一種簡(jiǎn)單的方法可以像使用Access一樣,可以用他們自己的表單和報(bào)表來實(shí)現(xiàn)并增強(qiáng)它。


3. 千萬不要低估“就是好用”的價(jià)值


考慮一下,建立一個(gè)專業(yè)的數(shù)據(jù)庫(kù)解決方案需要做些什么。要完成我剛才提到的使用SQL Server Express的示例,你至少需要完成以下步驟:
1.安裝SQL Sever Express。確保所有的配置設(shè)置正確就位,以便數(shù)據(jù)庫(kù)服務(wù)能在輸入命令后正確啟動(dòng)。
2.下載SQL Server Management Studio,這樣就不需要在命令行中使用SQL命令來創(chuàng)建數(shù)據(jù)庫(kù)。
3.創(chuàng)建需要的數(shù)據(jù)庫(kù)和表。(這部分幾乎和Access一樣簡(jiǎn)單!)
4.選擇你的編程語言、數(shù)據(jù)庫(kù)庫(kù)和開發(fā)環(huán)境。也許你會(huì)選擇一些類似Visual Studio Community這樣的工具,它們會(huì)有助于將各部分連接到一起。
5.在你的代碼中建立一個(gè)到你的數(shù)據(jù)庫(kù)的連接。根據(jù)你采用的方法不同,你可以編寫自己的代碼或使用類似Entity Framework這樣的代碼生成工具。。
6.接下來真正的樂趣開始了。為了訪問數(shù)據(jù)庫(kù),你需要向運(yùn)行代碼的賬戶(通常不是你自己的賬戶)授予正確的數(shù)據(jù)庫(kù)訪問權(quán)限。根據(jù)我多年的編程教學(xué)經(jīng)驗(yàn),這點(diǎn)從來都是給新手編程設(shè)置障礙的絆腳石。

上面這個(gè)步驟列表沒有做任何實(shí)際的事情。它只是準(zhǔn)備環(huán)境和配置Access所需要做的準(zhǔn)備工作。如果將這些讓Access能夠工作起來所需要的成本進(jìn)行比較的話,接下來,啟動(dòng)Access、創(chuàng)建一個(gè)數(shù)據(jù)庫(kù),并且讓它工作,就是一件輕而易舉之事。


盡管根據(jù)便利性很難給一個(gè)軟件定價(jià),但是那些“就是好用”的東西的吸引力已經(jīng)讓許多普通的技術(shù)一夜成名。


寫在最后


所以,為什么Access還活著?為什么這樣一個(gè)有點(diǎn)尷尬的僵尸會(huì)站在一個(gè)絕對(duì)沒有被邀請(qǐng)的派對(duì)角落里?答案很簡(jiǎn)單:Access適合于普通人。

它助長(zhǎng)了一些壞習(xí)慣,這是事實(shí);擴(kuò)展它幾乎會(huì)招致某種災(zāi)難,這也是事實(shí);但是這些都無關(guān)重點(diǎn)。只要有人想要這樣的一個(gè)工具,僅僅以少許的復(fù)雜性,就能給普通人帶來那么多的力量,那么,Access盡管蹣跚難行,不受待見,并且?guī)缀醣凰膭?chuàng)造者拋棄,但它仍然有其存在的價(jià)值。而擺在我們面前的真正的問題是:我們有勇氣為了取代它而付出為每個(gè)人建立一個(gè)數(shù)據(jù)庫(kù)工具包的代價(jià)嗎?

分享
文章分類
聯(lián)系我們
聯(lián)系人: 王先生
Email: 18449932@qq.com
QQ: 18449932
微博: officecn01
移動(dòng)訪問