SQL2008数据库大作业

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

数据库基础

------大作业

题目:学生信息管理系统

教学系:数学与统计学院

专业班级: 071121

学生姓名: 8888

一、系统设计

在进行系统的详细设计之前,首先应该设计好系统的模式并确定好系统的功能目标和具体页面,下面就是学生信息管理的系统设计。

从系统的设计目标上来看,学生信息管理系统的主要功能如下:(1)登录验证功能。

(2)学生信息查看功能。

(3)信息编辑删除和添加功能。

(4)成绩查看和搜索功能。

(5)课程浏览搜索功能。

(6)密码修改功能。

从系统的实现上来看,共有十七个页面,每个页面的功能实现和说明如下所示。

页面说明

下面介绍在系统设计之前数据库的需求分析和设计。

二、数据库设计

1.需求分析

学生信息管理系统是各大高校所不可缺少的一部分,随着计算机水平的快速提高,学生信息管理系统也在不断地发展和完善。管理信息系统主要包括了学生的信息管理以及课程和成绩管理,基本上实现了管理系统所必须的功能,下面介绍学生信息管理系统数据库的设计。

2.概念设计

2.1数字词典

数据词典如下表所示:

数据词典

2.2E-R图

根据以上的需求分析,E-R图如图下图所示:

E-R图如下

2.3关系模式

E-R图转换成关系模式如下:

学生(学号、姓名、性别、民族、出生年月、入学时间、班级、生源地、备注)

课程(课程号、课程名称、学时、学分、课程类型、授课老师)

成绩(ID、学号、课程号、考试成绩)

选修(学号、课程号、选修时间)

查询(学号、课程号、查询时间)

3.逻辑设计

根据前面的E-R图转换的关系模式一共有以下几个表:

Student(学生表)

Course(课程表)

Score(成绩表)

Elective(选修表)

Select(查询表)

4.数据库关系图

根据以上几个表的关系建立如下所示的关系图:

5.数据的添加、修改、删除语句的实现

数据的添加语句举例如下:

(1)向成绩表里添加学号为‘20001’学生选修了四门课的成绩。

insert score

values ('5','200001','00001','95'), ('6','200001','10001','90'),

('7','200001','10002','96'),

('8','200001','20001','85') (2)向课程表里添加一条毛慨的信息

insert course

values('20003','毛慨','60','5','2','周易')

数据的修改语句举例如下:

(1)修改学号为‘200004’学生的籍贯为湖北监利update student

set comefrom='湖北监利'

where stuid='200004'

(2)修改课程号为‘20003’的学时为64个学时update course

set coursetime='64'

where courseid='20003'

数据的删除语句举例如下:

(1)删除学号为‘200005’学生的信息

delete student

where stuid='200005'

(2)删除课程名称为‘毛慨’的信息

delete course

where coursename='毛慨'

6.查询语句简单查询、连接查询、子查询、复合条件查询语句的实现简单查询语句的举例:

(1)查询课程表中前三条的信息

select top 3* from course

(2)查询班级为‘经管2091’班的学生学号、姓名、性别和班级名称select

student.stuid,student.stuname,student.sex,student.class

from student

where class='经管2091'

(3)查询学生姓名以‘陈’开头的学生学号和班级

select student.stuid,student.class

from student

where stuname like'陈%'

(4)查询课程表的所有信息,查询结果先按课程号降序排列,再按学分升序排列

select*from course

order by courseid desc,coursexuefen asc

(5)查询学生人数总数,查询结果以学生总数为别名

select COUNT(*)as学生总数

from student

(6)查询所有学生成绩的总平均分,查询结果以平均分为别名

select AVG(score)as平均分

from score

连接查询语句的实现:

(1)查询学号为‘100001’的学生的学号、姓名、性别、班级和选修的课程号和成绩

select student.stuid,student.stuname,student.sex,

student.class,score.courseid,score.score

from student,score

where student.stuid=score.stuid and student.stuid='100001'

(2)查询学号为‘200001’学生的学号、姓名和选修的课程号及选修时间

select student.stuid,student.stuname,

elective.courseid,elective.electivetime

from student,elective

where student.stuid=elective.stuid

and student.stuid='200001'

相关文档
最新文档