数据库设计的案例分析
一、教学管理
1. 基本需求
某学校设计学生教学管理系统。学生实体包括学号、姓名、性别、生日、民
族、籍贯、简历、登记照,每名学生选择一个主修专业,专业包括专业编号、名
称和类别,一个专业属于一个学院,一个学院可以有若干个专业。学院信息要存
储学院号、学院名、院长。教学管理还要管理课程表和学生成绩。课程表包括课
程号、课程名、学分,每门课程由一个学院开设。学生选修的每门课程获得一个
成绩。
设计该教学管理的 ER 模型,然后转化为关系模型。
若上面的管理系统还要管理教师教学安排,教师包括编号、姓名、年龄、职
称,一个教师只能属于一个学院,一名教师可以上若干门课程,一门课程可以有
多名老师来上,每个教师所上的每门课都有一个课堂号和课时数。尝试修改上题
的 ER 模型,将教师教学信息管理增加进去。
请你设计一个数据库,并确定要满足的各种约束,使得其中:
保存了所需的所有信息;
支持教学管理的各种应用;
尽可能地优化:减少冗余、提高查询速度。
画实体-联系图。
将实体-联系图转换为关系表。
2. 参考设计
首先确定系统中的实体
再确定系统中实体间的关系
转化成 E-R 图
由 ER 模型转换的关系模型是:
图一 教学管理 ER 图
学生(学号,姓名,性别,生日,民族,籍贯,专业号,简历,登记照)
专业(专业号,专业,专业类别,学院号)
学院(学院号,学院,院长)
课程(课程号,课程名,学分,学院号)
成绩(学号,课程号,成绩)
(题目分析:本题中有学生、专业、学院、课程四个实体。一个学生只有一
个主修专业,学生与专业有多对一的联系;一个专业只由一个学院开设,一门课
程只由一个学院开设,学院与专业、学院与课程都是一对多的联系;学生与课程
有多对多的联系。
在转换为关系模型时,一对多的联系都在相应的多方实体的关系中增加一个
外键。)
增加教师,ER 图如下。
图二 有教师实体的教学管理 ER 图
4、检查设计:是否支持各种应用。
1)、如果有学生转换专业,系统如何支持?
2)、如果学生中途退学,系统如何支持?
3)、如果教师处于退休状态,系统如何支持?
4)、选修课通常是针对某些专业的,系统如何支持?
5. 物理设计
基于 Access 的 数据库结构设计如下。
指定数据库文件的名称,并为设计好的关系模型设计表结构。
数据库文件保存在“E:\教学管理\”文件夹中,数据库文件名:教学管理.MDB。
表包括:学院、专业、学生、课程、成绩单。对应表结构如表 1-2 至表 1-6 所示。
表 1-1 学院
字段名
学院号
学院
院长
类型 宽度 小数 主键/索引 参照表
2
文本型
文本型 16
8
文本型
↑(主)
约束
Null 值
√
表 1-2 专业
字段名
专业号
专业
专业类别
学院号
字段名
学号
姓名
性别
生日
民族
籍贯
专业号
简历
登记照
字段名
课程号
课程名
学分
学院号
字段名
学号
课程号
成绩
类型 宽度 小数 主键/索引 参照表
4
文本型
文本型 16
8
文本型
2
↑(主)
文本型
学院
↑
约束
Null 值
表 1-3 学生
宽度 小数 主键/索引 参照表
约束
Null 值
类型
文本型
文本型
文本型
日期型
文本型
文本型
文本型
备注型
OLE 对象
8
8
2
6
20
6
↑(主)
↑
专业
男 or 女
√
√
√
约束
Null 值
约束
Null 值
表 1-4 课程
类型 宽度 小数 主键/索引 参照表
8
文本型
文本型 24
字节型
↑(主)
字符型
2
学院
表 1-5 成绩单
类型 宽度 小数 主键/索引 参照表
学生
文本型
↑
8
6
4
文本型
单精度
↑
课程
1
>=0 and <=100
√
附:教学管理数据库参考数据如表 1-1~表 1-5 所示。
表 1-1 学生表
学号
姓名 性别
生日
民族
籍贯
专业号 简历 登记照
06053113 唐李生 男 04/19/1987 汉
湖北省麻城
0501
07042219 黄耀
男 01/02/1989 汉
黑龙江省牡丹江市 0403
06041138 华美
女 11/09/1987 汉
河北省保定市
07045120 刘权利 男 10/20/1989 回
湖北省武汉市
08055117 王燕
女 08/02/1990 回
河南省安阳市
08045142 郝明星 女 11/27/1989 满
辽宁省大连市
08053101 高猛
男 02/03/1990 汉
湖北生黄石市
08053124 多桑
男 10/26/1988 藏
西藏
08053160 郭政强 男 06/10/1989 土家 湖南省吉首
08053116 陆敏
女 03/18/1990 汉
广东省东莞
08053131 林惠萍 女 12/04/1989 壮
广西省柳州市
07093305 郑家谋 男 03/24/1988 汉
07093342 罗家艳 女 05/16/1988 满
上海市
北京市
07093325 史玉磊 男 09/11/1988 汉
湖北省孝感市
07093317 凌晨
女 06/28/1988 汉
浙江省温州
08041136 徐栋梁 男 12/20/1989 回
陕西咸阳
08041127 巴朗
男 09/25/1989 蒙古 内蒙古
0403
0403
0501
0403
0501
0501
0501
0501
0501
0904
0904
0904
0904
0403
0403
表 1-2 学院表
表 1-5 成绩单
学院号
学院
院长
学号
课程号
成绩
06053113
01054010
06053113
02091010
06053113
09064049
06053113
05020030
06053113
09061050
07042219
02091010
07042219
01054010
07042219
09061050
08055117
01054010
08055117
09064049
08055117
09061050
07093305
09064049
07093305
01054010
07093305
05020030
07093305
09065050
06041138
02091010
06041138
04010002
08053131
01054010
08053131
09061050
07093317
09064049
07093317
01054010
07093325
01054010
07093325
09065050
07093325
09064049
07093325
04010002
08041136
01054010
08041136
09061050
85
80
75
90
82
85
78
72
92
85
88
92
86
70
90
74
83
77
66
78
87
76
81
82
75
88
85
01
02
03
04
05
06
09
外国语学院
叶秋宜
人文学院
金融学院
法学院
李容
王汉生
乔亚
工商管理学院 张绪
会计学院
信息学院
张一非
杨新
表 1-2 专业表
专业号
专业
专业类别 学院号
0201 新闻学
人文
0301 金融学
0302 投资学
经济学
经济学
0403 国际法
法学
0501 工商管理
管理学
0503 市场营销
管理学
0602 会计学
管理学
0902 信息管理
管理学
0904 计 算 机 科
工学
学
02
03
03
04
05
05
06
09
09
课程号
表 1-4 课程表
课程名
学分 学院号
09064049 高等数学
09065050 数据结构
02091010 大学语文
09006050 线性代数
01054010 大学英语
02000032 美术设计
09023040 运筹学
6.0
4.0
3.0
3.0
4.0
2.0
5.0
09061050 数据库及应用 3.0
05020030 管理学原理
05020051 市场营销学
04010002 法学概论
04020021 合同法实务
3.0
3.0
3.0
2.0
09
09
01
09
01
02
09
09
05
05
04
04
思考题:
当我们进行物理设计时,如果将全校的学生放置在一个关系(表)中,势必带来存
储空间大、处理效率低的问题。怎么解决?
练习:
在线图书销售系统,有如下功能。用户注册后,可以修改自己的信息,可以将
需要购买的图书放入购物车,然后从购物车下订单后结账。第一次结账时填写图书
邮寄地址信息,以后就直接显示。购物车采用数据库实现。后台管理就是商家,登
陆后可以增删改图书,新增图书的前 10 名,以及最畅销图书前十名显示在首页上。
商家可以增删改图书分类,图书二级分类,一级为人文、科学、历史,二级为。。。。。。。
商家物流由韵达和中通快递承包,支付接口有支付宝及各大银行网银支付,同时支
持信用卡支付。一个订单需要在一天内完成支付,否则取消订单。用户在购买后有
给图书打分和评阅的功能。
请画出 E-R 图,并写出数据库的物理结构。