数据库课程设计报告_第1页
数据库课程设计报告_第2页
数据库课程设计报告_第3页
数据库课程设计报告_第4页
数据库课程设计报告_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数据库课程设计班 级 计算机科学与技术0802 学 号 3080602051 姓 名 指导老师 二零一零年 七 月一、引言1设计目的课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力。提高学生适应实际,实践编程的能力。课程设计的目的:1. 加深对数据库系统、软件工程、程序设计语言的理论知识的理解和应用水平;2. 在理论和实验教学基础上进一步巩固已学基本理论及应用知识并加以综合提高;3. 学会将知识应用于实际的方法,提高分析和解决问题的能力,增强动手能力;4. 为毕业设计和以后工作打下必要基础。2设计要求运用数据库基本理

2、论与应用知识,在微机rdbms(sql server)的环境上建立一个数据库应用系统。要求把现实世界的事物及事物之间的复杂关系抽象为信息世界的实体及实体之间联系的信息模型,再转换为机器世界的数据模型和数据文件,并对数据文件实施检索、更新和控制等操作。 1. 用e-r图设计选定题目的信息模型;2. 设计相应的关系模型,确定数据库结构;3. 分析关系模式各属于第几范式,阐明理由;4. 设计应用系统的系统结构图,确定系统功能;5. 通过设计关系的主码约束、外码约束和使用check实现完整性控制;6. 为参照关系设计插入、删除、修改触发器;7. 实现应用程序设计、编程、优化功能;8. 对系统的各个应用

3、程序进行集成和调试,进一步优化系统功能、改善系统用户界面完成实验内容所指定的各项要求;9. 分析遇到的问题,总结并写出课程设计报告;10. 自我评价3软件定义:windowsxp系统4开发环境:visual studio 2005 c#,sql server 2000二、概要设计1系统功能结构2概念模型设计e-r图三、详细设计1数据库设计关系图表:1商品表create table shangpin(sno char(5) primary key,sname char(20) unique,sleibie char(10), -食物,衣物,生活用品,家用电器等等sxinghao char(8)

4、unique,sdanwei char(2) not null, -件,个等等sprice int);2仓库表create table cangku(cno char(5) primary key,cname char(20);3库存表create table store(sno char(5),cno char(5),num int,primary key(sno,cno),foreign key(sno)references shangpin(sno),foreign key(cno)references cangku(cno)4管理员表create table manager(mno c

5、har(5) primary key,mname char(10) not null,msex char(2) check(msex in(男,女),mage int check(mage=18 and mage=n_um)beginupdate storeset num=num-n_umwhere sno=s_no and cno=c_noendif (exists(select sno from store where sno=s_no and cno=c_no and numn_um)begindelete from cuku where ckno=ck_noend2完整性设计 实体完整

6、性:在商品表中定义商品号sno为主码;在仓库表中定义仓库号cno为主码;在库存表中定义商品号和仓库号(sno,cno)为主码;在管理员表中定义管理员编号mno为主码;在客户表中定义客户编号khno为主码;在入库表中定义入库号rkno为主码;在出库表中定义出库号ckno为主码;在密码表中定义管理员编号mno为主码; 实体完整性检查和违约处理:1.检查主码值是否唯一,如果不唯一则拒绝插入或修改2.检查主码的各个属性是否为空,只要有一个为空就拒绝插入或修改; 参照完整性:在库存表中定义商品号和仓库号为建立在商品表和仓库表上的外码;在入库表中定义商品号为建立在商品表上的外码,仓库号为建立在仓库表上的外

7、码,客户号为建立在客户表上的外码,管理员编号为建立在管理员表上的外码;在出库表中定义商品号为建立在商品表上的外码,仓库号为建立在仓库表上的外码,客户号为建立在客户表上的外码,管理员编号为建立在管理员表上的外码;在密码表中定义管理员编号为建立在管理员表上的外码。 参照完整性的检查和违约处理: 1拒绝执行:不允许该操作执行。该策略一般设置为默认策略; 2. 级联操作:当删除或修改被参照表的一个元组造成了与参照表的不一致,则删除或修改参照表中的所有造成不一致的元组; 3. 设置为空值:当删除或修改被参照表的一个元组时造成了不一致,则将参照表中的所有造成不一致的元组的对应属性设置为空值; 用户自定义完

8、整性:在管理员表中,添加完整性约束条件,年龄在1860之间;性别只能在男女两个选项中取值;姓名不能为空;否则,无法插入;2 主要功能模块设计a登录模块设计:private void button1_click(object sender, eventargs e) try string mycon = data source = pc-200902091503 ;integrated security = sspi; initial catalog = mysql; sqlconnection conn = new sqlconnection(mycon); conn.open(); sqlc

9、ommand cmd = new sqlcommand(); cmd.connection = conn; cmd.commandtext = select mno from passwords where mno= + textbox1.text + and passwords= + textbox2.text + ; cmd.commandtype = commandtype.text; sqldatareader str = cmd.executereader(); if (str.read() this.visible = false; form2 f1 = new form2();

10、f1.owner = this; f1.showdialog(); this.close(); else messagebox.show(用户名和密码错误); catch (exception e1) messagebox.show(数据库连接错误); b主菜单设计:private void button1_click(object sender, eventargs e) this.visible = false; form3 f1 = new form3(); f1.owner = this; f1.showdialog(); this.close(); private void butt

11、on2_click(object sender, eventargs e) this.visible = false; form4 f1 = new form4(); f1.owner = this; f1.showdialog(); this.close(); 此模块设计主要是添加两个连接其他窗口的按钮。以后出现类似模块设计将不再列出有关设计代码。c查询功能主菜单设计e查询信息显示模块设计该模块设计主要是在窗体内添加report viewer控件,并添加相关设计的报表。相关代码不再列出。其他查询信息模块完全相同,不再赘述。f仓库管理菜单设计g商品信息管理菜单设计h添加商品信息模块设计有关代码

12、:private void button1_click(object sender, eventargs e) string snof = textbox1.text; string snamef = textbox2.text; string sleibief = textbox3.text; string sxinhaof = textbox4.text; string sdanweif = textbox5.text; int sprice = convert.toint16(textbox6.text); sqlconnection connection = new sqlconnec

13、tion(data source = pc-200902091503 ;integrated security = sspi; initial catalog = mysql); try connection.open(); sqlcommand command = new sqlcommand(insert into shangpin values ( + snof + , + snamef + , + sleibief + , + sxinhaof + , + sdanweif + , + sprice + ), connection); command.executenonquery()

14、; messagebox.show(添加成功); catch (exception ex) messagebox.show(ex.message); i删除商品信息模块设计有关代码:private void button1_click(object sender, eventargs e) string snof = textbox1.text; sqlconnection connection = new sqlconnection(data source = pc-200902091503 ;integrated security = sspi; initial catalog = mys

15、ql); try connection.open(); sqlcommand command = new sqlcommand(delete from shangpin where sno= + snof + , connection); command.executenonquery(); messagebox.show(请通过查询商品信息判断是否成功删除所需删除记录); catch (exception ex) messagebox.show(ex.message); 其他管理模块与上述商品信息管理模块类似,在此不再赘述。四、调试与运行1登录如果登陆账号与密码无效,将弹出提示窗口2查询正确

16、登录后,依次点击查询,查询商品信息弹出报表窗口,点击返回上级可返回上级成功登陆后出现主菜单查询菜单商品信息报表窗口其他信息查询调试过程类似,不在赘述。3 管理入库调试:成功登陆后,依次点击管理,入库管理,弹出入库信息填写窗口。管理菜单入库信息填写如果填写信息有违反数据库有关约束时,再点击添加后会弹出有关系统处理错误提示。如果添加成功弹出提示通过查询入库信息,可知入库添加成功。入库信息报表通过比较库存信息可知入库记录添加对库存信息修改有效入库前入库后出库调试:成功登陆后,依次点击管理,出库管理,弹出出库信息填写窗口。出库信息填写如果填写信息有违反数据库有关约束时,再点击添加后会弹出有关系统处理错

17、误提示。通过查询出库信息,可知出库添加成功。出库信息报表通过比较库存信息可知出库记录添加对库存信息修改有效出库后库存信息管理员信息管理调试:添加管理员成功登录后,依次点击管理管理员信息管理添加管理员弹出添加管理员窗口填写管理员信息如果填写信息有违反数据库有关约束时,再点击添加后会弹出有关系统处理错误提示。通过比较查询管理员信息,可知添加成功。添加前添加后可调试新管理员登录有效。删除管理员成功登录后,依次点击管理管理员信息管理删除管理员弹出删除管理员窗口删除管理员窗口通过比较删除前后管理员信息报表可知删除成功删除后该模块调试成功。其他模块调试过程与上述模块调试过程类似,在此不在赘述。五、课程设计

18、小结通过本次课程设计,我学习到了很多实用的知识,由于之前对c#知识的不足,在课程设计中遇到很多困难,尤其是在数据库的连接上,最后在老师的帮助下才解决问题,随着一个个问题的解决,我学到了很多知识,熟练了对软件的使用,每做完一个模块时,都有一种成功的喜悦,体会到了学习的快乐,这次设计的软件非常不完善,我将继续努力学习c#.net,将数据库与编程语言结合,争取在接下来的这个暑假能开发出一个完善的系统,掌握更多实用的东西。本次课程设计让我有机会能把之前学的数据库知识系统的串联起来,尤其是对数据库的建立与操作都上了一个台阶,包括怎么建立更简洁,没有冗余而又很完备的数据库系统,怎么对数据库结构模型进行设计,主键外键的定义,更重要的是对前期概念模型,也就是e-r图的规划

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论