学生选课数据库设计说明.docx

上传人:b****5 文档编号:29113868 上传时间:2023-07-20 格式:DOCX 页数:28 大小:445.08KB
下载 相关 举报
学生选课数据库设计说明.docx_第1页
第1页 / 共28页
学生选课数据库设计说明.docx_第2页
第2页 / 共28页
学生选课数据库设计说明.docx_第3页
第3页 / 共28页
学生选课数据库设计说明.docx_第4页
第4页 / 共28页
学生选课数据库设计说明.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

学生选课数据库设计说明.docx

《学生选课数据库设计说明.docx》由会员分享,可在线阅读,更多相关《学生选课数据库设计说明.docx(28页珍藏版)》请在冰豆网上搜索。

学生选课数据库设计说明.docx

学生选课数据库设计说明

北京理工大学珠海学院

课程设计说明书

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模板 > 其它模板

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1