目的
①了解使用数据库创建和表的创建.
②了解使用数据的添加和增删改查等SQL语句.
③理解数据库的表之间的关系处理.
④构建良好安全的后台数据管理系统.
二 设备及材料
一台装有SQL Server2012数据库,Eclipse的PC机.
三 数据库设计
3.1系统需求分析阶段
学生信息管理系统是非常通用的管理信息系统,是学校单位实现办公自动化的前提和基础。一个学校要正常运作必定有一个健全的学生管理系统,来管理学生的信息,包括学生学号、姓名、性别、民族及奖惩成绩情况。除此之外,系统还供学生查询个人和公共信息, 管理员对学生信息进行更改或删除,管理学生的变更和管理,大大提高学校内部学生管理的工作效率。
所有的数据库需求分析阶段就是分析用户的需求,而需求分析主要包括数据库的起点,而需求分析的结果需要准确的反应用户的实际需求,数据库的设计不能脱离具体的、实际的需求分析。
应该准确客观的反应出用户的实际需求,需求分析的准确性将直接影响到数据库最终呈现的效果,同时也将影响到后面各个阶段的设计,最终影响设计的结果。最终呈现出来就是一个脱离实际的,不符合用户要求的数据库。
由此可见,系统分析阶段的分析显得尤为重要,只有认真仔细的分析以后才能设计出合理的数据库。下面我们从需求分析阶段的目标、需求分析阶段的任务、数据字典、等多方面作出全面仔细的分析,结合需求分析各阶段、各流程的具体图解作出详细的分析。
1用户注册。实现用户的注册功能。用户可以通过注册页面进行注册,注册信息包括用户账号、密码。
2权限管理。用户分为系统管理员和普通用户两种权限。普通用户只有查询功能。
3系统登陆。实现注册用户登陆,只有登陆用户才能访问系统的其他功能。
- 基础数据录入。管理员通过基础数据录入系统的基础数据,例如学院、专业、班级等。
- 学生信息录入。管理员可以通过数据录入界面实现学生的档案录入。学生档案信息包括姓名、学号、性别、专业、班级、电话、籍贯、照片。
6学生档案查询。可以按学生的学号、姓名、班级查询学生信息,并可以将查询结果以excel的方式导出数据。
7删除和修改。可以通过查找定位到指定学生记录,并可以对该学生档案进行删除和修改。
8普通用户登录后可以查找学生档案。查找支持按学院、专业、学生姓名、学号等查找。
3.1.2需求分析阶段的功能分析
- 管理员可以查询所有员工的信息并可以做添加、修改、删除的操作。
3.1.3需求分析阶段的任务
3.1.3.1处理对象
系统处理对象是学生的信息管理,而本课题的设计主要针对干部信息管理,财务管理、日常事务管理以及文件管理作出全面的分析。
在学生的信息处理中主要涉及几下几个方面的信息:
(1)学生基本信息(Staff):包括编号、姓名、性别、年龄、联系电话、头像、等信息。
(2)班级基本信息(Dpartment):班级编号、班级名称等信息。
3.1.3.2处理功能要求
学生管理系统主要实现对学校的科学化、条理化、信息化、高效化管理。其中包括学生信息、学院,班级,专业等添加功能。而本课题的设计主要针对学生信息管理作出全面的分析,而学生管理、专业管理以及班级管理的设计大同小异,这里不再做详细的分析概述。
具体功能描述如下:
(1)学生信息管理主要完成干部信息的查询与更新,从而实现对学生信息的科学化管理。
3.1.3.3安全性和完整性要求
安全性先通过视图机制,不同的用户只能访问系统授权的视图,这样可提供系统数据一定程度上的安全性,再通过用户授权机制,通过用户登陆来识别用户级别,根据这个级别来分配用户权限,达到数据更高层次的安全保密功能。近而可以满足用户的基本数据安全性要求。
完整性要求用于描述各种信息之间的制约关系,以及关联关系,各个数据项的取值范围以及各个数据项是否可以不取值。根据实际需要,采取一定的手段来满足用户的完整性需求。详细完整性要求见于系统的逻辑设计阶段。
3.2 逻辑结构设计
3.2.1将ER模型转化为关系模型
(1)管理用户表(用户编号+登录账号+密码+权限区别)
PS:权限区别,规定为int类型,1代表普通权限,只有查询数据的权限,2代表管理员权限,可添加编辑删除学生信息.
(2)学院表(编号+学院名称+标识字段)Ps:标识字段, 设置为int类型,存储1代表学院,2代表专业,3代表班级,如此设计,就可以用一张表就装下学院,专业,班级的信息.
(3)学生表(学号+姓名+性别+学院+专业+年龄+班级+电话+籍贯+照片)PS:调动编号为主码,员工编号为外码.
3.3 数据库的物理设计
3.3.1具体表的结构设计
管理用户表
编号 | 字段名称 | 数据结构 | 约束条件 |
1 | 用户编号 | int | Not null primary key |
2 | 登录账号 | varchar(40) | Not null |
3 | 登录密码 | Varchar(400) | null |
4 | 权限区别 | Int | Not null |
学院表
编号 | 字段名称 | 数据结构 | 约束条件 |
1 | 编号 | int | Not null primary key |
2 | 名称 | varchar(40) | Not null |
3 | 标识字段 | Int | Not null |
学生表学号+姓名+性别+学院+专业+年龄+班级+电话+籍贯+照片
编号 | 字段名称 | 数据结构 | 约束条件 |
1 | 学生编号 | int | Not null primary key |
2 | 姓名 | varchar(40) | Not null |
3 | 性别 | varchar(40) | Not null |
4 | 学院 | int | Not null |
5 | 专业 | Int | Not null |
6 | 年龄 | Int | Not null |
7 | 电话 | varchar(40) | Not null |
8 | 头像 | varchar(40) | Not null |
四 成品效果图
4.1 创建数据库
4.2 添加数据
4.3用户登录(使用java web开发)
4.4 登录后来到首页
4.5 管理员信息操作
4.6学院,专业,班级管理
4.7学生管理
4.8添加管理(这里以添加学生为例子,其他模块相同)
点击添加按钮,即可提交学生信息保存到数据库中.
五 结果总结
不同的数据库产品所提供的物理存储环境、存取方法和存储结构有很大的差别,能供设计人员设用的设计变量、参数范围也很不相同。物理设计 阶段的目标是根据 SQL Server2000 具体的功能,设计优化的物理数据库结构,使得在数据库上运行的各种事务响应时间最小,存储空间利用率高,事务吞吐量大。
此次数据库设计仍然有许多不足,还有许多可以改善的地方.
比如说,我在设计学院表时,是如此设计的:
这样设计,让得一张表就能同时装下学院,专业,班级等信息,而这将让用户在操作页面时频繁检索操作同一张表,但考虑到一个学校一般情况下学院班级的数据不会有上万条,甚至不足一千几百条,所有数据量不大,这样设计似乎也可以,但在使用时,还是发现了问题.
如图,在添加数据时,现在数据库中一共有两条学院信息,而当我选择其中的一条信息之后.
而当我选择了信息学院之后,后面的专业栏里还是存在着日语这个专业,而是因为我此刻表中的数据不多,如果数据在多一点的话,所有的专业还是会在这个下拉框中出现,这难免影响到了用户的体验.
出现这样的问题,最主要的原因还是因为这些数据都存在了同一张表中的原因,为了解决这个问题,我们可以在原来的基础上,再加上一个字段.
如此,就可以根据这个字段区分表中数据之间的关系,得以解决上述问题.
而类似的不足还有很多,我们也因此了解到了一些经验,后续将继续努力改善.
源码下载:https://download.csdn.net/download/weixin_42868605/20686727
如果你还需要详细的WORD设计报告以及源码,也可以关注私信我。