October 03, 2022 13 min read 数据库 MiniDB 开发手札2 - 网络通信: PostgreSQL 服务端实现 要写一个能够进行网络通信的协议,我们需要有客户端和服务端,定义各种数据包格式以及它们的交互流程,然后需要考虑安全性、效率等各种因素……实在是太麻烦了!所以,与其从头开始设计一个通讯协议,为什么不先研究一下现有数据库系统的协议呢? 如果我们直接实现了某个数据库的协议,那么这款数据库的客户端就可以直接连接到我们的数据库上,这样的话,我们岂不是连客户端都可以不用写了。嘿嘿…… 抱着这种想法,本人在网上进行了一番调研,最后决定使用 PostgreSQL 数据库的通信协议。 选择 PostgreSQL 主要是因为…… 1. 社区活跃,资料丰富(不知道的能 Google) 2. 官网有较为详细的通信协议文档(我看得懂) 3. 版权属于社区, 继续阅读
October 03, 2022 2 min read 数据库 MiniDB 开发手札1 - 概览 本学期一门叫《应用软件开发》的课程要求我们实现一个数据库系统,要求能索引、可持续化、多表连接查询、远程访问等功能。 简单思考了一下,我认为这个数据库应该分为以下几个部分: 看起来是一个挺复杂的工程,但慢慢实现一定是能成功的。 系统结构对于网络通信这一部分,因为自己一直想试试 Netty 这个网络框架,但是又觉得 Java 写着无聊,于是便选择了 Kotlin 作为后端服务器的编程语言,顺便学习一下它的使用方式。 SQL 解析可以使用 ANTRL 来实现, GitHub 上也有大量的资料,应该不是很大的问题。 我希望这款数据库不仅可以作为像 MySQL 这样的分布式数据库服务器, 继续阅读