logo资料库

学生信息管理系统实验报告,数据库课程设计报告.doc

第1页 / 共13页
第2页 / 共13页
第3页 / 共13页
第4页 / 共13页
第5页 / 共13页
第6页 / 共13页
第7页 / 共13页
第8页 / 共13页
资料共13页,剩余部分请下载后查看
计算机科学与技术学院 2008-2009 学年第 2 学期 《 数据库原理(Ⅲ)》课程设计 题目: 学生管理系统 班级: 学号: 姓名: 教师: 成绩: 一、需求分析 随着社会的进步,各种信息量也逐渐增加,包括在学校内,对学生的信息管理就是一个 很重要的环节。对于新录入的学员要及时增添其相关信息到学校数据库,而对于已经毕业的
数据库课程设计 学员也要及时删除。同时,在校学生的信息还可以随时进行更新编辑,以便保证数据的完整 性和正确性。 此学生信息管理信息系统是面向大学的管理系统,其目的是对学校内的学生,班级,系 和学会进行统一有序的管理。 1)系统涉及到的各实体以及实体之间的关系如下: 学生——学号, 姓名,性别,宿舍区, 班号,系号, 学会名 班级——班号,人数,入校年份,系号 系 ——系号,系名 ,系办公室号 ,人数 学会——学会名,人数,成立年份,地点 经过分析,有两个问题:①学会和学生之间是多对多的关系 ②学生,班级和系形成了循环 的主外键的关系,这对于级联删除和级联插入时会出现问题。所以,最终将各个实体表整合 如下: 学生——学号, 姓名,性别,宿舍区, 班号 班级——班号,人数,入校年份,系号 系 ——系号,系名 ,系办公室号 ,人数 学会——学会名,人数,成立年份,地点 学会成员——学号,学会名 2)面向的对象有后台管理员和前台注册的用户,他们的权限也不相同,权限范围如下: ①管理员权限: 注册成为管理员后,可以对系,班级,学生,学会以及学会成员分别进行添加,删除,查询 和修改,只要符合条件和逻辑便可以将数据写进数据库中,并保证数据没有冗余。同时可以 对自己的密码进行修改。 ②普通用户权限: 注册成为普通用户后,可以对每个学生的综合信息进行查询,但不能进行添加,删除以及修 改操作。进行查询显示的信息使用的是视图,是将学生,班级,系,学会成员四张表进行连 接生成的。同时,用户同样可以对自己的密码进行修改。 3)存储过程的应用: 在普通用户进行信息查询的时候使用了存储过程,用于显示所有学生的相关信息,是基于视 图操作的。 4)触发器: 触发器应用在普通用户注册上,当用户注册的用户名为“管理员”或者是“admin”时,自 动在用户名前加上“user_”以便产生歧义。 其组织结构图如下: - 1 -
数据库课程设计 相关数据流图如下 (1)管理员活动流图: (2)普通用户数据流图: - 2 -
数据库课程设计 数据字典: (1) 数据结构:学生 含义说明:定义了一个学生的信息结构: 组成:学号, 姓名,性别, 出生年月,宿舍区, 班号,系号,学会名 数据项:学号 含义说明:唯一标识一个学生 类型:整型 长度:4 (2) 数据流:管理员对所有信息进行管理以及普通用户对信息进行查询 说明:表示每一位登录者的操作 (3) 处理过程: 各项操作 (4) 定义一个视图,用于显示普通用户查询的学生信息 (5) 定义一个存储过程,用于对视图中的学生信息进行查询 (6) 定义一个触发器,用于对普通用户注册的限制,有些用户名不能注册 二、结构设计 1.概念结构设计 根据需求,得到的 E-R 图如下: - 3 -
数据库课程设计 2.逻辑结构设计: 根据以上 E-R 图可得一下关系模型: 学生(学号, 姓名,性别,宿舍区, 班号,系号, 学会名) 班级(班号,人数,入校年份,系号) 系 (系号,系名 ,系办公室号 ,人数) 学会(学会名,人数,成立年份,地点) 属于(学号,班号) 拥有(班号,系号) 加入(学号,学会名) 经过化简合并后得到最后的关系模型: 学生(学号, 姓名,性别,宿舍区, 班号) 班级(班号,人数,入校年份,系号) 系 (系号,系名 ,系办公室号 ,人数) 学会(学会名,人数,成立年份,地点) 学会成员(学号,学会名) 根据以上关系,建立各表如下: 学生: 班级: - 4 -
数据库课程设计 系: 学会: 学会成员: 管理员,用户登录信息: 关系图如下: 三、程序代码: - 5 -
数据库课程设计 1. 数据库操作代码如下: 1)连接数据库: public class DataCon { public DataCon() { // TODO: 在此处添加构造函数逻辑 } public SqlConnection getCon() { string sqlCon = "server=localhost;uid=sa;pwd=sa;database=sql"; SqlConnection myCon = new SqlConnection(sqlCon); return myCon; } } 2)与数据库进行数据交换: public class DataOperate { private SqlCommand sqlcom; public DataOperate() { //声明一个SqlCommand对象 // TODO: 在此处添加构造函数逻辑 } #region DataCon dataCon = new DataCon(); public bool DataCom(string sql) { //绑定控件 SqlConnection sqlconn = dataCon.getCon(); sqlconn.Open(); SqlCommand sqlcomm = new SqlCommand(sql, sqlconn); try { sqlcomm.ExecuteNonQuery(); return true; } catch { return false; } finally { sqlconn.Close(); } } - 6 -
数据库课程设计 #endregion #region DataCon dataCon1 = new DataCon(); public bool gvBind(GridView gv,string sql,string tab) { //绑定GridView控件 SqlConnection sqlconn=dataCon1.getCon(); sqlconn.Open(); SqlDataAdapter sqldataadapter=new SqlDataAdapter(sql,sqlconn); DataSet mydataset=new DataSet(); sqldataadapter.Fill(mydataset,tab); gv.DataSource=mydataset; try { gv.DataBind(); return true; } catch { return false; } finally { sqlconn.Close(); } } #endregion #region DataCon dataCon2 = new DataCon(); public bool dataBind(DataList dl, string sql) //绑定DataList控件 { SqlConnection sqlconn = dataCon2.getCon(); sqlconn.Open(); SqlDataAdapter myadapter = new SqlDataAdapter(sql, sqlconn); DataSet mydataset = new DataSet(); myadapter.Fill(mydataset); dl.DataSource = mydataset; try { dl.DataBind(); return true; } catch { return false; - 7 -
分享到:
收藏