选修课管理系统文档(数据库课程设计)

数据库系统设计课程设计任务书

计算机科学与技术学院制

目录

1.相关专业背景功能 --------------------------------- 1 2.需求分析 --------------------------------------- 4 3.概念模型与E-R 图__________________________________13 4.E-R 模型转换 -----------------------------------14 5.数据库设计与建立 ------------------------------17 6、连接数据库---------------------------------------23 7. 个人总结-----------------------------------------24 8.参考文献 --------------------------------------25

一、选修课管理系统的相关背景功能

选修课管理系统是一个面向学校教务管理人员、教师和学生并为其提供服务的管理系统。

选修课管理系统所经历的三个阶段

一、没有电脑的年代,网上选课根本不存在,当时学生根据自己的爱好兴趣等方面,先选择相应的课程,然后由班级上报院系,再通过人工整理所上报的信息的办法,决定每个人的选课信息以及任课老师所教的课程,也就是说几乎谈不上选修课管理系统这么一说。

二、每个院系有了为数不多的几台电脑后,班级上报院系的信息,由院系先在电脑上登记,最后交给教务处,教务处通过选修课管理系统(还不够完善),经过审核决定最终结果并公布;

三、电脑普及率很高,也就是现在这样,网上选课已不成问题,教务处直接通过选修课管理系统,了解与审核选课信息,最终决定最后的结果并公布。

有关选修课的概念与定义

选修课与“必修课”相对。主要指高等学校和中等专业学校中学习某一专业的学生可以有选择地学习的课程。在教学计划中一般不作硬性规定。分限制性选修课程(某些特定专业指定选修课程, 对该专业来说可视为必修课) 和非限制性选修课程(任意专业选修课程) 两种。一般大学的课程都分为校定必修,院定必修,限选课和任选课这四种,你可以根据你的爱好来选择选修课,也可以选一些专业方面的课程来修。选修课不能全都选,学校有规定一学期最高能修多少个学分,你不能超出这个限制。

开设选修课的意义

选修课的开设是基于社会对复合型人才的需求, 旨在加强大学生人文素质和科学素质的养成和提高, 培养全面发展的高素质人才。要对学生的公共选修课进行管理, 每学期由教务处依据教学计划列出所开设的选修课程, 学生自主选课, 教务处根据选课情况进行调整, 最后确定选修各门课程的学生名单, 并对选修课进行排课和对选修课成绩进行登记。可设置学生可选修的课程范围以及选修的约束条件。可指定范围内的学分约束及课程门数约束, 可指定选修课教师的开设班级的约束条件, 开设班级的人数限制。约束条件将作为学生在网上选课审核的标准。应实时显示选课冲突信息。

网上选课的好处:

大学期间总会有很多公共选修课,以往的选课方法是随堂报名。这种方法虽然直接,但是造成选课的盲目性,有些课堂选课时人满为患,有些课堂无人选课。原因是传统的选课方法没有预见性,大家没有事先协调好。使用了网上选课系统以后,可以在开课前就在网上选课,每个学生的课程在开课前就确定好,不用浪费体力去选课,还可以使教学资源合理平均地分配。

学校的选修课网上选课报名问题:

– 教师网上登记选修课(课程审核) – 学生网上选课 – 报名名单调整

– 导出全校选课报名报表等等 选修课管理系统的功能

1. 选课。学生能够在网上实现正常学期的本专业本年级推荐选课、本院系开设课程、体育课、政治课、公共英语课、文科计算机课、通选课和公选课的选课; 2.成绩查询。学生能够在网上快速、便捷地查询到自己所有学期的课程成绩(包括本院系所学课程成绩、辅修/双学位成绩)。

3.选课情况查询。学生从网上就可以了解自己的选课情况(包括正常学期和暑期学校的选课),避免了许多不必要的麻烦。

4.退课情况查询。学生可以清楚地查看到自己退课的时间和所用的IP 地址。 5.体育课评估。

6.修改密码。此功能更加完善了系统的功能。

7.用户注销。不仅方便用户退出系统重新进行别的操作,而且更为重要的是它能够及时保证用户在使用此系统时的安全性。

系统设置:系统管理员配置相关信息,包括教师登记课程时间范围,学生选课时间范围,每班最多人数,选修课上课日期,选课学生范围等;

教师登记课程:开课教师在规定的时间内登记自己要开设的选修课程; 学生选课:学生在规定的选课时间内自由选课报名,在规定时间内,可以退选、补选、改选课程;

选课调整:学生选课期截止后,系统管理员可以根据学生本人、班主任或者任课教师的要求针对个别学生的选课进行调整,包括强制选课、退选、换选三种; 生成报表:自动生成EXCEL 报表,包括学生本人的选课列表、给班主任的选课名

单和给上课教师的报名名单 选修课管理系统的使用说明

一、学生选课 6)学生登陆

7)进行初选,复选,补退选

8)查询选课情况,上课时间、地点与上课老师 9)修改登陆密码,添加或删除选课的相关信息 10)

查询成绩

二、教师查询 5)教师登陆

6)查询课程信息(上课时间、地点以及课程是否被取消,查询选择自己课程的学生清单) 7)修改登陆密码 8)登记学生成绩 三、管理员对选修课管理

5)设置学生可选修的课程范围以及选课的约束条件

6)添加课程,修改密码、浏览选课情况、关闭选课人数不足15的课程 7)对选修课进行排课 登记选修课的成绩

现行选修课管理系统的特点

∙ 完全基于浏览器的操作界面,操作简便

∙ 灵活的选课管理、灵活选课配置、课程审核设置、学生范围限定等 ∙ 严格的选课匹配 ∙ 教师限时课程登记 ∙ 学生限时网上选课

∙ 保证选课学生在班级之间均匀分布,杜绝过分集中 ∙ 管理员可以调整学生选课名单 ∙ 轻松导出各类选课报表

预测选修课管理系统的发展 随着科学技术的不断进步,电脑将会基本普及,各种系统的完善程度将会大幅提高,上一个新台阶,到那时,我想选修课管理系统也将更灵活,操作更简单,更

人性化与智能化。

二、需求分析

学生包含学号等属性,通过登记系统保存学生成绩的信息。学生通过分组程序分出选修课的学生名单。课程包含课程号,名称等属性。分组信息分出选修课教师,教师包含名称,教师编号属性。

用户通过SQL SERVER 2000 的查询分析器直接输入各种操作代码,其中包括对系统管理员的创建,管理员可以创建其他管理员权限,当然,系统管理员可以对所有表进行修改,删除,增加。

具体需求分析如下: 选修课管理系统功能图:

•系统功能需求: •1. 开设课程管理

–管理员对所开设的课程进行管理,允许对所开设的课程进行增加,修改,删除等。

•2. 查询

–可以按课程名,教师名,学号等多种方式查询课程信息。对于学生的选课信息,学生只能

查询本人的。

•3. 学生选课管理

–学生根据所查询的课程信息,选择自己所要选修的课程。对于已经选择了,但不希望选修

的课程,可以进行退选。每个学生最多选修8个学分。

•4. 用户信息管理

–能够使用系统的每个学生、教师和管理员每人都有一个ID ,管理员可以对用户进行增加,

删除,修改等操作。

•5. 学生成绩管理

•成绩管理包括如下功能:

(1)成绩录入

–管理员录入学生的成绩信息。

(2)成绩查询

–学生可以查看自己所选各科课程的成绩。

教师可以查询自己所教课程的学生成绩,并打印报表。

参与者用例图:

分析参与者:

•学生、教师、管理员都是学校里的人员,有一些相同的属性,如ID ,姓名,部门等,可以

将三者的共性提取出来,形成一个抽象的参与者——用户。

系统可以识别三个参与者:学生,教师和管理员。 学生:查询课表,选课,查询考试成绩 教师:查询课表,查询课程成绩

管理员:管理所开设的课程,管理用户,录入成绩,执行各种查询功能。

学生选课的数据流图:

① 数据项:以“学号”为例 数据项名:学号

数据项含义:唯一标识每一个学生 别名:学生编号

数据类型:字符型 长度:8 取值范围:00000~99999 取值含义:前2位为入学年号,后3位为顺序编号

与其他数据项的逻辑关系:(无)

② 数据结构:以“学生”为例 数据结构名:学生

含义说明:是学籍管理子系统的主体数据结构,定义了一个学生的有关信息 组成:学号,姓名,性别,年龄,所在系

③ 数据流:以“选课信息”为例 数据流名:选课信息

说明:学生所选课程信息

数据流来源:“学生选课”处理 数据流去向:“学生选课”存储 组成:学号,课程号

④ 数据存储:以“学生选课”为例 数据存储名:学生选课

说明:记录学生所选课程的成绩 编号:(无)

流入的数据流:选课信息,成绩信息 流出的数据流:选课信息,成绩信息 组成:学号,课程号,成绩 存取方式:随机存取

⑤ 处理过程:以“学生选课”为例 处理过程名:学生选课

说明:学生从可选修的课程中选出课程 输入数据流:学生,课程 输出数据流:学生选课

根据系统需求中的描述,又可以将系统分为两个顶层用例:选课管理和成绩管理

•选课管理和成绩管理顶层用例图

•选课管理用例可以分解为:

•1.课程信息查询:提供按学生查询,按任课教师查询,按课程名查询等多种

查询方式。

•2.选课:学生对自己所选的课程进行管理,包括增加所选课程,删除所选课程

等。

•3.课程信息管理:管理员对学校所开设的课程进行管理,包括增加课程,删

除课程,修改课程信息等。

•4.用户管理:为简化处理,假设系统从学生管理系统中获取学生信息,从学校

人事管理系统中获取教师信息 。

•选课管理用例图:

•成绩管理用例可以分解为以下用例: •1. 学生成绩查询

•学生查询自己所选课程的成绩。 •2. 课程成绩查询

•教师查询自己所教课程的学生成绩。 •3. 成绩管理

•管理员录入或修改学生成绩。

•学生成绩管理用例图

分析用户如何登录到系统中 1.2 前置条件:无

1.3 后置条件:如果用例成功,则用户登录到系统中。否则,系统状态不变。 1.4 事件流 1.4.1 基本流

(1)当用户开始使用系统时,登录用例启动; (2)系统提示用户输入用户名和密码; (3)用户提交;

(4)系统验证输入的用户名和密码,用户登录成功 1.4.2 备选流

在基本流4中,如果用户输入的名字或密码没有通过验证,系统提示错误信息,用户可以重新输入或中止该用例。

用户登录用例图:

根据以上对系统的总体需求分析,我们就可以对选修课管理系统有个整体的概念。通过对各个用例图的的分析与研究,就可以对选课管理系统的整个过程有个很具体的把握,并且可以知道和明白其工作原理与系统处理细节问题。

三、概念模型与E-R 图

概念模型介绍:

学生选修课管理系统的流程:首先由教师或系统管理员等有录入权限的用户将各自权限范围内的信息进行录入,然后保存信息到数据库中。有权限的人可以对这些数据库信息进行修改和删除。所有用户均可以进行信息查询和统计。 数据流分析

学生选课管理系统的数据流程:首先由教师或系统管理员等有录入权限的用户将各自权限范围内的信息进行录入处理,然后保存信息到数据库中。有权限的人可以对这些库信息进行修改和删除处理。所有用户均可以进行信息查询和统计,结果可以报表打印。

选修课选课系统主要分为两大模块:管理员模块和一般用户模块,管理员可以是教师也可以是学生,不过管理员必须承担一定的责任。

管理员模块又分为对用户的管理和对选课的管理,对用户的管理模块应有的功能是对新用户的添加,对无用用户的删除;选课管理模块应有的功能包括新开设选修课信息的添加,对原有课程信息的修改,对学校不再开设的课程进行删除,一轮选课结束以后对各科选课人数归零。

一般用户模块既学生应用模块是该系统最基本的功能模块,因为此模块应完成访客登录的身份验证,学生选修公共选修课记录的添加,对公共选修课信息的查询,对教师信息的查询,学生对自己已经选修哪些课进行查询。所以,按照需要完成的要求又分成了各具体执行模块。

学生实体E-R 图

教师实体E-R 图

课程实体E-R 图

管理员实体E-R 图

整体E-R 图:

四、E-R 模型转换成关系数据库

E-R 模型转换成关系数据库的一般规则:

1. 将每一个实体转换成一个关系。 2. 所有主码必须定义非空。

3. 对于二元联系,按照下列规则定义外码:

a. 一对一联系:将‖一‖表中的主码作为外码放在‖多‖表中。如上图中的计算机系

与教师的关系,计算机系只有一个系主任。

b. 弱实体:将父表的主码作为外码放在弱实体中。如上图学生与亲属的关系中

亲属就是弱实体。

c. 一对多联系:将一个表的主码作为外码放在另一个表中。如上图中的班级与

学生的联系。

d. 多对多联系:建立复合实体,复合实体的主码由两个父实体的主码复合组成。

如上图中学生与课表的关系就是多对多的联系,应建立一个复合实体:成绩。

设计关系模型如下:下划线为关系的码

学生(学号,姓名,性别,年龄,班级,所在系号,备注)

Student(Student_id, Student_name, Student_sex, Student_time, Student_classid, Student_age, Student_else)

此为学生实体对应的关系模式。

教师(教师号,姓名,班级,系别,备注)

Teacher(Teacher_id, Teacher_name, Teacher_class, Teacher_dept, Teacher_else)

此为教师实体对应的关系模式。

课程(课程号,课程名,系名,学分,开课时间,课程表)

Course(Course_id, Course_name, Course_time, Class_credit, Course_dept)

此为课程实体对应的关系模式。

管理员(用户名,密码,登录类型)

Manger (, Manger_Passwod, Manger _Power) 此为管理员实体对应的关系模式。

五、数据库设计与建立

在系统中设立6张表:除了有学生、教师、课程基本表分别记录学生、教师、课程的基本信息外,考虑到便于系统管理员管理学生用户,设计了用户表,记录用户登录系统时的用户名、密码以及权限。同时对于学生选课和教师教课都应该有记录,因此设计了学生选课和教师教课表,其中学生选课表里,包含了学生选课的内容和各门课的成绩,便于管理员对成绩的录入、修改以及用户对成绩的查询和检索:教师教课表的内容主要是包含教师所教课程的信息。

首先是用户信息数据表(Manger),用于存储学生管理系统中所有参与人员的信息,包括教师登录信息、学生登录信息,这样做的目的是可以方便系统判断用户登录的类型,以及对用户类型的统一管理。用户信息没有包括太多的内容,主要有用户登录号、用户密码、用户权限代码,读者可以根据自己的具体需要添加字段,表1显示了表中各个字段的数据类型、大小以及简短描述。

于存储本校所有学生信息,其中包括在校生,也包括已毕业学生。表5-7中显示了表中各个字段的数据类型、大小以及简短描述。

给出一个较为简单的结构。表3显示了表中各个字段的数据类型、大小以及简短描述。

此必须包括课程名称、年度、学期、班级号等,以便管理员或学生查询信息,系统采用教师_课程记录数据表(teacher_course)记录以上信息。如表4所示表中各个字段的数据类型、大小以及简短描述。

学生总是离不开课程,系统设计了课程信息数据表(course),用于存储本校所有课程信息,其中包括课程类型、学分等。表5显示了表中各个字段的数据类型、大小以及简短描述。

学生所学课程都会有成绩,并且每个学生每一门课只有一个成绩。系统设计了学生-课程信息数据表(student—course) ,用于存储本校所有学生所学课程信息,表6显示了表中各个字段的数据类型、大小以及简短描述。

系统使用Microsoft SQL Server 2000建立数据库,库名为Elective 。 库中设计的六个表

使用T-SQL 建立数据库Elective create database elective on

( name='electivedb',

filename='e:\database\elective.mdf', size=2, maxsize=10, filegrowth= 1 ) log on

( name='electivelog',

filename='e:\database\elective_log.ldf', size=1, maxsize=5, filegrowth=1) go

1、使用T-SQL 脚本建立学生信息数据表(Student)。 create table student(

S_id char(20) primary key, S_name char(40) not null , S_sex char(4) not null,

S_dept char(20) not null, S_age char(8) not null, S_classid char(50) not null , S_else char(50) not null , )

2、 使用T-SQL 脚本建立教师信息数据表(Teacher)。

create table teacher(

T_id char(5) primary key, T_name char(10) not null, T_class char(20) not null, T_dept char(20) not null, T_else char(50)not null, )

3、 使用T-SQL 脚本建立课程信息数据表(Course)。 create table course( C_id char(10) primary key, C_name char(20) not null,

C_time char(40) not null, C_credit int not null,

C_dept char(50) not null,

)

4、使用T-SQL 脚本建立课程信息数据表(Student_Course) 。

create table student_course(

ID char(10) primary key,

S_id char(10) not null,

C_id char(10) not null,

S_grade int not null,

C_dept char(50) not null,

)

5、使用T-SQL 脚本建立课程信息数据表(Teacher_Course) 。

create table teacher_course(

ID char(10) primary key,

T_id char(10) not null,

C_id char(10) not null,

C_men int not null,

T_class char(40) not null,

C_year char(50) not null,

) 6、使用T-SQL 脚本建立课程信息数据表(Manger ) 。

create table manger(

M_id char(10) primary key,

M_password char(20) not null,

M_power int not null,

)

构建了数据库的表结构后,接下来创建负责表中信息查询、插入、修改、删除以及授权的相关存储过程(只举例关于表Student ,Course ,Student_Course之间的操作,同理可以对表teacher ,Course ,Student_Course进行相关操作) 。具体操作如下所示:

(一)、查询

基本查询

1、查询DB_Design课程的课程号和学分

SELECT C_id, C_redit

FROM Course

WHERE C_name LIKE ‗DB\_Design‘ ESCAPE ‗\‘ ;

2、某些学生选修课程后没有参加考试,所以有选修课记录,但没有考试成绩。查询缺少成绩的学生的学号和相应的课程号:

SELECT S_id, C_id

FROM Student_Course

WHERE S_grade IS NULL;

3、查询所有有成绩的学生学号和课程号

SELECT S_id, C_id

FROM Student_Course

WHERE S_grade IS NOT NULL;

4、查询选修了3号课程的学生的学号及其成绩,查询结果按分数的降序排列 SELECT S_id, S_grade

FROM Student_Course

WHERE C_id = ‗3‘ ORDER BY S_grade DESC;

5、查询选修了课程的学生人数

SELECT COUNT(DISTINCT S_id)

FROM Student_Course

6、计算选修了1号课程的学生平均成绩

SELECT AVG(S_grade)

FROM Student_Course

WHERE C_id = ‗1‘;

7、求各个课程号及相应的选课人数

SELECT C_id, COUNT(S_id)

FROM Student_Course

GROUP BY C_id

8、查询选修了3门以上课程的学生学号

SELECT S_id

FROM Student_Course

GROUP BY S_id

HA VING COUNT(*)>3;

连接查询

1、 查询每个学生及其选修课程的情况

SELECT Student.S_id, S_name, S_sex, S_age, S_dept, C_id, S_grade

FROM Student, Student_Course

WHERE Student.S_id = Student_Course.S_id;

(自然连接)

SELECT Student.*, Student_Course.*

FROM Student, Student_Course;

(广义笛卡尔积连接)

2、外连接

查询每个学生及其选修课程的情况

SELECT Student.S_id, S_name, S_sex, S_age, S_dept, C_id, S_grade

FROM Student, Student_Course

WHERE Student.S_id = Student_Course.S_id(*);

查询学校设置的所有课程及其选修情况

SELECT C_id, C_name, C_redit, S_id, S_grade

FROM Course, Student_Course

WHERE Course.C_id = Student_Course.C_id(*);

3、多表连接

例 查询每个学生的学号、姓名、选修的课程名及成绩

SELECT Student.S_id, S_name, C_name

FROM Student, Course, Student_Course

WHERE Student.S_id = Student_Course.S_id

AND Student_Course.C_id = Course.C_id

4、带有IN 谓词的子查询

查询与―刘晨‖在同一个系学习的学生

– 使用嵌套实现此查询

SELECT S_id, S_name, S_dept

FROM Student

WHERE S_dept IN

(SELECT S_dept

FROM Student

WHERE S_name = ‗刘晨‘);

6、使用嵌套查询实现

查询选修了课程名为―信息系统‖的学生学号和姓名

SELECT S_id, S_name (3)

FROM Student

WHERE S_id IN

(SELECT S_id (2)

FROM Student_Course

WHERE C_id IN

(SELECT C_id (1)

FROM Course

WHERE C_name=‗信息系统‘));

(二)、插入

插入一条选课记录(‗95020‘,‗1‘)

INSERT INTO Student_Course (S_id, C_id)

V ALUES(‗95002‘, ‗1‘);

将一个新学生记录插入到Student 表中

INSERT INTO Student

V ALUES(‗95002‘, ‗陈冬‘, ‗男‘, ‗IS‘, 18);

(三)、修改

修改某一个元组的值

例 将学生95001的年龄改成22岁

UPDATE Student

SET S_age = 22

WHERE S_id = ‗95001‘;

(四)、删除

删除一个或多个元组

例 删除学号为95019的学生记录

DELETE FROM Student

WHERE S_id = ‗95019‘;

删除计算机系所有学生的选课记录

DELETE FROM Student_Course

WHERE ‗S_dept‘ =

(SELETE S_dept

FROM Student

WHERE Student.S_id = Student_Course.S_id);

(五)、授权授权

GRANT [,]…

[ON ]

TO [,]…

[WITH GRANT OPTION];

1、把查询 Student 表的权限授给用户wang

GRANT SELECT ON TABLE Student TO wang;

2、把对Student 表和Course 表的全部操作权限授予用户U2和U3

GRANT ALL PRIVILIGES ON TABLE Student, Course TO user2, user3;

3、把对Student_Course表的查询权限授予所有用户

GRANT SELECT ON TABLE Student_Course TO PUBLIC;

4、把查询Student 表和修改学号的权限授予用户U4

GRANT UPDATE(S_id), SELECT ON TABLE Student TO U4;

5、把对Student_Course表的插入权限授予用户U5,并允许将此权限再授予其他用户

GRANT INSERT ON TABLE Student_Course TO user5

WITH GRANT OPTION;

收回权限

1、收回U4用户修改学生学号的权限

REVOKE UPDATE(S_id) ON TABLE Student FROM U4;

2、收回所有用户对表Student_Course的查询权限

REVOKE SELECT ON TABLE Student_Course FROM PUBLIC;

3、收回U5用户对表Student_Course的插入权限

REVOKE INSERT ON TABLE Student_Course FROM U5;

六、连接数据库

系统为保持良好的可移植性,采用对数据库配置进行统一管理的方法,将程序中用到的所有连接字符串信息统一放于Web.Config 配置文档中,在程序中通过这一配置调用,进行数据库连接。

对于数据库调用字符串,由于数据库使用的是本地数据库,Data Source(数据源) 设置为(local );UID(用户ID) 赋值为系统默认的sa :PWD(连接密码) 赋值为空;DATABASE(数据库名称) 设为我们上一节中创建的Elective 。 Web.Config 配置文档的相关主要代码如下:

Source=(local);UID=sa;PWD=;DATABASE=Elective "/>

在每个需要连接数据库的程序中读取Web.Config 配置文档中的数据库设置信息,只要使用如下语句即可。

string strconn= ConfigurationSettings.AppSettings["dsn"]; SqlConnection cn=new SqlConnection(strconn);

cn.Open();

我们只要在程序文件中加入这几行代码,就可以将数据库连接字段读取到字符串strconn 中,就可使用所连接的数据库了。

12.4.2 设置用户验证和授权

在系统中专门建一目录为:manager ,把不允许学生浏览的管理员模块的所有应用程序放入该目录,以便在Web.Config 中控制。

先在Web.Config 中设置用户名和密码,代码清单如下:

然后设置目录manager 的访问权限。

系统配置以后,只有用户名为manager 和admin 的两个用户才能访问manager 目录中的文件,任何人若直接浏览该目录下的文件时,将转到login.aspx 页面,要求重新登录。

七、个人总结

经过这么多天的努力,我们的课程设计终于完成了。回想经历的这么些日子,真的感想颇多。数据库是一个门实践性很强的学科,除了要学习必要的的理论的知识外,一定的上机实践也是不可缺少的。而这次课程设计就是一个很好的机会。

毕竟跟平时的上机实验不同。不像平时的小作业,一次实验只用到一小部分的知识,做一些简单的操作,这次的课程设计是对所学知识的综合应用,除了要牢固掌握基础知识外,还需要同组人员的共同努力,密切分工合作以完成任务。我这才发现平时所学知识并不牢固,许多知识只知其一,不知其二,知识之间的衔接和联系理解不够透彻明白,因此在开始时有点无从下手。好在我复习了下课本,并翻阅了一些相关书籍,上网查了大量资料,大大开阔了眼界,思路也清晰起来。而且也参考了一些同学的作业,对任务有了更好理解和认识,知识掌握也得到巩固。

按照数据库结构设计的需求分析、概念分析与设计、逻辑分析与设计、物理分析与设计、功能实现、整体数据库系统实现、整理设计课程设计说明书并上交审查等7个步骤进行,首先完成完成数据库课程设计任务书,然后查找项目相关背景资料、功能要求以及发展前景,再运用数据字典,并画出相应的流程图,使用E-R 图实现信息的基本逻辑,建立对应的模型,整理出关系模式,并把E-R 图形式转换成抽象的模式,并运用命令、约束条件、索引等方式,然后使用SQL 语言进行数据库的设计,最后撰写出课程设计说明书并打印,提交审查。

这次课程设计,不仅提高了我运用数据库理论开发出具有实际应用价值的数据库应用系统的能力,而且思考和解决实际问题的能力也有了较大提高。 我对数据库的相关知识有了进一步理解和更熟练的掌握,对以前存在的问题也基本上都得到了解决。我已经学会独立地分析一些实际问题,建立数据库,建立,修改,插入和删除表等操作也没有问题,并能构造数据字典,画出对应的数据流图,E-R 图和关系模式,运用SQL 语言进行数据的插入,删除,修改等。

这次课程设计用的时间比较长,但由于开始时知识欠缺,准备不足,并且面临接二连三的考试,做起来还是遇到了不少的困难。不过在经过我们的共同努力下,经过分工合作,一起查资料,并参考借鉴其他同学的作业,我们还是如期完成了任务。在这次课程设计中,我才真正认识到团队合作的重要性,成员间密切合作,互相配合,效率才会高,效果也好,为以后的各种团队工作也创造良好的

基础。由于是第一次做这样大型的数据库设计,我们的作业也难免会存在不少的缺点和不足。我会继续努力,不断学习,打好 基础,把知识学的更好。我们的任务能最终完成,与老师平日的教导是分不开的。此外,我们也得到其他一些同学的指点和帮助,使我们在完成作业时少走了许多弯路。再次一并表示感谢。

八、参考文献

1 萨师煊,王珊,数据库系统概论(第四版). 高等教育出版社,2006 2孟小峰 王珊,数据库系统导论(第7版). 机械工业出版社出版,2000

3、《数据库系统原理》,中国矿业大学出版社

4、《数据库技术及应用教程》,北京大学出版社

数据库系统设计课程设计任务书

计算机科学与技术学院制

目录

1.相关专业背景功能 --------------------------------- 1 2.需求分析 --------------------------------------- 4 3.概念模型与E-R 图__________________________________13 4.E-R 模型转换 -----------------------------------14 5.数据库设计与建立 ------------------------------17 6、连接数据库---------------------------------------23 7. 个人总结-----------------------------------------24 8.参考文献 --------------------------------------25

一、选修课管理系统的相关背景功能

选修课管理系统是一个面向学校教务管理人员、教师和学生并为其提供服务的管理系统。

选修课管理系统所经历的三个阶段

一、没有电脑的年代,网上选课根本不存在,当时学生根据自己的爱好兴趣等方面,先选择相应的课程,然后由班级上报院系,再通过人工整理所上报的信息的办法,决定每个人的选课信息以及任课老师所教的课程,也就是说几乎谈不上选修课管理系统这么一说。

二、每个院系有了为数不多的几台电脑后,班级上报院系的信息,由院系先在电脑上登记,最后交给教务处,教务处通过选修课管理系统(还不够完善),经过审核决定最终结果并公布;

三、电脑普及率很高,也就是现在这样,网上选课已不成问题,教务处直接通过选修课管理系统,了解与审核选课信息,最终决定最后的结果并公布。

有关选修课的概念与定义

选修课与“必修课”相对。主要指高等学校和中等专业学校中学习某一专业的学生可以有选择地学习的课程。在教学计划中一般不作硬性规定。分限制性选修课程(某些特定专业指定选修课程, 对该专业来说可视为必修课) 和非限制性选修课程(任意专业选修课程) 两种。一般大学的课程都分为校定必修,院定必修,限选课和任选课这四种,你可以根据你的爱好来选择选修课,也可以选一些专业方面的课程来修。选修课不能全都选,学校有规定一学期最高能修多少个学分,你不能超出这个限制。

开设选修课的意义

选修课的开设是基于社会对复合型人才的需求, 旨在加强大学生人文素质和科学素质的养成和提高, 培养全面发展的高素质人才。要对学生的公共选修课进行管理, 每学期由教务处依据教学计划列出所开设的选修课程, 学生自主选课, 教务处根据选课情况进行调整, 最后确定选修各门课程的学生名单, 并对选修课进行排课和对选修课成绩进行登记。可设置学生可选修的课程范围以及选修的约束条件。可指定范围内的学分约束及课程门数约束, 可指定选修课教师的开设班级的约束条件, 开设班级的人数限制。约束条件将作为学生在网上选课审核的标准。应实时显示选课冲突信息。

网上选课的好处:

大学期间总会有很多公共选修课,以往的选课方法是随堂报名。这种方法虽然直接,但是造成选课的盲目性,有些课堂选课时人满为患,有些课堂无人选课。原因是传统的选课方法没有预见性,大家没有事先协调好。使用了网上选课系统以后,可以在开课前就在网上选课,每个学生的课程在开课前就确定好,不用浪费体力去选课,还可以使教学资源合理平均地分配。

学校的选修课网上选课报名问题:

– 教师网上登记选修课(课程审核) – 学生网上选课 – 报名名单调整

– 导出全校选课报名报表等等 选修课管理系统的功能

1. 选课。学生能够在网上实现正常学期的本专业本年级推荐选课、本院系开设课程、体育课、政治课、公共英语课、文科计算机课、通选课和公选课的选课; 2.成绩查询。学生能够在网上快速、便捷地查询到自己所有学期的课程成绩(包括本院系所学课程成绩、辅修/双学位成绩)。

3.选课情况查询。学生从网上就可以了解自己的选课情况(包括正常学期和暑期学校的选课),避免了许多不必要的麻烦。

4.退课情况查询。学生可以清楚地查看到自己退课的时间和所用的IP 地址。 5.体育课评估。

6.修改密码。此功能更加完善了系统的功能。

7.用户注销。不仅方便用户退出系统重新进行别的操作,而且更为重要的是它能够及时保证用户在使用此系统时的安全性。

系统设置:系统管理员配置相关信息,包括教师登记课程时间范围,学生选课时间范围,每班最多人数,选修课上课日期,选课学生范围等;

教师登记课程:开课教师在规定的时间内登记自己要开设的选修课程; 学生选课:学生在规定的选课时间内自由选课报名,在规定时间内,可以退选、补选、改选课程;

选课调整:学生选课期截止后,系统管理员可以根据学生本人、班主任或者任课教师的要求针对个别学生的选课进行调整,包括强制选课、退选、换选三种; 生成报表:自动生成EXCEL 报表,包括学生本人的选课列表、给班主任的选课名

单和给上课教师的报名名单 选修课管理系统的使用说明

一、学生选课 6)学生登陆

7)进行初选,复选,补退选

8)查询选课情况,上课时间、地点与上课老师 9)修改登陆密码,添加或删除选课的相关信息 10)

查询成绩

二、教师查询 5)教师登陆

6)查询课程信息(上课时间、地点以及课程是否被取消,查询选择自己课程的学生清单) 7)修改登陆密码 8)登记学生成绩 三、管理员对选修课管理

5)设置学生可选修的课程范围以及选课的约束条件

6)添加课程,修改密码、浏览选课情况、关闭选课人数不足15的课程 7)对选修课进行排课 登记选修课的成绩

现行选修课管理系统的特点

∙ 完全基于浏览器的操作界面,操作简便

∙ 灵活的选课管理、灵活选课配置、课程审核设置、学生范围限定等 ∙ 严格的选课匹配 ∙ 教师限时课程登记 ∙ 学生限时网上选课

∙ 保证选课学生在班级之间均匀分布,杜绝过分集中 ∙ 管理员可以调整学生选课名单 ∙ 轻松导出各类选课报表

预测选修课管理系统的发展 随着科学技术的不断进步,电脑将会基本普及,各种系统的完善程度将会大幅提高,上一个新台阶,到那时,我想选修课管理系统也将更灵活,操作更简单,更

人性化与智能化。

二、需求分析

学生包含学号等属性,通过登记系统保存学生成绩的信息。学生通过分组程序分出选修课的学生名单。课程包含课程号,名称等属性。分组信息分出选修课教师,教师包含名称,教师编号属性。

用户通过SQL SERVER 2000 的查询分析器直接输入各种操作代码,其中包括对系统管理员的创建,管理员可以创建其他管理员权限,当然,系统管理员可以对所有表进行修改,删除,增加。

具体需求分析如下: 选修课管理系统功能图:

•系统功能需求: •1. 开设课程管理

–管理员对所开设的课程进行管理,允许对所开设的课程进行增加,修改,删除等。

•2. 查询

–可以按课程名,教师名,学号等多种方式查询课程信息。对于学生的选课信息,学生只能

查询本人的。

•3. 学生选课管理

–学生根据所查询的课程信息,选择自己所要选修的课程。对于已经选择了,但不希望选修

的课程,可以进行退选。每个学生最多选修8个学分。

•4. 用户信息管理

–能够使用系统的每个学生、教师和管理员每人都有一个ID ,管理员可以对用户进行增加,

删除,修改等操作。

•5. 学生成绩管理

•成绩管理包括如下功能:

(1)成绩录入

–管理员录入学生的成绩信息。

(2)成绩查询

–学生可以查看自己所选各科课程的成绩。

教师可以查询自己所教课程的学生成绩,并打印报表。

参与者用例图:

分析参与者:

•学生、教师、管理员都是学校里的人员,有一些相同的属性,如ID ,姓名,部门等,可以

将三者的共性提取出来,形成一个抽象的参与者——用户。

系统可以识别三个参与者:学生,教师和管理员。 学生:查询课表,选课,查询考试成绩 教师:查询课表,查询课程成绩

管理员:管理所开设的课程,管理用户,录入成绩,执行各种查询功能。

学生选课的数据流图:

① 数据项:以“学号”为例 数据项名:学号

数据项含义:唯一标识每一个学生 别名:学生编号

数据类型:字符型 长度:8 取值范围:00000~99999 取值含义:前2位为入学年号,后3位为顺序编号

与其他数据项的逻辑关系:(无)

② 数据结构:以“学生”为例 数据结构名:学生

含义说明:是学籍管理子系统的主体数据结构,定义了一个学生的有关信息 组成:学号,姓名,性别,年龄,所在系

③ 数据流:以“选课信息”为例 数据流名:选课信息

说明:学生所选课程信息

数据流来源:“学生选课”处理 数据流去向:“学生选课”存储 组成:学号,课程号

④ 数据存储:以“学生选课”为例 数据存储名:学生选课

说明:记录学生所选课程的成绩 编号:(无)

流入的数据流:选课信息,成绩信息 流出的数据流:选课信息,成绩信息 组成:学号,课程号,成绩 存取方式:随机存取

⑤ 处理过程:以“学生选课”为例 处理过程名:学生选课

说明:学生从可选修的课程中选出课程 输入数据流:学生,课程 输出数据流:学生选课

根据系统需求中的描述,又可以将系统分为两个顶层用例:选课管理和成绩管理

•选课管理和成绩管理顶层用例图

•选课管理用例可以分解为:

•1.课程信息查询:提供按学生查询,按任课教师查询,按课程名查询等多种

查询方式。

•2.选课:学生对自己所选的课程进行管理,包括增加所选课程,删除所选课程

等。

•3.课程信息管理:管理员对学校所开设的课程进行管理,包括增加课程,删

除课程,修改课程信息等。

•4.用户管理:为简化处理,假设系统从学生管理系统中获取学生信息,从学校

人事管理系统中获取教师信息 。

•选课管理用例图:

•成绩管理用例可以分解为以下用例: •1. 学生成绩查询

•学生查询自己所选课程的成绩。 •2. 课程成绩查询

•教师查询自己所教课程的学生成绩。 •3. 成绩管理

•管理员录入或修改学生成绩。

•学生成绩管理用例图

分析用户如何登录到系统中 1.2 前置条件:无

1.3 后置条件:如果用例成功,则用户登录到系统中。否则,系统状态不变。 1.4 事件流 1.4.1 基本流

(1)当用户开始使用系统时,登录用例启动; (2)系统提示用户输入用户名和密码; (3)用户提交;

(4)系统验证输入的用户名和密码,用户登录成功 1.4.2 备选流

在基本流4中,如果用户输入的名字或密码没有通过验证,系统提示错误信息,用户可以重新输入或中止该用例。

用户登录用例图:

根据以上对系统的总体需求分析,我们就可以对选修课管理系统有个整体的概念。通过对各个用例图的的分析与研究,就可以对选课管理系统的整个过程有个很具体的把握,并且可以知道和明白其工作原理与系统处理细节问题。

三、概念模型与E-R 图

概念模型介绍:

学生选修课管理系统的流程:首先由教师或系统管理员等有录入权限的用户将各自权限范围内的信息进行录入,然后保存信息到数据库中。有权限的人可以对这些数据库信息进行修改和删除。所有用户均可以进行信息查询和统计。 数据流分析

学生选课管理系统的数据流程:首先由教师或系统管理员等有录入权限的用户将各自权限范围内的信息进行录入处理,然后保存信息到数据库中。有权限的人可以对这些库信息进行修改和删除处理。所有用户均可以进行信息查询和统计,结果可以报表打印。

选修课选课系统主要分为两大模块:管理员模块和一般用户模块,管理员可以是教师也可以是学生,不过管理员必须承担一定的责任。

管理员模块又分为对用户的管理和对选课的管理,对用户的管理模块应有的功能是对新用户的添加,对无用用户的删除;选课管理模块应有的功能包括新开设选修课信息的添加,对原有课程信息的修改,对学校不再开设的课程进行删除,一轮选课结束以后对各科选课人数归零。

一般用户模块既学生应用模块是该系统最基本的功能模块,因为此模块应完成访客登录的身份验证,学生选修公共选修课记录的添加,对公共选修课信息的查询,对教师信息的查询,学生对自己已经选修哪些课进行查询。所以,按照需要完成的要求又分成了各具体执行模块。

学生实体E-R 图

教师实体E-R 图

课程实体E-R 图

管理员实体E-R 图

整体E-R 图:

四、E-R 模型转换成关系数据库

E-R 模型转换成关系数据库的一般规则:

1. 将每一个实体转换成一个关系。 2. 所有主码必须定义非空。

3. 对于二元联系,按照下列规则定义外码:

a. 一对一联系:将‖一‖表中的主码作为外码放在‖多‖表中。如上图中的计算机系

与教师的关系,计算机系只有一个系主任。

b. 弱实体:将父表的主码作为外码放在弱实体中。如上图学生与亲属的关系中

亲属就是弱实体。

c. 一对多联系:将一个表的主码作为外码放在另一个表中。如上图中的班级与

学生的联系。

d. 多对多联系:建立复合实体,复合实体的主码由两个父实体的主码复合组成。

如上图中学生与课表的关系就是多对多的联系,应建立一个复合实体:成绩。

设计关系模型如下:下划线为关系的码

学生(学号,姓名,性别,年龄,班级,所在系号,备注)

Student(Student_id, Student_name, Student_sex, Student_time, Student_classid, Student_age, Student_else)

此为学生实体对应的关系模式。

教师(教师号,姓名,班级,系别,备注)

Teacher(Teacher_id, Teacher_name, Teacher_class, Teacher_dept, Teacher_else)

此为教师实体对应的关系模式。

课程(课程号,课程名,系名,学分,开课时间,课程表)

Course(Course_id, Course_name, Course_time, Class_credit, Course_dept)

此为课程实体对应的关系模式。

管理员(用户名,密码,登录类型)

Manger (, Manger_Passwod, Manger _Power) 此为管理员实体对应的关系模式。

五、数据库设计与建立

在系统中设立6张表:除了有学生、教师、课程基本表分别记录学生、教师、课程的基本信息外,考虑到便于系统管理员管理学生用户,设计了用户表,记录用户登录系统时的用户名、密码以及权限。同时对于学生选课和教师教课都应该有记录,因此设计了学生选课和教师教课表,其中学生选课表里,包含了学生选课的内容和各门课的成绩,便于管理员对成绩的录入、修改以及用户对成绩的查询和检索:教师教课表的内容主要是包含教师所教课程的信息。

首先是用户信息数据表(Manger),用于存储学生管理系统中所有参与人员的信息,包括教师登录信息、学生登录信息,这样做的目的是可以方便系统判断用户登录的类型,以及对用户类型的统一管理。用户信息没有包括太多的内容,主要有用户登录号、用户密码、用户权限代码,读者可以根据自己的具体需要添加字段,表1显示了表中各个字段的数据类型、大小以及简短描述。

于存储本校所有学生信息,其中包括在校生,也包括已毕业学生。表5-7中显示了表中各个字段的数据类型、大小以及简短描述。

给出一个较为简单的结构。表3显示了表中各个字段的数据类型、大小以及简短描述。

此必须包括课程名称、年度、学期、班级号等,以便管理员或学生查询信息,系统采用教师_课程记录数据表(teacher_course)记录以上信息。如表4所示表中各个字段的数据类型、大小以及简短描述。

学生总是离不开课程,系统设计了课程信息数据表(course),用于存储本校所有课程信息,其中包括课程类型、学分等。表5显示了表中各个字段的数据类型、大小以及简短描述。

学生所学课程都会有成绩,并且每个学生每一门课只有一个成绩。系统设计了学生-课程信息数据表(student—course) ,用于存储本校所有学生所学课程信息,表6显示了表中各个字段的数据类型、大小以及简短描述。

系统使用Microsoft SQL Server 2000建立数据库,库名为Elective 。 库中设计的六个表

使用T-SQL 建立数据库Elective create database elective on

( name='electivedb',

filename='e:\database\elective.mdf', size=2, maxsize=10, filegrowth= 1 ) log on

( name='electivelog',

filename='e:\database\elective_log.ldf', size=1, maxsize=5, filegrowth=1) go

1、使用T-SQL 脚本建立学生信息数据表(Student)。 create table student(

S_id char(20) primary key, S_name char(40) not null , S_sex char(4) not null,

S_dept char(20) not null, S_age char(8) not null, S_classid char(50) not null , S_else char(50) not null , )

2、 使用T-SQL 脚本建立教师信息数据表(Teacher)。

create table teacher(

T_id char(5) primary key, T_name char(10) not null, T_class char(20) not null, T_dept char(20) not null, T_else char(50)not null, )

3、 使用T-SQL 脚本建立课程信息数据表(Course)。 create table course( C_id char(10) primary key, C_name char(20) not null,

C_time char(40) not null, C_credit int not null,

C_dept char(50) not null,

)

4、使用T-SQL 脚本建立课程信息数据表(Student_Course) 。

create table student_course(

ID char(10) primary key,

S_id char(10) not null,

C_id char(10) not null,

S_grade int not null,

C_dept char(50) not null,

)

5、使用T-SQL 脚本建立课程信息数据表(Teacher_Course) 。

create table teacher_course(

ID char(10) primary key,

T_id char(10) not null,

C_id char(10) not null,

C_men int not null,

T_class char(40) not null,

C_year char(50) not null,

) 6、使用T-SQL 脚本建立课程信息数据表(Manger ) 。

create table manger(

M_id char(10) primary key,

M_password char(20) not null,

M_power int not null,

)

构建了数据库的表结构后,接下来创建负责表中信息查询、插入、修改、删除以及授权的相关存储过程(只举例关于表Student ,Course ,Student_Course之间的操作,同理可以对表teacher ,Course ,Student_Course进行相关操作) 。具体操作如下所示:

(一)、查询

基本查询

1、查询DB_Design课程的课程号和学分

SELECT C_id, C_redit

FROM Course

WHERE C_name LIKE ‗DB\_Design‘ ESCAPE ‗\‘ ;

2、某些学生选修课程后没有参加考试,所以有选修课记录,但没有考试成绩。查询缺少成绩的学生的学号和相应的课程号:

SELECT S_id, C_id

FROM Student_Course

WHERE S_grade IS NULL;

3、查询所有有成绩的学生学号和课程号

SELECT S_id, C_id

FROM Student_Course

WHERE S_grade IS NOT NULL;

4、查询选修了3号课程的学生的学号及其成绩,查询结果按分数的降序排列 SELECT S_id, S_grade

FROM Student_Course

WHERE C_id = ‗3‘ ORDER BY S_grade DESC;

5、查询选修了课程的学生人数

SELECT COUNT(DISTINCT S_id)

FROM Student_Course

6、计算选修了1号课程的学生平均成绩

SELECT AVG(S_grade)

FROM Student_Course

WHERE C_id = ‗1‘;

7、求各个课程号及相应的选课人数

SELECT C_id, COUNT(S_id)

FROM Student_Course

GROUP BY C_id

8、查询选修了3门以上课程的学生学号

SELECT S_id

FROM Student_Course

GROUP BY S_id

HA VING COUNT(*)>3;

连接查询

1、 查询每个学生及其选修课程的情况

SELECT Student.S_id, S_name, S_sex, S_age, S_dept, C_id, S_grade

FROM Student, Student_Course

WHERE Student.S_id = Student_Course.S_id;

(自然连接)

SELECT Student.*, Student_Course.*

FROM Student, Student_Course;

(广义笛卡尔积连接)

2、外连接

查询每个学生及其选修课程的情况

SELECT Student.S_id, S_name, S_sex, S_age, S_dept, C_id, S_grade

FROM Student, Student_Course

WHERE Student.S_id = Student_Course.S_id(*);

查询学校设置的所有课程及其选修情况

SELECT C_id, C_name, C_redit, S_id, S_grade

FROM Course, Student_Course

WHERE Course.C_id = Student_Course.C_id(*);

3、多表连接

例 查询每个学生的学号、姓名、选修的课程名及成绩

SELECT Student.S_id, S_name, C_name

FROM Student, Course, Student_Course

WHERE Student.S_id = Student_Course.S_id

AND Student_Course.C_id = Course.C_id

4、带有IN 谓词的子查询

查询与―刘晨‖在同一个系学习的学生

– 使用嵌套实现此查询

SELECT S_id, S_name, S_dept

FROM Student

WHERE S_dept IN

(SELECT S_dept

FROM Student

WHERE S_name = ‗刘晨‘);

6、使用嵌套查询实现

查询选修了课程名为―信息系统‖的学生学号和姓名

SELECT S_id, S_name (3)

FROM Student

WHERE S_id IN

(SELECT S_id (2)

FROM Student_Course

WHERE C_id IN

(SELECT C_id (1)

FROM Course

WHERE C_name=‗信息系统‘));

(二)、插入

插入一条选课记录(‗95020‘,‗1‘)

INSERT INTO Student_Course (S_id, C_id)

V ALUES(‗95002‘, ‗1‘);

将一个新学生记录插入到Student 表中

INSERT INTO Student

V ALUES(‗95002‘, ‗陈冬‘, ‗男‘, ‗IS‘, 18);

(三)、修改

修改某一个元组的值

例 将学生95001的年龄改成22岁

UPDATE Student

SET S_age = 22

WHERE S_id = ‗95001‘;

(四)、删除

删除一个或多个元组

例 删除学号为95019的学生记录

DELETE FROM Student

WHERE S_id = ‗95019‘;

删除计算机系所有学生的选课记录

DELETE FROM Student_Course

WHERE ‗S_dept‘ =

(SELETE S_dept

FROM Student

WHERE Student.S_id = Student_Course.S_id);

(五)、授权授权

GRANT [,]…

[ON ]

TO [,]…

[WITH GRANT OPTION];

1、把查询 Student 表的权限授给用户wang

GRANT SELECT ON TABLE Student TO wang;

2、把对Student 表和Course 表的全部操作权限授予用户U2和U3

GRANT ALL PRIVILIGES ON TABLE Student, Course TO user2, user3;

3、把对Student_Course表的查询权限授予所有用户

GRANT SELECT ON TABLE Student_Course TO PUBLIC;

4、把查询Student 表和修改学号的权限授予用户U4

GRANT UPDATE(S_id), SELECT ON TABLE Student TO U4;

5、把对Student_Course表的插入权限授予用户U5,并允许将此权限再授予其他用户

GRANT INSERT ON TABLE Student_Course TO user5

WITH GRANT OPTION;

收回权限

1、收回U4用户修改学生学号的权限

REVOKE UPDATE(S_id) ON TABLE Student FROM U4;

2、收回所有用户对表Student_Course的查询权限

REVOKE SELECT ON TABLE Student_Course FROM PUBLIC;

3、收回U5用户对表Student_Course的插入权限

REVOKE INSERT ON TABLE Student_Course FROM U5;

六、连接数据库

系统为保持良好的可移植性,采用对数据库配置进行统一管理的方法,将程序中用到的所有连接字符串信息统一放于Web.Config 配置文档中,在程序中通过这一配置调用,进行数据库连接。

对于数据库调用字符串,由于数据库使用的是本地数据库,Data Source(数据源) 设置为(local );UID(用户ID) 赋值为系统默认的sa :PWD(连接密码) 赋值为空;DATABASE(数据库名称) 设为我们上一节中创建的Elective 。 Web.Config 配置文档的相关主要代码如下:

Source=(local);UID=sa;PWD=;DATABASE=Elective "/>

在每个需要连接数据库的程序中读取Web.Config 配置文档中的数据库设置信息,只要使用如下语句即可。

string strconn= ConfigurationSettings.AppSettings["dsn"]; SqlConnection cn=new SqlConnection(strconn);

cn.Open();

我们只要在程序文件中加入这几行代码,就可以将数据库连接字段读取到字符串strconn 中,就可使用所连接的数据库了。

12.4.2 设置用户验证和授权

在系统中专门建一目录为:manager ,把不允许学生浏览的管理员模块的所有应用程序放入该目录,以便在Web.Config 中控制。

先在Web.Config 中设置用户名和密码,代码清单如下:

然后设置目录manager 的访问权限。

系统配置以后,只有用户名为manager 和admin 的两个用户才能访问manager 目录中的文件,任何人若直接浏览该目录下的文件时,将转到login.aspx 页面,要求重新登录。

七、个人总结

经过这么多天的努力,我们的课程设计终于完成了。回想经历的这么些日子,真的感想颇多。数据库是一个门实践性很强的学科,除了要学习必要的的理论的知识外,一定的上机实践也是不可缺少的。而这次课程设计就是一个很好的机会。

毕竟跟平时的上机实验不同。不像平时的小作业,一次实验只用到一小部分的知识,做一些简单的操作,这次的课程设计是对所学知识的综合应用,除了要牢固掌握基础知识外,还需要同组人员的共同努力,密切分工合作以完成任务。我这才发现平时所学知识并不牢固,许多知识只知其一,不知其二,知识之间的衔接和联系理解不够透彻明白,因此在开始时有点无从下手。好在我复习了下课本,并翻阅了一些相关书籍,上网查了大量资料,大大开阔了眼界,思路也清晰起来。而且也参考了一些同学的作业,对任务有了更好理解和认识,知识掌握也得到巩固。

按照数据库结构设计的需求分析、概念分析与设计、逻辑分析与设计、物理分析与设计、功能实现、整体数据库系统实现、整理设计课程设计说明书并上交审查等7个步骤进行,首先完成完成数据库课程设计任务书,然后查找项目相关背景资料、功能要求以及发展前景,再运用数据字典,并画出相应的流程图,使用E-R 图实现信息的基本逻辑,建立对应的模型,整理出关系模式,并把E-R 图形式转换成抽象的模式,并运用命令、约束条件、索引等方式,然后使用SQL 语言进行数据库的设计,最后撰写出课程设计说明书并打印,提交审查。

这次课程设计,不仅提高了我运用数据库理论开发出具有实际应用价值的数据库应用系统的能力,而且思考和解决实际问题的能力也有了较大提高。 我对数据库的相关知识有了进一步理解和更熟练的掌握,对以前存在的问题也基本上都得到了解决。我已经学会独立地分析一些实际问题,建立数据库,建立,修改,插入和删除表等操作也没有问题,并能构造数据字典,画出对应的数据流图,E-R 图和关系模式,运用SQL 语言进行数据的插入,删除,修改等。

这次课程设计用的时间比较长,但由于开始时知识欠缺,准备不足,并且面临接二连三的考试,做起来还是遇到了不少的困难。不过在经过我们的共同努力下,经过分工合作,一起查资料,并参考借鉴其他同学的作业,我们还是如期完成了任务。在这次课程设计中,我才真正认识到团队合作的重要性,成员间密切合作,互相配合,效率才会高,效果也好,为以后的各种团队工作也创造良好的

基础。由于是第一次做这样大型的数据库设计,我们的作业也难免会存在不少的缺点和不足。我会继续努力,不断学习,打好 基础,把知识学的更好。我们的任务能最终完成,与老师平日的教导是分不开的。此外,我们也得到其他一些同学的指点和帮助,使我们在完成作业时少走了许多弯路。再次一并表示感谢。

八、参考文献

1 萨师煊,王珊,数据库系统概论(第四版). 高等教育出版社,2006 2孟小峰 王珊,数据库系统导论(第7版). 机械工业出版社出版,2000

3、《数据库系统原理》,中国矿业大学出版社

4、《数据库技术及应用教程》,北京大学出版社


相关内容

  • 学生选课系统程序设计文档
  • ******************* 实践教学 ******************* 兰州理工大学 计算机与通信学院 2015年春季学期 课程设计 题 目: 学生选课系统 专业班级:信息与计算科学 姓 名:学 号:指导教师: 张墨逸 成 绩:______________ 前 言 数据库是从60年 ...

  • 教务管理系统愿景文档
  • 教务管理系统愿景文档 编号:JIAOWU-DEV-VISION 版本:1.0 变更记录 目录 1. 简介 . ............................................................................................... ...

  • 学生选课系统软件需求说明书
  • 学生选课系统 软件需求说明书 作 者: 完成日期: 签 收 人: 签收日期: 修改情况记录: 目录 1 引言 ............................................................................................... ...

  • 2012年辽宁省普通高中学生学业水平考试
  • 2012年辽宁省普通高中学生学业水平考试 信息技术试卷 (本试卷分I.II两卷,满分100分,答题时间50分钟) 注意事项: 1.答卷前,考生务必将自己的姓名.准考证号填写在答题卡上. 2.答案一律写在答题卡上,写在本试卷上无效.考试结束后,将本试卷和答题卡一并交回. 3.回答选择题时,选出每小题答 ...

  • 通信工程专业方向
  • 本文由dmsywo8030贡献 本文由totti1998贡献 doc文档可能在WAP端浏览体验不佳.建议您优先选择TXT,或下载源文件到本机查看. 通信工程专业方向 悬赏分:5 - 解决时间:2007-8-23 20:06 我是学通信工程的.我们学校(南邮) 专业方向分为网络与交换, 计算机通信, ...

  • 学位生成绩管理系统
  • 目 录 绪 论 . ...................................................... 4 1课题概述 ..................................................... 5 1.1 课题的背景及意义 ........ ...

  • 概要设计文档
  • 学生课程及成绩管理系统 概要设计 V 1.0 项目经理: 张宝磊 项目负责人:张永锋 评 审 日 期: 2011年11月05日 目 录 1. 导言 . .......................................................................... ...

  • 1写给毕业设计学生的话
  • 同学们: 由于大家实习都忙,很难凑到一起集中开会,所以采用这种方式和大家沟通,同时把职业生涯设计的一些要求通知大家.请仔细阅读,不明白的地方随时和我邮件.电话沟通,或者到学校找我面谈. 咱们的职业生涯设计包含两大部分,第一部分是"职业生涯设计"部分,第二部分是"毕业设计 ...

  • 数据库原理实验
  • 附录:实验指导书 实验一 熟悉数据库管理系统环境 一.实验目的: 1. 了解SQL Server2008的基本安装和配置. 2. 掌握SQL Server2008常用工具的基本操作方法. 3. 了解SQL SERVER2008数据库及其表对象的建立方法. 二.实验内容和主要步骤: 1. 参照相关文档 ...