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

合集下载

学生成绩管理系统数据库设计

学生成绩管理系统数据库设计

学生成绩管理系统数据库设计一、需求分析学生成绩管理系统是一个重要的教育管理系统,它主要用于学生的成绩管理和统计。

该系统需要具有以下功能:1. 学生信息管理:包括学生的基本信息(如姓名、性别、年龄、身份证号码等)和学籍信息(如班级、学号、入学时间等)。

2. 课程信息管理:包括课程的基本信息(如课程名称、授课教师、上课时间等)和课程成绩录入。

3. 成绩查询与统计:可以按照班级或个人查询成绩,并进行成绩统计分析。

二、概念结构设计在需求分析的基础上,我们可以根据实际情况设计出该系统的概念结构模型。

该模型包括以下实体:1. 学生(Student):包括学生的基本信息和学籍信息。

2. 课程(Course):包括课程的基本信息。

3. 教师(Teacher):包括教师的基本信息。

4. 成绩(Score):包括每个学生在每门课程中所获得的成绩。

三、逻辑结构设计在概念结构模型确定后,我们需要将其转化为逻辑结构模型。

根据实际情况,我们可以设计出以下数据库表:1. 学生表(Student):包括学生的基本信息和学籍信息,如姓名、性别、年龄、身份证号码、班级、学号、入学时间等。

2. 课程表(Course):包括课程的基本信息,如课程名称、授课教师、上课时间等。

3. 教师表(Teacher):包括教师的基本信息,如姓名、性别、年龄等。

4. 成绩表(Score):包括每个学生在每门课程中所获得的成绩,如学号、课程名称、成绩等。

四、物理结构设计在逻辑结构模型确定后,我们需要将其转化为物理结构模型。

根据实际情况,我们可以设计出以下数据库表:1. 学生表(Student):包括学生的基本信息和学籍信息,如姓名(varchar(20))、性别(char(2))、年龄(int)、身份证号码(varchar(20))、班级(varchar(20))、学号(varchar(20))、入学时间(date)等。

其中,身份证号码和学号应该设为主键。

数据库设计文档范文

数据库设计文档范文

数据库设计文档范文1.引言数据库是一个用于存储和管理数据的系统。

数据库设计文档描述了数据库的结构和功能,帮助开发人员理解和维护数据库。

本文档旨在描述一个名为“学生管理系统”的数据库设计。

2.目标和范围学生管理系统是一个用于管理学生信息的系统。

该系统需要存储和管理学生的基本信息(如姓名、学号、年龄、性别等)以及他们的成绩记录。

本文档的目标是设计一个满足系统需求的数据库结构。

3.数据库概述学生管理系统的数据库由两个主要的表组成:学生表和成绩表。

学生表用于存储学生的基本信息,成绩表用于存储学生的成绩记录。

两个表之间通过学号建立关联。

4.学生表设计学生表包含以下字段:-学号:主键,唯一标识学生-姓名:学生的姓名-年龄:学生的年龄-性别:学生的性别-班级:学生所在的班级5.成绩表设计成绩表包含以下字段:-学号:外键,关联学生表的学号字段-课程:成绩所对应的课程名称-成绩:学生在该课程中的成绩6.数据库关系设计学生表和成绩表之间的关系是一对多关系,一个学生可以有多条成绩记录,但每个成绩只能属于一个学生。

这个关系由学号字段在学生表和成绩表之间建立。

7.数据库功能设计学生管理系统需要支持以下功能:-添加学生:向学生表中插入一条学生记录-查询学生:根据学号或其他条件查询学生信息-更新学生:更新学生表中的学生记录-删除学生:根据学号删除学生表中的学生记录-添加成绩:向成绩表中插入一条成绩记录-查询成绩:根据学号或其他条件查询学生的成绩记录8.数据库安全性设计为了保证数据库的安全性,可以采取以下措施:-数据备份:定期对数据库进行备份,防止数据丢失-数据加密:对敏感数据进行加密存储-访问控制:设定合适的用户权限,限制对数据库的访问和修改9.数据库性能设计为了提高数据库的性能,可以采取以下措施:-索引设计:对常用的查询字段建立索引,提高查询速度-表分区设计:将大表分成多个小的子表,提高查询和插入性能-缓存使用:利用缓存技术缓存查询结果,减少数据库的访问次数10.总结本文档详细描述了学生管理系统的数据库设计。

学生成绩管理系统数据库设计书

学生成绩管理系统数据库设计书

学生成绩管理系统数据库设计书1、开发背景信息社会的高科技,商品经济化的高效益,使计算机的应用已普及到经济和社会生活的各个领域。

计算机虽然与人类的关系愈来愈密切,还有人由于计算机操作不方便继续用手工劳动。

基本上所有的具有一定数量数据的企事业单位或机关部门都开始使用计算机数据库来做管理。

当然几乎所有学校也都已经在使用计算机管理数据的机制,大大减少了学校学籍管理的工作量。

该课程设计要求设计一个成绩管理的数据库系统,数据库中要求包含学生的基本信息,学校所有专业信息,学校教师信息以及课程设置的信息。

同时还要设计它们之间的关系,如学生与课程关系和学生的成绩等,最后还要对一些数据进行查询,如查询学生成绩的各种集合等。

我们通过该课程设计,应该达到的目的是把数据库理论知识更加的巩固加深,加强动手能力与实践能力,学以致用,与现实生活中的应用充分的结合起来。

为了适应现代社会人们高度强烈的时间观念,成绩管理系统软件为教学办公室带来了极大的方便。

通过操作手册,使用者可以了解本软件的基本工作原理。

操作人员只需输入一些简单的汉字、数字,即可达到自己的目标。

现今学习成绩管理的繁索给具有强烈时间观念的行政人员带来了诸多不便,教学办公室缺少一种完善的学习成绩软件,为了对学生档案的管理方便,因此开发了本软件。

通过本系统软件,能帮助教研人员利用计算机,快速方便的对学生成绩管理进行管理、输入、输出、查找的所需操作,使散乱的人事档案能够具体化、直观化、合理化。

2、功能描述本系统是一个学生管理系统,主要应用于大学的学生管理。

由于对系统的分析可能不够全面,只能是模拟一下学生管理系统。

每个学生都有一个学号,且没有相同的,所以可以以学号为,密码先使用默认的每个学生后6 位数,这样,同学们就可以自行登陆学生管理系统了,并可以对密码进行更改。

老师也要进行登陆,所以,还要给分配老师,密码,同样,老师可以自己更改密码。

输入,密码,无误后,并可登陆了。

老师登陆后与学生登陆后有不同的权限。

学生成绩在线管理系统数据库课程设计mysql+java

学生成绩在线管理系统数据库课程设计mysql+java

学生成绩在线管理系统数据库课程设计mysql+java以下是一个学生成绩在线管理系统的数据库设计示例,使用MySQL数据库和Java 编程语言:1. 学生表(students)-学生ID(student_id):主键,自增-学生姓名(student_name):varchar类型,最大长度为50-学生年龄(student_age):整数类型-学生性别(student_gender):varchar类型,最大长度为10-学生班级(student_class):varchar类型,最大长度为502. 课程表(courses)-课程ID(course_id):主键,自增-课程名称(course_name):varchar类型,最大长度为503. 成绩表(scores)-成绩ID(score_id):主键,自增-学生ID(student_id):外键,关联到学生表的学生ID-课程ID(course_id):外键,关联到课程表的课程ID-分数(score):浮点数类型通过以上表的设计,你可以实现以下功能:-添加学生信息-添加课程信息-添加学生成绩-查询学生信息-查询课程信息-查询学生的成绩-更新学生信息-更新课程信息-更新学生成绩-删除学生信息-删除课程信息-删除学生成绩在Java中,你可以使用JDBC(Java Database Connectivity)来连接MySQL数据库并执行SQL语句来实现对数据库的操作。

你需要配置数据库连接信息,并编写相应的Java代码来执行查询和更新操作。

这只是一个简单的数据库设计示例,你可以根据你的具体需求进行调整和扩展。

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

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

“学生成绩管理”数据库设计文档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、 需求分析阶段说明:学生成绩管理系统需要实现以下功能:一个学生可以选修多门课程,一门课程可以由多个学生选修,学生选修一门课会有一个成绩。

一个教师可以教授多个班级,一个教师也可以教授多门课程,一个班级有多个学生,一门课程也可以由多个老师来上,一个老师给一个班级上一门课有确定的时间和地点。

不同的用户根据身份不同拥有不同的权限。

(1) 数据流图老师----成绩管理,学生信息管理,权限管理---学生成绩管理系统—成绩查询--学生(要求:用visio 实现第一层数据流图,第二层数据流图,第三层数据流图)p121老师学生学生成绩管理系统成绩管理信息管理权限管理成绩查询修改密码第一层数据流图第二层数据流图第三层数据流图(略)(2)数据字典(每个实体的详细说明)2、 概念设计阶段(1) 分ER 图(两个分ER 图,1)学生和课程,2)教师,课程,班级)(2) 总ER 图(由分ER 图画出总ER 图)学生选课教师课程授课班级nm mnp3、逻辑设计阶段(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因为不存在传递函数依赖,所以属于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因为不存在传递函数依赖,所以属于3NFKcb(kch,kcm,kkxq,xs,xf)码:(kch)非主属性:kcm,kkxq,xs,xf因为kcm,kkxq,xs,xf完全依赖于(kch),所以属于2NF 因为不存在传递函数依赖,所以属于3NFSkb(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因为rs1,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因为不存在传递函数依赖,所以属于3NF4、物理设计选择合适的DBMS(要求用sql server 2008)5、实施(把sql语句贴在下面)(1)创建数据库(把sql语句贴在下面)create database pxscj1on(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)(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),zxf int,bz varchar(500),lxfs varchar(50),zp varbinary(max))create table kcb(kch char(3)not null primary key, kcm char(16)not null,kkxq tinyint,xs tinyint,xf tinyint)create table cjb(xh char(6),kch char(6),cj int,constraint c1primary key(xh,kch) )create table yhb(yhbh char(6)primary key not null, yhm char(8),sf varchar(20),mm char(6),bz varchar(5))create table jsb(jsbh char(6)not null primary key,jsxm char(8),zy varchar(30),fy varchar(30),zc varchar(20),zw varchar(20),bz varchar(50))create table skb(jsbh char(6)not null,kch char(3)not null,bj varchar(50)not null,sj varchar(20),dd varchar(50),constraint c2primary key(jsbh,kch,bj) )create table tjb(kch char(3)primary key not null,rs1int,rs2int,rs3int,rs4int,rs5int)create table cxb(xb bit not null,xbm char(4)not null primary key)(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 kcb.KCH=cjb.KCHand cjb.KCH=skb.kch and skb.jsbh=jsb.jsbhselect*from xs_xk_view3)自定义数据库类型学号,课程号可以考虑用自定义的数据类型。

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

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

“学生成绩管理”数据库设计文档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、 需求分析阶段说明:学生成绩管理系统需要实现以下功能:一个学生可以选修多门课程,一门课程可以由多个学生选修,学生选修一门课会有一个成绩。

一个教师可以教授多个班级,一个教师也可以教授多门课程,一个班级有多个学生,一门课程也可以由多个老师来上,一个老师给一个班级上一门课有确定的时间与地点。

不同的用户根据身份不同拥有不同的权限。

(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因为不存在传递函数依赖,所以属于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 因为不存在传递函数依赖,所以属于3NFKcb(kch,kcm,kkxq,xs,xf)码:(kch)非主属性:kcm,kkxq,xs,xf因为kcm,kkxq,xs,xf完全依赖于(kch),所以属于2NF因为不存在传递函数依赖,所以属于3NFSkb(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因为rs1,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因为不存在传递函数依赖,所以属于3NF4、物理设计选择合适的DBMS(要求用sql server 2008)5、实施(把sql语句贴在下面)(1)创建数据库(把sql语句贴在下面)create database pxscj1on(name='pxscj1_data',='f:\pxscj1_data、mdf',size=3mb,=10%)log on(name='pxscj1_log',='f:\pxscj1_log、ldf',size=4mb,maxsize=6mb,=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),zxf int,bz varchar(500),lxfs varchar(50),zp varbinary(max))create table kcb(kch char(3)not null primary key,kcm char(16)not null,kkxq tinyint,xs tinyint,xf tinyint)create table cjb(xh char(6),kch char(6),cj int,constraint c1primary key(xh,kch) )create table yhb(yhbh char(6)primary key not null, yhm char(8),sf varchar(20),mm char(6),bz varchar(5))create table jsb(jsbh char(6)not null primary key, jsxm char(8),zy varchar(30),fy varchar(30),zc varchar(20),zw varchar(20),bz varchar(50))create table skb(jsbh char(6)not null,kch char(3)not null,bj varchar(50)not null,sj varchar(20),dd varchar(50),constraint c2primary key(jsbh,kch,bj))create table tjb(kch char(3)primary key not null,rs1int,rs2int,rs3int,rs4int,rs5int)create table cxb(xb bit not null,xbm char(4)not null primary key)(3)数据库完整性2)视图学生选课情况视图(学号,姓名,课程号,课程名,成绩,学分,总学分,教师)create view xs_xk_viewasselect xsb、XH,XM,kcb、KCH,kcm,CJ,xf,zxf,jsb、jsbh,jsxm from xsb,KCB,CJB,jsb,skbwhere xsb、XH=cjb、XH and kcb、KCH=cjb、KCHand cjb、KCH=skb、kch and skb、jsbh=jsb、jsbhselect*from xs_xk_view3)自定义数据库类型学号,课程号可以考虑用自定义的数据类型。

数据库课程设计学生成绩管理系统

数据库课程设计学生成绩管理系统
安全性加强
可以进一步加强系统的 安全性设计,如增加用 户权限管理、数据备份 与恢复等功能,确保数 据的完整性和安全性。
THANKS
感谢观看
情况下的容错处理。
性能测试用例
设计针对不同用户数量和不同数据量 的测试用例,以验证系统的性能和稳
定性。
安全测试用例
设计针对系统安全性的测试用例,如 用户权限验证、数据加密传输等。
测试执行与结果分析
测试执行
按照测试计划和测试用例进行测试,记录测试结果和发现的问题 。
问题跟踪与修复
对发现的问题进行跟踪,确保问题得到及时修复,并重新进行测试 验证。
测试方法
采用黑盒测试和白盒测试相结合的方法,包括功能测试、 性能测试、安全测试等。
测试范围
包括系统的所有功能模块,如学生信息管理、课程管理、 成绩录入与查询、报表生成等。
测试资源
包括测试人员、测试环境、测试数据等。
测试用例设计
功能测试用例
针对系统的每个功能模块设计测试用 例,包括正常情况下的操作以及异常
系统功能实现
课程信息管理
实现课程基本信息的录入、修 改、查询和删除功能。
报表生成
根据需求生成各类报表,如学 生成绩单、课程统计表等。
学生信息管理
实现学生基本信息的录入、修 改、查询和删除功能。
成绩录入与查询
实现学生成绩的录入、修改、 查询和删除功能,支持批量导 入成绩数据。
权限管理
实现不同用户角色的权限管理 ,确保系统的安全性和稳定性 。
常见问题与解决方案
数据库连接问题
检查数据库连接配置是否正确,确保数据库服务 正常运行,并尝试重新启动数据库服务或修复连 接问题。
系统性能下降

网络数据库课程设计(学生成绩管理系统)

网络数据库课程设计(学生成绩管理系统)

目录第一章系统概述1.1系统开发的背景和意义 (1)1.2系统所要实现功能 (1)1.3系统开发工具 (1)1.4系统模块分析 (1)第二章系统需求分析2.1系统目标分析 (3)2.2系统数据描述 (3)2.3系统数据流图 (5)2.4系统数据字典 (6)2.5系统数据库概念设计 (8)第三章系统总体设计3.1系统功能模块设计 (11)3.2系统主要功能描述 (11)3.3系统流程分析 (12)第四章系统详细设计4.1程序流程设计 (13)4.2系统结构的实现 (14)第五章系统界面设计及代码实现5.1系统登陆窗口界面 (17)5.2系统主程序窗口界面 (18)5.3住宿管理设计 (20)5.4客人信息查询 (27)5.5 系统管理 (29)5.6订房信息管理 (31)5.7结算信息管理 (34)第六章系统测试6.1 测试目的 (38)6.2 测试方法 (38)6.3 测试记录与运行结果 (38)总结参考文献第一章系统概述及可行性分析1.1系统开发的背景在信息时代,能够代表一个国家信息产业水平和竞争能力的就是软件产业。

作为21世纪的朝阳产业,软件是全球最具发展前景与开发潜力的产业之一,已成为全球经济新的增长点,而且也逐渐成为世界各国竞相占领的战略制高点。

软件市场大致可以分为应用软件、系统软件和工具软件。

应用软件仍是软件市场的主流,约占69%。

随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。

作为计算机应用的一部分,使用计算机对学生成绩信息进行管理,具有手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。

这些优点能够极大地提高学生成绩管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。

因此,开发这样一套管理软件成为很有必要的事情。

成绩管理系统,在国内外早已有着成熟的研究成果和广泛的社会应用。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

“学生成绩管理”数据库设计文档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、需求分析阶段说明:学生成绩管理系统需要实现以下功能:一个学生可以选修多门课程,一门课程可以由多个学生选修,学生选修一门课会有一个成绩。

一个教师可以教授多个班级,一个教师也可以教授多门课程,一个班级有多个学生,一门课程也可以由多个老师来上,一个老师给一个班级上一门课有确定的时间和地点。

不同的用户根据身份不同拥有不同的权限。

(1)数据流图老师----成绩管理,学生信息管理,权限管理---学生成绩管理系统—成绩查询--学生(要求:用visio实现第一层数据流图,第二层数据流图,第三层数据流图)p121第一层数据流图第二层数据流图第三层数据流图(略)(2)数据字典(每个实体的详细说明)2、 概念设计阶段(1) 分ER 图(两个分ER 图,1)学生和课程,2)教师,课程,班级)(2) 总ER 图(由分ER 图画出总ER 图)学生选课教师课程授课班级nm mnp3、逻辑设计阶段(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因为不存在传递函数依赖,所以属于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因为不存在传递函数依赖,所以属于3NFKcb(kch,kcm,kkxq,xs,xf)码:(kch)非主属性:kcm,kkxq,xs,xf因为kcm,kkxq,xs,xf完全依赖于(kch),所以属于2NF因为不存在传递函数依赖,所以属于3NFSkb(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因为rs1,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因为不存在传递函数依赖,所以属于3NF4、物理设计选择合适的DBMS(要求用sql server 2008)5、实施(把sql语句贴在下面)(1)创建数据库(把sql语句贴在下面)create database pxscj1on(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)(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),zxf int,bz varchar(500),lxfs varchar(50),zp varbinary(max))create table kcb(kch char(3)not null primary key, kcm char(16)not null,kkxq tinyint,xs tinyint,xf tinyint)create table cjb(xh char(6),kch char(6),cj int,constraint c1primary key(xh,kch))create table yhb(yhbh char(6)primary key not null,yhm char(8),sf varchar(20),mm char(6),bz varchar(5))create table jsb(jsbh char(6)not null primary key,jsxm char(8),zy varchar(30),fy varchar(30),zc varchar(20),zw varchar(20),bz varchar(50))create table skb(jsbh char(6)not null,kch char(3)not null,bj varchar(50)not null,sj varchar(20),dd varchar(50),constraint c2primary key(jsbh,kch,bj))create table tjb(kch char(3)primary key not null,rs1int,rs2int,rs3int,rs4int,rs5int)create table cxb(xb bit not null,xbm char(4)not null primary key)(3)数据库完整性2)视图学生选课情况视图(学号,姓名,课程号,课程名,成绩,学分,总学分,教师)create view xs_xk_viewasselect xsb.XH,XM,kcb.KCH,kcm,CJ,xf,zxf,jsb.jsbh,jsxm from xsb,KCB,CJB,jsb,skbwhere xsb.XH=cjb.XH and kcb.KCH=cjb.KCHand cjb.KCH=skb.kch and skb.jsbh=jsb.jsbhselect*from xs_xk_view3)自定义数据库类型学号,课程号可以考虑用自定义的数据类型。

sp_addtype'xh','char(6)'sP_addtype'kch','char(3)'4)默认值对象Xsb:性别默认为1,总学分默认为0。

Kcb:学生人数默认为40,学分默认为2。

Jsb:zy计算机,fy信息,zc讲师,zw无。

Yhb:mm’123456’Xsb:性别默认为1,alter table xsb add constraint b1DEFAULT 1 for xb总学分默认为0。

alter table xsb add constraint b2DEFAULT 0 for zxf Kcb:学生人数默认为40,alter table kcb add constraint b3DEFAULT 40 for xs学分默认为2。

alter table kcb add constraint b4DEFAULT 2 for xfJsb:zy计算机,alter table jsb add constraint b5DEFAULT'计算机'for zy fy信息,alter table jsb add constraint b6DEFAULT'信息'for fyzc讲师,alter table jsb add constraint b7DEFAULT'讲师'for zc zw无。

alter table jsb add constraint b8DEFAULT'无'for zw Yhb:mm’123456’alter table yhb add constraint b9DEFAULT'123456'for mm 5)规则和check约束Xsb:zxf范围在0-160之间。

Kcb:kkxq范围在1-8之间,xf在1-15之间Cjb:cj范围在0-100之间Xsb:zxf在0-160之间。

alter table xsbadd constraint pk_1check (zxf between 0 and 160)Kcb:kkxq在1-8之间,xf在1-15之间alter table kcbadd constraint pk_2check (kkxq between 1 and 8)alter table kcbadd constraint pk_3check (xf between 1 and 15)Cjb:cj在0-100之间alter table cjbadd constraint pk_4check (cj between 0 and 100)6)参照关系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 table cjbadd constraint fk_1foreign key (xh)references xsb(xh)cjb(kch)—kcb(kch)alter table cjbadd constraint fk_2foreign key (kch)references kcb(kch)skb(jsbh)—jsb(jsbh)alter table skbadd constraint fk_4foreign key (jsbh)references jsb(jsbh)skb(kch)—kcb(kch)alter table skbadd constraint fk_6foreign key (kch)references kcb(kch)skb(bj)—xsb(bj)--用触发器实现create trigger t1on skbfor insertasbeginif not exists(select*from xsb where bj=(select bj from inserted)) beginprint'插入的班级不存在!'rollback transactionendendyhb(yhbh)—xsb(xh)和jsb(jsbh) --必须用触发器实现alter trigger t2on yhbfor insertasbeginif not exists(select*from xsb where xh=(select yhbh from inserted))beginif not exists(select*from jsb where jsbh=(select yhbh from inserted))beginprint'插入的编号出错!'rollback transactionendendend(4)用户自定义函数(把sql语句贴在下面)(5)用户自定义存储过程1)根据学号查询学生的选课情况(把sql语句贴在下面)CREATE PROCEDURE xhcxxs@xh char(6)asbeginif exists(select*from cjb where xh=@xh)select*from cjb where xh=@xhelseprint'无此学生选课信息'end2)根据课程号查询课程的选修情况(把sql语句贴在下面)CREATE PROCEDURE kchcxxk@kch char(3)asbeginif exists(select*from cjb where kch=@kch)select*from cjb where kch=@kchelseprint'无此课程选课信息'end根据教师编号查询授课情况(把sql语句贴在下面)CREATE PROCEDURE jsbhcxsk@jsbh char(6)asbeginif exists(select*from skb where jsbh=@jsbh)select*from skb where jsbh=@jsbhelseprint'无此教师授课信息'end3)根据班级查询该班级的授课情况(把sql语句贴在下面)CREATE PROCEDURE bjcxsk@bj varchar(50)asbeginif exists(select*from skb where bj=@bj)select*from skb where bj=@bjelseprint'无此班级授课信息'end4)根据课程号号查看授课情况(把sql语句贴在下面)CREATE PROCEDURE kchcxsk@kch char(3)asbeginif exists(select*from skb where kch=@kch)select*from skb where kch=@kchelseprint'无此课程授课信息'end5)课程成绩分布统计。

相关文档
最新文档