Tag cloud
algorithm android apache Arch Archlinux birthday blogging C++ C++ Primer domain DreamHost English Firefox font fun G1 game Gentoo GFW GnuPG Google holiday Java life Linux Mac mail music network nVidia OI PageRank pal password programming qq science template Tor Ubuntu Vijos webmaster tools windows wordpress WoWCategories
Archives
- February 2012
- August 2011
- July 2011
- June 2011
- May 2011
- March 2011
- February 2011
- December 2010
- August 2010
- July 2010
- March 2010
- February 2010
- January 2010
- December 2009
- November 2009
- September 2009
- July 2009
- June 2009
- April 2009
- March 2009
- February 2009
- January 2009
- December 2008
- November 2008
- October 2008
- August 2008
- July 2008
- June 2008
- May 2008
- April 2008
- March 2008
- February 2008
- January 2008
- December 2007
- November 2007
- October 2007
- September 2007
- August 2007
- July 2007
- June 2007
- May 2007
- April 2007
- March 2007
- February 2007
- January 2007
- December 2006
- November 2006
- October 2006
- September 2006
- August 2006
- July 2006
License

This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.Meta
Monthly Archives: February 2012
我们的数据库课
很久之前的一篇文章,怎么也是上上学期吧,写成草稿了,现在贴出来吧。 我并不是要批评我们的老师,我觉得我们的老师还是挺负责任的,能讲到的还是尽量讲到还是都讲到了。 其实最重要的是我并不知道这课到底是在讲什么,老师在某节课上说:“我们这门课主要是讲授数据库理论,这个内容就不讲了”(意思是这样的)。当时我就震惊了,我一直以为这门课讲的是数据库如何使用数据库的……老师上课的时候也经常说作为数据库的使用者如何如何,那我们的这门课到底是在讲理论还是使用呢…… 作为大学的课程,我认为应该以理论为主,怎样使用只是顺带一提,以自学为主就好,就像传言中国外大学某些课程一样,一次课讲完一门语言,SQL 这种东西完全可以一次课讲完,剩下的靠大家自学或者直接实践,但是上半学期除了绪论,就一直在讲关系代数和 SQL,这个东西需要这么多时间来讲吗?我个人认为,4个课时就足够了(可能有点太激进了)。这门课上用了八周,也就是 22 个课时来讲这些东西。 我是一个理论比较弱的人,所以就想着靠学校里的数据库课补一下理论知识的。在我眼中,这门课讲的东西确实是必须的,但是内容太少了,深度也不够。这个 playlist 是印度一所大学的数据库课程,我只看了标题,来比较一下我们课程的内容。Lecture 1~9 我们是讲过的,10~16 没讲过,17~23 讲过,24~26 没讲过,27~29 讲过,30~42 没讲过,只有 19/42 的内容我们覆盖到了,也就是只有 45%。看看我们漏掉了什么东西,存储过程、索引、查询过程和优化、分布式数据库、数据挖掘、XML 和对象数据库还有很多 case study。我想要的是什么?我想学的就是数据库是怎么实现的,存储过程、索引、查询过程和优化为什么没有?这是本科教育对吗?不是职业教育,我们要知道原理才能更好地利用数据库,对吗?学校里学不到的指望我们在工作中学吗?大家都清楚,工作了就更没有机会去学理论了。怎样用 SQL 需要教吗?DBMS 就会告诉你你的 SQL 是对是错,你也能一眼看出来结果是否正确,尝试一下,总会正确的。但是如果你一句 SQL 执行了一分钟,DBMS 会告诉你为什么吗?会告诉你子查询的速度慢吗?会告诉你优化器做了什么吗?会告诉你中间创建了哪些临时表吗?不会的,起码不会一眼就看出来,你需要理论知识的支持,可是这门课给了我们什么? 要说这门课重视实践,那我又不明白了。现在起码在互联网方面,大家都只是把数据库当作一个存储数据的地方,很多高级的功能、很复杂的 SQL 都很少出现,那么我们写一堆长长的带着子查询,带着 ANY 带着 EXISTS 的东西有什么用呢?做教务系统吗?用非常复杂的 SQL … Continue reading