Microsoft Access:擁有不死之身的資料庫

2020-12-25 36氪

神譯局是36氪旗下編譯團隊,關注科技、商業、職場、生活等領域,重點介紹國外的新技術、新觀點、新風向。

編者按:只要有過一點資料庫概念的人幾乎都接觸過Access。跟複雜的專業資料庫相比,它簡單易用,幾乎不用做什麼設置就能馬上使用。但是另一方面它又極其受限,只要你想擴大一點使用範圍就會遭遇各種狀況。因此,它就像弗蘭肯斯坦造出來的怪人,微軟一直都想把自己的創造物給幹掉。然而,它又像一個多少顯得有點尷尬的殭屍,總會站在一場自己絕對不會被邀請的聚會的角落。是什麼原因導致Access在強手林立的市場中擁有不死之身呢?Matthew MacDonald為我們提供了他的見解,原文發表在Medium上,標題為:Microsoft Access: The Database Software That Won’t Die

給你們講個萬聖節故事,普通的企業程式設計師一定會被嚇到。想像一下,你把公司寶貴的業務數據放進了由企業巨頭微軟支撐的一個的友好資料庫程序裡面。一開始一切看起來都很完美。但是,你卻無法動搖那厄運將至的可怕感覺。

然後,那些跡象開始顯露。當使用它們只有三個人時,這種形式工作得很好,不過當全公司都加入時,它們就會出現一些神秘的故障。老闆要求你創建一個Web界面,好讓遠程辦公室可以用這個資料庫,結果你什麼也沒找到。在web本該出現的地方卻是一片空白。你於是想找找常見資料庫的成分。安全模型?(沒有,每一個用戶都能訪問一切。)適當的數據完整性嗎?(沒有,因為沒有記錄資料庫操作的日誌文件。)開放標準嗎?(問都不要問。)你感到毛骨悚然。

最恐怖的是什麼?它甚至都不是免費的。

這就是Microsoft Access的故事,這是一種很容易使用的資料庫軟體,已有近30年的歷史,至少在10年前就開始顯示老態了。你可能以為Access早就完蛋了。但是你錯了。實際上,Access還在繼續像殭屍一樣挪動,它的使用率既沒有增長也沒有下降。微軟已經不止一次嘗試想要關停這款資料庫,但是用戶社區奮力抗爭,成功地讓它活了下來——哪怕FrontPage、Visual Basic 6等舊產品已被冷落並且埋進地下。

把Access鄙視成又一個遺留軟體噩夢很容易。但是Access的故事給每一位軟體設計師都提供了經驗教訓。它為我們可以洞悉讓一款產品活下來,發展下去,然後在有效期過後仍能苟延殘喘很久的秘密是什麼。

Access到底有多麼受歡迎

我們得馬上弄清楚一件事。Access沒有死,也不會死。這似乎違反了資料庫軟體世界所有合情合理的規矩,但這就是殘酷的現實

數據研究公司始終發現這一點:儘管使用Access的公司不多,但都很忠誠。據HG Insights統計,目前有14萬家公司在使用Access,這個數字是使用更為專業的SQL Server 的公司數的一半。Infoclutch 也有類似記錄。而根據在搜索、社交媒體和Stack Overflow等網站上出現的頻率來對資料庫軟體進行排名的DB-Engines則認為,Access是全球第九大最受歡迎的資料庫:

Access躋身了DB-Engines資料庫排行榜前十名,跟它一道的很多都是功能更強大的資料庫

這些統計數據幾乎肯定誇大了Access的普及度。很多企業會使用不止一種資料庫軟體,而且他們用來跑Access的應用幾乎可以肯定適用範圍是比較小的,處理的數據是比較少的,而且,除非CEO有死亡願望,否則的話,Access是決計不會用於日常運營的關鍵部分。另外,一些公司使用某些技術時根本沒意識到自己用了那些技術也是真的。比方說,每個擁有WordPress網站的企業也都要依賴MySQL,哪怕是別人替它們託管也要用到MySQL。

我對Access隱秘的流行有自己的體驗。2009年,我寫了一本關於Access的書。我寫這本書的原因很簡單。多年來,我一直在用Access來提供快速、臨時的數據解決方案——比如跟蹤藏書集,或者管理我諮詢工作當中發生的發票、付款之類的事情。跟Excel相比,所有這些場景都需要更多的結構以及數據編輯控制,但是這些很容易就可以接受Access的環境限制。幾張表,帶有約束的一些關係,規模不大的查詢集,再加上一兩個報表——一個下午就能把工作搞定。

話雖如此,我從來都建議把Access資料庫放到你的電子商務網站後面。如果你這樣做的話,責任自負。

我寫這本書是為了總結所學到的技巧和遇到的陷阱,當然這些東西很快就會消失不見,默默無聞。但令我感到驚訝的是,這筆書竟然成了我最受歡迎之一。銷量還在繼續增長,大概每天或每兩天就能售出一本。顯然,仍然有人對Access感興趣,即使這僅僅是因為他們想要結束上一代業餘程式設計師留下的混亂局面。

如何試著幹掉一個程序(然後以失敗告終)

做技術這一行的每個人都曾目睹過自己喜歡的軟體最終壽終正寢的場面。被廢棄的Google項目可以擠滿一整個墓地。微軟也以幹掉自己的小孩而臭名昭著,有時甚至是一次就幹掉幾個,比方說,當它關停Expression Studio時,斃掉的可是跟Adobe競爭的一整個web、設計以及媒體編碼工具家族。

但是出於某種原因,當Microsoft盯上了Access之後,他們猶豫了。

第一個錯誤是他們沒有像對待Silverlight、PhotoDraw、Minecraft 以及許多其他工具一樣,決定不一步到位斃掉Access。相反,微軟試圖鼓勵把Access變得無關緊要。首先,他們想通過忽視Access來讓Access知難而退。距離Office 2013發布版還剩幾個月時,微軟甚至還沒有給出是否還有Access 2013的官方回復。

然後他們開始自廢武功,把舊的,有時仍然受歡迎的備用功能。比方說像導入dBASE之類舊格式的功能已經去掉了。創建數據透視表的能力也已經取消了。為SQL Server資料庫創建Access前端的能力也沒有了,還有把Access資料庫遷移到SQL Server 的升遷嚮導也去掉了。這簡直就像是Hostel的噩夢。每次發布時,微軟都會自卸Access一塊,但程序仍然存在。

其中最引人注目的是微軟試圖提供一種擺脫Access世界的升級辦法。很快,微軟就建立了(然後又放棄了)三個以上的不同框架來把Access資料庫放在Web上。其中的兩個,Access Web資料庫(在Access 2010中引入)和Access Web應用(在Access 2013中引入)都是基於SharePoint和SQL Server開發的。但這兩個均未取得成功,並且Access 2019成為了近十年來第一個完全沒有web功能的版本。

接下來我們會介紹Access的一些在其他的被淘汰軟體身上看不到的東西。我們觀察到微軟設法想提供退出Access的升級途徑,然後遭遇失敗,最後完全放棄。就像科學怪人造出來的那個怪物一樣,創造者已經遺棄了自己的創造物,但依然無法幹掉它。

Access以及它的頑強生命所帶來的經驗教訓

舊事物在技術的世界裡陰魂不散並不出奇。畢竟,我們還有COBOL。但是Access的不尋常之處在於,雖然生它出來它的公司並沒有善待它,但是它仍然可以承受這一切。

是什麼讓Access在如此受限的情況仍然活得這麼久?個中不乏文化和實用方面的原因,但有3點特別突出。

1.超級用戶鴻溝

Access的受眾是一批特殊的群體。這個群體現如今已經很少能成為目標受眾了:那就是並非嚴肅編碼者的技術人員。這批人弄個Office宏來繞開問題還行,但是他們缺乏正規的編程背景。不久前,我們還把這種人成為是「超級用戶」。

幫助超級用戶可能會很危險。只需一點知識,你就能製造出非常強大的會射到自己腳的武器。但是這裡面又蘊含著有巨大的待開發潛力。為技術人員提供一種無需編寫代碼即可解決問題的方法,讓他們可以有所作為——把小型任務自動化,管理自己的數據孤島,以及幫助保持其本地環境的組織性和有效性等等。

時至今日,對無代碼或輕代碼工具的需求依然很饑渴。對於可以避開每一個標點符號都要算錢的昂貴專業人士來完成自己的工作,那些人是有動力的。但是到目前為止,我們提供給他們的唯一產品是一代之前的VBA宏語言以及類似PowerApps這樣的昂貴工具,只有在你的企業訂閱了一堆微軟的雲產品之後才能用上那些東西。

2.真正的強大在於給別人賦權

如果Access的成功有什麼秘訣的話,那就是:Access成功是因為它讓大家感到自己的強大。

Access的作用我們還可以舉個例子。我的合伙人要為一所小型音樂學校跟蹤家庭、學生、班級以及出勤情況。做這件事沒有多人同時編輯資料庫的危險,也無需將數據開放給其他平臺。功能完善的SQL Server應用會更好嗎?是的,我甚至可以用免費版的SQL Server Express做到這一點。但是,即便設計這樣的應用是一項簡單的任務,那也不是那種一天就能搞定的事情。而且,這種應用的用戶並沒有想使用Access一樣簡單的方法來用自建的表格和報表來增強愛應用。

3.永遠不要高估「就是這麼管用」

姑且設想一下,安裝專業資料庫解決方案都需要些什麼。就以安裝我剛剛提到的SQL Server Express為例,你(至少)需要完成以下步驟:

安裝SQL Sever Express。要確保若干配置設置都設置好了,這樣資料庫服務才能夠正常啟動。下載SQL Server Management Studio,這樣你就不需要用命令行方式,通過SQL命令來創建資料庫了。創建資料庫以及表。(這一部分幾乎跟Access一樣簡單!)選擇一種程式語言,資料庫的庫以及開發環境。也許你會選擇Visual Studio Community之類的東西,因為它把這些東西都打包在一起了。在你的代碼裡面寫連接到資料庫的語句。根據做法的不同,你可能會自己寫代碼或者用類似Entity Framework之類的代碼生成工具。接下來才是有趣的開始。為了訪問資料庫,你需要給執行你的代碼的帳號(通常不是你自己的帳號)授予正確的數據權限。根據我多年教別人編程的經驗,對於編程菜鳥來說這幾乎是個必定會導致他們摔跤的絆腳石。上面這一系列的步驟其實什麼都沒做。那些只是準備環境所需要的步驟。把那些跟Access的啟動成本比較一下。啟動Access、建立資料庫之後,你想讓它不工作都很難。

很難給便利性定價,但是東西「管用」的吸引力已經讓許多一般般的技術變得一夜成名。

所以,為什麼Access還沒有死的答案很簡單,那是因為一個多少顯得有點尷尬的殭屍,站在一場自己絕對不會被邀請的聚會的角落。Access適用於普通人。說它鼓勵不良習慣,這是事實,擴大它的使用範圍幾乎可以肯定會引發災難也是事實,但這些都無關緊要。只要沒人願意開發這樣一種工具——賦予普通人那麼大的能力,又把複雜性降到那麼低的工具, Access就會一直這麼踉踉蹌蹌地走下去,儘管不受它的創建者待見和承認,但是仍然有它的使命。真正的問題是我們敢不敢開發一種服務於人人的資料庫來取代它呢?

譯者:boxi。

相關焦點

  • Access資料庫的用途和優缺點
    1995年末,access 95發布,這是世界上第一個32位關係型資料庫管理系統,使得access的應用得到了普及和繼續發展。1997年,access 97發布。它的最大特點是在access資料庫中開始支持web技術,這一技術上的發展,開拓了access資料庫從桌面向網絡的發展。
  • 如何創建ACCESS資料庫表格?
    access是微軟的關係資料庫管理系統,界面簡潔易操作,是最好上手的資料庫,易學易操作,是最適合非計算機專業人員學習的資料庫。access擁有強大的數據處理和統計分析能力,處理速度快,操作方便。用access開發的各類企業軟體,大幅了提高企業管理人員的工作效率。
  • 如何創建access資料庫
    如何創建access資料庫?若要創建Access資料庫,需要首先創建一個資料庫表,然後定義要存儲在該表中的所有欄位的名稱。使用Access資料庫表,您可以將文件劃分為單獨的部分。例如,一個資料庫表可以保存您所有客戶的姓名和地址,第二個資料庫表可以保存您所有員工的姓名和地址,而第三個資料庫表可以保存您的供應商的姓名和地址。 Access將所有這些相關信息存儲在硬碟上保存的單個Access文件中。若要設計Access資料庫,可以從頭開始創建資料庫,也可以使用可以修改的現有模板。設計資料庫意味著既要定義用於存儲信息的欄位數,又要定義每個欄位可以容納的最大數據量。
  • 將mysql數據導入access資料庫
    首頁 > 語言 > 關鍵詞 > 最新資訊 > 正文 將mysql數據導入access資料庫
  • 上帝的寵兒,動漫中那些擁有不死之身的角色
    擁有不死之身是每個人都有過的願望,雖然在現實中是不可能的。而在動漫世界這個萬物皆有可能的地方,擁有不死之身似乎也成為了一個很常見的東西。今天我們就來一起盤點一下動漫中那些擁有著不死之身的角色吧。1.C.C——《叛逆的魯魯修》第一個要說的肯定就是我們的C.C女王了,她被冠有「不死魔女」的稱號,不過一開始她不過是歐洲某個國家的奴隸,與擁有CODE能力的修女籤訂了契約。後來殺死的修女後,C.C成為了下一代的CODE持有者。擁有者不死之身的她與魯魯修籤訂契約,負責保護他的安全,而魯魯修稱她為「不老不死的魔女」。
  • EXCEL中如何導入Access資料庫
    EXCEL中如何導入Access資料庫 這裡簡單介紹一下Access數據,access數據是指利用office Access程序創建的資料庫,但是有資料庫如何調取也是讓人頭疼的,今天簡單的介紹一下簡單操作,將需要的數據從
  • Access中查詢SQL資料庫中文字符的問題處理
    用access連結sql server中的表,建立選擇查詢時,無法查找中文數據,在這裡採用了傳遞查詢來解決這個問題。
  • 龍珠:全王能力高於超級神龍,扎馬斯擁有不死之身,卻被殺死了
    因為反派只要召喚出神龍,一般都會讓自己永生不死之身,或者得到永久的壽命。導致這些反派就變得無比難對付。就像扎馬斯一樣,因為擁有不死之身,即便實力不是很強。但是未來世界的所有神明都被殺死了。即便是孫悟空和貝吉塔聯手,也是戰敗了好幾次,最初通過全王才獲得了勝利。說明全王要是沒有出現的話,被打敗的就不是扎馬斯了,而是孫悟空。
  • 他擁有快銀的穿越能力,無盡的財富,還有不死之身,卻被人遺忘!
    他擁有快銀的穿越能力,無盡的財富,還有不死之身,卻被人遺忘!死侍本身擁有強於金剛狼的自愈能力,之後還遭受了滅霸的詛咒,獲得不死之身,即使他想死也沒有辦法,可以說這個給他造成了困難,因為他再也見不到死亡之女了,在心理上承受的壓力真的很大!
  • Scilligence系列會議之 —— Microsoft Office與註冊和生物測定資料庫的集成
    PM (美國東部時間)演講人:Jonathan Buttrick, Scilligence (全英文演講)該活動將重點關注Scilligence的註冊系統和MS Office中的數據分析和可視化選項主題包括:•通過TouchMol4Office插件將MS Office與RegMol(註冊實體和相關生物測定數據的資料庫
  • 利用DAO與ADO,VBA與Access資料庫相連接
    VBA可以訪問的資料庫類型有Microsoft access、dBase、Microsoft SQLServer、Oracle 等,這給VBA的利用範圍得到擴展。我們的講解主要是VBA與Access資料庫的連接方式,這種連接是大多數的應用。
  • 死侍擁有不死之力、鳳凰女擁有鳳凰之力,驚奇隊長卻擁有三種力量
    在漫威的宇宙裡,超級力量一直都是宇宙中最可怕的能量,如今已經被掌控的超級能量有兩種,第一種是死侍的不死之力,第二種就是鳳凰女的鳳凰之力。但實際上在劇中還有一位英雄,掌控了不止一種超級能量,今天小編就帶大家來盤點一下。
  • 這種能力讓小紫擁有了「不死之身」
    海賊王現在已經更新到了920集,在海賊王920集中和之國最漂亮的女孩小紫登場了,據說小紫的容貌能媲美女帝,可見小紫是多麼的漂亮。但是看過漫畫的動漫迷們應該很清楚,這次小紫前往將軍府時因為不順從大蛇將軍最後死在了狂死郎的刀下,之後另一個女孩出現,而這個女孩就是桃之助的妹妹光月日和,其實很多動漫迷們看到光月日和時一直認為是小紫,畢竟兩個人長得實在太像了,其實可以說小紫既是光月日也不是光月日和,為什麼這樣說呢?
  • ACCESS資料庫
    教學目的:掌握資料庫基礎知識,理解關係資料庫幾個概念教學重點:資料庫系統的基本概念、數據模型教學難點:數據模型、關係資料庫
  • Access資料庫是做什麼的?
    簡單來說,Access資料庫是Excel的一種升級和外延,是微軟Office軟體系列的頂點和最最高級部分。Access資料庫和Excel搭配使用,威力驚人。很多人願意比較Access和Excel,喜歡說用二者各自的短處與對方的長處進行對比。其實二者功能性重合的地方並不多,是互補的關係,而不是誰替代誰的關係。
  • 火影忍者日本史 | 不死之身:神魔之力與科技之力
    忍者出身的飛段渴望戰爭厭惡和平主義,正逢此時出現了一個以「殺害所有人」為宗旨的新興宗教邪神教,於是飛段欣然加入,也正是在加入邪神教後的修煉過程中,飛段獲得了不死之身——需要注意的是,飛段的不死之身不是祝福而是詛咒,其能力需要以通過持續殺戮才能維持,因而飛段將每一次殺人都有著極強的儀式感,而其本身也正是對邪神的供奉。
  • 掌握Excel的前提是學好Access資料庫
    這些回答不能說不對,但是很局限。宇哥的回答是這樣的:跳出Excel的局限思維,直接學習Access資料庫,再回頭學習Excel,才是最快最有效的學習Excel的手段。這個道理一點都不難理解,因為Access資料庫是Excel的進階版本。
  • 電影《忌日快樂2》,女孩擁有不死之身,用過種手段尋死回到過去
    我是小奕,今天給大家推薦一部恐怖電影,女孩擁有不死之身,可一點也不快樂,為了讓自己死去用過各種方法,甚至到超市喝大桶清潔劑。故事開始,男主角黃毛在車裡睡著了,醒來後在他回家的路上遇到滑板少年,差點將自己撞到、被路上老太太牽著的狗咬、回到家裡去發現室友在和一個大美女做著不可描述的事情,黃毛之後垂頭喪氣,耷拉著腦袋離開宿舍。
  • Access資料庫連接的基本用法介紹
    一、Access資料庫連接之建立Access資料庫連接的常用方法在ASP中建立對Access資料庫連接的一般格式如下:DbPath=Server.MapPath(資料庫名)Set Conn=Server.CreatObject(「ADODB.Connection」)Conn.Open 「driver={Microsoft
  • Access教程(一)| 資料庫的基本知識
    資料庫是自描述的    資料庫除了包含用戶的源數據以外,還包含關於它本身結構的描述,這個描述稱作數據詞典(或數據目錄、元數據)。從這個意義上講,資料庫與作為一個自描述的書的集合的圖書館相似:除了書籍以外,圖書館還包含一個描述它們的卡片目錄。