Guass数据库实验(数据字典设计、交叉表设计)

Assignment 2: Database Design

目录

Assignment 2: Database Design

数据库创建

新建用户bit,并创建数据库模式ass2

使用datastdui以该用户远程登陆

创建学科数据字典相关表

学科门类表

一级学科表

二级学科表

三级学科表

学科变更历史表

插入数据字典数据

插入学科门类数据

插入一级学科数据

插入二级学科数据

插入变更历史数据

创建学生成绩相关表

学生表

课程表

成绩表

插入数据:

问题解决

编码长度改变

在变更历史表中记录长度变更

更新相关学科代码

增加四级学科

记录结构变更

将门类与一级学科合并

运行结果:

代码有效期改变

设置学科有效期

更新变更历史

要求保留原信息

创建学生-学科关联表(带有效期)

插入示例数据

查询学生在特定时间点的学科信息

查询演示

结果演示:

交叉表实现

固定课程的查询

查询结果:


数据库创建

  • 新建用户bit,并创建数据库模式ass2

  • 使用datastdui以该用户远程登陆

创建学科数据字典相关表

  • 学科门类表

  • 一级学科表

  • 二级学科表

  • 三级学科表

  • 学科变更历史表

插入数据字典数据

  • 插入学科门类数据

  • 插入一级学科数据

  • 插入二级学科数据

  • 插入变更历史数据

创建学生成绩相关表

  • 学生表

  • 课程表

  • 成绩表

插入数据:

问题解决

编码长度改变

  • 在变更历史表中记录长度变更

  • 更新相关学科代码

注意:这里如果直接这样写的话,会报错,因为二级学科表引用了一级学科表

而我的解决方式是使用级联更新

先将原来的外键删除,然后建立支持级联更新的外键约束

更新之后如下:

增加四级学科

  • 记录结构变更

  • 将门类与一级学科合并

  • 运行结果:

代码有效期改变

  • 设置学科有效期

  • 更新变更历史

要求保留原信息

  • 创建学生-学科关联表(带有效期)

  • 插入示例数据

  • 查询学生在特定时间点的学科信息

  • 查询演示

  • 结果演示:

交叉表实现

  • 固定课程的查询

查询结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值