数据库课程设计(学⽣选课管理系统)
⼀、系统总体功能设计
1.1开发背景
随着学校规模不断扩⼤、课程项⽬不断增多,为了解决学⽣选课管理上的复杂的⼈⼯操作,减轻重复⼯作,故设计了选课系统。为了适应课程的改⾰,学校在每个学期都要开设⼀定的课程提供给学⽣,让学⽣根据⾃⼰的情况来选择,根据学⽣选择结果给出课程表。学⽣选课系统开发的⽬标就是实现学⽣选课信息关系的系统化、规范化和⾃动化。因此基于以上原因设计开发学⽣选课管理系统。
1.2 设计思想
⽤户的需求具体表现在对各种信息的提供、编辑、处理及查询统计上。这就要求数据库结构能充分满⾜各种信息的输⼊、处理和输出。通过分析学⽣选课管理系统的现实需求,学⽣选课管理系统各环节的基本数据及数据处理流程,在与管理⼈员沟通、交流与探讨的基础上,可以得到学⽣选课系统的数据流程图。根据得到的数据流图设计并实现数据库,然后进⾏系统编程,设计相应的图形⽤户界⾯,并实现相应数据库的连接。⾄此可以完成整个系统的设计与开发。1.3 功能需求分析
该系统具备管理学⽣信息、课程信息、选课信息的功能:⽤户通过输⼊账号和密码进下该系统后,可以
进⾏⼀些基础维护(学⽣信息维护、课程信息维护、选课信息维护)。全部都可以进⾏增加、修改、删除、模糊查询。具体来说多功能和系统的要求如下:
(⼀)对功能的规定
1. 可实现学⽣选课。
2. ⽅便实现学⽣选课信息查询。
3. 安全有效的⽤户区分,管理。
4. 档案数据的⾼安全性,保密性。
(⼆)对性能的规定学生管理系统数据库设计说明书
使⽤稳定,操作性能好,操作⽅法易于掌握,系统的安全性强。
1.4 功能设计模块
该⼩型系统主要是⽤于管理学⽣及课程的基本信息,主要功能包括四⽅⾯
的:
1.管理学⽣信息,其中包括添加,删除,修改等操作。
2.管理课程信息,其中包括添加,删除,修改等操作。
3.管理选课信息,其中包括添加,删除,修改等操作。
4.查询信息,其中包括查询学⽣信息,查询课程信息,查询选课信息等操作。
其功能模块结构图如下所⽰
⼆、数据库设计
2.1 数据库概念设计
描述概念模型的有⼒⼯具是E-R模型,下⾯将⽤E-R模型来描述概念结构。
根据上⾯的系统功能分析可知,本数据库需要建⽴以下⼏张表。建⽴⼀张学⽣信息表S,主要⽤来存放学⽣的有效信息,建⽴⼀张课程信息表C,⽤来存放课程的有关信息。同时为了能是两张表联系起来,需要建⽴⼀张选课表SC。这样可以这样能满⾜系统需要的各项数据,以实现数据录⼊,查询或统计等功能。同时为了实现数据库的安全性,需要建⽴⼀张管理员表admin,存放管理员的⽤户名和密码,以实现管理员的登陆。
由此可知学⽣选课管理系统的E-R图如下所⽰:
实体属性列表如下:
2.2 逻辑结构设计
将概念模型转化为关系模型如下所⽰
实体转换成的关系模式有:
学⽣(学号、姓名、系别);
课程(课程号、课程名);
选课(课程号、学号、成绩);
其中带下划线的属性为各关系模式的主码。
在以上关系中,实体中的每个属性都是简单属性,都是不可再分的,实体遵循第⼀范式;
对于学⽣关系模式来说
其属性集为(学号、姓名、系别)
函数依赖集为(学号-----→姓名,学号-----→系别)
对于课程关系模式来说
其属性集为(课程号、课程名)
函数依赖集为(课程号--→课程名)
对于选课关系模式来说
其属性集为(课程号、学号、成绩)
函数依赖集为(课程号、学号----→成绩)
根据以上分析可知,以上关系模式中⾮主属性均完全函数依赖于码,因此他,它们符合2NF,同时在函数依赖集中,均不存在传递依赖,因此它们符合3NF的定义。
2.3 数据库的创建
在开始-→程序-→SQL--→SQL server Manaement Studio中启动数据库。
新建数据库如下图所⽰
给新建的数据库命名为学⽣选课管理系统
单击确定,这样数据库就创建好了,接下来的任务就是创建数据表了2.4 数据表的创建
2.4.1 数据表的设计
1、学⽣表的创建
学⽣表主要存储学⽣的基本信息,便于在查询时操作,学⽣表的学号是唯⼀的,因此它可以作为学⽣表的主键。学⽣表的结构如下所⽰
学⽣表(S)
2、课程表(C)的创建
课程表主要存放有关课程的信息,课程号唯⼀可以作为课程表的主键。
课程表的结构如下:
3、选课表(SC)的创建
选课表主要存放学⽣选课的有关信息,在数据库中可以查询到学⽣选课的课程,学号,以及成绩。
选课表的结构如下
4、管理员表(admin)
学⽣选课管理系统需要管理员的管理,以确保数据库的安全性。因此需要创建⼀个管理员表,为系统管理员设置登录密码和登录账户。只有通过系统认证才可以进⼊到数据库对相应的数据进⾏操作。
管理员表的结构如下所⽰
2.4.2 数据完整性约束
1、实体完整性
在各个表中都定义了相应的主码,在学⽣表中定义学号为主键,因为学号对⼀个学⽣来说是唯⼀的,学号可以决定学⽣的其他⼀切属性,所以⽤学号作为主键,对课程表来说,课程号是唯⼀的,课程号可以决定课程名,所以⽤课程号作为主键。对选课表来说,学号、课程号都不能唯⼀决定学⽣的成绩。因此把学号和课程号联合起来作为主键。对于主键来说,不能为空,要满⾜实体完整性的定义。
2、参照完整性
参照完整性是将各个表中的相应元组联系起来。在选课表SC中,学号是学⽣表的外键,课程号是课程表的外键。因此在查询学⽣选课的情况是可以查询到学⽣的有关信息。通过设置外键以保证数据的惟⼀性和正确性。
3、⽤户⾃定义完整性
在以上三个表中。对于选课表来说,学⽣成绩有⼀定的限制条件,学⽣成绩应在0到100之间,因此对学⽣成绩应该有限制性约束条件,⽤check短语指定列值应满⾜的条件。
Grade Char(10) CHECK(Grade>=0 and Grade<=100),.增加CHECK约束可以保证数据库数据的准确性与正确性。
2.4.3 数据表的建⽴
1、学⽣表S建⽴
CREATE TABLE S
(Sno CHAR(10) PRIMARY KEY,
Sname CHAR(10) UNIQUE,
Sx CHAR(10),
);
2、课程表C建⽴
CREATE TABLE C
(Cno CHAR(10) PRIMARY KEY, /* 列级完整性约束条件*/ Cname CHAR(10) ,
);
3、选课表sc的建⽴
CREATE TABLE SC
(Cno CHAR(10) NOT NULL,/* 列级完整性约束条件*/ Sno CHAR(10) NOT NULL,
C CHAR(10) CHECK(C>=AN
D C<=100) ,
);
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论