跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 做一个关系型数据库系统的简单 demo 大概有多大的工作量
未分類
23 10 月 2020

做一个关系型数据库系统的简单 demo 大概有多大的工作量

做一个关系型数据库系统的简单 demo 大概有多大的工作量

資深大佬 : zxCoder 4

做一个关系型数据库系统的简单 demo 大概有多大的工作量,我觉得做一个可以更加深入了解整个数据库的存储和查询流程。

就是从 sql 的解析到构造中间的查询结构到和实际磁盘文件进行交互

这个工作量作为大学课程设计可以吗,可以很简化,比如只支持最简单的 select 和 insert,只支持单表,暂时不考虑事务或者其他的东西

大佬有話說 (17)

  • 資深大佬 : HenryWang0723

    没看懂…做个 jdbc ?

  • 資深大佬 : opengps

    工作中最常用的其实是查询,变着法的查询,单表查,二次查询,组合查询,统计查询等等

    如果主要联系的是最原始的增删改查,那么仅仅是调用 4 次 orm 提供的方法,可以十分钟内完成

  • 主 資深大佬 : zxCoder

    @HenryWang0723
    @opengps

    不是 是数据库系统,不是数据库的应用程序

  • 資深大佬 : TomVista

    第一种
    git clone mongo

    第二种

    没个几个月我是写不出来,光 b+树我就得看一个月:dog

  • 資深大佬 : mazyi

    如果不对性能等做要求,并不难。

    如果自由设计又达不到深入了解的目的,不自由设计学习成熟数据库又无法更好解释这样设计的背后的原因,因为其实数据库关注的内容非常多,解析 SQL 和文件存储都是为高效使用服务。

    这个课程设计作为哪门课的也很难确定,数据库的相关课程一般没有编码的内容,都是数据库相关的内容,编码的课程一般没有数据库的内容,除了基本操作,操作系统轮不到这个做课程设计,一门单纯的现代数据库设计原理估计还有可能,但是就需要更加深入,那么这个课程设计的出题难度也不小。

  • 資深大佬 : zoowii

    https://github.com/zoowii/levelsql

    可以参考这个玩具,不做很多细节优化工作量不是太大

  • 資深大佬 : chihiro2014

    去看看 cmu 15-445 ?课题就是这个,挺复杂的,国内要开这玩意,太不现实

  • 資深大佬 : kifile

    不考虑 ACID 的情况下,应该主要工作量就是 AST 语法树的解析吧

  • 資深大佬 : optional

    calcite 用现成的脚手架,忽略性能,感觉不难,

  • 資深大佬 : lllllliu

    去看看 sqlite

  • 資深大佬 : sphawkcn

    @zxCoder #3 我猜测主的意思想问:手撸一个最简版的关系型数据库,注意,是做数据库本身,而不是应用程序

  • 資深大佬 : PonysDad

    最难的那一块是 SqlParser 以及优化.不过有现成的.其他的直接怼在内存中不难.

  • 資深大佬 : sockpuppet9527

    @lllllliu #10
    sqlite….差不多自己写了套块管理,benchmark 宣称提升了 35%。
    感觉就是触发了 ext4 的 big_alloc 特性,减少内核切换。
    要是读起来还是比较蛋疼的。。

  • 資深大佬 : sockpuppet9527

    给 lz 一点建议,不关注存储引擎本身的话,实现功能。那么就分为几块
    1. sql 解析器:最简单正则模式解析
    2. 存储结构:最简单不按块来存,按行来存取(就不需要纠结扩展问题)

    你看最简单的 demo 是不是很快就能搞定。

    要是真想学点东西,建议从存储开始看起,了解快存储 /字符存储(目前应该两个够用),了解文件 /块 /字符的相应接口。个人认为不了解存储的话,数据库有些代码会看的比较迷茫。
    再去学啥是数据库,包括里面的具体细节,解析器,存储引擎,存储过程,crud 是怎么实现的,事务又是怎么实现的,断电保护,故障恢复….
    一套组合拳下来,时间也比较长

  • 主 資深大佬 : zxCoder

    @sockpuppet9527 其实就是在学你说的这些具体细节(解析器,存储引擎,存储过程,crud )的过程中感觉太抽象了,概念比较多,平时学东西总是习惯从代码入手,看懂代码

  • 資深大佬 : lllllliu

    emmm,你可以想象你在做一本字典呢,先不管 SQL 的解析。先把查询做出来。

  • 主 資深大佬 : zxCoder

    @lllllliu 对整体架构没啥概念,单独写个 sql 解析这种编译原理也学过,单独写个什么 B+树还是哈希表也不难,但是要怎么说整合成一个 dbms 就有点头大了

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具