这份文档提供了《数据库系统概念》一书内容的MySQL实现版本,涵盖了设计、构建和管理大学相关数据库系统的全面指导与实践案例。
《数据库系统概念》一书中的大学数据库完整模式使用 MySQL 语法进行创建,并包括六个表:classroom、department、course、instructor、section 和 teaches。
- classroom 表存储上课教室的信息,包含教学楼名称(building)、房间号(room_number)和最大容纳学生数。
- department 表记录系部信息,包括系名(dept_name)、所在建筑(building)及年度预算(budget)。
- course 表则用来保存课程详情,如课程ID(course_id),课程标题(title),所属院系(dept_name),学分(credits)等。
- instructor 表用于存储教师数据,包含教师编号(ID),姓名(name),所属部门(dept_name),以及年薪(salary)。
- section 表记录具体授课情况,包括课程编号(course_id), 课程段编号(sec_id),学期(semseter),年份(years),教学楼(building),教室号(room_number) 和上课时间(slot)。
- teaches 表存储教师的教授信息,包含教师ID(ID), 教授课程ID(course_id), 教学段sec_id, 学期(semseter)和年份(years)。
这些表通过主键(primary key)、外键(foreign key)和其他约束来确保数据的一致性和完整性。例如,classroom 表的主码是(building, room_number),department 表的主码为dept_name,course 表的主码是 course_id,instructor 表的主码为ID,section 表的主码是(course_id, sec_id, semester, year) ,teaches表的主键则是(ID,course_id ,sec_id ,semester ,year )。此外,还使用了多种索引以提高查询速度。
该模式遵循数据库设计的基本原则(如第三范式和BCNF),确保数据的一致性和正确性,并且可以有效地管理大学的教学信息需求。