麒麟v10 上部署 TiDB v5.1.2 生产环境优化实践
650
2023-04-10
数据库中的异类access数据库
只要有过一点数据库概念的人几乎都接触过Access。跟复杂的专业数据库相比,它简单易用,几乎不用做什么设置就能马上使用。但是另一方面它又极其受限,只要你想扩大一点使用范围就会遭遇各种状况。因此,它就像弗兰肯斯坦造出来的怪人,微软一直都想把自己的创造物给干掉。然而,它又像一个多少显得有点尴尬的僵尸,总会站在一场自己绝对不会被邀请的聚会的角落。是什么原因导致Access在强手林立的市场中拥有不死之身呢?Matthew MacDonald为我们提供了他的见解,原文发表在Medium上,标题为:Microsoft Access: The Database Software That Won’t Die
然后,那些迹象开始显露。当使用它们只有三个人时,这种形式工作得很好,不过当全公司都加入时,它们就会出现一些神秘的故障。老板要求你创建一个Web界面,好让远程办公室可以用这个数据库,结果你什么也没找到。在web本该出现的地方却是一片空白。你于是想找找常见数据库的成分。安全模型?(没有,每一个用户都能访问一切。)适当的数据完整性吗?(没有,因为没有记录数据库操作的日志文件。)开放标准吗?(问都不要问。)你感到毛骨悚然。
最恐怖的是什么?它甚至都不是免费的。
把Access鄙视成又一个遗留软件噩梦很容易。但是Access的故事给每一位软件设计师都提供了经验教训。它为我们可以洞悉让一款产品活下来,发展下去,然后在有效期过后仍能苟延残喘很久的秘密是什么。
Access到底有多么受欢迎
我们得马上弄清楚一件事。Access没有死,也不会死。这似乎违反了数据库软件世界所有合情合理的规矩,但这就是残酷的现实
数据研究公司始终发现这一点:尽管使用Access的公司不多,但都很忠诚。据HG Insights统计,目前有14万家公司在使用Access,这个数字是使用更为专业的*** 的公司数的一半。Infoclutch 也有类似记录。而根据在搜索、社交媒体和Stack Overflow等网站上出现的频率来对数据库软件进行排名的DB-Engines则认为,Access是全球第九大最受欢迎的数据库:
Access跻身了DB-Engines数据库排行榜前十名,跟它一道的很多都是功能更强大的数据库
这些统计数据几乎肯定夸大了Access的普及度。很多企业会使用不止一种数据库软件,而且他们用来跑Access的应用几乎可以肯定适用范围是比较小的,处理的数据是比较少的,而且,除非CEO有死亡愿望,否则的话,Access是决计不会用于日常运营的关键部分。另外,一些公司使用某些技术时根本没意识到自己用了那些技术也是真的。比方说,每个拥有WordPress网站的企业也都要依赖MySQL,哪怕是别人替它们托管也要用到MySQL。
我对Access隐秘的流行有自己的体验。2009年,我写了一本关于Access的书。我写这本书的原因很简单。多年来,我一直在用Access来提供快速、临时的数据解决方案——比如跟踪藏书集,或者管理我咨询工作当中发生的发票、付款之类的事情。跟Excel相比,所有这些场景都需要更多的结构以及数据编辑控制,但是这些很容易就可以接受Access的环境限制。几张表,带有约束的一些关系,规模不大的查询集,再加上一两个报表——一个下午就能把工作搞定。
我写这本书是为了总结所学到的技巧和遇到的陷阱,当然这些东西很快就会消失不见,默默无闻。但令我感到惊讶的是,这笔书竟然成了我最受欢迎之一。销量还在继续增长,大概每天或每两天就能售出一本。显然,仍然有人对Access感兴趣,即使这仅仅是因为他们想要结束上一代业余程序员留下的混乱局面。
如何试着干掉一个程序(然后以失败告终)
但是出于某种原因,当Microsoft盯上了Access之后,他们犹豫了。
第一个错误是他们没有像对待Silverlight、PhotoDraw、Minecraft 以及许多其他工具一样,决定不一步到位毙掉Access。相反,微软试图鼓励把Access变得无关紧要。首先,他们想通过忽视Access来让Access知难而退。距离Office 2013发布版还剩几个月时,微软甚至还没有给出是否还有Access 2013的官方回复。
然后他们开始自废武功,把旧的,有时仍然受欢迎的备用功能。比方说像导入dBASE之类旧格式的功能已经去掉了。创建数据透视表的能力也已经取消了。为***数据库创建Access前端的能力也没有了,还有把Access数据库迁移到*** 的升迁向导也去掉了。这简直就像是Hostel的噩梦。每次发布时,微软都会自卸Access一块,但程序仍然存在。
其中最引人注目的是微软试图提供一种摆脱Access世界的升级办法。很快,微软就建立了(然后又放弃了)三个以上的不同框架来把Access数据库放在Web上。其中的两个,Access Web数据库(在Access 2010中引入)和Access Web应用(在Access 2013中引入)都是基于SharePoint和***开发的。但这两个均未取得成功,并且Access 2019成为了近十年来第一个完全没有web功能的版本。
接下来我们会介绍Access的一些在其他的被淘汰软件身上看不到的东西。我们观察到微软设法想提供退出Access的升级途径,然后遭遇失败,最后完全放弃。就像科学怪人造出来的那个怪物一样,创造者已经遗弃了自己的创造物,但依然无法干掉它。
Access以及它的顽强生命所带来的经验教训
旧事物在技术的世界里阴魂不散并不出奇。毕竟,我们还有COBOL。但是Access的不寻常之处在于,虽然生它出来它的公司并没有善待它,但是它仍然可以承受这一切。
是什么让Access在如此受限的情况仍然活得这么久?个中不乏文化和实用方面的原因,但有3点特别突出。
1、超级用户鸿沟
帮助超级用户可能会很危险。只需一点知识,你就能制造出非常强大的会射到自己脚的武器。但是这里面又蕴含着有巨大的待开发潜力。为技术人员提供一种无需编写代码即可解决问题的方法,让他们可以有所作为——把小型任务自动化,管理自己的数据孤岛,以及帮助保持其本地环境的组织性和有效性等等。
时至今日,对无代码或轻代码工具的需求依然很饥渴。对于可以避开每一个标点符号都要算钱的昂贵专业人士来完成自己的工作,那些人是有动力的。但是到目前为止,我们提供给他们的唯一产品是一代之前的VBA宏语言以及类似PowerApps这样的昂贵工具,只有在你的企业订阅了一堆微软的云产品之后才能用上那些东西。
2、真正的强大在于给别人赋权
如果Access的成功有什么秘诀的话,那就是:Access成功是因为它让大家感到自己的强大。
Access的作用我们还可以举个例子。我的合伙人要为一所小型音乐学校跟踪家庭、学生、班级以及出勤情况。做这件事没有多人同时编辑数据库的危险,也无需将数据开放给其他平台。功能完善的***应用会更好吗?是的,我甚至可以用免费版的*** Express做到这一点。但是,即便设计这样的应用是一项简单的任务,那也不是那种一天就能搞定的事情。而且,这种应用的用户并没有想使用Access一样简单的方法来用自建的表格和报表来增强爱应用。
3、永远不要高估“就是这么管用”
姑且设想一下,安装专业数据库解决方案都需要些什么。就以安装我刚刚提到的*** Express为例,你(至少)需要完成以下步骤:
安装SQL Sever Express。要确保若干配置设置都设置好了,这样数据库服务才能够正常启动。
创建数据库以及表。(这一部分几乎跟Access一样简单!)
选择一种编程语言,数据库的库以及开发环境。也许你会选择Visual Studio Community之类的东西,因为它把这些东西都打包在一起了。
接下来才是有趣的开始。为了访问数据库,你需要给执行你的代码的账号(通常不是你自己的账号)授予正确的数据权限。根据我多年教别人编程的经验,对于编程菜鸟来说这几乎是个必定会导致他们摔跤的绊脚石。
上面这一系列的步骤其实什么都没做。那些只是准备环境所需要的步骤。把那些跟Access的启动成本比较一下。启动Access、建立数据库之后,你想让它不工作都很难。
很难给便利性定价,但是东西“管用”的吸引力已经让许多一般般的技术变得一夜成名。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。