学生选课数据库设计说明.docx
- 文档编号:29113868
- 上传时间:2023-07-20
- 格式:DOCX
- 页数:28
- 大小:445.08KB
学生选课数据库设计说明.docx
《学生选课数据库设计说明.docx》由会员分享,可在线阅读,更多相关《学生选课数据库设计说明.docx(28页珍藏版)》请在冰豆网上搜索。
学生选课数据库设计说明
北京理工大学珠海学院
课程设计说明书
2011—2012学年第1学期
题目:
学生选课数据库设计
学院:
商学院
专业班级:
学号姓名:
指导教师:
成绩:
时间:
2011年12月5日
北京理工大学珠海学院
课程设计任务书
2011~2012学年第1学期
学生姓名:
专业班级:
指导教师:
工作部门:
商学院
一、课程设计题目
学生选课数据库设计
二、课程设计内容
、选课系统的设计
(1)在选课数据库中,统计出选修课程超过4门以上的学生信息。
(2)检索出成绩及格的、姓王的女同学信息。
(3)统计出平均分在80分以上的学生的信息,并将结果按平均分升序排列。
(4)统计出至少有三名学生选修的课程的平均分,统计项包含课程编号和平均分。
(5)为每个实体表和关系表创建合适的索引(聚簇索引、复合索引)、主码、外码;
(6)创建课程类别取值范围为管理类、电子类、计算机类、机械类的规则,并与相应的列绑定;
(7)在选课联系中创建成绩默认值为60的默认,并与相应的列绑定;
(8)创建一个可以通过课程类别和任课教师进行查询课程的存储过程;
(9)通过触发器定义未选课的学生不能从学生实体中删除;
(10)建立包括选课学生的学号,姓名,系别,所选课程号,课程名,和成绩的视图;
三、进度安排
1.需求分析(4学时)
2.概念模型(4学时)、逻辑模型及关系数据表(4学时)
2.建库及建表(4学时)、索引(4学时)、视图(4学时)、触发器(4学时)、存储过程(4学时)、事务(4学时)、输入初始数据(4学时),共40%
3.统计报表(两个及以上综合数据统计报表)(4学时)
4.答辩(4学时)
5.文档整理(4学时)
四、基本要求
(1)概念模型设计合理、可扩展性好;
(2)数据合理、符合业务场景;
(3)数据库对象设计合理、使用得当;
(4)数据合理、有效、完整;
(5)提交纸制版课程设计报告,应不少于3000字,每人提交1份课程设计报告(Word文档和Sql文档)
。
课程负责人签名:
年月日
学生选课数据库课程设计
摘要
1.目的和意义
在当今信息化越来越快的发展的环境下,各学校无论中学大学都争相采用网上选课方式。
相比而言,传统选课方式由于不方便、浪费资源等原因而落后了。
学生选课系统作为现时代的教学技术,广受学生欢迎。
学生选课系统由于其科学性、简便性、效率高、公平性和准确性从而提高学生选课效率。
本课程设计目的是探索学生选课的需求分析、概要设计、逻辑设计及规范化、数据库对象设计、数据统计这几个方面的内容。
为了更好地在以后的工作中能完成数据库建立和使用等操作。
使用SQLServer数据库来设计数据库物理结构设计,包括数据库,数据表,索引、视图、触发器、存储过程、事务等,以达到数据库的操作和使用者的要求。
关键词:
学生信息查询、选课信息、学生选课信息查询、数据库、数据表
第一章设计内容与目标
设计内容:
我们组设计的是学生选课管理系统,选课管理系统是学校教务系统中很庞大、很复杂的一个数据库系统,在这里我们将其简化,只选取了部分比较直观的关系模式。
我们设计的系统涉及院系信息、学生信息、教师信息、课程信息、选课信息、还有成绩管理及查询。
设计目标:
所实现的功能有:
能记录院系、学生、教师以及课程的基本情况,能记录学生所选的课程以及相应的成绩和授课教师。
每个学生和老师都只能被一个院系管理,为了简化每个教师最多教授一门课程,每个学生可选多门课程或者不选,每个学生选修的每门课程有一个成绩记载,每个教师教授最多一门课程,学生在系统中可以有查询成绩的权限,管理员有修改成绩的权限。
第二章需求分析
2.1:
需求背景
随着信息时代科技不断提高,学校规模不断扩大,教学质量不断提高,大学期间有许多公共选修课,以往的选修课方法是课堂报名或者纸上填写方式报名,这种方法虽然直接,但是造成选课的盲目性,而且学生选过课程后不好在更改查看,一方面浪费大量的人力,物力资源,另一方面浪费时间以及在认为统计过程中不可避免的出现差错的情况。
这给广大的老师和学生带来诸多的不便,管理起来也相当困难。
使用网上选课系统可以提前进行网上选课,并且选课以后学生还可以在查看和更改,随意选择各个老师的课程,老师管理起来也比较方便。
鉴于它的重要性,这就迫切需要研制开发一款功能强大,操作简单,具有人性化的网上选课系统。
2.2:
选课分析
根据分析,本系统的实体有学生、教师、课程和选课信息。
描述学生的属性有:
学号、院系、姓名、性别、出生日期、入学时间、专业、班级。
描述教师的属性有:
教师编号、姓名、性别、职称、专业。
描述课程的属性有:
课程编豪、课程名称、授课老师、课程类型、上课时间、上课地点、学时、学分。
描述选课信息的属性有:
学号、课程编号、考试成绩。
每个学生、教师只能属于一个院系,每个学生可选多门课程或者不选,每个教师教授最多一门课程。
学生进入查询系统后只能有查询功能,管理员进入则可以有修改成绩的权限。
用户登录时需要有一个用户名和密码。
第三章概要设计
3.1各属性E-R图
3.2总E-R图
数据库的E-R图:
第四章逻辑设计及规范化
4.1关系模型:
登陆(用户名、密码)
学生(学号、姓名、性别、出生日期、入学时间、院系、专业、班级)
教师(教师编号、姓名、性别、职称、专业)
课程(课程编号、课程名称、授课教师、课程类型、上课时间、上课地点、学时、学分)
选课信息(学号、课程编号、考试成绩)
4.2关系数据表:
Register
属性名
数据类型
可否为空
含义
完整性约束条件
Username
Char(10)
否
用户名
password
Char(10)
否
密码
Student
属性名
数据类型
可否为空
含义
完整性约束
Stunum
char(10)
否
学号
主码
Stuname
char(10)
否
姓名
Stusex
char
(2)
否
性别
Stubirth
char(10)
否
出生日期
Stuadim
Char(10)
否
入学时间
Stumajor
char(10)
否
专业
Stucollege
char(10)
否
院系
Stuclass
char(10)
否
班级
Teacher
属性名
数据类型
可否为空
含义
完整性约束
Tenum
char(10)
否
教师编号
主码
Tename
char(10)
否
姓名
Tesex
char
(2)
否
性别
Tetitle
char(10)
否
职称
Temajor
char(20)
否
专业
Course
属性名
数据类型
可否为空
含义
完整性约束
Cno
char(10)
否
教师编号
主码
Cname
char(10)
否
课程名称
Cteacher
Char(10)
否
授课教师
外码
Ctype
char(10)
否
课程类型
Ctime
char(10)
可以
上课时间
Cplace
char(10)
可以
上课地点
Chours
Char(10)
可以
学时
Ccredit
Char(10)
可以
学分
Select_Course
属性名
数据类型
可否为空
含义
完整性约束
Stunum
char(10)
否
学号
主码
Cno
char(10)
否
课程编号
result
Char(10)
否
成绩
数据字典:
数据项编号
数据项名
数据项含义
存储结构
别名
JS001
Stunum
学生编号
Char(10)
学号
JS002
Stucollege
学生学院
Char(20)
学院
JS003
Stuname
学生姓名
Char(10)
姓名
JS004
Stusex
学生性别
Char
(2)
性别
JS005
Stubirth
学生出生日期
Char(10)
出生日期
JS006
Stuadim
学生入学时间
Char(10)
入学时间
JS007
Stumajor
学生专业
Char(10)
专业
JS008
Stuclass
学生班级
Char(10)
班级
JS009
Tenum
教师编号
Char(10)
编号
JS0010
Tename
教师姓名
Char(10)
姓名
JS0011
Tesex
教师性别
Char
(2)
性别
JS0012
Tetitle
教师职称
Char(10)
职称
JS0013
Temajor
教师专业
Char(10)
专业
JS0014
Cno
课程编码
Char(10)
课程号
JS0015
Cname
课程名称
Char(20)
课程名
JS0016
Cteacher
授课老师
Char(10)
教师
JS0017
Ctype
课程类型
Char(20)
类型
JS0018
Ctime
上课时间
Char(20)
时间
JS0019
Cplace
上课地点
Char(20)
地点
JS0020
Chours
上课学时
Char(10)
学时
JS0021
Ccredit
上课学分
Char(10)
学分
JS0022
result
学生课程成绩
Char(10)
成绩
JS0023
Username
用户名
Char(10)
JS0024
password
密码
Char(10)
第五章数据库对象设计
5.1SQL物理结构设计:
1.新建数据库:
CreatedatabaseSCdatabase
2.新建用户名和密码表:
Createtableregister
(usernamechar(10),
password2char(10)
);
3.新建学生表:
Createtablestudent
(
Stunumchar(10)NOTNULLprimarykey,
Stunamechar(10)NOTNULL,
Stusexchar
(2)NOTNULLdefault'男'check(Stusex='男'orStusex='女'),
Stubirthchar(10)NOTNULL,
Stuadimchar(10)NOTNULL,
Stumajorchar(10)NOTNULL,
Stuclasschar(10)NOTNULL,
Stucollegechar(10)NOTNULL
)
insertintostudent
values('s0001','景天','男','19890101','20080901','信管','1班','商学院')
insertintostudent
values('s0002','云天河','男','19900102','20080901','信管','2班','商学院')
insertintostudent
values('s0003','唐雪见','女','19900901','20090901','信息工程','1班','信息学院')
insertintostudent
values('s0004','张琳芃','男','19890509','20080901','信息工程','2班','信息学院')
insertintostudent
values('s0005','陈琳','女','19910201','20090901','英语','1班','外语学院')
insertintostudent
values('s0006','王小雪','女','19900520','20080901','英语','3班','外语学院')
insertintostudent
values('s0007','李大龙','男','19891202','20080901','英语','4班','外语学院')
insertintostudent
values('s0008','何天','男','19890915','20070901','数学','1班','数理学院')
insertintostudent
values('s0009','卢巧音','女','19910712','20090901','数学','2班','数理学院')
insertintostudent
values('s0010','卓不凡','男','19891023','20090901','化学','1班','化工学院')
insertintostudent
values('s0011','林达','女','19900805','20080901','化学','5班','化工学院')
insertintostudent
values('s0012','林易','女','19900807','20080901','化学','5班','化工学院')
select*fromstudent
4.新建教师表:
Createtableteacher
(
Tenumchar(10)NOTNULLprimarykey,
Tenamechar(10)NOTNULL,
Tesexchar
(2)NOTNULLdefault'男'check(Tesex='男'orTesex='女'),
Tetitlechar(10)NOTNULL,
Temajorchar(20)NOTNULL
)
insertintoteacher
values('t0001','李老师','女','教师','信管')
insertintoteacher
values('t0002','张老师','女','教师','信息工程')
insertintoteacher
values('t0003','何老师','男','教授','物理')
insertintoteacher
values('t0004','陈老师','女','教师','管理经济学')
insertintoteacher
values('t0005','刘老师','男','教授','物理')
insertintoteacher
values('t0006','郑老师','男','教师','信管')
insertintoteacher
values('t0007','王老师','女','教师','信息工程')
insertintoteacher
values('t0008','黄老师','男','教授','物理')
insertintoteacher
values('t0009','祝老师','女','教授','管理经济学')
insertintoteacher
values('t0010','古老师','男','教师','物理')
select*fromteacher
5.新建课程表:
Createtablecourse
(
Cnochar(10)NOTNULLprimarykey,
Cnamechar(20)NOTNULL,
Cteacherchar(10)NOTNULL,
Ctypechar(10)NOTNULL,
Ctimechar(20)NOTNULL,
Cplacechar(10),
Chourschar(10),
Ccreditchar(10),
foreignkey(Cteacher)referencesteacher(Tenum)
);
insertintocourse
values('c0001','数据库设计','t0001','计算机类','周一下午、节','JB105','48','4')
insertintocourse
values('c0002','java基础','t0002','计算机类','周二上午、节','JB305','64','3')
insertintocourse
values('c0003','电子商务','t0004','管理类','周三下午、节','JD201','48','2')
insertintocourse
values('c0004','数字控制技术','t0005','电子类','周三下午、节','HH303','48','2')
insertintocourse
values('c0005','机械应用','t0003','机械类','周四下午、节','HF406','64','3')
insertintocourse
values('c0006','数据结构','t0006','计算机类','周二下午、节','JB103','48','4')
insertintocourse
values('c0007','c语言基础','t0007','计算机类','周四上午、节','JB405','48','3')
insertintocourse
values('c0008','电子证务','t0009','管理类','周一下午、节','JD301','48','3')
insertintocourse
values('c0009','电路板基础','t0008','电子类','周三下午、节','HF302','64','4')
insertintocourse
values('c0010','工业设备应用','t0010','机械类','周四下午、节','HF406','64','3')
select*fromcourse
6.新建选课表:
CreatetableSelect_Course
(
Stunumchar(10),
Cnochar(10),
ResultInt,
Primarykey(Stunum,Cno),
Foreignkey(Stunum)referencesstudent(Stunum),
Foreignkey(Cno)referencescourse(Cno)
)
insertintoSelect_Course
values('s0001','c0001','90')
insertintoSelect_Course
values('s0002','c0002','91')
insertintoSelect_Course
values('s0003','c0001','92')
insertintoSelect_Course
values('s0003','c0002','95')
insertintoSelect_Course
values('s0003','c0003','87')
insertintoSelect_Course
values('s0003','c0005','85')
insertintoSelect_Course
values('s0004','c0003','88')
insertintoSelect_Course
values('s0005','c0004','90')
insertintoSelect_Course
values('s0006','c0005','89')
insertintoSelect_Course
values('s0007','c0001','76')
insertintoSelect_Course
values('s0008','c0003','83')
insertintoSelect_Course
values('s0009','c0004','79')
insertintoSelect_Course
values('s0010','c0005','86')
insertintoSelect_Course
values('s0010','c0003','93')
select*fromSelect_Course
5.2主要查询功能sql语句:
1、登陆管理
利用用户和密码登陆检验用户名和密码是否存在和正确
select*fromregisterwhereusername='abc'andpassword2='123456'
2、学生信息管理
1)删除学生信息
deletefromstudentwherestunum='s0012'
2)修改学生信息
updatestudentsetstunum='',stucollege='',stuname='',stusex='',
stubirth='',stuadim='',stumajor='',stuclass=''wheresnum='';
3)增加学生信息
insertintostudent
values('','','','','','','','')
3、课程管理
1)增加课程
insertintocourse
values('','','','','','','','')
2)课程修改
updatecourse
setCno='',Cname='',Cteacher='',Ctype='',Ctime='',Cplace='',Chours='',Ccredit=''wherecno=''
4、查询管理
1)学生查询
(1)按学号查询
select*fromstudentwherestunum=''
(2)按姓名查询
select*fromstudentwherestuname=''
(3)按性别查询
select*fromstudentwherestusex=''
(4)按专业查询
select*fromstudentwhereStumajor=''
2)课程查询
(1)按课程号查询
select*fromSelect_Course,course
whereSelect_Course.Stunum=''andSelect_Course.Cno=course.Cno
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 选课 数据库 设计 说明