创新谈-吴迪

我与数据库

在不知不觉中,我已经和跟数据库打了三年交道.从最早接触到的Access数据库,ms-sql mysql 数据库 以及后来使用的Oracle 数据库.直到今天,回头看时,才发现身后已留一下了一串长长的足迹. 抬头远望前方,去的路比来的路更加漫长,曾如古人所言,路漫漫,其修远兮.

记得第一次用vb连接Access 数据库帮别人公司做工资管理软件,曾为Access数据库的强大功能而深感佩服.对这样一个小玩意竟可以存储大量数据,并进行快速查询,产生了浓厚兴趣..随后我又学习并开始应用了Sql Server 数据库.这时才感觉原先的认识是多么的可笑和幼稚,直到今天,我也常会想,我今天对数据库的认识在明天看来会不会是一个笑话,因此,我不断提醒自己,加强对数据库的学习和应用.

在数据库学习和应用方面,我还只能算上是一名初入殿堂的新手,在很多方面都存在着这样和那样的不足.在这里我只能谈谈我对数据库方面的了解和我学习及应用数据库的方法,希望可以和大家交流.

首先我觉得做一名数据库管理员或设计师必须对数据库有个全方面的认识:

在经历过sql九大动词的使用后,在熟练掌握索引,游标,存储过程,触发器等等知识点后,并不能算是会用数据库,只能说是开始了数据库的学习!

在使用SQL Server后很长一段时间,我都简单的以为这就是数据库的大部分内容,并为掌握了数据库的使用而窃喜,只到接触到深层次的编程,接触到大量数据的存储和分布式交互的时候,才真正窥到了数据库这个科学产物的冰山一角.由此而感到自己对数据库了解的不足,也更加感受到了数据库的博大精深.这就是由于对数据库不了解造成的,那么你又了解你所使用的数据库吗?

问你一个问题,你清楚Oracle 10g的特性吗? (Oracle举个例).

你是否对Oracle 10g的网格计算有足够了解,你是否能够熟练运用Oracle 10g的闪回技术,你对它的负载管理,数据仓库应用又清楚多少,

不要说听说过,不要说我会去了解的,你能够不翻阅任何资料,不问其他人,马上回答这些问题吗?一个合格的DBA能够做得到.所以要想成为一名合格的数据库管理人员,就得了解你使用的数据库,全面的,全方位的去认识它,去学习它.

一名数据库管理员(设计师)必须有一个好的学习方法:.

数据库使用者必须走在技术的前列,要时刻使用新的,成长的,优秀的技术去解决问题.因此学习必不可少,好的学习方法尤为重要.

我们有个做 Net 的同事,在编写程序的时候他有个习惯,就是利用.net 的平台,在每次调用类时,都会拖出一长串类,方法,和属性名.他不会放弃任何一个他所不认识的,见到一个就去查帮助文档,就去想办法用,想办法从一些前辈程序员那里问,直到搞清楚这个类或方法的用途为止,久而久之,他对.net有了很深和很广的认识,编写程序也能写的更好,更快,效率更高..

我个人感觉他的这种方法很有用,不管是在.net , java,或则其他的程序方面,同样也包括数据库.在我身边的人和事中,有时在程序员或数据库管理员中都有一种惯性力量,就是只用自己熟悉的方法和思路去思考,设计软件(数据库)和解决所遇到的问题, 这是一个很不好的习惯.这样只会使自己停滞不前,也许过去一年,两年,甚至更长时间,我们却会发现我们还在原地踏步,达不到更高的层次.

而这个方法却是解决这个通病的一味良药,在平时,我也会努力象这样做,我会尝试了解新的技术,尝试用新的方法去解决问题.这样在我遇到新的待解决的问题或难点时,我就会有更多的选择,多的选择就意味着能够做的更好.

 

 

 

 

 

但同时做为一名数据库工作者,没有很多的机会去给你尝试用新方法建设数据库,去测试.你要做的就是用经验去设计一个最合理,数据冗余最小,访问效率最快的数据库.这便造成一个恶性循环,没有更多的机会,你就不会有老到的经验,没有老到的经验,就不会让你去设计数据库获得更多的经验.

所以在平时更多的时间,我都是建立一个系统的模拟数据库,并尝试引用新的方法,尝试去破坏,搞乱这个数据库.然后再通过不同的办法修复,恢复数据库以此反复虐待数据库,来获得应用上的提高.

    数据库管理员(设计师)必须有对数据库发展方向有明确的认识

我们为什么成为数据库管理员,怎样成为一名优秀的数据库管理员.在对自己的选择,定位,及成长为一名优秀数据库管理员后,当你站在一定的高度上时,怎样才能继续保持你的高度并继续向上攀登.

把握数据库发展方向至关重要.

记得有篇文章写的很好,文章标题好象是数据库的发展趋势

谈到了快速数据库的版本更新,数据库的复杂度增加,数据库的异构,还有行业上的数据库合并等问题.

当你对这些都有了了解,有了一个明确的目标,你便可以有了个清楚的发展方向,这样便可以少走很多弯路

比如你看到了一个趋势就是数据库异构,很多企业用了不同的数据库管理共同的数据,(:SQL Server, Oracle ,DB2等等), 数据库管理系统也正变得更加支持这种趋势, 那么你也得跟着改变你的思路,认识,和方法.让你更适应数据库,更适应客户的需求!

在发展的方向上同时要关注相关技术的同步发展

: 支持网格计算的数据存储, 算法上的(模糊数学,神经智能),硬件上:(存储介质由二维存储发展到三维或多维存储),嵌入式系统的小型数据存储,数据间的交互(XML)等等.

以上只为个人观点,如有错误,还请指正!

最重要一点其实还是数据库管理员对数据库的基本功能的了解和熟练运用,并能从日常应用中发现小片段,小问题,来改善自己.提高自己.

举几个我颇有感受的例子吧!比如用程序连接数据库并进行查询时,你是否会意识到效率的问题,

你可以用一堆简单的语句进行SQL查询,你也可以用一条复杂的SQL语句进行查询,如加上join,你会用什么办法处理呢?通常的程序员会毫不例外的用一堆简单的,这时便走入了一个误区,这样会使查询时间延长,在数据量小时并看不出来,但是当数据量达到一个级别时便可以看出明显区别,作为一名优秀的程序员或(DBA),不应该把更多的事丢给电脑去做,不要以为达到了目标便是优秀,我们同样也要考虑达到同样效果所付出的代价,也就是我们所说的程序的效率问题.

起先我也没注意过这些问题,但通过上一些数据库网站,看一些相关文章,就越来越体会到注意这些细节的必要.

同样的问题还有比如,尽量少用如 rs.update(可更新数据集),更新时多使用批处理,有索引表格查询尽量避免<> ! 运算等等不胜枚举.

    只要当你注意到这些甚至跟多细节时,当你比别人都更跟精益求精时,你才能学到比别人跟多的东西,才能走的别人更远。

最后一点,也是成为高级DBA或高级数据库工程师必经之路熟悉操作系统:

引用Brian Peasland Techtarget网站Searchoracle子站的资深专家,SGT, Inc.公司首席DBA。)的话。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

一个数据库存在于操作系统和最终用户应用程序之间。DBA必须非常精通他的数据库所在的操作系统。DBA并不一定需要知道所有有关操作系统的知识,但是他知道得越多越好。数据库与操作系统联系非常紧密。理解这种关联是十分必要的。DBA还需要知道服务器硬件以及它如何影响与帮助数据库。同时,DBA必须理解应用软件。DBA可能会被要求帮助开发人员创建可靠,健全的数据库应用程序。还有,最重要的也是最明显的,DBA必须十分彻底的理解数据库引擎,它是如何工作的,所有的引擎是如何组合在一起的,以及如何影响数据库引擎向最终用户和应用程序传送数据的能力。我见过的最好的DBA有非常深刻的理解而且不仅仅在数据库本身。他们知道一些系统管理与应用开发。好多时候他们在成为DBA之前有其中一个或两个背景。

从此,我们也可以看到,熟悉操作系统是任何立志成为一名优秀的DBA或数据库工程师的必经之路。

    总结了怎么多,但紧紧是我个人观点,也许能够代表一部分数据库使用者的想法,但观点中错误和失误在所然免,希望能够得到资深数据库工作者指点。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

文章请同时提交信箱:bestdba@ciw.com.cn  mulibox@yahoo.com.cn

 

 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值