大学生如何实现一个数据库?

大学生如何实现一个数据库?,第1张

首先你要理解SQL并写一个SQL的编译器。本来tokenizer和parser两部分就可以够程序员撕逼了,你还需要写一个你不知道文法(别看了,那书里绝对没有文法)的编译器。这块如果你没学过编译原理,我很好奇你需要怎么实现,甚至怎么寻找或设计文法到实现编译器的前端。

第二,你需要了解关系模型,并实现关系模型的存储。你需要对数据结构,其中最核心的是B+树索引和Hash索引,重点是实现他们在磁盘上的版本。由于磁盘的存储方式和内存不一样,你需要针对磁盘的存尺斗储进行特殊的处理。

第三,你需要实现查询引擎。查询引擎的原理是将SQL转换成一系列关系代数 *** 作符组成的 *** 作树。之前你已经实现了这个查询引擎,也就是SQL编译器的前端。现在你需要理解关系代数,并实现关系代数 *** 作符。并实现一个类似于解释器,或者叫调度器的工具,将关系 *** 作树给依次执行。其中关系代数 *** 作符里最麻烦的就是join *** 作,因为join *** 作有好几种join算法。如果需要的话,你还需要实现查询优化引擎。查询优化引擎姑且算是一个抽象的黑盒子,里面需要用到一些启发式的高级算法,需要你对动态规划和树遍历等等算法有了解。同时在cost estimation的部分需要从历史数据中估算cost,往大了说还是统计学和机器学习呢察培。

第四,你需要实现事务和恢复(回滚)机制,这是数据库最重要的功能之一。事务的话需要各种锁的机制实现,而回滚需要有完善的日志系统。这两部分需要大量的工作量和对 *** 作系统有深入的了解。

第五,你最好还要实现一个api。这就是把socket通信封个包的苦力了。

我很好奇150天中你要各分配给上面的东西多少天。举个例子,阿里一堆“大神”做oceanbase,当然transaction和存储复杂多了,用了四年。今年图灵奖得主michael stonebraker的学生做的voltdb的原型,接近十个人做一年。

我本科并没有实现一个数据库就毕业了。当时也是看着大神们说什么撸一个数据库感到各种膜拜。现在我回过头来反思,一个人撸一个数据库到底是不是一件很有意义的事情,而且也陵没磨完不成。几个人一起分工各做一部分姑且能勉强完成任务。诚然,如上文所讲,还不完全(我没撸过数据库,所以上面讲的并不能如数家珍),数据库作为一个计算机软件是包含了计算机科学里许多模块的一个十分综合的软件系统。对数据库的学习可以延展到对算法与数据结构,编译器,计算理论, *** 作系统等等方方面面的学习,是非常好的一件事。同时做一个数据库一定需要对这些多方面的知识有着十分详细的了解才能做到游刃有余。这些绝对不是,也没必要是,一个大学低年级同学应该做到的。甚至不是大部分工程师应该做到的。因为工程师的业务绝大部分人涉及不到这么多方面,尤其是编译器部分。

《数据库》学了相关的基本概念(如数据、数据库、数据库系统、数据库管理系统、概念模型前型穗等等),关系模型,关系数据库标准语言,数据库的安全性、完租薯整性,数据库的设计、查询、优化等。挺好学的,不常编慧卜程序,就在学SQL语言时编了一点,很简单。

很多大学生在大学期间都应该会考的证书那肯定是计算机二级证书啦,但是计算机二级的考试科目也并不是只有一个,所以一般都是看自己需要考哪个科目综合决定。下面是计算机二级考试科目的具体情况,一起来看看吧!欢迎大家阅读本文,关注本站即可获取更多精彩资讯!

首先我们来说一下计算机二级考试有哪些科目。

一、计算机二级考试科目

计算机二级考试科目主要分为语言程序设计、数据库程序设计、办公软件应用,其中:

1、语言程序设计包括:C语言程序设计、C++语言程序设计、Java语言程序设计、Python语言程序设计

2、数据库程序设计包括:Access数据库程序设计、MySQL数据库程序设计

3、办公软件应用包括:MS Office 、WPS Office

二、计算机二级考哪个科目比较好

如皮搏果要问考哪个科目比较好,主要要看自己考证的目的和我们所学的专业。

1、如果是想学点实用办公技能,可以考MS Office,也就是微软Office,PPT、EXCEL等这些技能在职场还是比较实用的,另外现在也可以考WPS Office,也值得报考,由于MS Office正版还是比较贵的,WPS因为免费,用户量也非常大,而且二者基本功能没有很大差异;

2、如果想了解编程或者未来想从事软件开发工作,也就是我们常说的程序员,碧罩可以考一下Python、Java,这是目前使用非常广泛的编程语言,实用性强,未来就业也不错,薪资也比较高,当然想要高薪,只燃慧祥是基本的了解还是不够的,还是需要深度钻研学习的。

3、如果自己就是想有个计算机二级证,别人有我也不能没有,也不知道考什么,可以考C语言和Access,因为大多数同学会在大学学习这两门课程,考起来会相对容易,不会那么吃力。在面试时,问你考过哪些证,至少还可以说自己有个计算机二级证。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12540160.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存