本节书摘来自华章社区《DBA修炼之道:数据库管理员的第一本书》一书中的第1章,第1.2节独特的优势,作者(美)Craig S. Mullins,更多章节内容可以访问云栖社区“华章社区”公众号查看
1.2 独特的优势
一名优秀的DBA要享受挑战并且还得是出色的问题终结者。
DBA负责设计和维护企业的数据库,他处在企业的核心位置。这样,DBA就有机会去学习各个方面的业务,以及知晓知识间的关联。他们还能研究公司的前沿技术,这使得他们的工作充满了新鲜感——但是第一次尝试找出一项新技术是怎样工作的过程中可能会有挫折感。DBA常常是独自努力研究,在遇到问题的时候不会有其他专家帮忙。因此,一名优秀的DBA要享受挑战并且还得是出色的问题终结者。
1.2.1 DBA的薪资
作为技术人员你不会找到比DBA更有挑战的IT相关工作了。幸运的是,DBA的工作报酬也是相当丰厚的。根据一项由全球知识(Global Knowledge)与技术团体组织的薪资调查,DBA的薪资是78?468美元,而DBA管理者的平均薪资是87?261美元。这些平均薪资的数字比另外一项Janco薪资调查(前些年进行的)略低。
对于全职的DBA来说,既定薪资最高可达80?000美元。表1-1详细给出了在2006~2011年间DBA的既定薪资(数据来自Dice 2010-2011的技术薪资调查)。
请注意这里引用的薪资数字仅作说明之用,它们会随多种因素而变化。随着工作年限和从业人数的增加,薪资也必然随之增加。当然了,DBA的薪资和其他人的薪资一样也会因地域的不同而不同。在美国,东北部地区和西海岸的DBA薪资有可能是比其他区域高。行业类型也是因素之一,比如,制药厂比政府部门的薪资要高。当这些所有的因素都考虑到了,DBA的薪资数字就会稳居IT从业人员之首。
根据2012年计算机世界杂志的薪资调查,全国DBA的平均薪资是95?187美元,而一个有着15~20年工作经验且在太平洋海岸工作的DBA的平均薪资却是103?597美元。显然,工作经验和工作地点造成了显著的差异。
美国劳工统计局(BLS)提供了有关DBA雇佣和报酬的附加信息。自2012年5月起,BLS的报告称数据库管理员的年平均工资的中线是73?490美元,而既定年平均工资是75?730美元。10%的低工资的人挣得少于41?570美元,而10%的高工资的人挣得高于115?660美元。BLS还对收入统计按照地理区域进行了划分,你还可以根据他们的数据来确定你所在区域的期望薪资范围。
或许你的再就业能力比报酬更重要,受雇作为一名DBA的前景是相当好的。根据美国劳工统计局职业展望手册2010—2011版,“预计就业增长速度超过了平均值,工作的前景应当是非常好的”。事实上,在2008~2018年间,BLS预估DBA工作的数量会增加20%。
DBA的工作市场增长速度超过了平均值。
所以,DBA是高薪资、高就业率、极具挑战性的工作,并且有可能从事最紧急、最重要的项目。有什么理由不喜欢吗?是的,人们期望DBA知道一切,不只是数据库技术,还包括与之相关的一切。DBA几乎从来没有每天只工作8小时,经常是连续好几天加班,特别是当数据库的性能出现问题或者开发中的项目落后于预定计划时。据行业分析师分析,DBA的每周平均工作时间是50+小时,其中包含周末6小时。DBA经常不得不在周末和节假日这些数据库使用的低谷时间去维护数据库。
数据库管理是一项没有休息的工作。
DBA不但是一项技术上有挑战且有回报的工作,还是一项有可能使你筋疲力尽、饱受挫折的工作。但是千万不要让这些把你吓住了,这项工作的好的方面远比不好的方面多。
1.2.2 数据库技术
DBA是精通数据库技术具体细节的IT专业人士。因此,他们对数据库管理基本原理有扎实的理解非常重要。这就要求不仅要懂得行、列和表格或SQL这些简单的知识了。
本书假设读者对关系数据库技术和DBMS基本原理已有基本的了解。对于需要回顾这些概念的读者,请参阅附录A。“数据库基础”可不是一件小事。问题是,有时人们认为他们知道的很多。例如,这个问题:什么是数据库?我敢说大多数的人相信他们知道这个问题的答案。但其中一部分人(或者很多)都会答错。SQL Server不是数据库,它只是一种DBMS(数据库管理系统)。你可以使用SQL Server来创建数据库,但SQL Server本身不是一种数据库。
那么,什么是数据库?数据库是一种有组织的数据存储,其中的数据可以通过指定的数据元素(比如,字段、记录和文件)来访问(详见图1-1)。
数据库是一种有组织的数据存储,其中的数据可以通过指定的数据元素来访问。
DBMS是一种使终端用户或程序员能够共享数据的软件。它提供了一套操作数据库的系统性方法:创建、更新、检索和存储信息。DBMS通常还负责数据完整性、数据安全性、数据访问控制和优化、自动回退、重起和恢复。
对外行人来说,你可以把数据库想象成一个文件夹,把DBMS想象成文件柜,且所容纳的所有文件都贴有标签。DBMS管理着数据库,通过DBMS来实现和访问数据库实例。所以说,DB2、Oracle和SQL Server都是数据库管理系统。工资单应用使用工资单的数据库,该数据库可以使用DB2、Oracle或者SQL Server来实现。
为什么DBMS如此重要呢?因为如果在工作区使用的术语不精确,就会引起混淆,进而导致项目超出预算,开发的系统不正常,失去生产力。
除了数据库管理的基本原理,DBA还要对使用的所有DBMS产品(一家企业可能使用多种)非常精通。例如,一家大型的企业可能在中央主机使用DB2,而在几个不同的UNIX平台上使用Oracle和Informix,在Linux上使用MySQL,在Windows上使用SQL Server。旧的遗留系统上可能使用的是IMS数据库,然而的确有个别“疯狂的程序”使用了边缘的DBMS,如Adabas或Ingres。还有一些新的数据库技术,如NoSQL,以及列存储的DBMS产品(如Hadoop)。还有云数据库系统,如Microsoft SQL Azure和Google BigTable。
因此,DBA组要有应对这些不同的数据库管理系统和平台的专业知识。与此同时,DBA还要能够确定哪些数据库管理系统和平台最能满足某个应用程序的需要。这是一项艰难的工作,充满了博弈和冲突意见。这时候DBA组要通过对比每种数据库管理系统和平台,然后根据应用程序的需要来做出正确的选择。
DBA要决定最匹配的应用程序、DBMS和平台。
有关DBMS概念的简短介绍,请参阅附录A。