惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

T
Threat Research - Cisco Blogs
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Last Week in AI
Last Week in AI
大猫的无限游戏
大猫的无限游戏
博客园 - 三生石上(FineUI控件)
WordPress大学
WordPress大学
博客园 - Franky
V2EX - 技术
V2EX - 技术
V
V2EX
T
Tailwind CSS Blog
P
Privacy International News Feed
S
Securelist
腾讯CDC
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
NISL@THU
NISL@THU
C
CXSECURITY Database RSS Feed - CXSecurity.com
有赞技术团队
有赞技术团队
人人都是产品经理
人人都是产品经理
月光博客
月光博客
T
The Blog of Author Tim Ferriss
博客园 - 【当耐特】
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Simon Willison's Weblog
Simon Willison's Weblog
C
Check Point Blog
Cisco Talos Blog
Cisco Talos Blog
Recorded Future
Recorded Future
L
LangChain Blog
The Hacker News
The Hacker News
Project Zero
Project Zero
GbyAI
GbyAI
Stack Overflow Blog
Stack Overflow Blog
宝玉的分享
宝玉的分享
云风的 BLOG
云风的 BLOG
Latest news
Latest news
S
Schneier on Security
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
博客园 - 叶小钗
C
Cisco Blogs
I
Intezer
Recent Announcements
Recent Announcements
Hugging Face - Blog
Hugging Face - Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
The Register - Security
The Register - Security
I
InfoQ
Engineering at Meta
Engineering at Meta
博客园 - 司徒正美
小众软件
小众软件
V
Vulnerabilities – Threatpost
Schneier on Security
Schneier on Security
TaoSecurity Blog
TaoSecurity Blog

Lss233's.Blog()

10 分钟快速入门垃圾回收机制 2022: 艰难,但充满希望 MiniDB 开发手札2 - 网络通信: PostgreSQL 服务端实现 HELLO: 2022 OpenVINO + YoloV5 目标视觉炼丹流程简述 使用 Tinc 组建虚拟内网,并接入 DN42 TOJ 1175 - 线段树模板题 HDU 1671 - Phone List HDU 1257 - 统计难题 于是乎,我就这样活过了2020:这是一篇年末总结 这个Lss233一事无成却敢写年末总结:2019,再见啦。 噩梦24小时:记一次服务器迁移与宕机过程 新技能学习:教你如何阅读Java字节码 让我们用PGP进行安全地交流吧!
MiniDB 开发手札1 - 概览
Lss233 · 2022-10-03 · via Lss233's.Blog()

本学期一门叫《应用软件开发》的课程要求我们实现一个数据库系统,要求能索引、可持续化、多表连接查询、远程访问等功能。

简单思考了一下,我认为这个数据库应该分为以下几个部分:

看起来是一个挺复杂的工程,但慢慢实现一定是能成功的。

系统结构

对于网络通信这一部分,因为自己一直想试试 Netty 这个网络框架,但是又觉得 Java 写着无聊,于是便选择了 Kotlin 作为后端服务器的编程语言,顺便学习一下它的使用方式。

SQL 解析可以使用 ANTRL 来实现, GitHub 上也有大量的资料,应该不是很大的问题。

我希望这款数据库不仅可以作为像 MySQL 这样的分布式数据库服务器,还可以作为像 SQLite 这样的内嵌式数据库,因此还准备了一种数据库驱动和服务端代码一起打包并直接调用的方式,不过这个事情可以后面再说。

数据库引擎应该是整个系统最具有技术含量的部分,由于我没有系统地学习过任何一款数据库引擎实现,所以我对这部分内容是完全没有一点头绪——那也放到后面去吧!

此外,这个系统将由我和另外一位队友一起完成,为了确保我们可以在完成课程要求的前提下实现一些花里胡哨的功能,我们打算先从简单的功能写起,然后再让它逐渐变得复杂。

我认为实现这个数据库的过程也很有意思,所以打算写一系列开发手札,把这个过程记录下来,希望可以帮助到其他人去写类似的项目。

最后,附上我们的项目地址:

GitHub - lss233/MiniDB

Contribute to lss233/MiniDB development by creating an account on GitHub.

lss233