学生成绩管理系统数据库设计文档_(全)

上传人:h****M 文档编号:70456517 上传时间:2022-04-06 格式:DOC 页数:33 大小:926KB
收藏 版权申诉 举报 下载
学生成绩管理系统数据库设计文档_(全)_第1页
第1页 / 共33页
学生成绩管理系统数据库设计文档_(全)_第2页
第2页 / 共33页
学生成绩管理系统数据库设计文档_(全)_第3页
第3页 / 共33页
资源描述:

《学生成绩管理系统数据库设计文档_(全)》由会员分享,可在线阅读,更多相关《学生成绩管理系统数据库设计文档_(全)(33页珍藏版)》请在装配图网上搜索。

1、.“学生成绩管理 ”数据库设计文档0 、前言 (一些必要的说明。)0.1 数据库说明数据库名 : PXSCJ逻辑名称 :学生成绩数据库数据文件 : PXSCJ.mdf日志文件 : PXSCJ_Log登录名 : admin, 密码 :1234560.2 表命名说明Cjb: 成绩表 ,保存选课信息Cxb:查询表 ,记录 boolean值对应信息 ,1 代表男 , 0 代表女 。Kcb: 课程表 。Tjb:统计表 ,统计成绩段分布。Xsb:学生表 。Yhb: 用户表 ,保存系统用户信息。Jsb: 教师表 。Skb: 授课表 ,记录授课信息 。0.3 系统功能模块图.专业 .专注.1、 需求分析阶段说

2、明 :学生成绩管理系统需要实现以下功能:一个学生可以选修多门课程,一门课程可以由多个学生选修,学生选修一门课会有一个成绩。一个教师可以教授多个班级,一个教师也可以教授多门课程,一个班级有多个学生,一门课程也可以由多个老师来上,一个老师给一个班级上一门课有确定的时间和地点。不同的用户根据身份不同拥有不同的权限。(1) 数据流图老师 - 成绩管理 ,学生信息管理 ,权限管理 - 学生成绩管理系统 成绩查询 - 学生(要求 :用 visio实现第一层数据流图,第二层数据流图 ,第三层数据流图 ) p121成绩管理信息管理学生成成绩查询老师绩管理学生权限管理系统修改密码第一层数据流图.专业 .专注.F

3、1 用户表1、修改密码修改学生查询返回2、查询成绩F2 成绩表( 2 ) 数据字典(每个实体的详细说明 )数据库编号 : pxscj基表编号 : f1基表英文名称: yhb基表中文名称:用户表3、用户管理F3 学生表F4 教师表F5 课程表4、课程管理F7 授课表老师F6 成绩表5、成绩管理6、授课管理第二层数据流图第三层数据流图(略)字段编号英文字段名中 文 字 段字段类型备注名1Yhbh用户编号Char(6).专业 .专注.2yhm用户名Char(8)3sf身份Varcha(20 )4mm密码Char(6)5bz备注Varcha(50 )说明 :数据库编号 : pxscj基表编号 : f2

4、基表英文名称: cjb基表中文名称:成绩表字段编号英文字段名中 文 字 段字段类型备注名1Xh学号Char(6)2Kch课程号Char(3)3Cj成绩Int说明 : xh 参照学生表的xh;kch 参照课程表的kch;cj 介于 0-100之间 。数据库编号 : pxscj基表编号 : f3.专业 .专注.基表英文名称: kcb基表中文名称:课程表字段编号英文字段名中 文 字 段字段类型备注名1Xh学号Char(6)2XM姓名Char(8)3XB性别Bit4CSSJ出生时间Datetime5Bj班级Varchar(50)6Zy专业Char(12)7ZXH总学分Int8Lxfs联系方式Varch

5、ar(50)9zp照片Varbinary(MAX)10BZVarchar(500)说明 : xh 参照学生表的xh;kch 参照课程表的kch;cj 介于 0-100之间 。 xb 参照查询表的 xb数据库编号 : pxscj.专业 .专注.基表编号 : f4基表英文名称: jsb基表中文名称:教师表字段编号英文字段名中 文 字 段字段类型备注名1Jsbh教师编号Char(6)2Jsxm教师姓名Char(8)3zy专业Varchar(30)4Fy分院Varchar(30)5Zc职称Varchar(20)6Zc职务Varchar(20)7BzVarchar(50)说明 : xh 参照学生表的xh

6、;kch 参照课程表的kch;cj 介于 0-100之间 。数据库编号 : pxscj基表编号 : f5基表英文名称: kcb.专业 .专注.基表中文名称:课程表字段编号英文字段名中文字段字段类型备注名1KCH课程号Char(3)2KCM课程名Char(16)3Cj成绩Int说明 : xh 参照学生表的xh;kch 参照课程表的kch;cj 介于 0-100之间 。数据库编号 : pxscj基表编号 : f6基表英文名称: cjb基表中文名称:课程表字段编号英文字段名中 文 字 段字段类型备注名1Xh学号Char(6)2Kch课程号Char(3)3KKXQTinyint4XS学生tinyint

7、5XF学分tinyint说明 : xh 参照学生表的xh;kch 参照课程表的kch;.专业 .专注.数据库编号 : pxscj基表编号 : f7基表英文名称: skb基表中文名称: 授课表字段编号英文字段名中文字段字段类型备注名1Jsbh教师编号Char(6)2Kch课程号Char(3)3Bj班级Varchar(50)4Sj时间Varchar(50)5dd地点Varchar(50)说明 : jsbh参照教师表的jsbh;kch 参照课程表的kch;数据库编号 : pxscj基表编号 : f8基表英文名称: CXB基表中文名称: 查询表字段编号英文字段名中 文 字 段字段类型备注名.专业 .专

8、注.1XB性别Bit2XBM性别名Char(4)说明 :2、 概念设计阶段( 1) 分 ER图( 两个分 ER 图,1)学生和课程 ,2)教师,课程,班级)学生教师mmp选课授课课程nn课程班级( 2) 总 ER图( 由分 ER 图画出总 ER 图)学生教师mmnp选课课程授课n班级3、 逻辑设计阶段( 1)表关系图.专业 .专注.(看是否可以画出)( 2)表结构图Xsb 结构Kcb 结构Cjb 结构Yhb 结构.专业 .专注.Jsb 结构Skb 结构Tjb 结构Cxb 结构( 3)表优化 (判断每个关系是否达到3NF 要求 ,如果没有达到,则继续规范 )按照 ( 1nf-2nf-3nf进行判

9、断和优化)Cjb( xh,kch,cj )码:( xh,kch ).专业 .专注.非主属性 : cj因为 cj 完全依赖于 (xh,kch ), 所以属于2NF因为不存在传递函数依赖,所以属于3NFCxb(xb,xbm)码:( xbm )非主属性 : xb因为 xb 完全依赖于 ( kch ), 所以属于 2NF因为不存在传递函数依赖,所以属于3NFJsb(jsbh,jsxm,zy,fy,zc,zw,bz)码:( jsbh )非主属性 : jsxm,zy,fy,zc,zw,bz因为 jsxm,zy,fy,zc,zw,bz完全依赖于 ( kch ), 所以属于 2NF因为不存在传递函数依赖,所以

10、属于3NFKcb(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因为不存在传递函数依赖,所以属于3NFTjb(kch,rs1,rs2,rs3,rs4,rs5)码:( kch )非主属性 : rs1,rs2,rs3,rs4,rs5因为 rs

11、1,rs2,rs3,rs4,rs5完全依赖于 ( kch ),所以属于2NF因为不存在传递函数依赖,所以属于3NFXsb(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因为不存在传递函数依赖,所以属于3NFYhb(yhbh,yhm,mm,bz)码:( yhbh )非主属性 : yhm,mm,bz因为 yhm,mm,bz完全依赖于 ( yhbh ),所以属于2NF.专业 .专

12、注.因为不存在传递函数依赖,所以属于3NF4、物理设计选择合适的DBMS (要求用 sql server 2008)5、实施 (把 sql 语句贴在下面 )( 1)创建数据库( 把 sql 语句贴在下面 )create databasepxscj1on(name = pxscj1_data,filename = f:pxscj1_data.mdf,size = 3mb ,filegrowth= 10%)log on(name = pxscj1_log ,filename = f:pxscj1_log.ldf,size = 4mb ,maxsize = 6mb ,filegrowth= 1mb)

13、.专业 .专注.( 2)创建表( 把 sql 语句贴在下面 )create tablexsb (xh char (6) notnullprimary key ,xmchar (8) notnull,xbbit ,cssj datetime,bj varchar (50 ) notnull,zy char (12 ),zxfint ,bz varchar (500 ),lxfs varchar (50 ),zp varbinary (max )create tablekcb (kch char (3) not nullprimarykey ,kcm char (16 ) notnull,kkxq

14、 tinyint ,xs tinyint ,xf tinyint)create tablecjb (.专业 .专注.xh char (6),kch char (6),cj int ,constraintc1 primarykey (xh ,kch )create tableyhb (yhbh char (6) primarykey notnull,yhm char (8 ),sf varchar (20),mm char (6),bz varchar (5 )create tablejsb (jsbh char (6) not null primarykey ,jsxm char (8),zy

15、 varchar (30),fy varchar (30),zc varchar (20 ),zw varchar (20 ),bz varchar (50 )create tableskb (.专业 .专注.jsbh char (6) not null,kch char (3) not null,bj varchar (50 ) not null,sj varchar (20),dd varchar (50),constraintc2 primarykey (jsbh ,kch ,bj )createtabletjb (kchchar (3) primarykey notnull,rs1in

16、t ,rs2int ,rs3int ,rs4int ,rs5int)createtablecxb (xbbitnot null,xbm char (4 ) not nullprimarykey)( 3)数据库完整性2)视图学生选课情况视图(学号,姓名 ,课程号 ,课程名 ,成绩,学分 ,总学分 ,教师 ).专业 .专注.create view xs_xk_viewasselect xsb .XH,XM ,kcb .KCH,kcm ,CJ,xf ,zxf ,jsb .jsbh ,jsxmfrom xsb ,KCB,CJB,jsb,skbwhere xsb .XH = cjb .XH and kc

17、b .KCH= cjb .KCHand cjb .KCH= skb .kch and skb .jsbh = jsb .jsbhselect * fromxs_xk_view3)自定义数据库类型学号 ,课程号可以考虑用自定义的数据类型。sp_addtypexh ,char(6)sP_addtypekch ,char(3)4)默认值对象Xsb:性别默认为1,总学分默认为0。Kcb: 学生人数默认为40,学分默认为2。Jsb:zy 计算机 ,fy 信息 , zc 讲师 , zw 无。Yhb:mm 123456 Xsb:性别默认为1,alter tablexsb add constraintb1 D

18、EFAULT 1 for xb总学分默认为0。altertablexsb add constraintb2 DEFAULT 0 for zxfKcb: 学生人数默认为40,.专业 .专注.alter tablekcb add constraintb3 DEFAULT 40 for xs学分默认为2。alter tablekcb add constraintb4 DEFAULT 2 for xfJsb:zy 计算机 ,alter tablejsb add constraintb5 DEFAULT 计算机 for zyfy 信息 ,alter tablejsb add constraintb6 D

19、EFAULT 信息 for fyzc 讲师,alter tablejsb add constraintb7 DEFAULT 讲师 for zczw 无 。alter tablejsb add constraintb8 DEFAULT 无 for zwYhb:mm 123456 alter tableyhb add constraintb9 DEFAULT 123456for mm5)规则和 check 约束Xsb:zxf 范围在 0-160 之间 。Kcb:kkxq 范围在 1-8 之间, xf 在 1-15 之间Cjb:cj 范围在 0-100 之间Xsb:zxf 在 0-160 之间 。a

20、lter tablexsbadd constraintpk_1 check (zxf between0 and 160 )Kcb:kkxq 在 1-8 之间, xf 在 1-15 之间alter tablekcb.专业 .专注.add constraintpk_2 check (kkxq between1 and 8 )alter tablekcbadd constraintpk_3 check (xf between1 and 15 )Cjb:cj 在 0-100 之间alter tablecjbadd constraintpk_4 check (cj between0 and 100 )6

21、) 参照关系cjb(xh) 参照 xsb(xh)cjb(kch) 参照 kcb(kch)yhb(yhbh) 参照 xsb(xh) 和 jsb(jsbh)必须用触发器实现skb( jsbh) 参照 jsb(jsbh)skb(bj) 参照 xsb(bj)skb(kch) 参照 kcb(kch)cjb (xh ) xsb (xh )alter tablecjbadd constraintfk_1 foreignkey (xh) referencesxsb (xh)cjb (kch ) kcb (kch )alter tablecjbadd constraintfk_2 foreignkey (kch

22、) referenceskcb (kch ).专业 .专注.skb(jsbh ) jsb (jsbh )alter tableskbadd constraintfk_4 foreignkey (jsbh ) referencesjsb (jsbh )skb(kch ) kcb (kch )alter tableskbadd constraintfk_6 foreignkey (kch) referenceskcb (kch )skb(bj ) xsb(bj ) - 用触发器实现create triggert1 on skbfor insertasbeginif not exists( sele

23、ct * fromxsb where bj =( select bj frominserted )beginprint插入的班级不存在! rollbacktransactionendendyhb(yhbh) xsb(xh) 和 jsb(jsbh) -必须用触发器实现.专业 .专注.alter triggert2 on yhbfor insertasbeginifnot exists( select * fromxsb wherexh=( select yhbhfrominserted )beginif not exists( select * fromjsb where jsbh =( sel

24、ect yhbhfrominserted )beginprint 插入的编号出错! rollbacktransactionendendend( 4) 用户自定义函数( 把 sql 语句贴在下面 )( 5) 用户自定义存储过程1) 根据学号查询学生的选课情况(把 sql 语句贴在下面 )CREATE PROCEDURE xhcxxs xh char (6)asbeginif exists( select * fromcjb wherexh = xh ).专业 .专注.select * fromcjb wherexh = xhelseprint无此学生选课信息end2) 根据课程号查询课程的选修情

25、况(把 sql 语句贴在下面 )CREATE PROCEDURE kchcxxkkch char (3)asbeginif exists( select * fromcjb wherekch = kch )select * fromcjb wherekch = kchelseprint无此课程选课信息end根据教师编号查询授课情况(把 sql 语句贴在下面 )CREATE PROCEDURE jsbhcxskjsbhchar (6)asbeginif exists( select * fromskb wherejsbh = jsbh )select * fromskb wherejsbh =

26、jsbhelse.专业 .专注.print无此教师授课信息end3) 根据班级查询该班级的授课情况(把 sql 语句贴在下面 )CREATE PROCEDURE bjcxsk bjvarchar (50)asbeginif exists( select * fromskb wherebj = bj )select * fromskb wherebj = bjelseprint无此班级授课信息end4) 根据课程号号查看授课情况(把 sql 语句贴在下面 )CREATE PROCEDURE kchcxsk kch char (3)asbeginif exists( select * fromsk

27、b wherekch = kch )select * fromskb wherekch = kchelseprint无此课程授课信息end.专业 .专注.5) 课程成绩分布统计。存储过程名称TJ_CJ。 参数:课程号 ( kch )。 实现功能 :把成绩表 (CJB)中指定课程按照分数段人数进行统计,放入统计表 (TJB)中。编写思路 :( 1)清空 TJB表,插入一行所有分数段的人数都为0 的所要查找的课程的记录 。( 2)判断所查的课程号在CJB 表中是否有记录,若有则查找出各个分数段的人数并且更新到 TJB 表中 。方法一 :create PROCEDURE dbo .TJ_CJ(kch

28、 char (3)astruncatetableTJBinsert into TJB values (kch ,0,0,0,0,0)if exists (select * fromCJB where KCH= kch )beginupdateTJB set RS1=( select count (*) fromCJB whereCJ= 0 and CJ= 60 and CJ= 70 and CJ= 80 and CJ= 90 and CJ= 100 andKCH= kch ).专业 .专注.endexec TJ_CJ101方法二 :如果选择统计的课程在成绩表( CJB)已经存在 ,可以采用下列

29、代码完成统计功能,并且代码效率较高。但 CJB 表中没有所选择的课程记录,执行的结果是各个分数段的人数为 null 。create procedure dbo .TJ_CJ (KCH varchar (3)asbegindelete fromTJBinsert intoTJB(KCH,RS1,RS2,RS3,RS4,RS5)selectKCH ,sum (case whenCJ = 60 and CJ = 70 and CJ = 80 and CJ = 90 and CJ = 60 )beginupdatexsbset zxf= zxf+ xfwhere xh = xhendendcreate

30、 triggercjb_deletiggeron cjb for deleteasbegindeclarexh varchar (6)declarecj int.专业 .专注.declarexf intdeclarekch char (3)select xh = xh,cj = cj ,kch = kch fromdeletedselect xf = xf fromkcb wherekch = kchif(cj = 60 )beginupdatexsbset zxf= zxf - xfwhere xh = xhendend6)通过 instead of触发器实现对学生选课情况视图(学号 ,姓名

31、,课程号 ,课程名 ,成绩 ,学分,总学分 ,教师 )的插入数据操作、更新数据操作 、删除数据操作。(把 sql 语句贴在下面 )create view v1asselect cjb .xh ,xm ,xsb .bj ,cjb .kch ,kcm ,CJ,xf ,zxf,jsb .jsbh ,jsxmfromXSB,KCB,CJB,jsb,skbwhere xsb .XH= CJB.XH and kcb .KCH= cjb .KCH and jsb .jsbh = skb .jsbh andskb .kch = CJB.KCHcreate triggerv1_t 有问题 ,待完善.专业 .专注

32、.onv1insteadof insertasbegindeclarexh char (6),xmchar (8),kch char (3),kcm char (16 ),cj int ,jsbhchar (6),jsxm char (8),bjvarchar (50 )setxh =( selectxh frominserted )set xm =( selectXMfrominserted )setkch =( selectkchfrominserted )set kcm =( selectkcmfrominserted)setcj =( select CJ frominserted )setjsbh =( selectjsbhfrominserted)setjsxm =( selectjsxmfrominserted )setbj =( selectbjfrominserted )if not exists( select* fromXSB wherexh = xh )begininsert into XSB(XH,XM ,bj )values (xh ,xm ,bj )endif not exists( select* fromKCB whereKCH= kch )begininsert into KCB(KCH,KCM ).专业 .专注.

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!