赞
踩
随着计算机走进千家万户,改善了我们工作生活的方式,减轻了我们的生活压力。用计算机代替繁重的人工工作,已经成为了一种适应时代潮流的一种方式。在学校中,学生的学籍信息管理是一个非常重要且繁琐的事情,如何既能方便的进行学生信息的录入、删除、更新、修改,为全校师生的学习生活提供便利,又能减轻学籍系统数据库管理人员的工作负担,高效地完成各项信息更新查询工作,是一件非常重要的事情。高校学籍管理数据库应运而生。
我们以高校学生学籍管理业务为依托,结合科学管理的理论,设计并开发一个学籍管理系统,提供一个科学合理的学生学籍管理解决方案。根据管理权限的不同,将用户分为学生、教师、教务管理人员三种,具有不同的权限。权限要求如下:
(1)提供简单、方便的信息录入、查询、修改、增加、删除等操作。
(2)根据使用者身份的不同,赋予不同的权限以便其完成对应的操作。
(3)进行成绩更改时,能够自动更改学生的学分总数
(4)节省学籍管理的成本。
学生:(学号,姓名,性别,年龄,系别,已修总学分)
课程:(课程号,教师编号,课程名,学分)
选课:(学号,课程号,教师编号)
教务处:(职工编号,姓名)
管理:(职工编号,学号)
E-R图的集成
关系数据模式:
学生和课程之间是m:n的选课关系,给他们加一个独立的选课表记录。
学生(学号,姓名,年龄,性别,系别,已修总学分)
课程(课程号,教师编号,名称,学分)
选课(学号,课程号,教师编号)
学生和课程之间有一个m:n的选课成绩关系。用一个独立的选课成绩表记录。
学生(学号,姓名,年龄,性别,系别,已修总学分)
课程(课程号,教师编号,名称,学分)
选课成绩(学号,课程号,成绩,学分)
学生和教务处有m:n的管理关系,用一个独立的管理表记录。
学生(学号,姓名,年龄,性别,系别,已修总学分)
教务处(职工编号,姓名)
管理(职工编号,学号)
数据库的物理设计就是为逻辑数据模型选取一个最合适应用要求的物理结构的过程,在这个阶段中要完成两大任务:
为数据库中各基本表建立的索引如下:
创建数据库:
此处没有用代码,而是用SQL server management studio操作完成。数据库右击,选择新建数据库,然后在出来的界面中,写上创建的数据库名称,以及行数据和日志的初始大小,自动增量等内容,点击下方添加,新的数据库就添加完成了。
创建学生表:
create table student(
sno char(10) not null primary key,
sname char(20),
ssex char(2),
sage smallint,
sdept char(20),
scredit smallint
);
创建课程表:
create table course(
cno char(10) unique not null,
cname char(40) not null,
ccredit smallint,
tno char(10),
primary key(cno,tno),
foreign key(tno) references teacher(tno)
)
创建选课成绩表:
create table sc_grade(
sno char(10),
cno char(10),
grade smallint,
credit smallint,
primary key(sno,cno),
foreign key(sno) references student(sno),
foreign key(cno) references course(cno)
);
alter table sc_grade
add constraint c1 check(grade between 0 and 100)
创建教务管理表:
create table jiaowuchu(
jno char(10) not null primary key,
jname char(20)
);
创建教师表:
create table teacher(
tno char(10) not null primary key,
tname char(20),
tdept char(20)
)
创建管理表:
create table manage(
jno char(10) not null,
sno char(10) not null,
primary key(jno,sno),
foreign key(jno) references jiaowuchu(jno),
foreign key(sno) references student(sno)
)
创建选课表:
create table sc(
sno char(10) not null,
cno char(10) unique not null,
tno char(10) not null,
primary key(sno,cno,tno),
foreign key(sno) references student(sno),
foreign key(cno) references course(cno),
foreign key(tno) references teacher(tno)
)
根据学生学号、课程课号等查询成绩信息(单表查询)
根据课程编号查询本课程的最高成绩、平均成绩、最低成绩(多表连接查询)
查询选修了某位老师所教课程的学生的姓名(多表连接查询)
根据学生编号查询该生的所有课程的总成绩和总学分情况(多表连接查询)
按照课程编号分组统计选课人数、最高成绩、最低成绩、平均成绩、及格人数(分组查询)
5.4视图创建代码
用SQLserver management stdio进行创建,没有使用代码
(1)触发器:在成绩表上修改成绩时,自动修改学生的学分。代码如下
(2)约束:有主码非空且唯一的实体性约束,有外码的参照完整性约束,也有用户自定义的完整性,如学生成绩区间为0到100的约束。
首先,我们为教务管理人员,创建登录账号,我们为他们设置了对所有表的增删改查的权限,便于他们对学生,教师,选课等信息的更改和查询。他们具有此系统的最高权限。代码如下:
然后我们为学生创建登录账号,设置学生可以通过自己的账号密码查询自己的相关信息,例如,个人信息,选课信息,成绩等等。代码如下:
接着,我们为老师创建了登录账号,老师可以修改自己所教学生的信息,并且可以查询自己所教学生信息。代码如下:
我们组只设置了这三种用户,教务人员,老师,和学生,权限依次降低,保障了学籍信息的安全性,权限不够的用户,无法查看或修改不在他权限之内的信息。
通过本次的数据库设计作业学籍管理系统,我们小组更好的了解到构建数据库的整体过程;通过分工合作,我们对于不同模块相互之间的依赖关系也有了更深的认识。和以往的数据库实验不同,这次的大作业是学习过的各种知识的综合运用,而且还是对知识的深层应用,对于我们能力的提高具有十分巨大的作用 。
在选择大作业时,考虑对作业的了解程度,以及和我们的相关程度,最后确定学籍管理系统这一选择。
对于这门课程,我们组都展现了极大地兴趣,因为它在我们生活中的应用十分的广泛,而且益处颇多。以前写数据库实验感觉自己掌握了,但如今一上难度,我们就体会到了自己的不足之处。知识间的相互嵌套运用,需要一个大局观才能从开始时的需求分析,到结束,做到心中有数,统筹全局。通过这次作业,我们知道了数据库的概念、数据管理系统的发展、数据库系统的组成、以及为什么使用数据库数据、如何使用数据库技术等关键性问题;了解到了数据库设计的方法和步骤,掌握实体型、属性和联系的概念、实体之间的一对一、一对多和多对多联系等必要知识。从而,我们组才能设计出最终的学籍管理系统的模样。
而在于团队合作的一些收获,我们认为在一个团队中永远要确立一个领导者,进行任务的分发,任务的讨论,以及监督职责,否则任务进行缓慢,毫无效率。团队协作要求分工明确,相互学习,相互合作,才能将团队任务完美进行。团队合作只有默契、凝聚才能够高效完成任务。
在整个大作业的制作过程中,有很多不足与缺点。
在进行问题讨论,以及任务分发时,出现了很多争执,对于一个问题应当如何实现各执一词,这个时候,我们思想不同意,对于我们接下来的个人任务完成,带来了许多的困扰,效率极其低下。幸好我们的小组长,及时拨乱反正,力排众议,最终拍板,让我们继续顺利执行。
在一些工程较大,我们进行分工合作的时候,很多细化的东西在最开始没有标准,导致每个人做的东西不一样,达不到标准,很多的废物前期工程。
在之前的作业中,都是老师给出一定基础,我们进行一些其他的操作,但是当需要自己构建一个数据库,进行每一步的操作时,就会有点不知所措,不知道从那开始。在进行网上查询时,和自己的有些许不同,自己就手足无措,不知如何调整了。这就是对知识的应用能力不强。
在前期准备中,准备不足,开始的时间较晚,匆匆忙忙的开始,所以导致前期分工较为混乱,两个人忙碌,其他人清闲,到作业后期人员工作分布有所调整,情况有所改善。
在此次作业完成中,我们会警醒自己的不足,在以后的学习和作业中有所改善,更加高效的完成自己的作业。我们的路还有很长,我们现在的能力还是很有限的。我们必定会将自己能力,淋漓尽致的贡献在自己的任务中。
详细代码文件可联系博主【大三
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。