数据库工程师要求
1. 要过哪些证书才能算是个合格的数据库工程师
数据库分为mysql、oracle。db2、sqlserver2005等,每个数据库的数据库工程师分为开发工程程、管理工程师、设计工程师,还有数据仓库工程师,所以你必须先选择数据库,在选择对应的那个职位,才能推荐书籍。
现在oracle占据大部分市场,大企业用,db2一般用于银行。mysql用于网站,建议学oracle。mysql,因为这是一家公司的产品,学习的话,先找基础书籍,基础牢固了,在拓展。不过不管学什么数据库,对于数据库的优化一定要清楚。这是最重要的。
oracle的话学习,建议你看以下书籍,这些数据都是本人亲自看过的。
2. 数据库工程师岗位要求有哪些呢
熟悉数据库基本原理和理论,了解主流
数据库系统
的优化设置,性能调整,SQL编写优化,
数据备份
恢复等等。
3. 全国计算机等级考试四级数据库工程师报考要求
三级获证条件:通过三级科目的考试,并已经(或同时)获得二级相关证书。三级数据库技术证书要求已经(或同时)获得二级数据库程序设计类证书;网络技术、软件测试技术、信息安全技术、嵌入式系统开发技术等四个证书要求已经(或同时)获得二级语言程序设计类证书。考生早期获得的证书(如Pascal、FoxBase等),不严格区分语言程序设计和数据库程序设计,可以直接报考三级。 考试时间的形式:三级考试时间为120分钟;考试形式为无纸化。 系统环境:Windows 7
四级获证条件:通过四级科目的考试,并已经(或同时)获得三级相关证书。 考试时间和形式:四级考试总时间为90分钟,单课程没有时间要求;考试形式为无纸化。 系统环境:Windows 7
4. SQL数据库工程师的工作要求
就我们公司来说,一般数据库工程师的主要工作包括:数据备份;数据库日常维护;数据结构方面的设计;SQL调优;解决由于数据库操作所造成的系统性能问题;给开发人员开展一些数据库方面的培训;
你要是觉得能胜任这些工作且有这方面的经验就可以去应聘了,要是手头上有数据库的DBA认证那就更好了.
5. 请教!成为一名合格的数据库工程师需掌握那些知识技能
数工讨论群:27955282 数工考试交流群:37263632
你们交流。
2004数据库系统工程师级大纲
一、考试说明
1.考试要求
(1)掌握计算机体系结构以及各主要部件的性能和基本工作原理;
<广告>
(2)掌握操作系统、程序设计语言的基础知识,了解编译程序的基本知识;
(3)熟练掌握常用数据结构和常用算法;
(4)熟悉软件工程和软件开发项目管理的基础知识;
(5)熟悉计算机网络的原理和技术;
(6)掌握数据库原理及基本理论;
(7)掌握常用的大型数据库管理系统的应用技术;
(8)掌握数据库应用系统的设计方法和开发过程;
(9)熟悉数据库系统的管理和维护方法,了解相关的安全技术;
(10)了解数据库发展趋势与新技术;
(11)掌握常用信息技术标准、安全性,以及有关法律、法规的基本知识;
(12)了解信息化、计算机应用的基础知识;
(13)正确阅读和理解计算机领域的英文资料。
2. 通过本考试的合格人员能参与应用信息系统的规划、设计、构建、运行和管理,能按照用户需求,设计、建立、运行、维护高质量的数据库和数据仓库;作为数据管理员管理信息系统中的数据资源,作为数据库管理员建立和维护核心数据库;担任数据库系统有关的技术支持,同时具备一定的网络结构设计及组网能力;具有工程师的实际工作能力和业务水平,能指导计算机技术与软件专业助理工程师(或技术员)工作。
3. 本考试设置的科目包括
(1)信息系统知识,考试时间为150分钟,笔试;
(2)数据库系统设计与管理,考试时间为150分钟,笔试。
二、考试范围
考试科目1:信息系统知识
1. 计算机系统知识
1.1 硬件知识
1.1.1 计算机体系结构和主要部件的基本工作原理
?CPU和存储器的组成、性能、基本工作原理
?常用I/O设备、通信设备的性能,以及基本工作原理
?I/O接口的功能、类型和特点
?CISC/RISC,流水线操作,多处理机,并行处理
1.1.2 存储系统
?虚拟存储器基本工作原理,多级存储体系
?RAID类型和特性
1.1.3 安全性、可靠性与系统性能评测基础知识
?诊断与容错
?系统可靠性分析评价
? 计算机系统性能评测方法
1.2 数据结构与算法
1.2.1 常用数据结构
?数组(静态数组、动态数组)
?线性表、链表(单向链表、双向链表、循环链表)
?栈和队列
?树(二叉树、查找树、平衡树、遍历树、堆)、图、集合的定义、存储和操作
?Hash(存储位置计算、碰撞处理)
1.2.2 常用算法
?排序算法、查找算法、数值计算、字符串处理、数据压缩算法、递归算法、图的相关算法
?算法与数据结构的关系,算法效率,算法设计,算法描述(流程图、伪代码、决策表),算法的复杂性
1.3 软件知识
1.3.1 操作系统知识
?操作系统的类型、特征、地位、内核(中断控制)、进程、线程概念
?处理机管理(状态转换、同步与互斥、信号灯、分时轮转、抢占、死锁)
?存储管理(主存保护、动态连接分配、分段、分页、虚存)
?设备管理(I/O控制、假脱机、磁盘调度)
?文件管理(文件目录、文件的结构和组织、存取方法、存取控制、恢复处理、共享和安全)
?作业管理(作业调度、作业控制语言(JCL)、多道程序设计)
?汉字处理,多媒体处理,人机界面
?网络操作系统和嵌入式操作系统基础知识
?操作系统的配置
1.3.2 程序设计语言和语言处理程序的知识
? 汇编、编译、解释系统的基础知识和基本工作原理
? 程序设计语言的基本成分:数据、运算、控制和传输,程序调用的实现机制
? 各类程序设计语言的主要特点和适用情况
1.4 计算机网络知识
?网络体系结构(网络拓扑、OSI/RM、基本的网络协议)
?传输介质,传输技术,传输方法,传输控制
?常用网络设备和各类通信设备
?Client/Server结构、Browser/Server结构、Browser/Web/Datebase结构
?LAN拓扑,存取控制,LAN的组网,LAN间连接,LAN-WAN连接
?因特网基础知识及应用
?网络软件
?网络管理
?网络性能分析
?网络有关的法律、法规
2. 数据库技术
2.1 数据库技术基础
2.1.1 数据库模型
?数据库系统的三级模式(概念模式、外模式、内模式),两级映像(概念模式/外模式、外模式/内模式)
?数据库模型:数据模型的组成要素,概念数据模型ER图(实体、属性、关系),逻辑数据模型(关系模型、层次模型、网络模型)
2.1.2 数据库管理系统的功能和特征
?主要功能(数据库定义、数据库操作、数据库控制、事务管理、用户视图)
?特征(确保数据独立性、数据库存取、同时执行过程、排它控制、故障恢复、安全性、完整性)
?RDB(关系数据库),OODB(面向对象数据库),ORDB(对象关系数据库),NDB(网状数据库)
?几种常用Web数据库的特点
2.1.3 数据库系统体系结构
? 集中式数据库系统
? Client/Server数据库系统
? 并行数据库系统
? 分布式数据库系统
? 对象关系数据库系统
2.2 数据操作
2.2.1 关系运算
?关系代数运算(并、交、差、笛卡儿积、选择、投影、连接、除)
?元组演算
?完整性约束
2.2.2 关系数据库标准语言(SQL)
?SQL的功能与特点
?用SQL进行数据定义(表、视图、索引、约束)
?用SQL进行数据操作(数据检索、数据插入/删除/更新、触发控制)
?安全性和授权
?程序中的API,嵌入SQL
2.3 数据库的控制功能
?数据库事务管理(ACID属性)
?数据库备份与恢复技术(UNDO、REDO)
?并发控制
2.4 数据库设计基础理论
2.4.1 关系数据库设计
?函数依赖
?规范化(第一范式、第二范式、第三范式、BC范式、第四范式、第五范式)
?模式分解及分解应遵循的原则
2.4.2 对象关系数据库设计
?嵌套关系、 复杂类型,继承与引用类型
?与复杂类型有关的查询
?SQL中的函数与过程
?对象关系
2.5 数据挖掘和数据仓库基础知识
?数据挖掘应用和分类
?关联规则、聚类
?数据仓库的成分
?数据仓库的模式
2.6 多媒体基本知识
2.6.1 多媒体技术基本概念
?多媒体系统基础知识
?常用多媒体文件格式
2.6.2 多媒体压缩编码技术
?多媒体压缩编码技术
?统计编码
?预测编码
?编码的国际标准
2.6.3多媒体技术应用
?简单图形的绘制,图像文件的处理方法
?音频和视频信息的应用
?多媒体应用开发过程
2.7 系统性能知识
?性能计算(响应时间、吞吐量、周转时间)
?性能指标和性能设计
?性能测试和性能评估
2.8 计算机应用基础知识
?信息管理、数据处理、辅助设计、科学计算,人工智能等基础知识
?远程通信服务及相关通信协议基础知识
3. 系统开发和运行维护知识
3.1 软件工程、软件过程改进和软件开发项目管理知识
?软件工程知识
?软件开发生命周期阶段目标和任务
?软件开发项目基础知识(时间管理、成本管理、质量管理、人力资源管理、风险管理等)及其常用管理工具
?主要的软件开发方法(生命周期法、原型法、面向对象法、CASE)
?软件开发工具与环境知识
?软件质量管理基础知识
?软件过程改进基础知识
?软件开发过程评估、软件能力成熟度评估的基础知识
3.2 系统分析基础知识
?系统分析的目的和任务
?结构化分析方法(数据流图(DFD)和数据字典(DD),实体关系图(ERD),描述加工处理的结构化语言)
?统一建模语言(UML)
?系统规格说明书
3.3 系统设计知识
?系统设计的目的和任务
?结构化设计方法和工具(系统流程图、HIPO图、控制流程图)
?系统总体结构设计(总体布局,设计原则,模块结构设计,数据存取设计,系统配置方案)
?系统详细设计(代码设计、数据库设计、用户界面设计、处理过程设计)
?系统设计说明书
3.4 系统实施知识
?系统实施的主要任务
?结构化程序设计、面向对象程序设计、可视化程序设计
?程序设计语言的选择、程序设计风格
?系统测试的目的、类型,系统测试方法(黑盒测试、白盒测试、灰盒测试)
?测试设计和管理(错误曲线、错误排除、收敛、注入故障、测试试用例设计、系统测试报告)
?系统转换基础知识
3.5 系统运行和维护知识
?系统运行管理知识
?系统维护知识
?系统评价知识
4. 安全性知识
?安全性基本概念(网络安全、操作系统安全、数据库安全)
?计算机病毒的防治,计算机犯罪的防范,容灾
?访问控制、防闯入、安全管理措施
?加密与解密机制
?风险分析、风险类型、抗风险措施和内部控制
5.标准化知识
?标准化意识,标准化的发展,标准出台过程
?国际标准、国家标准、行业标准、企业标准基本知识
?代码标准、文件格式标准、安全标准软件开发规范和文档标准
?标准化机构
6.信息化基础知识
?信息化意识
?全球信息化趋势、国家信息化战略、企业信息化战略和策略
?有关的法律、法规
?远程教育、电子商务、电子政务等基础知识
?企业信息资源管理基础知识
7.计算机专业英语
?掌握计算机技术的基本词汇
?能正确阅读和理解计算机领域的英文资料
考试科目2:数据库系统设计与管理
1.数据库设计
1.1理解系统需求说明
?了解用户需求、确定系统范围
?确定应用系统数据库的各种关系
?现有环境与新系统环境的关系
?新系统中的数据项、数据字典、数据流
1.2 系统开发的准备
?选择开发方法,准备开发环境,制订开发计划
1.3 设计系统功能
?选择系统机构,设计各子系统的功能和接口,设计安全性策略、需求和实现方法,制定详细的工作流和数据流
1.4 数据库设计
1.4.1 设计数据模型
?概念结构设计(设计ER模型)
?逻辑结构设计(转换成DBMS所能接收的数据模型)
?评审设计
1.4.2 物理结构设计
?设计方法与内容
?存取方法的选择
?评审设计与性能预测
1.4.3 数据库实施与维护
?数据加载与应用程序调试
?数据库试运行
?数据库运行与维护
1.4.4 数据库的保护
?数据库的备份与恢复
?数据库的安全性
?数据库的完整性
?数据库的并发控制
1.5 编写外部设计文档
?编写系统说明书(系统配置图、各子系统关系图、系统流程图,系统功能说明、输入输出规格说明、数据规格说明、用户手册框架)
?设计系统测试要求
1.6 设计评审
2. 数据库应用系统设计
2.1 设计数据库应用系统结构
?信息系统的架构(如Client/Server)与DBMS
?多用户数据库环境(文件服务器体系结构、Client/Server体系结构)
?大规模数据库和并行计算机体系结构(SMP、MPP)
?中间件角色和相关工具
?按构件分解,确定构件功能规格以及构件之间的接口
2.2 设计输入输出
?屏幕界面设计,设计输入输出检查方法和检查信息
?数据库交互与连接(掌握C程序设计语言,以及Java、Visual Basic、Visual C++、PowerBuilder、Delphi中任一种开发工具与数据库互连的方法(如何与数据库服务器沟通))
2.3 设计物理数据
?分析事务在数据库上运行的频率和性能要求,确定逻辑数据组织方式、存储介质,设计索引结构和处理方式
?将逻辑数据结构变换成物理数据结构,计算容量(空间代价),确定存取方法(时间效率)、系统配置(维护代价)并进行优化
2.4 设计安全体系
?明确安全等级
?数据库的登录方式
?数据库访问
?许可(对象许可、命令许可、授权许可的方法)
2.5 应用程序开发
2.5.1 应用程序开发
?选择应用程序开发平台
?系统实施顺序
?框架开发
?基础小组的程序开发
?源代码控制
?版本控制
2.5.2 模块划分(原则、方法、标准)
2.5.3 编写程序设计文档
?模块规格说明书(功能和接口说明、程序处理逻辑的描述、输入输出数据格式的描述)
?测试要求说明书(测试类型和目标,测试用例,测试方法)
2.5.4 程序设计评审
2.6 编写应用系统设计文档
?系统配置说明、构件划分图、构件间的接口、构件处理说明、屏幕设计文档、报表设计文档、程序设计文档、文件设计文档、数据库设计文档
2.7 设计评审
3. 数据库应用系统实施
3.1 整个系统的配置与管理
3.2 常用数据库管理系统的应用(SQL Server、Oracle、Sybase、DB2、Access或Visual Foxpro)
?创建数据库
?创建表、创建索引、创建视图、创建约束、创建UDDT(用户自定义类型)
?创建和管理触发器
?建立安全体系
3.3 数据库应用系统安装
?拟定系统安装计划(考虑费用、客户关系、雇员关系、后勤关系和风险等因素)
?拟定人力资源使用计划(组织机构安排的合理性)
?直接安装(安装新系统并使系统快速进入运行状态)
?并行安装(新旧系统并行运行一段时间)
?阶段安装(经过一系列的步骤和阶段使新系统各部分逐步投入运行)
3.4 数据库应用系统测试
?拟定测试目标、计划、方法与步骤
?数据加载,准备测试数据
?指导应用程序员进行模块测试进行验收
?准备系统集成测试环境测试工具
?写出数据库运行测试报告
3.5 培训与用户支持
4.数据库系统的运行和管理
4.1 数据库系统的运行计划
?运行策略的确定
<广告>
?确定数据库系统报警对象和报警方式
?数据库系统的管理计划(执行,故障/恢复,安全性,完整性,用户培训和维护)
4.2 数据库系统的运行和维护
?新旧系统的转换
?收集和分析报警数据(执行报警、故障报警、安全报警)
?连续稳定的运行
?数据库维护(数据库重构、安全视图的评价和验证、文档维护)
?数据库系统的运行统计(收集、分析、提出改进措施)
?关于运行标准和标准改进一致性的建议
?数据库系统的审计
4.3 数据库管理
?数据字典和数据仓库的管理
?数据完整性维护和管理(实体完整性、参照完整性)
?数据库物理结构的管理(保证数据不推迟访问)
?数据库空间及碎片管理
?备份和恢复(顺序、日志(审计痕迹)、检查点)
?死锁管理(集中式、分布式)
?并发控制(可串行性、锁机制、时间戳、优化)
?数据安全性管理(加密、安全、访问控制、视图、有效性确认规则)
?数据库管理员(DBA)职责
4.4 性能调整
?SQL语句的编码检验
?表设计的评价
?索引的改进
?物理分配的改进
?设备增强
?数据库性能优化
4.5 用户支持
?用户培训
?售后服务
5. SQL
5.1 数据库语言
?数据库语言的要素
?数据库语言的使用方式(交互式和嵌入式)
5.2 SQL概述
?SQL语句的特征
?SQL语句的基本成分
5.3 数据库定义
?创建数据库(Create Datebase)、创建表(Create Table)
?定义数据完整性
?修改表(Alter Table)、删除表(Drop Table)
?定义索引(Create Index)、删除索引(Drop Index)
?定义视图(Create View)、删除视图(Drop View)、更新视图
5.4 数据操作
?Select语句的基本机构
?简单查询
?SQL中的选择、投影
?字符串比较,涉及空值的比较
?日期时间,布尔值,输出排序
?多表查询
?避免属性歧义
?SQL中的连接、并、交、差
?SQL中的元组变量
?子查询
5.5 完整性控制与安全机制
?主键(Primary Key)约束
?外键(Foreign Key)约束
?属性值上的约束(Null、Check、Create Domain)
?全局约束(Create Assertions)
?权限、授权(Grant)、销权(Revoke)
5.6 创建触发器(Create Trigger)
5.7 SQL使用方式
?交互式SQL
?嵌入式SQL
?SQL与宿主语言接口(Declare、共享变量、游标、卷游标)
?动态SQL
?API
5.8 SQL 标准化
6. 网络环境下的数据库
6.1 分布式数据库
6.1.1 分布式数据库的概念
?分布式数据库的特点与目标
6.1.2 分布式数据库的体系结构
?分布式数据库的模式结构
?数据分布的策略(数据分片、分布透明性)
?分布式数据库管理系统
6.1.3 分布式查询处理和优化
6.1.4 分布式事务管理
?分布式数据库的恢复(故障、恢复、2段提交、3段提交)
?分布式数据库的透明性(局部、分裂、复制、处理、并发、执行)
6.1.5 分布式数据库系统的应用
6.2 网络环境下数据库系统的设计与实施
?数据的分布设计
?负载均衡设计
?数据库互连技术
6.3 面向Web的DBMS技术
?三层体系结构
?动态Web网页
?ASP、JSP、XML的应用
7.数据库的安全性
7.1 安全性策略的理解
?数据库视图的安全性策略
?数据的安全级别(最重要的、重要的、注意、选择)
7.2 数据库安全测量
?用户访问控制(采用口令等)
?程序访问控制(包含在程序中的SQL命令限制)
?表的访问控制(视图机制)
?控制访问的函数和操作
?外部存储数据的加密与解密
8. 数据库发展趋势与新技术
8.1 面向对象数据库(OODBMS)
8.1.1 OODBMS的特征
8.1.2 面向对象数据模型
?对象结构、对象类、继承与多重继承、对象标识、对象包含、对象嵌套
8.1.3 面向对象数据库语言
8.1.4 对象关系数据库系统(ORDBMS)
?嵌套关系
?复杂类型
?继承、引用类型
?与复杂类型有关的查询
?函数与过程
?面向对象与对象关系
?ORDBMS应用领域
8.2 企业资源计划(ERP)和数据库
8.2.1 ERP概述
?基本MRP(制造资源计划)、闭环MRP、ERP
?基本原理、发展趋势
?ERP设计的总体思路(一个中心、两类业务、三条干线)
8.2.2 ERP与数据库
?运行数据库与ERP数据模型之间的关系
?运行数据库与ERP数据库之间的关系
8.2.3 案例分析
8.3 决策支持系统的建立
?决策支持系统的概念
?数据仓库设计
?数据转移技术
?联机分析处理(OLAP)技术
?企业决策支持解决方案
?联机事务处理(OLTP)
6. 考几级才能成为数据库工程师
全国计算机4级为数据库工程师。
全国计算机等级考试(National Computer Rank Examination,以下简称 NCRE),是经原国家教育委员会(现教育部)批准,由教育部考试中心主办,面向社会,用于考查非计算机专业应试人员计算机应用知识与技能的全国性计算机水平考试体系。
4级:科目:网络工程师、数据库工程师、软件测试工程师、信息安全工程师与嵌入式系统开发工程师五个考核项目。
形式:无纸化考试。四级考试科目由五门专业基础课程中指定的两门课程组成,总分 100 分,两门课程各占 50 分。专业基础课程为计算机专业核心课程,包括:操作系统原理、计算机组成与接口、计算机网络、数据库原理、软件工程。考试总时间为 90 分钟,单课程考试没有时间要求。
获证条件:两门课程分别达到 30 分及以上,并已经(或同时)获得三级相关证书。2013 年 3 月及以前获得的三级各科目证书,不区分科目,可以作为四级任一科目的获证条件。
7. 数据库工程师的技术能力
数据库工程师以技术为基础,通过技术保障数据库提供更高质量的服务。数据库工程师工作的职责及在业务中的位置决定了数据库工程师需要具备更加广博的知识和深入的技术能力。在数据库环境的管理与维护中,技术任务可归结成许多不同的分类。下面列出了一名数据库工程师应掌握的一些技能:
1)理解数据备份/恢复与灾难恢复
恢复已损坏的数据库是每一个数据库工程师应掌握的最重要的技能。数据库工程师需要完全理解数据库所有可能的备份与恢复方法,以及不同备份方法与不同恢复策略的对应关系。此外,数据库工程师还需要与业务部门合作,一起确认业务需求,明确用户能够容忍的数据丢失底线。此外,业务用户还需要确定在系统故障情况下,他们的业务能够维持多长时间。理解这些需求可以帮助数据库工程师开发出一个满足业务用户要求的备份/恢复方法。一个优秀的数据库工程师要定期测试备份与恢复流程,保证他们有能力恢复业务数据,满足企业所规定的业务数据丢失与恢复要求。
2)工具集的使用
所谓工具集,指的是一组用于执行不同数据库工程师任务的脚本。这个工具集应该包含不同的小代码片段,它们可以快速诊断问题或执行一个特定的任务。这些工具脚本应该按数据库工程师的活动类型归类,如备份、索引维护、性能优化、容量管理等。由于总是会执行新任务、发现新问题或找到其他人开发的好用脚本,因此一个优秀的数据库工程师会不断地给这个工具集增加新脚本。此外,他还应该了解网上哪里能够找到一些免费的工具和脚本。一个好的数据库工程师知道什么时候可以利用其他人编写的脚本,从而节省自己的时间和改进自己的工具集。
3)知道如何快速寻找答案
数据库每天会面临各种各样故障的挑战,从硬件到网络,从性能压力到程序bug,数据库工程师都要从容应对,一一排除。即使是数据库大牛,也不可能是无所不知的,因此每个数据库工程师一方面需要不断修炼自己,积累操作系统、网络、硬件、存储系统、分布式计算等理论基础,另一方面还要有快速寻找新问题解决方法的能力。如果一个数据库实例不能按预期方式运转,那么快速寻找新问题的解决方法也是一个重要能力。一个好的数据库工程师知道如何快速地在网上查找一个未知问题的解决方法。此外,他们也可能已经知道了一些非常不错的网站,也知道业界专家会提供一些好建议,同时知道什么时候应该忽略一些不好的建议。你可能想象不到,确实有一些建议不值得参考。
4)如何监控和优化数据库性能
对于任何数据库产品,性能都尤其重要,它会直接影响产品的响应速度和用户体验。对于一个数据库工程师来说,性能优化一般需要占用50%的工作时间,因此数据库工程师需要知道如何监控和优化数据性能。
以SQL Server举例,性能是一个关键的问题,因此数据库工程师需要知道如何修复故障和监控性能问题。有许多第三方性能监控工具可以帮助数据库工程师优化性能。如果数据库工程师只使用第三方工具,而不会使用SQL Server自带的原生工具来监控性能,那么相信很快就会出现问题。虽然使用第三方工具来监控性能也很不错,但是数据库工程师一定要理解SQL自带的一些原生工具,如SQL Server Profiler、Database Engine Tuning Advisor、Dynamic Management Views、系统/扩展的存储过程、Extended Events等。许多第三方工具实际上在使用这些底层的原生工具。因此,理解这些自带的原生工具将有利于增强数据库工程师使用第三方工具的经验。
5)研究新版本
在技术领域中,没有什么是一成不变的。每隔两三年,主流数据库厂商都会发布一个大版本的更新。数据库工程师应该紧跟新版本所作的修改,它们可能有许多变化方法,最好的方法是迟早介入这个过程。测试版开放后马上下载和安装,尽快掌握第一手使用经验。一名好的数据库工程师总是走在学习排头兵,总是会第一时间安装和测试新版本。这样他们就可以尽早理解新特性,然后提出一些合理的新建议,帮助组织更好地利用新版本数据库。
6)理解代码最佳实践方法
数据库工程师应该了解如何编写高效的代码。有许多糟糕的编码实践方法会导致拙劣的性能。一名好的数据库工程师要能够理解和识别这些糟糕的编码实践方法,知道如何修改这些烂代码,让它们变成高效代码。此外,他们还要记录下写代码的最佳实践方法,并且将这些实践方法分享给其他人。
7)持续不断地学习
数据库及其组件涉及面非常广。数据库工程师很难理解一个技术的方方面面。数据库工程师需要持续学习如何管理数据库。这个学习过程有很多方法。其中之一就是参加正式培训。但是,并非人人都有这样充裕的事件和金钱,也并非人人都能够放下手头工作专门出去参加正式的培训。但是,还有许多其他方法可以获得培训,而且大多数还是免费的。一名好的数据库工程师一定要订阅一些定期发布数据库新技巧和新文章的社区网站。此外,他还应该加入一些用户组织,可以在周末参加一些当地的免费沙龙活动。
8)数据库安全性
安全性是一个热门话题。数据库工程师应该完全掌握如何实现数据库的安全访问。他们应该理解操作系统身份验证和数据库身份验证的区别,以及它们各自的使用场合。他们应该理解如何使用数据库角色来管理不同类型用户的安全配置。他们应该理解连接数据库的端口与协议。此外,他们还应该理解如何加密整个数据库,或者加密一个数据库中一个表的某一个字段,同时理解关于加密数据的各种问题。
9)数据库设计
决定数据库性能的一个关键问题是数据库设计。数据库工程师需要理解关于数据库设计的各个方面。他们要能够理解设计好坏的区别。他们需要理解为什么使用正确的外键约束、主键、检查约束和使用数据类型能够保持数据库的数据完整性和实现高效的数据查询与更新。
10)索引设计
数据库索引是提高应用程序检索和更新数据速度的重要环节。数据库工程师需要知道索引的工作原理。他们应该知道聚簇索引和非聚簇索引的区别,知道这些索引的物理存储方式。数据库工程师应该知道如何在执行计划中使用这些索引。他们应该理解如何找到索引的使用统计、理解索引碎片及如何发现丢失的索引。他们应该知道如何维护索引,以及索引统计信息对于查询引擎的重要作用。
11)容量监控与规划
数据库往往要使用大量的资源,包括CPU、内存、I/O及磁盘空间。数据库工程师应该理解如何监控数据库所需要的不同主机资源的用量。他们应该能够理解这些资源在不同时间的使用情况,以及利用历史使用数据来规划未来的容量需求。在监控过程中,数据库工程师应该能够预见到容量规划会在将来什么时候出现问题,然后采取必要的措施保持数据库不会因为容量限制而出现中断。
12)数据库许可证
不同的产品有许多不同的许可证授权方式。而且,同一款产品本身又有许多不同的版本。数据库工程师应该理解所负责的数据库版本的不同授权模式。他们应该能够提供指导如何通过合理购买授权来减少数据库总拥有成本,以及如何合理利用授权方法来降低未来版本的升级成本。
13)尽可能实现自动化
数据库工程师每天都需要执行许多的日常任务。其中一些任务需要每天执行,而另一些则每周、每月或每年执行。一名好的数据库工程师需要理解如何高效地安排自己的时间。其中一种方法是建立工作流程,这些日常任务的自动执行。通过实现日常任务的自动化执行,数据库工程师就可以用更多的时间去关注于数据库环境管理中遇到的严重问题。
你具备的特质越多,作为数据库工程师的你就越优秀。成为一名成功数据库工程师的关键是不断地学习与提高,努力去掌握更多关于如何管理和维护数据库环境的知识。
8. 数据库开发工程师的技能要求有哪些