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

推荐订阅源

Blog — PlanetScale
Blog — PlanetScale
SecWiki News
SecWiki News
Google DeepMind News
Google DeepMind News
WordPress大学
WordPress大学
小众软件
小众软件
C
CERT Recently Published Vulnerability Notes
Jina AI
Jina AI
N
Netflix TechBlog - Medium
GbyAI
GbyAI
IT之家
IT之家
Apple Machine Learning Research
Apple Machine Learning Research
AWS News Blog
AWS News Blog
G
GRAHAM CLULEY
L
Lohrmann on Cybersecurity
C
Cybersecurity and Infrastructure Security Agency CISA
I
Intezer
T
Tor Project blog
P
Palo Alto Networks Blog
P
Privacy & Cybersecurity Law Blog
P
Privacy International News Feed
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
P
Proofpoint News Feed
T
Tailwind CSS Blog
C
Check Point Blog
Cloudbric
Cloudbric
Y
Y Combinator Blog
The Last Watchdog
The Last Watchdog
Forbes - Security
Forbes - Security
Last Week in AI
Last Week in AI
S
Security Affairs
博客园 - Franky
F
Fortinet All Blogs
量子位
M
MIT News - Artificial intelligence
C
Cisco Blogs
酷 壳 – CoolShell
酷 壳 – CoolShell
Stack Overflow Blog
Stack Overflow Blog
S
Secure Thoughts
V
Visual Studio Blog
AI
AI
美团技术团队
B
Blog RSS Feed
Application and Cybersecurity Blog
Application and Cybersecurity Blog
博客园 - 三生石上(FineUI控件)
阮一峰的网络日志
阮一峰的网络日志
Engineering at Meta
Engineering at Meta
人人都是产品经理
人人都是产品经理
Microsoft Security Blog
Microsoft Security Blog
T
Threatpost
Cyberwarzone
Cyberwarzone

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