"IT有得聊”是机械工业出版社旗下IT专业资讯和服务平台,致力于帮助读者在广义的IT领域里,掌握更专业、实用的知识与技能,快速提升职场竞争力。
导语:想找到一份程序员的工作,一点技术都没有显然是不行的,但是,只有技术也是不够的。本系列文章主要介绍了数据库程序员面试笔试经验、数据库行业发展、面试笔试问题方法讨论等。今天,我们主要围绕要想成为一名出色的数据库程序员,需要掌握哪些必备的知识这一话题展开。
数据库应用可以分为数据库开发、数据库管理、数据库优化、数据库设计等,要根据自己的工作性质来选择性地学习。
数据库开发岗位
如果你是一个数据库开发人员,那么你就应该首先了解SQL和PL/SQL的编写,而不是数据库的备份与恢复。数据库开发要求开发人员能利用SQL完成数据库的增加、删除、修改、查询的基本操作,能用PL/SQL完成各类逻辑的实现。
数据库管理岗位
相比数据库开发来说,数据库管理人员的人数需求在IT市场要少得多。这是由工作性质决定的。无论生产还是测试环境,搭建数据库都不可能非常频繁。如果数据崩溃需要恢复、数据需要迁移、紧急故障需要处理的情况频繁出现,那么这个企业基本上也就无法正常运营下去了。但是一旦出现问题,管理人员无法及时修复故障,将会受到来自各方面的指责,压力非常大。和开发人员相比,管理人员不需要每时每刻地忙碌着,但是却要时刻注意充电,提升自己的应急处理能力,还需要时刻对系统进行健康检查,以防不测。此外,虽然开发在逻辑思维方面的要求要高于管理,但是责任和压力却远没有管理这么大。数据库管理人员需要能完成数据库的安装、部署、参数调试、备份恢复、数据迁移等系统相关的工作;能完成分配用户、控制权限、表空间划分等管理相关工作;能进行故障定位、问题分析等数据库诊断修复相关工作。
数据库优化岗位
不少企业没有设置专门的数据库优化岗位,它可能被融入资深开发、资深管理和资深设计人员的技能之中。对于有这样角色的企业来说,场景可能是这样的:生产环境运行缓慢,数据库管理人员通过跟踪诊断,查出问题所在,原来是系列SQL运行缓慢导致的整个数据库性能低下。这个时候对于数据库管理人员来说,他的工作结束了,然后优化人员介入,利用自己的知识优化这些SQL。在没有专门角色的场景下,可能是这个管理人员有着丰富的技能,他优化了这些SQL,也可能是资深开发人员或者是资深设计人员优化了这些SQL。但是从工作职责划分、从更专业的角度来说,应该设置专职人员。数据库优化所需要的人员是最难估算的,或许很多,或许很少,甚至没有,但是却是最重要的岗位之一。数据库优化能在深入了解数据库的运行原理的基础上,利用各类工具及手段发现并解决数据库存在的性能问题,从而提升数据库运行效率,这个说着简单,其实很不容易。
数据库设计岗位
数据库设计需要掌握的知识点最多,从事数据库设计是很不容易的,这是属于核心岗位的位置,少数人的规划和部署决定了产品最终的质量和生命力。从市场需求来说,从事设计的人员最少。一般来说,一个应届毕业生在相关开发、管理岗位努力工作两年后,都可以把开发及管理工作做得比较出色。要把优化工作做到得心应手应该至少要3年以上。要想从事设计相关工作,一般需要5年以上的工作经验。数据库设计需要深刻理解业务需求和数据库原理,合理高效地完成数据库模型的建设,设计出各类表及索引等数据库对象,让后续应用开发可以高效稳定。
经验之谈
在就业的时候很多人眼高手低,一毕业就想从事设计及优化相关工作,结果找不到工作,因为企业根本不给这个机会。也有人一个劲地想做数据库管理工作,但是由于管理相关的岗位比较少,结果成功的人寥寥无几。很多时候当兴趣和工作不匹配时,不要强求,要耐心找机会。例如,掌握SQL开发技巧后,可以匹配到很多适合自己的岗位,轻易地获取工作机会,而精通SQL及PL/SQL开发技巧,对管理优化和设计都是非常有帮助的。
刚毕业从事数据库开发相关工作,后续有机会再从事管理相关工作,期间兼顾优化相关的技能学习,主动承担起优化的任务,争取成为一个兼职或者专职的优化人员。最后,随着业务的熟悉,水到渠成的从事数据库设计相关工作。当然,大家千万不要误认为设计就一定比管理好,管理就一定强过开发,市场的供需决定了人员的比例,但是各个岗位都可以有出色的专家,最完美的还是在自己感兴趣的领域中大展手脚。
要想成为一名出色的DBA,需要掌握的知识非常多,尤其现今的很多企业对DBA的要求极高,一般都是要求熟练掌握一种数据库,同时熟悉其他数据库。下图展示了一名优秀的DBA需要掌握的一些基本内容。
对于这些内容,可以从一些博客或著名网站去学习,如作者的博客、itpub论坛、Oracle官方网站等。一定要学会对Oracle官方文档的搜索。工作环境没有外网的读者可以先在有外网的环境下去编者的云盘下载离线的官方文档。在Oracle学习初期可以利用编者制作好的CHM格式的官方帮助文档进行全文搜索。另外,编者在个人云盘里分享了很多的学习资料,包括数据库、Java等其他资料,读者可以有选择性地下载需要的学习资料。所以,总体来说,获取Oracle知识的可靠途径包括阅读官方文档(Concepts部分需要反复阅读)、参加好的培训机构、购买相关书籍、阅读博客和公众号、请教公司前辈、做实验摸索总结等。
接下来将业内名人的一些话送给大家:①勤奋和坚持,这两点非常重要;②在看不清方向的时候,低下头来把手中的工作做好;③向他人学习,向聪明人学习,借鉴成功者、同行者的经验非常重要;④敞开心胸,平淡看得失;⑤在正确的时间做正确的事;⑥行动有时候比思想更重要。
数据库人才就业前景
数据库开发人员和维护人员在市场上一直都是紧缺人才。
如果想往DBA这个方向发展,那么学习Oracle、MySQL、DB2或非关系型数据库(如MongoDB)都可以。在Oracle收购MySQL后,MySQL的发展势头也不错,大公司也都在将部分数据库往MySQL迁移,例如阿里巴巴、盛大网络等公司的部分数据库,很多都使用的是MySQL数据库。所以,市场上也有很大一部分MySQL DBA的需求。Oracle自然就不用说了,关系型数据库中的老大,大部分有实力的公司使用的都是Oracle或者DB2与MySQL的结合。如果都使用Oracle,则成本太高,使用DB2一般都能享受到IBM提供的一条龙服务,从服务器到数据库再到数据库管理软件,DB2大部分都应用于金融领域。SQL Server的使用者相对较少,主要因为微软的软件对平台依赖性比较大,发展受到了限制。不过现在微软在开发基于Linux平台的SQL Server。如果只是想了解数据库的简单操作,那么可以从事数据库的开发工作。
小公司数据量有限,使用SQL Server数据库就可以满足日常的需求,但SQL Server的可移植性差,且相比DB2和Oracle,数据处理功能较差。其实,公司使用什么数据库需要看公司的性质,金融行业的公司或大企业、巨型企业、银行等肯定首选DB2或Oracle,一般不会使用其他数据库。因为这类公司数据量大,日数据量可达到过亿条,每日要处理如此庞大的数据量,必须选择DB2或Oracle。对于普通民营小公司,待处理数据量有限,使用SQL Server也完全能够满足需求。
△各城市BDA岗位薪资情况(来源:猎聘网)
数据库程序员求职面试必备宝典
作者:猿媛之家 李华荣 等