分类:
2009-11-29 01:11:01
数据库技术在现代软件技术领域有广泛的应用,与数据相关的技术岗位和职能,也可以区分为若干个不同的类别。根据在一个理想的开发团队中不同的分工和知识掌握的不同,可以区分为:
对于数据库领域,分析与设计岗位、架构与运维岗位(管理员)的重叠较高。特别是分析与设计岗位通常在团队中由同一(组)人承担。在更多的团队中架构师也与分析和设计人员的岗位重叠。因此,从项目开发周期考虑,可以简单的分为三类:
通 常来说,新手接触数据库技术,从程序员岗位做起。这是因为对于数据库技术,此岗位比较容易切入。在软件开发团队中,通常允许初学数据库技术的开发人员,从 事受限的数据库开发工作,此类工作内容可以是基本的增删改查,其数据结构已经由设计人员固定。初级程序员岗位是练习 SQL 语言基本技能、理解关系模型的很好的切入点。
近 年来,此岗位工作通常使用 ORM 工具来完成工作,以提高工作效率和质量。但是对数据库的了解仍然对这个岗位有重要意义。对数据库知识有深入了解的开发人员,可以编写出更高质量的 ORM 代码,可以在必要的时候越过 ORM 的功能局限,编写扩展代码,可以定位性能瓶颈进行优化,等等。
因 此,关系型数据库研发岗位,在当今应用层封装技术非常成熟的前提下,入门更为容易。程序员可以先从 ORM 入手,通常自己比较熟悉的应用层编程环境学习数据访问知识,然后再进一步了解 SQL 语言的知识。另一方面, ORM 并不能代替关系数据库本身。关系数据库知识的掌握程度直接影响程序员的职业发展。
技 术人员掌握了基本的数据库访问知识后,通常在数据库技术领域,可以有三个不同的发展方向。常见的一个发展方向是转入分析与设计领域。UML 的用例分析、类图、需求分析等知识,与关系数据库的基本设计工具 E-R 图有直接的关系。由此也可以看出,关系数据库的设计和分析工作其实是整合在项目开发过程中的。因为,向此方向发展的技术人员应该提升综合能力,转向软件分 析设计知识。
良好的项目分析准备,能更好的厘清数据库设计所需要的信息。良好的数据库设计,是编写出优质应用层代码的基础。个人前期工作中积累的数据库编程经验,能够使得设计师理解数据库设计中的关键点,了解基本泛式和常见设计模式的运用方法。
===== 中级开发人员 ====
面向数据库的编程工作,本身存在较深入的技术要求。高水平的数据库开发人员,面对各种问题,可以更快的给出解决方案,提供高质量的软件产品。
通常在复杂查询、复杂事务、数据迁移、业务报表定制等方面,需要高水平的开发人员支持。
初级数据库管理员可能由开发人员转岗,也可能独立学习,或由系统管理员转岗。除了掌握系统管理员的基本能力,还要了解关系数据的知识。
作为数据库管理员,要能够实现数据库服务的部署、备份、恢复。能够为开发人员和客户提供问题诊断、预警支持。能够找出运营过程中发生的常见问题,予以解决。
对于大型项目,系统架构成为独立的、重要的岗位。架构师要求综合性的知识和能力,有关数据库领域,主要在于集群设计,备份方案的实现,这需要对操作系统、网络工程、数据库自身的特性都有深入的了解。要求能够解决项目中数据库层的性能和可靠性问题。
通常来说设计师的工作与架构师有一定的重叠。相对来说设计师的工作更偏“软”,需要与开发团队有更多的交流。往往设计师要肩负高级数据库开发人员的职责。同时要有对业务的深入了解。能够设计出应对海量数据、高可靠性、复杂业务的数据库方案。
高级数据库管理员是通常概念中数据库领域的高端岗位。这个岗位要求有很强的运维技术能力。要能够参与数据库架构方案的设计,并将其实现。要求能够完成复杂集群的实施、备份恢复方案实现、预警和问题诊断。