• Stars
    star
    836
  • Rank 54,534 (Top 2 %)
  • Language
    Java
  • License
    GNU General Publi...
  • Created about 3 years ago
  • Updated 10 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

一个简单的数据库实现

MYDB

MYDB 是一个 Java 实现的简单的数据库,部分原理参照自 MySQL、PostgreSQL 和 SQLite。实现了以下功能:

  • 数据的可靠性和数据恢复
  • 两段锁协议(2PL)实现可串行化调度
  • MVCC
  • 两种事务隔离级别(读提交和可重复读)
  • 死锁处理
  • 简单的表和字段管理
  • 简陋的 SQL 解析(因为懒得写词法分析和自动机,就弄得比较简陋)
  • 基于 socket 的 server 和 client

运行方式

注意首先需要在 pom.xml 中调整编译版本,如果导入 IDE,请更改项目的编译版本以适应你的 JDK

首先执行以下命令编译源码:

mvn compile

接着执行以下命令以 /tmp/mydb 作为路径创建数据库:

mvn exec:java -Dexec.mainClass="top.guoziyang.mydb.backend.Launcher" -Dexec.args="-create /tmp/mydb"

随后通过以下命令以默认参数启动数据库服务:

mvn exec:java -Dexec.mainClass="top.guoziyang.mydb.backend.Launcher" -Dexec.args="-open /tmp/mydb"

这时数据库服务就已经启动在本机的 9999 端口。重新启动一个终端,执行以下命令启动客户端连接数据库:

mvn exec:java -Dexec.mainClass="top.guoziyang.mydb.client.Launcher"

会启动一个交互式命令行,就可以在这里输入类 SQL 语法,回车会发送语句到服务,并输出执行的结果。

一个执行示例:

More Repositories

1

My-RPC-Framework

一个简单的RPC框架的实现
Java
800
star
2

Moonix

Yet another RISC-V OS in C
C
72
star
3

My-Spring-IOC

Spring IOC容器和SpringMVC的一个简单的实现
Java
25
star
4

oslab-oneclick

哈工大操作系统实验环境一键配置
C
24
star
5

computer-composition-lab

2019年秋哈尔滨工业大学计算机组织与体系结构实验汇总
C
9
star
6

computer-network

2019年秋哈尔滨工业大学计算机网络实验汇总
Java
8
star
7

rvemu

RISC-V Emulator Written in Java
Java
7
star
8

SpicyChickenJVM

A simplified JVM demo in Java
Java
5
star
9

computer-system-security

2019年秋哈尔滨工业大学计算机系统安全实验汇总
JavaScript
5
star
10

Relation-Calculator

a calculator which can calculate the appellation of your relations
Java
4
star
11

riscv-emulator

riscv emulator
Go
3
star
12

Syntax-Analyzer-Web

编译原理语法分析器web版
JavaScript
3
star
13

software-construction

2019年春哈尔滨工业大学软件构造实验汇总
Python
3
star
14

6.824

MIT 6.824
Go
3
star
15

CodeToCode

A code conversion
Java
2
star
16

6.5840

Go
2
star
17

My-Java-Clock

A little clock written by java
Java
2
star
18

travelling-salesman-problem

2019年秋哈尔滨工业大学演化计算大作业——遗传算法解决旅行商问题
Java
1
star
19

MoonixThesis

TeX
1
star
20

BlueLine-Backend

蓝线俱乐部官网后端
Java
1
star
21

HelloP2P

JavaScript
1
star
22

machine-learning

2019年秋哈尔滨工业大学机器学习实验汇总
Jupyter Notebook
1
star
23

Syntax-Analyzer

基于Electron的语法分析器
JavaScript
1
star
24

computer-system

2018年秋哈尔滨工业大学计算机系统实验汇总
JavaScript
1
star
25

FOFNotifier

Go
1
star
26

pastebin

一个基于MongoDB的Pastebin服务
HTML
1
star
27

Jupiter

Simple DB Written in Java(WIP)
Java
1
star
28

data-structure

2018年秋哈尔滨工业大学数据结构实验汇总
Java
1
star