# mini_db **Repository Path**: nasoril/mini_db ## Basic Information - **Project Name**: mini_db - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-09-08 - **Last Updated**: 2025-09-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 🗄️ Mini DB 数据库系统 [![License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE) [![Python](https://img.shields.io/badge/python-3.7+-green.svg)](https://python.org) [![Flask](https://img.shields.io/badge/flask-2.0+-red.svg)](https://flask.palletsprojects.com/) > 中南大学计算机学院《大型平台软件设计实习》项目 - 完整的数据库系统实现 ## 📋 项目概述 本项目是一个功能完整的小型数据库系统,包含SQL编译器、存储引擎和现代化Web前端界面。严格按照需求文档实现,展示了从语言编译到系统实现的完整过程。 ### 🎯 核心功能 - **🔍 SQL编译器**: 词法分析 → 语法分析 → 语义分析 → 执行计划生成 - **💾 存储引擎**: 页式存储模型 + LRU缓存机制 + 数据持久化 - **⚡ 执行引擎**: 支持CREATE、INSERT、SELECT、DELETE四大核心操作 - **🌐 Web前端**: 现代化响应式界面,实时监控系统状态 ## 🚀 快速开始 ### 环境要求 - Python 3.7+ - Flask 2.0+ - 现代浏览器 (Chrome/Firefox/Safari/Edge) ### 一键启动 ```bash # 方法1: Python脚本启动 (推荐) python start_system.py # 方法2: Windows批处理启动 双击 启动系统.bat ``` ### 手动启动 ```bash # 1. 安装依赖 pip install flask flask-cors # 2. 启动后端服务 cd mini_db-master python cli/app.py # 3. 访问前端界面 # 浏览器打开 mini_db-master/frontend/demo.html ``` ## 📊 系统架构 ``` ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │ Web 前端界面 │────│ Flask API │────│ SQL 编译器 │ │ (HTML/CSS/JS) │ │ (RESTful) │ │ (4个阶段) │ └─────────────────┘ └─────────────────┘ └─────────────────┘ │ │ ▼ ▼ ┌─────────────────┐ ┌─────────────────┐ │ 执行引擎 │────│ 存储引擎 │ │ (查询执行) │ │ (页式存储) │ └─────────────────┘ └─────────────────┘ ``` ## 🔧 功能演示 ### SQL编译器展示 ```sql -- 1. 创建表 CREATE TABLE student(id INT, name VARCHAR, age INT); -- 2. 插入数据 INSERT INTO student(id,name,age) VALUES (1,'Alice',20), (2,'Bob',22); -- 3. 查询数据 SELECT * FROM student WHERE age > 18; -- 4. 删除数据 DELETE FROM student WHERE id = 1; ``` ### 系统监控 - **缓存状态**: 命中率、缓存页数、淘汰次数 - **性能统计**: 各操作执行时间和频次统计 - **实时监控**: 连接状态、系统资源使用情况 ## 📁 项目结构 ``` mini_db-master/ ├── cli/ # Web服务器 ├── compiler/ # SQL编译器 │ ├── lexer.py # 词法分析器 │ ├── parser.py # 语法分析器 │ ├── semantic.py # 语义分析器 │ └── planner.py # 执行计划生成器 ├── engine/ # 执行引擎 ├── storage/ # 存储系统 ├── frontend/ # Web前端界面 ├── test/ # 测试文件 └── 启动脚本和文档文件 ``` ## 🌟 技术特色 ### 编译器设计 - **完整的编译流程**: 从Token流到执行计划的4个阶段 - **错误处理机制**: 详细的错误定位和提示 - **AST构建**: 标准的抽象语法树结构 ### 存储系统 - **页式管理**: 模拟操作系统的页式内存管理 - **LRU缓存**: 高效的缓存替换策略 - **数据持久化**: 可靠的数据存储和恢复机制 ### Web界面 - **现代化设计**: 渐变背景、毛玻璃效果、响应式布局 - **实时反馈**: 动态状态更新和进度显示 - **交互体验**: 直观的操作界面和快捷功能 ## 📚 使用文档 - [📖 详细使用说明](使用说明.md) - [🏗️ 项目结构文档](项目结构.md) - [🧪 查询功能测试](查询功能测试结果.md) - [📋 需求文档](mini_db-master/需求文档) ## 🧪 测试验证 项目包含完整的测试用例,验证系统各项功能: ```bash # 运行测试 cd mini_db-master/test python storageTest.py # 存储系统测试 python test_sq_engine_run.py # SQL引擎测试 python testcompile1r.py # 编译器测试 ``` ## 🎓 教学价值 - **理论与实践结合**: 将编译原理、操作系统、数据库理论转化为实际代码 - **系统性学习**: 完整的系统开发流程,从设计到实现到测试 - **工程能力培养**: 模块化设计、错误处理、性能优化等工程实践 - **现代化开发**: Web技术、RESTful API、响应式设计等现代开发技术 ## 📊 API接口 | 接口 | 方法 | 说明 | 示例 | |------|------|------|------| | `/execute` | POST | 执行SQL语句 | `{"sql": "SELECT * FROM student;"}` | | `/buffer_stats` | GET | 获取缓存状态 | 返回命中率、缓存页数等 | | `/performance` | GET | 获取性能统计 | 返回各操作执行时间统计 | ## 🤝 贡献指南 1. Fork 本仓库 2. 创建功能分支 (`git checkout -b feature/AmazingFeature`) 3. 提交更改 (`git commit -m 'Add some AmazingFeature'`) 4. 推送到分支 (`git push origin feature/AmazingFeature`) 5. 打开 Pull Request ## 📝 版本历史 - **v1.0.0** (2025-09-15) - ✅ 初始版本发布 - ✅ 完整的SQL编译器实现 - ✅ 存储引擎和执行引擎 - ✅ 现代化Web前端界面 - ✅ 完整的项目文档 ## 📄 许可证 本项目采用 MIT 许可证 - 查看 [LICENSE](LICENSE) 文件了解详情 ## 👥 作者信息 **课程**: 大型平台软件设计实习 **学校**: 中南大学计算机学院 **编撰人**: 姚鑫、桂宁、邓磊 **完成时间**: 2025年9月 ## 🔗 相关链接 - [项目主页](https://gitee.com/nasoril/mini_db) - [问题反馈](https://gitee.com/nasoril/mini_db/issues) - [功能请求](https://gitee.com/nasoril/mini_db/issues) ---