大学数据库建模:配合《数据库系统概念》第六版

需积分: 10 5 下载量 60 浏览量 更新于2024-09-11 1 收藏 3KB TXT 举报
该资源是用于创建名为"universitydatabase"的数据库的SQL脚本,与《数据库系统概念》第六版教材配套使用。脚本包含了创建多个表的语句,如classroom、department、course、instructor和section,用于模拟大学教育环境中的各个实体。 在数据库设计中,创建表是构建数据库结构的基础工作,它可以定义数据的存储格式和关系。以下是对这些表的详细解释: 1. `classroom` 表: - building:教室所在的建筑名称,类型为varchar(15),用于记录教学楼的名字。 - room_number:教室编号,类型为varchar(7),标识具体的教室位置。 - capacity:教室容量,类型为numeric(4,0),表示教室能容纳的最大人数。 - primary key (building, room_number):复合主键,确保每栋建筑的每个房间都是唯一的。 2. `department` 表: - dept_name:部门名称,类型为varchar(20),代表学院或系的名称。 - building:部门所在建筑,类型为varchar(15)。 - budget:部门预算,类型为numeric(12,2),且有检查约束确保预算值大于0。 - primary key (dept_name):主键,确保每个部门名字的唯一性。 3. `course` 表: - course_id:课程编号,类型为varchar(8),用于区分不同的课程。 - title:课程标题,类型为varchar(50),表示课程的全名。 - dept_name:所属部门,类型为varchar(20)。 - credits:学分,类型为numeric(2,0),且有检查约束确保学分值大于0。 - primary key (course_id):主键,确保每个课程编号的唯一性。 - foreign key (dept_name) references department(dept_name):外键,关联到department表的dept_name,当department被删除时,设置为NULL,遵循ON DELETE SET NULL规则。 4. `instructor` 表: - ID:教员编号,类型为varchar(5),作为教员的唯一标识。 - name:教员姓名,类型为varchar(20),且非空约束,确保姓名必须填写。 - dept_name:所属部门,类型为varchar(20)。 - salary:教员工资,类型为numeric(8,2),有检查约束确保工资大于29000。 - primary key (ID):主键,确保每个教员编号的唯一性。 - foreign key (dept_name) references department(dept_name):外键,关联到department表的dept_name,当department被删除时,设置为NULL,遵循ON DELETE SET NULL规则。 5. `section` 表: - course_id:课程编号,类型为varchar(8),关联课程表。 - sec_id:课程的细分部分,类型为varchar(8)。 - semester:学期,类型为varchar(6),有检查约束限制为'Fall'、'Winter'、'Spring'、'Summer'之一。 - year:年份,类型为numeric(4,0),有检查约束确保在1701年之后且2100年之前。 - building:上课地点,类型为varchar(15)。 - room_number:上课教室,类型为varchar(7)。 - time_slot_id:时间段标识,类型为varchar(4)。 - primary key (course_id, sec_id):复合主键,确保每门课程的每个细分部分是唯一的。 这个数据库设计考虑了大学环境中课程、教员、教室和部门之间的关系,通过外键确保了数据的一致性和完整性。这样的设计便于管理课程安排、教师信息、教室分配等事务,是数据库在高等教育管理中的典型应用。