IvorySQL 再次走进北京大学研究生开源公选课

2020年1月COPU(中国开源软件推进联盟)成员开会讨论面向高校的开源示范课程,由联盟副秘书长北京大学荆琦老师牵头筹备,并首先在北大软微学院试点。本次是中国PostgreSQL分会联合会员企业应邀第五次参与授课,课程吸引了国内头部开源大厂积极加入,包括众多开源项目。课程面向北大研一学生(研一第二学期课程,每年3-6月),采用正式学分制,每个项目授课团队包括48课时(3学分)的开源通识课和开发实践课。

file

作为中国高校“放眼世界”的开路者,北京大学秉承传统,开放进取,始终重视培养学生的创新思维和实践能力。而 PG 内核开发通识课,正是北大为培养具备核心竞争力的数据库人才提供的丰富前沿学术资源。在这里,学子们将融合多元知识背景与丰富的实践经验,逐渐成长为具备核心竞争力的创新型数据库人才,为未来开源数据库研发工作奠定坚实的基础。

2025年4月21日,中国开源软件推进联盟PostgreSQL分会联合杭州易景数通、瀚高为北京大学软件与微电子学院研一同学们带来的《开源PostgreSQL生态发展与AI融合》通识课顺利开展。

file

瀚高研发工程师矫顺田在通识课上带来了《IvorySQL与开源社区贡献指南》的主题分享。讲师矫顺田在北大课程中介绍,IvorySQL基于PostgreSQL打造,通过双解析器引擎(Oracle/PostgreSQL语法兼容)和双端口设计(5432/1521)实现与Oracle高度兼容,内核动态钩子与插件ivorysql_ora支撑数据类型、函数等深度对齐。云原生方面,集成K8s Operator、Serverless架构适配多平台。社区鼓励开发者通过GitHub提交代码或参与PostgreSQL补丁审查,以“代码+测试+文档”模式推动开源协作,年度活动“开源之夏”提供实践舞台。

北京大学“PostgreSQL开发基础及实践”研究生课程旨在促进开源技术在中国高校的传播,进一步提高北京大学研究生对PostgreSQL的开发实践能力,培育未来的数据库研发人才。PostgreSQL生态不断繁荣,国内涌现了大量基于PostgreSQL创新的开源项目和周边工具,特别是PostgreSQL生态开源项目IvorySQL(兼容Oracle)不仅能帮助企业通过使用开源数据库降本增效,也为高校师生参与开源项目提供路径。通过开源方式参与协作、学习创新,能更有效的促进高校学生掌握数据库核心技术,将来为开源或信创产业发展贡献力量。

### 学生选课管理系统的设计 #### 系统架构设计 学生选课管理系统可以采用分层架构,一般分为表示层、业务逻辑层和数据访问层。表示层负责与用户进行交互,接收用户的请求并展示系统的响应结果;业务逻辑层处理系统的核心业务逻辑,如选课规则的验证、课程信息的管理等;数据访问层负责与数据库进行交互,完成数据的增删改查操作。 #### 数据库设计 数据库是学生选课管理系统的重要组成部分,需要设计合理的数据库表结构来存储系统的数据。常见的数据库表包括: - **学生表(Student)**:存储学生的基本信息,如学号、姓名、班级等。 ```sql CREATE TABLE Student ( student_id VARCHAR(20) PRIMARY KEY, student_name VARCHAR(50), class VARCHAR(20) ); ``` - **课程表(Course)**:存储选课的基本信息,如课程编号、课程名称、授课教师、课程容量等。 ```sql CREATE TABLE Course ( course_id VARCHAR(20) PRIMARY KEY, course_name VARCHAR(100), teacher_name VARCHAR(50), capacity INT ); ``` - **选课表(Selection)**:记录学生的选课信息,包括学号、课程编号、选课时间等。 ```sql CREATE TABLE Selection ( selection_id INT AUTO_INCREMENT PRIMARY KEY, student_id VARCHAR(20), course_id VARCHAR(20), selection_time TIMESTAMP, FOREIGN KEY (student_id) REFERENCES Student(student_id), FOREIGN KEY (course_id) REFERENCES Course(course_id) ); ``` ### 学生选课管理系统的实现 #### 技术选型 可以根据系统的需求和开发团队的技术栈选择合适的技术。例如,基于Web的学生选课管理系统可以采用SSM(Spring + Spring MVC + MyBatis)框架进行开发,前端可以使用HTML、CSS、JavaScript等技术实现用户界面,后端使用Java语言进行开发。如果是小型的系统,也可以使用C语言进行开发,结合数据库管理系统(如MySQL)来存储数据[^1][^2]。 #### 功能实现 - **学生选课功能**:学生登录系统后,可以查看选课列表,选择自己感兴趣的课程进行选课。系统需要验证选课规则,如课程是否已满、学生是否已经选过该课程等。 ```java // 选课业务逻辑示例 public class SelectionService { public boolean selectCourse(String studentId, String courseId) { // 验证课程是否已满 Course course = courseDao.getCourseById(courseId); if (course.getCapacity() <= selectionDao.getSelectionCountByCourseId(courseId)) { return false; } // 验证学生是否已经选过该课程 if (selectionDao.isStudentSelectedCourse(studentId, courseId)) { return false; } // 插入选课记录 Selection selection = new Selection(); selection.setStudentId(studentId); selection.setCourseId(courseId); selection.setSelectionTime(new Date()); selectionDao.insertSelection(selection); return true; } } ``` - **课程管理功能**:管理员可以对选课进行管理,包括课程的添加、修改、删除等操作。 ```java // 课程管理业务逻辑示例 public class CourseService { public void addCourse(Course course) { courseDao.insertCourse(course); } public void updateCourse(Course course) { courseDao.updateCourse(course); } public void deleteCourse(String courseId) { courseDao.deleteCourse(courseId); } } ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值