Guass数据库实验(数据字典设计、交叉表设计)
Assignment 2: Database Design
目录
Assignment 2: Database Design
数据库创建
新建用户bit,并创建数据库模式ass2
使用datastdui以该用户远程登陆
创建学科数据字典相关表
学科门类表
一级学科表
二级学科表
三级学科表
学科变更历史表
插入数据字典数据
插入学科门类数据
插入一级学科数据
插入二级学科数据
插入变更历史数据
创建学生成绩相关表
学生表
课程表
成绩表
插入数据:
问题解决
编码长度改变
在变更历史表中记录长度变更
更新相关学科代码
增加四级学科
记录结构变更
将门类与一级学科合并
运行结果:
代码有效期改变
设置学科有效期
更新变更历史
要求保留原信息
创建学生-学科关联表(带有效期)
插入示例数据
查询学生在特定时间点的学科信息
查询演示
结果演示:
交叉表实现
固定课程的查询
查询结果:
数据库创建
-
新建用户bit,并创建数据库模式ass2
-
使用datastdui以该用户远程登陆
创建学科数据字典相关表
-
学科门类表
-
一级学科表
-
二级学科表
-
三级学科表
-
学科变更历史表
插入数据字典数据
-
插入学科门类数据
-
插入一级学科数据
-
插入二级学科数据
-
插入变更历史数据
创建学生成绩相关表
-
学生表
-
课程表
-
成绩表
插入数据:
问题解决
编码长度改变
-
在变更历史表中记录长度变更
-
更新相关学科代码
注意:这里如果直接这样写的话,会报错,因为二级学科表引用了一级学科表
而我的解决方式是使用级联更新
先将原来的外键删除,然后建立支持级联更新的外键约束
更新之后如下:
增加四级学科
-
记录结构变更
-
将门类与一级学科合并
-
运行结果:
代码有效期改变
-
设置学科有效期
-
更新变更历史
要求保留原信息
-
创建学生-学科关联表(带有效期)
-
插入示例数据
-
查询学生在特定时间点的学科信息
-
查询演示
-
结果演示:
交叉表实现
-
固定课程的查询