大学数据库建模:配合《数据库系统概念》第六版
需积分: 10 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):复合主键,确保每门课程的每个细分部分是唯一的。
这个数据库设计考虑了大学环境中课程、教员、教室和部门之间的关系,通过外键确保了数据的一致性和完整性。这样的设计便于管理课程安排、教师信息、教室分配等事务,是数据库在高等教育管理中的典型应用。
2020-03-05 上传
2023-06-24 上传
2023-07-05 上传
2023-07-28 上传
2023-06-07 上传
2023-09-19 上传
2024-01-11 上传
新晴余快
- 粉丝: 7
- 资源: 3
最新资源
- 掌握数学建模:层次分析法详细案例解析
- JSP项目实战:广告分类系统v2.0完整教程
- 如何在没有蓝牙的PC上启用并使用手机蓝牙
- SpringBoot与微信小程序打造游戏助手完整教程
- 高效管理短期借款的Excel明细表模板
- 兄弟1608/1618/1619系列复印机维修手册
- 深度学习模型Sora开源,革新随机噪声处理
- 控制率算法实现案例集:LQR、H无穷与神经网络.zip
- Java开发的HTML浏览器源码发布
- Android闹钟程序源码分析与实践指南
- H3C S12500R升级指南:兼容性、空间及版本过渡注意事项
- Android仿微信导航页开门效果实现教程
- 深度研究文本相似度:BERT、SentenceBERT、SimCSE模型分析
- Java开发的zip压缩包查看程序源码解析
- H3C S12500S系列升级指南及注意事项
- 全球海陆掩膜数据解析与应用