学生成绩管理系统数据库设计文档 -
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
“学生成绩管理”数据库设计文档
0、前言(一些必要的说明。)
数据库说明
数据库名:PXSCJ
逻辑名称:学生成绩数据库
数据文件:
日志文件:PXSCJ_Log
登录名:admin,密码:123456
表命名说明
Cjb:成绩表,保存选课信息
Cxb:查询表,记录boolean值对应信息,1代表男,0代表女。
Kcb:课程表。
Tjb:统计表,统计成绩段分布。
Xsb:学生表。
Yhb:用户表,保存系统用户信息。
Jsb: 教师表。
Skb:授课表,记录授课信息。
系统功能模块图
1、需求分析阶段
说明:学生成绩管理系统需要实现以下功能:一个学生可以选修多门课程,一门课程可以由多个学生选修,学生选修一门课会有一个成绩。一个教师可以教授多个班级,一个教师也可以教授多门课程,一个班级有多个学生,一门课程也可以由多个老师来上,一个老师给一个班级上一门课有确定的时间和地点。不同的用户根据身份不同拥有不同的权限。
(1)数据流图
老师----成绩管理,学生信息管理,权限管理---学生成绩管理系统—成绩查询--学生(要求:用visio实现第一层数据流图,第二层数据流图,第三层数据流图)p121
第一层数据流图
第二层数据流图
第三层数据流图(略)
(2)数据字典
(每个实体的详细说明)
2、概念设计阶段
(1)分ER图
(两个分ER图,1)学生和课程,2)教师,课程,班级)
(2)总ER图
(由分ER图画出总ER图)
3、逻辑设计阶段
(1)表关系图
(看是否可以画出)
(2)表结构图
Xsb结构
Kcb结构
Cjb结构
Yhb结构
Jsb结构
Skb结构
Tjb结构
Cxb结构
(3)表优化(判断每个关系是否达到3NF要求,如果没有达到,则继续规范)按照(1nf->2nf->3nf进行判断和优化)
Cjb(xh,kch,cj)
码:(xh,kch)
非主属性:cj
因为cj完全依赖于(xh,kch),所以属于2NF
因为不存在传递函数依赖,所以属于3NF
Cxb(xb,xbm)
码:(xbm)
非主属性:xb
因为xb完全依赖于(kch),所以属于2NF
因为不存在传递函数依赖,所以属于3NF
Jsb(jsbh,jsxm,zy,fy,zc,zw,bz)
码:(jsbh)
非主属性:jsxm,zy,fy,zc,zw,bz
因为jsxm,zy,fy,zc,zw,bz完全依赖于(kch),所以属于2NF 因为不存在传递函数依赖,所以属于3NF
Kcb(kch,kcm,kkxq,xs,xf)
码:(kch)
非主属性:kcm,kkxq,xs,xf
因为kcm,kkxq,xs,xf完全依赖于(kch),所以属于2NF
因为不存在传递函数依赖,所以属于3NF
Skb(jsbh,kch,bj,sj,dd)
码:(jsbh,kch,bj)
非主属性:sj,dd
因为sj,dd完全依赖于(jsbh,kch,bj),所以属于2NF
因为不存在传递函数依赖,所以属于3NF
Tjb(kch,rs1,rs2,rs3,rs4,rs5)
码:(kch)
非主属性:rs1,rs2,rs3,rs4,rs5
因为rs1,rs2,rs3,rs4,rs5完全依赖于(kch),所以属于2NF
因为不存在传递函数依赖,所以属于3NF
Xsb(xh,xm,xb,cssj,bj,zy,zxf,bz,lxfs,zp)
码:(xh)
非主属性:xm,xb,cssj,bj,zy,zxf,bz,lxfs,zp
因为xm,xb,cssj,bj,zy,zxf,bz,lxfs,zp完全依赖于(xh),所以属于2NF 因为不存在传递函数依赖,所以属于3NF
Yhb(yhbh,yhm,mm,bz)
码:(yhbh)
非主属性:yhm,mm,bz
因为yhm,mm,bz完全依赖于(yhbh),所以属于2NF
因为不存在传递函数依赖,所以属于3NF
4、物理设计
选择合适的DBMS(要求用sql server 2008)
5、实施(把sql语句贴在下面)
(1)创建数据库
(把sql语句贴在下面)
create database pxscj1
on
(
name='pxscj1_data',
filename='f:\',
size=3mb,
filegrowth=10%
)
log on
(
name='pxscj1_log',
filename='f:\',
size=4mb,
maxsize=6mb,
filegrowth=1mb
)
(2)创建表
(把sql语句贴在下面)
create table xsb(
xh char(6)not null primary key, xm char(8)not null,
xb bit,
cssj datetime,
bj varchar(50)not null,
zy char(12),