龚艺的博客

龚艺的博客-码行天下

天才在于勤奋,知识在于积累。

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  46 随笔 :: 1 文章 :: 57 评论 :: 0 引用
    在数据库的学习中,要涉及到大量的数据,那么从哪里可以得到那些大量的数据呢?如果没有这些数据,又如何去学习、去实践呢?难道非要等到实际的工程中才能用到这些知识吗?可是我一直认为检验自己对某一项知识是否掌握,最重要的标准是看是否在实际中能够灵活应用。再说,在实际的工程环境中,也不允许你把理论用于实践。毕竟,如果运用的失败,会给组织带来巨大的损失。如何解决这个矛盾呢?难道就没有一些现成的数据能供自己只在学习中用吗?有人说可以边做边学,不做我认为边做边学是一种很被动的学习方式,特别是在实际项目中,因为你不知道是否你遇到的每一个实际问题,你都能解决!

    可能有的人不知道我究竟说的是什么,我现在就用一个实例来说明:比如说我现在在学习数据库理论,显然检验自己对这部分知识是否掌握的标准是能否把这些理论用在大型数据库中,因为数据库理论最开始是起源于IBM的大型数据库,(这一点可能不是很准确,我的意思是说数据库理论可能最先在大型数据库中得到应用。)再说只有面对大型数据库,才能充分体现你的数据库理论掌握水平和数据库设计水平。那么我怎样去得到一个大型数据库,仅仅供我学习用了。当然,这个大型数据库必须包含很多实际中的大量数据。

    不要告诉我只能在实际项目中学习,因为实际中的项目不是拿来学习的,他经不起失败。如果是这样,会出现这样一种情况:
我通过钻研数据库教材,觉得自己掌握的很不错,可就有一条,没有实践。如果带着没有任何实践经验的数据库理论与做项目,特别是大型项目,我不敢保证我会成功,因为毕竟只是学习了一下书本上的理论,而实际中我遇到一些无法解决的问题,这些问题并不是因为我理论掌握的不好。这时候该怎么办呢?

    说了这么多,其实可以用一句话来总结上述所说的:我需要在充分掌握数据库理论的前提下,淋漓尽致的把自己所掌握的理论知识充分用在一个大型项目中,通过解决很多复杂实际问题,来印证自己掌握的理论知识。让自己的感性知识和理性知识得到完美的结合。只有这样,我才有底气说:我终于掌握了数据库。可是如何从哪里找到这样的一个数据库供我练习用呢?

    注:虽然可能我的这些话,可能有人会认为很偏激,但对这类人,我想问这样一个问题:你怎样知道你数据库学好了?(别告诉我只是考试得高分,我始终认为考试得高分,只是学习的一个必然结果。显然,实际中的问题要比考试难的多。)
  龚艺的Facebook资料 龚艺的博客

 

Talents come from diligence, and knowledge is gained by accumulation.

Tag标签: SQL
posted on 2008-08-31 11:27 龚艺-码行天下 阅读(1887) 评论(9)  编辑 收藏 网摘 所属分类: 数据库开发

评论

#1楼 2008-08-31 11:35 RicCC      
稍微有点规模,管理正规一点的项目,实施过程中都会分出dev环境和product环境,也会尽量让dev的数据和product数据基本一致
先从查询性能入手,实践并不等于可以把数据库弄的一塌糊涂
数据库原理和数据量也没有太多必然联系

  回复  引用  查看    

你自己做一个想博客园这样的网站就可以了。
  回复  引用  查看    

#3楼 2008-08-31 12:22 笑看风情      
想要数据太简单了,做一个循环,往数据库里插几百万的数据,够你喝好几壶了
  回复  引用  查看    

#4楼 2008-08-31 14:31       
lz打算开发数据库?自己写个mysql出来?

如果不是,好像了解这些没啥用。学会数据库性能调优就不错了。大学考个八九十分就行了。理论都是经典的,真的有功夫,就不要看教材,去看论文。

  回复  引用  查看    

#5楼 2008-09-01 08:22 笨笨的考拉熊      
楼主只能找一个有大型数据库的企业上班了。
不要幻想什么循环插入千万数据,使用大型数据库副本等方法。循环数据没有差异性,不可能体现出实际运行中的各种情况。大数据的备份也不现实,一个没有运作的数据库,无法从中学会运维、数据优化、灾难恢复等知识的。

至于说“如果运用的失败,会给组织带来巨大的损失”,那个组织也不会在没有试验环境测试过的情况下直接修改生产系统的。但没有生产系统的参照,是无法知道需要做什么修改的,那么实验环境也没什么意义了。
也可能你想说的是为大型数据库编写前台程序,但个人感觉实际上大型数据库的编程和小型的没有非常巨大的差异,技术基本差不多,因为取1万条数据和取1000万没什么本质区别。所不同的就是后台数据库的架构,存储过程、事务、锁等的优化,但这些内容有DBA来做,程序员反倒不用关注。

PS:做个广告(*^__^*)
本人QQ:279983005,所在企业数据库主库为60G(只保留3年数据,可惜呀),20多个分库平均10G左右,我现在正在学习数据挖掘的相关知识,想在明年开始研究建设数据仓库。有同样需求和研究方向的朋友,欢迎加我好友(人多了也可以建个群),大家共同进步。

  回复  引用  查看    

#6楼 2008-09-01 09:40 rO8eR70.nEt      
看来楼主是迷茫了!

最后一句结论不错,但是如何找到一个数据库让你练习这个问得比较奇怪了?这好像是个先有鸡还是先有蛋的问题?

  回复  引用  查看    

用随机生成的数据填充可以验证很多性能问题,也可以测试包含有表间关系的几张表的性能问题。随机数据如何生成可以根据你想测试的东西来写算法,比如重复率如何设置,数据之间的关联方式等等。

没有实际的工作环境,学习到这些也就不错了。实际遇到的很多是逻辑问题,会数据库的理论可以轻松找出问题的根源,不会的就只有瞎猜了。

  回复  引用    

#8楼 2008-09-01 12:28 陈晨      
针对生产库中遇到的问题学习数据库才更有针对性
比如说调优,建索引,没有实际运行的应用程序,就不知道如何发现问题,进而解决问题

  回复  引用  查看    

#9楼 2008-09-01 13:37 looklook[未注册用户]
经验告诉我,一般如果设计没有大问题,数据规模在20G以下,基本不用考虑性能问题,目前的数据库软件足够强大了。

(当然,你不能设计出频繁需要表扫描的程序)

  回复  引用    

发表评论

昵称: [登录] [注册]

主页:

邮箱:(仅博主可见)

评论内容:

  登录  注册

[使用Ctrl+Enter键快速提交评论]

0 1280551




相关文章:

相关链接:
友情链接检查
龚艺博客