数据库课程设计 实习报告 院系:XXXXXXXXXXXXXXX 姓名:XXX 学.DOC

数据库课程设计 实习报告 院系:XXXXXXXXXXXXXXX 姓名:XXX 学.DOC

数据库课程设计 实习报告 院系:XXXXXXXXXXXXXXX 姓名:XXX 学号:XXXXXXXX 二零零七年一月十四日 数据库课程设计 实验目的: 加深对数据库系统、软件工程、程序设计语言的理论知识的理解和应用水平; 在理论和实验教学基础上进一步巩固已学基本理论及应用知识并加以综合提高; 学会将知识应用于实际的方法,提高分析和解决问题的能力,增强动手能力; 为毕业设计和以后工作打下必要基础。 课程设计任务 设计一个订户订阅报刊的应用系统。涉及订单、订户、报刊目录及投递卡信息。 1、系统语义描述如下: 一个订户可订多种报刊;一种报刊可被多个用户订阅;订单只能订阅现有报刊目录内容; 一张投递卡可包含对多个订户的订单的投递信息; 2、系统功能包括: 订户管理:订户增加、修改、删除; 目录管理:目录增加、删除、修改; 订单管理:完成订户订阅数据的管理; 订单查询:按订户查询订单详细情况; 统计查询:按报刊目录统计各类报刊的订阅数量及金额 3、实现内容 创建数据库的结构 创建各基本表的结构 编制系统各功能模块,完成数据的管理(增、删、改)及统计查询。 数据库系统设计 1.设计E-R图 设计相应的关系模型,确定数据库结构 根据基础数据建立名为“报刊”的数据库,并建立三个关系表:订单表CUS_ORDER、用户表CUSTOMER、报刊表NMTABLE,各表结构及数据结构如下: CUS_ORDER表: CUSTOMER表: 报刊表NMTABLE: 3. 数据库范式分析 由于此数据库不存在传递依赖和部分依赖,所以该数据库系统属于第三范式。 4.设计应用系统的系统结构图,确定系统功能: 程序由MFC编写,编译平台为Microsoft Visual Studio .NET 2003。 流程图如下: 5.设计关系的主码约束、外码约束和使用CHECK实现完整性控制: 6. 应用程序编写 (1) 连结数据库 try { HRESULT hr; // 创建Connection对象 hr = m_pConnection.CreateInstance(ADODB.Connection); if( SUCCEEDED( hr ) ) { // 连接数据库 hr = m_pConnection-Open(provider=SQLOLEDB.1;Data Source=;user ID=sa;Password=123456;Initial Catalog=报刊,,,adModeUnknown); //MessageBox(0,_T(连结成功),_T(成功),0); } else { MessageBox( NULL, 创建ADO对象失败, 失败, MB_OK ); return false; } } catch( ... ) { MessageBox( NULL,连接数据库失败,请确定数据库是否启动且账号是否正确!, _T(连接数据库失败), MB_OK); return false; } 程序采用COM接口连结数据库,所以先初始化OLE组件,再创建Connection实例,如果创建成功,就尝试连结,连结时用try catch捕捉数据库连结异常。如果发生异常,就提示用户数据连结出错。 订阅信息统计模块:该模块将显示所有订阅信息,包括每个用户订了哪些报刊,报刊的份数,起至刊号及所订报刊的单价等所有数据信息,如图: 以下给出加载这些信息的函数。 _RecordsetPtr pRecord; try { // 生成Recordset实例 pRecord.CreateInstance(ADODB.Recordset); // 打开记录集,静态光标(静态记录集),乐观锁定方式 // 查询所有语句 sql=select o,,customer.addr,cus_order.orderdate,NMTABLE.title,NMTABLE.price,NMTABLE.period,cus_order.start,cus_order.term,cus_order.qty from customer,cus_order,[NMTABLE] where o=cus_o and NMTABLE.nmno=cus_order.nmno; pRecord-Open(_bstr_t(sql),_variant_t((IDispatch*)theApp.m_pConnection,true),adOpenStatic,adLockOptimistic,a

文档评论(0)

1亿VIP精品文档

相关文档