# zzj-sql project **Repository Path**: soil-ash/zzj-sql-project ## Basic Information - **Project Name**: zzj-sql project - **Description**: 18组-朱正杰 张妍 徐慧 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-09-15 - **Last Updated**: 2025-09-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 小型数据库系统 (Mini Database System) 运用编译原理、操作系统和数据库知识实现的小型数据库系统。 ## 🎯 系统特性 - **SQL词法分析器**: 使用有限自动机原理 - **SQL语法分析器**: 使用递归下降解析法 - **文件管理器**: 基于操作系统的文件I/O抽象 - **支持的SQL语句**: CREATE TABLE, INSERT, SELECT, UPDATE, DELETE ## 📁 项目结构 ``` mini-db-system/ ├── sql_compiler/ # Python版本SQL编译器 │ ├── lexer.py # 词法分析器 │ ├── parser.py # 语法分析器 │ └── semantic_analyzer.py # 语义分析器 ├── sql_compiler_cpp/ # C++版本SQL编译器 │ ├── Token.h/.cpp # 词法单元定义 │ ├── Lexer.h/.cpp # 词法分析器 │ ├── AST.h/.cpp # 抽象语法树 │ ├── Parser.h/.cpp # 语法分析器 │ └── test_*.cpp # 测试文件 ├── storage_system_cpp/ # C++版本存储系统 │ ├── FileManager.h/.cpp # 文件管理器 │ └── test_file_manager.cpp # 文件管理器测试 ├── database_system/ # 数据库系统 (待实现) ├── examples/ # 示例应用 ├── tests/ # 测试文件 ├── run_menu.sh # 交互式运行菜单 ├── run_all_tests.sh # 运行所有测试 └── README.md # 说明文档 ``` ## 🚀 运行方式 ### 方式一:交互式菜单 (推荐) ```bash cd /Users/zhangpeng/Desktop/150 ./run_menu.sh ``` 然后选择要运行的组件: - 1: Python词法分析器 - 2: Python语法分析器 - 3: C++词法分析器 - 4: C++语法分析器 - 5: C++文件管理器 - 6: 运行所有测试 ### 方式二:运行所有测试 ```bash cd /Users/zhangpeng/Desktop/150 ./run_all_tests.sh ``` ### 方式三:单独运行各组件 #### Python版本: ```bash # 词法分析器 cd /Users/zhangpeng/Desktop/150 python3 sql_compiler/lexer.py # 语法分析器 cd /Users/zhangpeng/Desktop/150/sql_compiler python3 parser.py ``` #### C++版本: ```bash # 编译并运行词法分析器 cd /Users/zhangpeng/Desktop/150/sql_compiler_cpp make clean && make && ./test_parser # 编译并运行文件管理器 cd /Users/zhangpeng/Desktop/150/storage_system_cpp make clean && make && ./test_file_manager ``` ## 📊 测试SQL语句 系统能够解析以下SQL语句: ```sql -- 创建表 CREATE TABLE users ( id INT PRIMARY KEY, name VARCHAR(50) NOT NULL, age INT, email VARCHAR(100) ); -- 插入数据 INSERT INTO users VALUES (1, 'Alice', 25, 'alice@example.com'); -- 查询数据 SELECT * FROM users WHERE age > 20; ``` ## 🏗️ 技术架构 ### 编译原理应用: - **词法分析**: 有限自动机 (Finite Automata) - **语法分析**: 递归下降解析 (Recursive Descent Parsing) - **抽象语法树**: AST节点定义和遍历 ### 操作系统应用: - **文件管理**: 文件I/O抽象层 - **内存管理**: 缓冲区管理设计 - **存储抽象**: 块级I/O操作 ### 数据库原理应用: - **SQL解析**: 语句解析和执行计划 - **数据存储**: 文件系统存储架构 - **查询处理**: 基本查询执行流程 ## 🔧 构建要求 - **Python版本**: Python 3.7+ - **C++版本**: C++17标准支持 - **编译器**: g++ (支持C++17) - **操作系统**: macOS/Linux ## 📈 开发进度 - ✅ SQL词法分析器 (Python & C++) - ✅ SQL语法分析器 (Python & C++) - ✅ 文件管理器 (C++) - 🔄 缓冲区管理器 (待实现) - 🔄 索引管理器 (待实现) - 🔄 DDL处理器 (待实现) - 🔄 DML处理器 (待实现) - 🔄 查询处理器 (待实现) - 🔄 事务管理器 (待实现) ## 🎓 学习价值 这个项目展示了如何将理论知识应用于实践: 1. **编译原理**: 词法分析和语法分析算法的实际应用 2. **操作系统**: 文件系统和I/O操作的抽象设计 3. **数据库原理**: SQL解析和数据存储架构的设计 4. **系统设计**: 模块化设计和组件间的协作 ## 🤝 贡献 欢迎提交Issues和Pull Requests来改进这个项目! ## 📄 许可证 MIT License