【快班】数据库引擎与SQL优化器开发
数据库
15周
3人
- wangzhonnew
- 王涛,ITPUB资深斑竹(wangzhongnew),毕业于加拿大卡尔加里大学,于2005年在IBM多伦多实验室进行DB2数据库的研发与技术支持,并参与设计IBM下一代弹性数据平台。2012年创立SequoiaDB巨杉NoSQL数据库并担任总架构师与首席技术官。
中国IT行业起步较晚,加上国情和民族性格的原 因,大部分人更乐于使用外国人现成的软件(大部分还是盗版),开发点小应用,系统级别的软件几乎没有胆量去挑战。在大多数国人的心目中,象大型操作系统, 大型数据库系统这样的软件,就是个禁区。对于性格容易自卑,技术学习没有恒心和耐力,遇难则退的国人,根本从来没有想象过有一天,自己也有能力去挑战。君 不见,PUB上的数据库爱好者们,对于各种Oracle内幕,比如块构造,隐藏参数等津津乐道,对于调整好一条SQL使之在甲骨文的优化器下能高性能运转 具有巨大的满足感成功感,仿佛自己掌握了天下最有价值的真理,驾驭了天下最有难度的技术。但对于设计,编写出这个数据库的人来说,他们看到此情此景,只好 躲在一边偷偷哂笑。用数据库的称为大师,那么自己写出一个数据库的又该称为什么呢?
我们具有聪明的头脑,缺乏的是高瞻远瞩的眼光和迎难而上的勇气!现在,我们设计了一个新的课程,参与者将有机会学习怎样用C++写出一个完整的数据库软件!而这个课程几乎是免费的!课程不光培养技术,更加培养勇气!
- 第1课 NoSQL数据库简介与环境配置
- 1-1 讲述数据库的核心功能,以及NoSQL与关系型数据库的侧重点
- 1-2 简述该课程的目标,在课程结束后能够实现的数据库功能
- 1-3 介绍数据库的整体架构
- 1-4 介绍开发环境的搭建
- 第2课 建立数据库连接
- 2-1 实现单线程客户端连接,能够向服务端发送请求
- 2-2 实现多线程服务端连接,能够从客户端接收请求
- 第3课 阀锁,配置,日志等
- 3-1 定义服务端的一些底层基础组件
- 第4课 数据库引擎底层搭建1
- 4-1 建立线程数据结构
- 4-2 建立线程调度机制
- 第5课 消息封装
- 5-1 定义客户端服务器的消息通讯结构
- 第6课 数据的持久化存放
- 6-1 Mmap,内存与磁盘的映射
- 6-2 数据块的分配与回收
- 第7课 数据的存储结构
- 7-1 BSON与数据记录的结构设计
- 7-2 数据文件存储结构设计
- 第8课 数据的插入,读取与删除
- 8-1 数据的插入,查询与删除
- 8-2 客户端增加相应的功能
- 第9课 散列索引
- 9-1 数据键的散列桶与内存结构
- 9-2 数据库启动自动建立散列索引
- 第10课 数据库理论
- 10-1 介绍数据库的一些基本原理,包括事务,SQL编译与执行等
- 第11课 SQL解析和优化
- 11-1 SQL编译进阶,优化器概念与实现原理。
- 第12课 Java驱动
- 12-1 连接多点数据库并查询
- 12-2 建立数据的散列机制,能够在正确的分区上查找数据
- 第13课 监控、性能调优和测试
- 13-1 介绍数据库监控和调优理论,并实现数据库的基本监控快照功能
- 13-2 介绍软件测试流程与自动化测试
- 第14课 Java应用
- 14-1 建立Java应用程序,使用驱动与数据库通讯
- 第15课 总结
- 15-1 总结前14节课的步骤
- 15-2 扩展讨论
- 15-3 多数据层次(表空间,表)
- 15-4 日志
- 15-5 高可用性
- 15-6 持久性
- 15-7 锁
- 15-8 事务
- 15-9 多字段查询与更新
- 15-10 B树索引
- 15-11 SQL解析
- 15-12 基于规则的SQL优化器
- 15-13 基于开销的SQL优化器
对数据库底层实现感兴趣的IT人或学习者有兴趣往源代码方向发展的挑战者
1 知道怎样去设计和实现一个数据库,从而获得加入数据库软件厂商的研发团队的机会
2 通过课程极度熟悉c++编程,特别是socket编程和内存管理,这是晋升c++高手的必经之路,c语言的能力属于内功级,可以增加IT人的底气,无论从事系统级软件,还是底层开发,嵌入式开发,移动开发,客户端开发都能得心应手!具备源码级挑战能力的高手深受各大企业的欢迎,金饭碗指日可待!
3 加深对数据库的理解,即使只是数据库用家也能从中获益
---------------------------
预习参考书目C++对于大部分人,至少都在求学阶段学过,但可能长期没有使用。如果要重拾和补强,老师给了一些参考书,可以在课前预习,也可以边上课边补,有充足的时间让你变得更加强大!
Essential C++
http://product.dangdang.com/product.aspx?product_id=20925824
C++ Primer Plus
http://product.dangdang.com/product.aspx?product_id=22783504
The C++ Standard Library
http://www.amazon.com/Standard-Library-Tutorial-Reference-2nd/dp/0321623215
Boost程序库完全开发指南
http://product.dangdang.com/product.aspx?product_id=23170652
编译:
autotools
http://www.amazon.com/Autotools-Practioners-Autoconf-Automake-Libtool/dp/1593272065
Socket:
TCP/IP Sockets编程
http://product.dangdang.com/product.aspx?product_id=20719481
多线程:
Programming POSIX Threads
http://www.amazon.com/Programming-POSIX-Threads-David-Butenhof/dp/0201633922
学费: ¥400 ( 固定学费: ¥300, 逆向学费: ¥100 )
新颖的课程收费形式:“逆向收费”约等于免费学习,仅收取300元固定收费+100元逆向学费,学习圆满则逆向学费全额返还给学员!