# JavaNosql **Repository Path**: tanzero/java-nosql ## Basic Information - **Project Name**: JavaNosql - **Description**: Java实现一个nosql数据库基于C/S架构。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-06-27 - **Last Updated**: 2024-06-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # JavaNosql #### 介绍 Java实现一个nosql数据库基于C/S架构。《Java高级编程及应用》是计算机科学与技术专业的专业选修课之一。课程主要深入探究Java高级实用技术,提高学生对Java编程语言的理解和应用能力。课程内容涵盖了Java的高级特性、并发编程、设计模式、性能优化、网络编程、协同开发等方面的知识,帮助学生深入了解Java编程语言的底层原理和高级技术,以进一步强化学生在Java面向对象编程、软件模块的设计与开发方面的技能,逐步培养出学生在计算机领域工程问题方面的分析与设计能力。考核的内容主要是采用理论课所学的Java语言高级编程的原理知识,运用面向对象程序设计思想,开发一个功能相对比较完整的nosql数据库。从而提高学生面向对象程序设计开发能力,培养成型产品项目的软件过程意识,以及项目文档的写作能力和团队协作能力。 #### 功能要求 使用Java语言,实现一个nosql数据库基于C/S架构。数据库需要支持的功能如下: 1、能够实现正常的增、删、改、查等功能。 2、数据库需要写入磁盘,实现数据持久化。(保存在磁盘中的文件需要实现达到一定容量后自动rotate的功能,且需要对rotate以后的文件进行压缩)。 3、使用多线程技术实现对Rotate文件的压缩操作。 4、设计并实现索引,通过索引来加速查询过程。 5、通过log(wal)文件实现回放功能(参考MySql的redolog),保证内存与磁盘数据的一致性。 6、 持久化文件中存储数据结构设计(参考LSMT)。 7、数据安全性要求,功能完善,设计数据库的各种异常情况的处理方案。 8、 提供方便使用的API(Client)。Client需要提供命令行工具,及Java语言的API(类似与Jar格式,可直接在Java语言中调用)。 #### 实现技术 1、使用git,对整个开发流程进行记录(git log是各小组分工与实现的有效证明之一)。 2、使用Java作为宿主语言,版本JDK8+。 3、数据库的设计基于C/S结构。 4、数据库至少实现对key/value值的增删改查(value的值可以是简单的java内置类型)。 5、体现面向对象方法论的应用,如类、继承、多态和设计模式等方面。 6、可以在创新和拓展方面使用Java范型,拓展对value值的多值支持 7、系统功能完善,给出API的使用案例。 8、系统性能测试。