数据库课设报告

时间:2024.4.5

南京航空航天大学

数据库课程设计报告

班    级          

学    号         

姓    名            

指导老师      

二零##年 五 月

一、摘要

运用数据库基本理论与应用知识,在微机RDBMS(SQL Server)的环境上建立一个数据库应用系统。要求把现实世界的事物及事物之间的复杂关系抽象为信息世界的实体及实体之间联系的信息模型,再转换为机器世界的数据模型和数据文件,并对数据文件实施检索、更新和控制等操作。

二、关键词:设计目的,设计要求,软件概要

三、正文

1.设计目的

课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力。提高学生适应实际,实践编程的能力。课程设计的目的:

1.  加深对数据库系统、软件工程、程序设计语言的理论知识的理解和应用水平;

2.  在理论和实验教学基础上进一步巩固已学基本理论及应用知识并加以综合提高;

3.  学会将知识应用于实际的方法,提高分析和解决问题的能力,增强动手能力;

4.  为毕业设计和以后工作打下必要基础。

2.设计要求

运用数据库基本理论与应用知识,在微机RDBMS(SQL Server)的环境上建立一个数据库应用系统。要求把现实世界的事物及事物之间的复杂关系抽象为信息世界的实体及实体之间联系的信息模型,再转换为机器世界的数据模型和数据文件,并对数据文件实施检索、更新和控制等操作。

1.  用E-R图设计选定题目的信息模型;

2.  设计相应的关系模型,确定数据库结构;

3.  分析关系模式各属于第几范式,阐明理由;

4.  设计应用系统的系统结构图,确定系统功能;

5.  通过设计关系的主码约束、外码约束和使用CHECK实现完整性控制;

6.  为参照关系设计插入、删除、修改触发器;

7.  实现应用程序设计、编程、优化功能;

8.  对系统的各个应用程序进行集成和调试,进一步优化系统功能、改善系统用户界面完成实验内容所指定的各项要求;

9.  分析遇到的问题,总结并写出课程设计报告;

10. 自我评价

3.软件定义:windowsXP系统

4.开发环境:Visual studio 20## C#,SQL Server 2005

四、概要设计

1.系统功能结构

数据库课设报告

五、详细设计

1.数据库设计

关系图

表:

1.课程表

CREATE TABLE `classes` (

  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '键主',

  `classname` char(255) NOT NULL COMMENT '课程名称',

  `description` char(255) NOT NULL COMMENT '程描述课',

  `id_teacher` bigint(20) DEFAULT NULL COMMENT '课授教师',

  PRIMARY KEY (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=39 DEFAULT CHARSET=utf8;

-- ----------------------------

-- Table structure for `student_class`

-- ----------------------------

DROP TABLE IF EXISTS `student_class`;

2.用户表

CREATE TABLE `users` (

  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '键主',

  `username` char(50) NOT NULL COMMENT '用户名',

  `password` char(50) NOT NULL COMMENT '密码',

  `type` smallint(5) NOT NULL COMMENT '类型 0管理员 1老师 2学生',

  PRIMARY KEY (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;

3.选课表

CREATE TABLE `student_class` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `id_student` bigint(20) NOT NULL,
  `id_class` bigint(20) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=41 DEFAULT CHARSET=utf8;

1.主要功能模块设计

A登录模块设计:

public static User CheckLogin(string username, string password)
{
OdbcConnection connection = OpenDatabase();
User user = null;
string sql = "SELECT * FROM users WHERE username = '" + username + "' AND password = '" + password + "'";
OdbcCommand cmd = new OdbcCommand(sql, connection);
OdbcDataReader reader = cmd.ExecuteReader();
if (reader.HasRows)
{
user = new User();
user.UserId = reader.GetInt32(0);
user.Username = reader.GetString(1);
user.Type = (UserType)reader.GetInt32(3);
}
CloseDatabase(connection);
return user;
}

B开课信息模块

public static List GetTeacherClasses(User user)
{
OdbcConnection connection = OpenDatabase();
List classes = null;
string sql = string.Format("SELECT * FROM classes WHERE id_teacher = '{0}'", user.UserId);
OdbcCommand cmd = new OdbcCommand(sql, connection);
OdbcDataReader reader = cmd.ExecuteReader();
if (reader.HasRows)
{
classes = new List();
while (reader.Read())
{
Class tmp = new Class();
tmp.ClassId = reader.GetInt32(0);
tmp.ClassName = reader.GetString(1);
tmp.Description = reader.GetString(2);
classes.Add(tmp);
}
}
CloseDatabase(connection);
return classes;
}

C选课模块

public static void GetSelectClasses(User user, List classes)

              {

                  OdbcConnection connection = OpenDatabase();

                  foreach (Class c in classes)

                  {

                     string sql = string.Format("SELECT * FROM student_class WHERE id_student = '{0}' AND id_class = '{1}'", user.UserId, c.ClassId);

                     OdbcCommand cmd = new OdbcCommand(sql, connection);

                     OdbcDataReader reader = cmd.ExecuteReader();

                     if (reader.HasRows) c.Select = true;

                     reader.Close();

                     cmd.CommandText = string.Format("SELECT * FROM users WHERE id = '{0}'", c.TeacherId);

                     reader = cmd.ExecuteReader();

                     if (reader.HasRows) c.TeacherName = reader.GetString(1);

                  }

                  CloseDatabase(connection);

              }

D,选好后的选课模块

public static void UpdateSelectClasses(User user, List classes)

              {

                  OdbcConnection connection = OpenDatabase();

                  foreach (Class c in classes)

                  {

                     if (c.Select == false)

                     {

                         string sql = string.Format("DELETE FROM student_class WHERE id_student = '{0}' AND id_class = '{1}'", user.UserId, c.ClassId);

                         OdbcCommand cmd = new OdbcCommand(sql, connection);

                         cmd.ExecuteNonQuery();

                     }

                     else

                     {

                         string sql = string.Format("SELECT * FROM student_class WHERE id_student = '{0}' AND id_class = '{1}'", user.UserId, c.ClassId);

                         OdbcCommand cmd = new OdbcCommand(sql, connection);

                         object o = cmd.ExecuteScalar();

                         if (o != null) continue;

                         cmd.CommandText = string.Format("INSERT INTO student_class (id_student, id_class) VALUES ('{0}', '{1}')", user.UserId, c.ClassId);

                         cmd.ExecuteNonQuery();

                     }

                  }

                  CloseDatabase(connection);

              }

六、课程设计小结

通过本次课程设计,我学习到了很多实用的知识,由于之前对C#知识的不足,在课程设计中遇到很多困难,尤其是在数据库的连接上,最后在老师的帮助下才解决问题,随着一个个问题的解决,我学到了很多知识,熟练了对软件的使用,每做完一个模块时,都有一种成功的喜悦,体会到了学习的快乐,这次设计的软件非常不完善,我将继续努力学习C#.NET,将数据库与编程语言结合,争取在接下来的这个暑假能开发出一个完善的系统,掌握更多实用的东西。

本次课程设计让我有机会能把之前学的数据库知识系统的串联起来,尤其是对数据库的建立与操作都上了一个台阶,包括怎么建立更简洁,没有冗余而又很完备的数据库系统,怎么对数据库结构模型进行设计,主键外键的定义,更重要的是对前期概念模型,也就是E-R图的规划,深刻的体会到前期工作的重要性。只有正确详尽的对系统进行分析,才能更高效的完成系统的开发。

七、致谢

感谢老师和研究生在机房的指导,感谢韩羽佳,卜淼两位同学的帮忙,感谢国家,感谢党,感谢神!

八、参考文献

1.康莉 著《新手学Visual C# 20## 程序设计》电子工业出版社;

2.王珊 萨师煊 著《数据库系统概论》 高等教育出版社;

3.周峰 著《SQL Sever2005 中文版关系数据库基础与实践教程》;

4..徐国智 汪孝宣 著《SQL Sever数据库开发实例精粹》电子工业出版社;

5.周峰 李德路 王征 著《Visual C#.NET 2005中文版基础与实践教程》电子工业出版社;

6.王华杰 黄山 著《精通C#数据库编程》 科学出版社;

注:

1 公式要求:正文中可以用字母表示的符号请尽量不要用公式表示,公式大小为原大小的75%。如:

2 图表要求:通常图标题名称在下,表标题名称在上,文字大小比正文文字小一号,为六号字体,其中,图形为Word自带绘图工具绘制或者采用其它绘图工具(Visio,Matlab,SmartDraw等)绘制但另存为.emf,.wmf等矢量格式后插入;表格采用“三线表”的形式。如:

arc22

图1 支持持久性语言的虚拟表接口

表1 不同噪声事务到达概率下事务提交和中断的概率

3 页眉:奇数页页眉为“南京航空航天大学”,偶数页页眉为“现代数据库技术”,页脚统一为页码号。

更多相关推荐:
数据库课程设计报告范例

数据库课程设计报告课题名称:图书管理统专业:信息与计算科学班级:信计071班小组人员:***一.背景资料在高校中,学生的数量较多,图书的数量也比较多,每天图书的借阅量比较大,采用手工的处理方式已经不能满足这种需…

数据库课程设计报告

20xx级数据库课程设计任务书设计目的数据库课程设计是在学生系统地学习了数据库系统原理课程后按照关系型数据库的基本远离综合运用所学的知识设计开发一个小型的数据库管理信息系统通过对一个实际问题的分析设计与实现将原...

数据库课程设计报告

南京理工大学泰州科技学院计算机科学与技术系信管专业10信管2班级大型数据库课程设计报告书姓名赵敏学号指导老师职称讲师设计地点起讫时间完成报告书时间20xx年12月5日第1页课程设计要求各专业学生应根据课程任教老...

数据库课程设计报告

数据库课程设计设计题目数据库创建和修改表专业物联网工程班级20xx级设计人林升学号20xx01052143山东科技大学20xx年7月3日课程设计任务书一课程设计题目创建和修改表的定义二课程设计主要参考资料1数据...

SQLServer数据库课程设计报告

武汉工业学院数据库系统课程设计说明书设计题目选课管理系统姓名学院专业学号指导教师20xx年6月8日一读书笔记1SQL数据库的实际应用SQL包括了所有对数据库的操作主要是由4个部分组成1数据定义这一部分又称为SQ...

数据库课程设计报告

计算机与控制工程学院数据库原理及应用课程设计报告题目名称选课系统专业计科班级计1211学号20xx58501149姓名李利娟指导教师毕远伟20xx年01月11日1课程设计评语班级计1211学号20xx58501...

分布式数据库课程设计报告

分布式数据库在学生信息管理系统中的应用班级姓名设计时间指导教师评语评阅成绩目录摘要31第一章绪论411课题研究的意义412分布式数据库技术国外发展现状413分布式数据库技术国内发展现状514分布式数据库技术发展...

学生成绩管理系统 数据库课程设计报告

目录1开发背景22系统描述23数据分析331数据流图332数据字典34概念模型设计841ER图85逻辑模型设计及优化851数据库表86应用程序设计107课程设计心得体会121开发背景90年代中期由于Intern...

数据库课程设计报告090247

北京广播电视大学数据库应用课程设计报告书题目出版社图书管理系统姓名杨春振学号20xx7110090247班级09春计算机分校通州电大指导教师姚行洲设计日期20xx年7月北京广播电视大学课程设计任务书题目出版社图...

数据库课程设计报告

徐州工程学院信电学院计算机网络专业数据库课程设计教学管理系统的设计1概述11设计目的用户请求经应用程序的转化化为对数据库中的相应的表或视图的操作数据库再把处理的结果或都是错误信息返回结应用程序应用程序把结果返回...

数据库课程设计报告

数据库课程设计报告学号20xx1004357姓名李世荣班级19xx23指导老师胡霍真邮件管理系统摘要21世纪是网络飞速发展的时代电子邮件已经成为热门话题随着网络技术的不断发展网络应用已经渗透到人类社会的各个角落...

数据库课程设计-报告

数据库课程设计设计报告起止日期20xx年10月26日至20xx年11月5日目录一背景1二系统分析11需求分析12开发及运行环境1三数据库设计11功能模块设计增加三行说明效果如图1所示12数据库设计23主要模块功...

数据库课程设计报告(17篇)