Overview
Project Details
Tags
Keywords
MySQLSQLDatabase DesignEmbedded SQLJDBCSchema Design
Architecture
三层实验体系:Lab1 基础 SQL 查询与数据操作,Lab4 数据库模式设计与规范化,Lab5 C++ 嵌入式 SQL 实现应用程序与数据库的直接交互。
项目背景
数据库课程要求通过实验掌握 SQL 和数据库设计的核心技能。本项目包含基础 SQL 操作、数据库设计和嵌入式 SQL 编程三个层次的实验。
核心功能
- Lab 1:SQL 基础 — SELECT、JOIN、子查询、聚合函数
- Lab 4:数据库设计 — ER 图、模式创建、规范化
- Lab 5:嵌入式 SQL — C++ 程序直接连接 MySQL 执行查询
系统架构
graph TD
A[Application Layer] --> B[SQL Interface]
B --> C[Query Processor]
C --> D[Storage Engine]
D --> E[(MySQL)]
subgraph "Lab Experiments"
F[Lab1: SQL Queries] --> B
G[Lab4: Schema Design] --> C
H[Lab5: Embedded SQL] --> A
end
项目结构
database/ ├── labwork1/ # SQL 基础实验 │ ├── work1.md # 实验报告 │ └── *.png # 查询结果截图 ├── labwork4/ # 数据库设计 │ ├── mysql.sql # 建表语句 │ └── 设计文档.md ├── labwork5/ # 嵌入式 SQL │ ├── labwork5.cpp # C++ 嵌入式 SQL 程序(8.5KB) │ └── VS2010-MySQL连接.docx └── README.md
核心代码
嵌入式 SQL (C++)
Loading code... 实验内容
| 实验 | 主题 | 核心技术 | | ---- | ------------ | ---------------------------- | | Lab1 | SQL 查询 | SELECT, JOIN, GROUP BY, HAVING | | Lab4 | 数据库设计 | ER 图, 范式, 建表语句 | | Lab5 | 嵌入式 SQL | C++ 连接 MySQL, 宿主变量 |
效果展示
No screenshots yet. Add images to public/screenshots/database/.
技术要点
SQL 查询优化
- 使用
EXPLAIN分析查询计划 - 合理创建索引加速查询
- 避免
SELECT *,只查询需要的列
嵌入式 SQL 流程
源代码(.sqpc) → 预编译器 → C++ 代码(.cpp) → 编译器 → 可执行程序
- 宿主变量(Host Variables)在 SQL 和 C++ 之间传递数据
EXEC SQL前缀标识嵌入式 SQL 语句- 游标(Cursor)处理多行结果集
数据库规范化
1NF: 每列原子性,无重复组
2NF: 消除部分函数依赖
3NF: 消除传递函数依赖
Problems Solved
Challenges & Solutions
01
嵌入式 SQL 的预编译流程和宿主变量绑定
02
数据库模式的规范化设计(1NF → 2NF → 3NF)
03
C++ 与 MySQL 的连接配置和驱动安装
Reflections
Key Takeaways
掌握了 SQL 语言的核心语法和查询优化技巧
理解了数据库设计的规范化理论
学会了在 C++ 应用程序中直接操作数据库