2.5 要想成为一名出色的数据库程序员,需要掌握哪些必备的知识?
数据库应用可以分为数据库开发、数据库管理、数据库优化、数据库设计等,要根据自己的工作性质来选择性地学习。总体来说,需要了解数据库有哪些功能,数据库应用可以如何分类,并且要知道哪些是重点知识。如果你是一个数据库开发人员,那么你就应该首先了解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部分需要反复阅读)、参加好的培训机构、购买相关书籍、阅读博客和公众号、请教公司前辈、做实验摸索总结等。
接下来将业内名人的一些话送给大家:①勤奋和坚持,这两点非常重要;②在看不清方向的时候,低下头来把手中的工作做好;③向他人学习,向聪明人学习,借鉴成功者、同行者的经验非常重要;④敞开心胸,平淡看得失;⑤在正确的时间做正确的事;⑥行动有时候比思想更重要。