大学数据库建模:配合《数据库系统概念》第六版
需积分: 10 72 浏览量
更新于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 上传
2015 浏览量
972 浏览量
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
新晴余快
- 粉丝: 7
- 资源: 3
最新资源
- Java集合ArrayList实现字符串管理及效果展示
- 实现2D3D相机拾取射线的关键技术
- LiveLy-公寓管理门户:创新体验与技术实现
- 易语言打造的快捷禁止程序运行小工具
- Microgateway核心:实现配置和插件的主端口转发
- 掌握Java基本操作:增删查改入门代码详解
- Apache Tomcat 7.0.109 Windows版下载指南
- Qt实现文件系统浏览器界面设计与功能开发
- ReactJS新手实验:搭建与运行教程
- 探索生成艺术:几个月创意Processing实验
- Django框架下Cisco IOx平台实战开发案例源码解析
- 在Linux环境下配置Java版VTK开发环境
- 29街网上城市公司网站系统v1.0:企业建站全面解决方案
- WordPress CMB2插件的Suggest字段类型使用教程
- TCP协议实现的Java桌面聊天客户端应用
- ANR-WatchDog: 检测Android应用无响应并报告异常