科技学院
课程设计报告
(2012--20__年度第2学期)
名称:数据库原理课程设计院系:班级:软件10k2学号:学生姓名:指导教师:郭设计周数:1
日期:20__年6月5
《数据库原理》课程设计
一、目的与要求
1.这门课是为计算机科学与技术专业的学生在学习数据库原理后,为培养更好的解决问题和实际动手能力而设置的实践环节。通过这个环节,使学生拥有能够应用数据库原理对数据库系统进行设计的能力。为后继课程和毕业设计打下良好基础。
2.通过该实验,培养学生在建立数据库系统过程中使用关系数据理论的能力。
3.通过一个学生并不陌生的完整系统的设计,可以培养学生对需求分析、方案设计、系统编码、界面设计和软件调试等各方面的能力。是一门综合考查学生数据库原理、面向对象设计方法、软件工程和信息系统分析与设计等涉及多课程的综合实验。
二、主要内容
信息管理系统的设计与实现是针对一个实际中小型系统(见题目附录)进行的数据库设计,它需要管理的内容有实体以及实体之间的联系。
1.首先要求完成需求的理解和实体的设计:
b)设计实体的属性和码,以及该实体的实体完整性、用户自定义的完整性。设计实体的之间的联系,包括联系的类型和联系的属性,即设计实体参照完
整性。最后画出完整的E-R图。
2.根据设计好的E-R图及关系数据库理论知识设计数据库模式:
2.1将E-R图转换为关系模式。
2.2设计关系模式间的参照完整性。
2.3用SQL语言实现数据库模式的设计。
3.实现信息管理系统所需的各种操作:
3.1用SQL语言实现信息的录入、删除和修改。
3.2以视图的形式完成各类查询,包括单表、多表、单条件、多条件等。
4.权限的设计:
4.1授权操作;
4.2收回权限的操作。
5.界面的设计、加密的设计。
三、进度计划
四、设计(实验)成果要求
1.在DBMS(SQLServer)上完成完整的数据库的设计;2.使用可视化开发平台完成该系统,并要可以求正确的运行;3.完成实验报告。
五、考核方式
1.在微机上检查数据库设计的模式的设计、完整性的设计等;2.在微机上检查系统的运行结果,并请学生解释所使用的技术;3.实验报告的检查。
六、题目附录
1.学生信息管理信息系统2.学生成绩管理信息系统3.图书管理信息系统4.物资管理信息系统5.汽车销售管理信息系统6.超市管理信息系统7.通讯录管理信息系统8.工资管理信息系统9.酒店管理信息系统10.小区物业管理信息系统
学生姓名:指导教师:
20__年6月1日
一、课程设计(综合实验)的目的与要求
1、本系统主要完成对学生信息的管理,包括添加、修改、删除,查询用户管理等五个方面。系统可以完成对各类信息的浏览、查询、添加、删除、修改等功能。
2、本课程设计的目的是通过实践使学生经历一个数据库系统开发的全过程并受到一次综合的训练,以便能较全面地理解、掌握和综合运用所学的知识去分析、解决实际问题。
二、设计(实验)正文
1、E-R图:
2、数据库关系模式设计:
1、用户登陆
学生信息管理网站采用用户名及密码验证方式,进入学生信息管理网站前,用户必须在登录页面输入用户名及密码,只有验证通过的用户方可进入学生信息管理网站操作主页面
2、课程信息管理
学生选修的课程表:属性包括课程号、课程名以及每门课相应的学分
3、学生信息管理
学生信息表:属性包括学号、姓名、性别、年龄、专业以及所在系
4、学生选修课程的情况(SC表)
选修课程情况:属性包括学生的学号、选修的课程号以及对应的成绩
对表的增删改查:插入数据:insertinto<表名>[(属性列)]values(常量)
删除数据:deletefrom<表名>[where<条件表达式>]
修改数据:update<表名>set<列名>=<表达式>[where<条件表达式>]查询数据:selectfrom<表名>[where<条件表达式>]
分析关系模式:(1)stu表:
主码:学号
学号—>姓名,学号—>性别,学号—>年龄,学号—>所在系均为完全函数依赖,且不存在传递函数依赖,属于第三范式。
(2)course表:
主码:课程号
课程号—>课程名,课程号—>学分
均为完全函数依赖,且不存在传递函数依赖,属于第三范式。
(3)sc表:
主码:学号、课程号
(学号,课程号)—>成绩属于第三范式。
3.写出实现各个数据库操作的sql语言。
建立一个数据库:
createdatabaseguhong
建立学生表(stu):
createtablestu
snointprimarykey,
snamechar(20),
sse_char(2),
sagechar(4),
sdeptchar(5)
建立课程表(course):
createtablecourse
cnochar(4)primarykey,
cnamechar(20),
ccreditchar(4)
建立选修信息表(SC):
createtablesc
snoint,
cnochar(4),
gradeint,
primarykey(sno,cno)
查询每个学生的学号及其平均成绩:
XXX,avg(grade)AVGGRADEfromsc,XXX.snoandsdept=’IS’XXX
查询结果截图:
4.可视化界面的功能介绍
包含4个功能模块:学生个人信息的添加、学生信息的查询以及学生信息的修改与删除。
三、课程设计(综合实验)总结或结论
通过对数据库与JAVA语言的连接,实现了数据库在JAVA程序中的对学生信息的增、删、改、查等操作。
结论与心得:1.在开发一个系统时,前期的分析准备工作非常的重要。对于系统的需求要明确,这样才能做到有的放矢。特别是对于系统中数据的存储和重要算法的设计,设计的不好会出现大量的冗余,不仅浪费存储空间,还影响查询效率。
2.在设计的初期,对一个功能模块的设计,要想出两种或两种以上方案,这样可以进行比较,从而获得更佳的设计方案,设计开发过程中一定要吸取经验教训,避免返工。尤其是一些重要算法或功能。在对具体实现功能模块进行编程时,要养成良好的加注释的习惯,这样的话不仅能理清思路,而且可以为以后的调试带来很大的方便。
3.懂得充分利用网络资源,因为实地调研的时间是非常有限的。
四、参考文献
数据库系统概论第四版
附录(设计流程图、程序、表格、数据等)
设计流程图:
程序:例如学生信息
publicvoidactionPerformed(ActionEvente)
if(XXX()==btn)/学生信息
XXX("XXXXXX.SQLServerDriver").newInstance();/加载了一个驱动
catch(E_ceptione_)/异常处理
Stringurl="jdbc:microsoftsqlserver:/127.0.0.1:1433;DatabaseName=guhong";
Stringuser="";
Stringpassword="";
Statementstmt=null;
Connectionconn=null;
ResultSetrs=null;/初始化
conn=XXX("jdbc:odbc:guhong");/链接
Stringstr=XXX();
stmt=XXX();/创建一个Statement对象来将SQL语句发送到数据库。
Stringsql="selectfromstuwheresno=";
sql+=str+";";/取我文本框里的学号构成完整的sql送给数据库后查询完之后再送回java
rs=XXX(sql);/运行结果
while(XXX())
for(inti=1;i<=XXX().getColumnCount();i++)
XXX(XXX()+XXX(i)+"");
XXX(XXX()+"
");
}/i从1到rs的行数循环,把每一行的rs得到的值放在ta中
XXX();
XXX();
XXX();}
catch(E_ceptione_){
JAVA实现: