报刊订阅系统课程设计.docx
- 文档编号:6004584
- 上传时间:2023-01-02
- 格式:DOCX
- 页数:36
- 大小:613.21KB
报刊订阅系统课程设计.docx
《报刊订阅系统课程设计.docx》由会员分享,可在线阅读,更多相关《报刊订阅系统课程设计.docx(36页珍藏版)》请在冰豆网上搜索。
报刊订阅系统课程设计
计算机学院
数据库课程设计报告
题目报刊订阅管理系统
专业班级
学号
姓名\
合作者
指导教师\
(2007年6月)
目录
1.开发环境和相关技术介绍7
1.1开发环境7
1.2相关技术介绍7
2.需求分析7
2.1系统需求和功能7
2.2数据字典8
2.2.1数据结构8
2.2.2数据项8
2.2.3数据流8
2.3数据流图9
2.4安全性要求10
2.5一致性要求11
2.6完整性要求11
3.概念结构设计11
3.1设计方法和步骤11
3.2概念结构E-R图11
4.逻辑结构设计12
4.1关系模式设计与优化12
4.1.1关系模式设计12
4.1.2优化分析12
4.2具体RDBMS数据模型转换12
4.3系统结构图13
4.4系统完整性设计13
5.数据库物理设计13
5.1索引的选择建立13
5.2数据存放位置14
5.3确定系统配置14
5.4模块设计14
5.4.1登陆模块14
5.4.2管理功能模块14
5.4.3查询功能模块14
5.4.4报表导出模块15
6.数据库实施15
6.1数据库创建15
6.1.1各数据表说明15
6.1.2数据库创建15
6.2数据库备份和恢复方案16
6.2.1应用辅助工具进行备份和恢复16
6.2.2分离数据库法16
6.3用户界面设计和应用程序编码16
6.3.1用户界面设计16
6.3.2类文件功能描述17
6.3.3主要代码分析18
7.系统测试方案和测试报告23
7.1测试方案23
7.2测试过程23
7.2.1登陆测试23
7.2.2目录管理功能测试24
7.2.3订户管理功能测试26
7.2.4订单管理功能测试27
7.2.5统计查询测试29
8.安装和使用说明30
8.1安装说明30
8.1.1安装Java运行环境JRE30
8.1.2安装MicrosoftSQLServer2000JDBC驱动程序30
8.1.3升级MicrosoftSQLServer2000数据库管理系统30
8.1.4附加数据库30
8.1.5可能出现情况31
9.完成情况和总结31
9.1完成情况31
9.2总结31
1.开发环境和相关技术介绍
1.1开发环境
系统结构:
C/S结构
数据库系统:
MicrosoftSQLServer2000sp3
宿主语言:
JAVA
数据库连接方式:
JDBC连接方式
开发工具:
Eclipse3.2
1.2相关技术介绍
MicrosoftSQLServer2000数据库管理系统是微软公司研制开发的关系型数据库管理系统。
该系统支持并扩展了SQL语言标准,可以运用标准SQL语句对数据进行操作,也可以使用功能强大的GUI工具进行灵活的数据管理。
同时,系统还提供功能完善的API,可以在应用程序中调用这些API来实现与数据库系统的连接以及相关数据的操作。
sp3是该系统的一个版本号,只有sp3以上的SQL2000系统才能够支持纯JDBC连接方式。
Eclipse:
功能强大的应用程序开发工具,主要支持基于Java语言的各种开发项目。
灵活的Plun-in功能,可以根据具体需要安装各种插件。
JDBC连接方式:
Java与数据库系统的一种连接方式,Java程序使用JDBCAPI与数据库进行通信,并用它操作数据库中的数据。
JDBCAPI使Java程序与具体数据库系统独立开来,保证了Java程序高度的可移植性。
2.需求分析
2.1系统需求和功能
设计一个报刊订阅应用系统,使系统满足以下功能和需求:
1)
a一个订户可订多种报刊;一种报刊可被多个用户订阅;订单只能订阅现有报刊目录内容;
b投递时,必须根据订单的情况进行投递,不得超出订单的订阅品种、数量;
2)、系统功能包括:
a订户管理:
订户添加、修改、删除;
b 目录管理:
目录添加、修改、删除;
c订单管理:
完成订户订阅数据的管理(包括添加、修改、删除);
d 订单查询:
按订户或者订单号查询订单详细情况;
e统计查询:
按报刊目录统计各类报刊的订阅数量及金额;
f表单生成:
根据统计查询结果导出统计信息到文件(.xls)
2.2数据字典
2.2.1数据结构
管理员用户=管理员帐户+管理员密码
订户=订户编号+订户名+联系电话+联系地址
目录=目录编号+目录名+单价+批注信息
订单=订单号+订户编号+下订日期
订单细节=订单号+目录编号+订阅数量+订阅期数+单价+总价
(注:
为保证订单确定后价格不随目录单价变动,订单细节中应该有独立的单价来记录下订时目录的单价)
2.2.2数据项
表2.1数据项表
编号
标识符
类型
长度
所属表名
同义名
1
UName
Varchar
20
Login
管理员帐户
2
UPassword
Varchar
20
Login
管理员密码
3
Cid
Varchar
10
Customer,Order
订户编号
4
Cname
Varchar
20
Customer
订户名
5
Phone
Varchar
15
Customer
联系电话
6
Address
Varchar
50
Customer
联系地址
7
Did
Varchar
10
Diretory,OrderDetail
目录编号
8
Dname
Varchar
20
Diretory
目录名
9
UnitPrice
Float
8
Diretory
OrderDetail
目录单价,
下订时目录单价
10
Ifo
Varchar
50
Diretory
批注信息
11
Ono
Varchar
10
Order,OrderDetail
订单编号
12
Odate
Datetime
8
Order
下订日期
13
Quantity,
Int
4
OrderDetail
订阅数量
14
QiShu,
Int
4
OrderDetail
订阅期数
15
Total
Float
8
OrderDetail
订单项总价
2.2.3数据流
表2.2数据流表
编号
名称
来源
去向
组成
1
身份信息
系统管理员
应用系统
管理员帐户+密码
2
授权信息
应用系统
系统管理员
3
错误身份信息
应用系统
系统管理员
4
查询请求
系统管理员
应用系统
待查询对象识别符(如Cid,Ono)
5
查询结果
应用系统
系统管理员
被查询对象具体信息
6
管理请求
系统管理员
应用系统
识别符(Cid,Ono等)+管理类型
7
管理结果信息
应用系统
系统管理员
被管理对象处理结果
8
非法请求
应用系统
系统管理员
非法请求提示信息
2.3数据流图
图2.1报刊订阅系统顶层图
图2.2系统0层图
图2.3加工2细化图
图2.4加工3细化图
2.4安全性要求
访问数据库时需要输入登陆帐号和密码。
在数据库内设有管理员表,登陆系统时会要求输入管理员帐号和密码。
登陆模块根据输入帐号和密码查管理员表,查到匹配记录则允许其登陆系统。
管理员帐号和密码可以在系统中添加和修改。
2.5一致性要求
在管理系统相关的表之间,有较强的关联性。
为了实现一致性的需求,各个表之间均建立起了相应的一致性约束。
2.6完整性要求
根据报刊订阅管理系统的要求,为保持数据的完整性,采用了数据库的事务机制,防止出现操作故障引起的数据不一致。
3概念结构设计
3.1设计方法和步骤
采用自底而上的设计方法。
先自顶向下地进行需求分析,对报刊订阅管理系统的需求进行逐步细化;然后再自底而上地设计概念结构,最终将各个局部应用的概念结构集合成为全局概念结构。
3.2概念结构E-R图
通过对局部应用的选择,逐一设计出分E-R图,并对各个分E-R图进行合并,生成初步E-R图,消除不必要的系统冗余,可以得出以下报刊订阅管理系统E-R图。
图3.1报刊订阅管理系统E-R图
4.逻辑结构设计
4.1关系模式设计与优化
4.1.1关系模式设计
根据概念结构的设计,可以将系统E-R图转换为以下关系模式:
Customer(Cid,Cname,Phone,Address)
Diretory(Did,Dname,UnitPrice,Ifo)
Order(Ono,Cid,Odate)Foreignkey:
Cid
OrderDetail(Ono,Did,Quantity,QiShu,UnitPrice,Total)
Foreignkey:
Ono,Did
Login(UName,UPassword)
4.1.2优化分析
对上面关系模式进行分析可知:
表Customer、Diretory、Order、Login都属于BCNF范式,在数据操作性能和存储空间的利用率上都比较高。
OrderDetail虽然属于第二范式:
(Ono,Did)Quantity,
(Ono,Did)QiShu,
(Ono,Did)UnitPrice,
(Quantity,QiShu,UnitPrice)Total,
(Ono,Did)Total.
但是,将Total作为一个属性独立出来有利于统计和查询,减少反复运算操作,这种空间上的牺牲是比较有价值的。
4.2具体RDBMS数据模型转换
由于MicrosoftSQLServer2000系统支持上述数据模型,所以不用进行特定的转换。
4.3系统结构图
图4.1系统结构图
4.4系统完整性设计
Customer(Cid,Cname,Phone,Address)
其中:
Cid为主码,Address约束为非空
Diretory(Did,Dname,UnitPrice,Ifo)
其中:
Did为主码,UnitPrice约束为非空
Order(Ono,Cid,Odate)
其中:
Ono为主码,Cid为外码(参照对象为Customer(Cid))
OrderDetail(Ono,Did,Quantity,QiShu,UnitPrice,Total)
其中:
(Ono,Did)为主码,Ono和Did分别为外码(参照分别为:
Order(Ono)和Diretory(Did)).
Quantity,QiShu,UnitPrice分别约束为非空
Login(UName,UPassword)
其中(UName,UPassword)为主码。
5.数据库物理设计
5.1索引的选择建立
由于系统可能要涉及大量数据的操作,所以索引的建立就成为一种必需。
本系统采用B+树索引方法,分别在各Customer,Diretory,Order和OrderDetail各个表的主键上建立索引。
5.2数据存放位置
本系统数据和索引存放在磁盘中。
5.3确定系统配置
根据具体需要配置。
5.4模块设计
5.4.1登陆模块
图5.1登陆模块IPO图
5.4.2管理功能模块
图5.2管理功能模块IPO图
5.4.3查询功能模块
图5.3查询功能模块IPO图
5.4.4报表导出模块
图5.4报表导出模块IPO图
6.数据库实施
6.1数据库创建
6.1.1各数据表说明
表6.1数据表描述表
编号
数据表名称
类型
内容
01
Login
辅助表
记录管理员帐号,密码
02
Customer
主表
记录订户信息
03
Diretory
主表
记录目录信息
04
Order
主表
记录订单基本信息
05
OrderDetail
主表
记录详细订单项信息
6.1.2数据库创建
在MicrosoftSQLServer2000的企业管理器中完成数据库和数据表的创建,具体SQL脚本请参见附录Newspaper_booking_system.sql
CREATETABLE[dbo].[Customer](
[Cid][varchar](10)COLLATEChinese_PRC_CI_ASNOTNULL,
[Cname][varchar](20)COLLATEChinese_PRC_CI_ASNULL,
[Phone][varchar](15)COLLATEChinese_PRC_CI_ASNULL,
[Address][varchar](50)COLLATEChinese_PRC_CI_ASNOTNULL
)ON[PRIMARY]
GO
CREATETABLE[dbo].[Login](
[UName][varchar](20)COLLATEChinese_PRC_CI_ASNOTNULL,
[UPassword][varchar](20)COLLATEChinese_PRC_CI_ASNOTNULL
)ON[PRIMARY]
GO
CREATETABLE[dbo].[Diretory](
[Did][varchar](10)COLLATEChinese_PRC_CI_ASNOTNULL,
[Dname][varchar](20)COLLATEChinese_PRC_CI_ASNULL,
[UnitPrice][float]NOTNULL,
[Ifo][varchar](50)COLLATEChinese_PRC_CI_ASNULL
)ON[PRIMARY]
GO
CREATETABLE[dbo].[Order](
[Ono][varchar](10)COLLATEChinese_PRC_CI_ASNOTNULL,
[Cid][varchar](10)COLLATEChinese_PRC_CI_ASNOTNULL,
[Odate][datetime]NULL
)ON[PRIMARY]
GO
CREATETABLE[dbo].[OrderDetail](
[Ono][varchar](10)COLLATEChinese_PRC_CI_ASNOTNULL,
[Did][varchar](10)COLLATEChinese_PRC_CI_ASNOTNULL,
[Quantity][int]NOTNULL,
[QiShu][int]NOTNULL,
[UnitPrice][float]NOTNULL,
[Total][float]NULL
)ON[PRIMARY]
GO
6.2数据库备份和恢复方案
6.2.1应用辅助工具进行备份和恢复
应用数据库辅助工具(如sqlbackuptools…)进行备份,选择所需要备份的数据库和目标地址即可进行数据备份,恢复数据库只需要指定备份文件和需要恢复的数据库即可进行数据恢复。
6.2.2分离数据库法
在企业管理器中右击需要备份的数据库,选择“所有任务”,“分离数据库”,执行分析操作,拷贝数据库MDF文件和LDF文件。
恢复方案:
在企业管理器的控制台树中选择“数据库”节点,右击,“所有任务”,“附加数据库”,找到待恢复数据库的MDF文件,确定。
6.3用户界面设计和应用程序编码
6.3.1用户界面设计
本系统的用户界面用JavaSwing编写,主要由1个主界面Newspaper.java和10个辅助对话框组成。
主界面集合系统主要基本功能按键,辅助对话框负责采集用户输入信息和做基本的信息处理。
图10用户界面
6.3.2类文件功能描述
NO.
类名
类型
功能
01
Newspaper
Frame
主窗口类,提供系统主要功能的调用接口
02
Utilities
辅助类
封装系统主要数据和方法,为其它类提供信息处理功能
03
AdminCreateDlg
Dialog
管理员创建对话框,提供管理员创建功能
04
AdminModifyDlg
Dialog
管理员信息修改对话框,修改管理员密码,删除管理员
05
UserCreateDlg
Dialog
订户新建对话框,采集订户信息,创建新订户
06
UserModifyDlg
Dialog
订户修改对话框,提供订户修改、删除操作
07
DirCreateDlg
Dialog
目录新建对话框,采集目录信息,创建新目录
08
DirModifyDlg
Dialog
目录修改对话框,提供目录修改、删除操作
09
BookingDlg
Dialog
添加订单对话框,提供新订单添加功能
10
OrderSearchDlg
Dialog
订单查找对话框,提供按Ono或Cid查找订单操作
11
OrderDetailDlg
Dialog
订单细节对话框,显示订单细节,提供订单和订单项删除操作,并能通过调用DetailModifyDlg对话框完成订单项修改。
12
DetailModify
Dialog
订单项修改对话框,提供订单项修改操作
13
LoginDlg
Dialog
管理员登陆对话框,提供登陆界面,检查登陆信息
表4类文件描述表
6.3.3主要代码分析
//-----------------------------------------------------------------------------
//所属类:
Utilities
//功能:
取得应用程序与数据库系统的连接
publicstaticvoidgetConnection()throwsException{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver")
.newInstance();//加载驱动程序
Stringurl="jdbc:
microsoft:
sqlserver:
//localhost:
1433;DatabaseName=Newspaper";
Stringuser="sa";
Stringpassword="";
conn=DriverManager.getConnection(url,user,password);//取得连接
stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_UPDATABLE);//创建语句
conn2=DriverManager.getConnection(url,user,password);
stmt2=conn2.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_UPDATABLE);
}
//-----------------------------------------------------------------------------
//所属类:
Utilities
//功能:
完成查询结果的表格显示
publicstaticvoiddisplayResultSet(JTabletable,ResultSetrs)
throwsSQLException{
rs.beforeFirst();//指针移到结果集第一条记录前面
booleanmoreRecords=rs.next();
if(!
moreRecords){//如果没有记录,则提示一条消息
JOptionPane.showMessageDialog(table,"无相关记录","Checkyourinput!
",
JOptionPane.ERROR_MESSAGE);
return;
}
VectorcolumnHeads=newVector();//用于存储表格字段
Vectorrows=newVector();//用于存储记录行
try{//获取字段的名称
ResultSetMetaDatarsmd=rs.getMetaData();
for(inti=1;i<=rsmd.getColumnCount();++i)
columnHeads.addElement(rsmd.getColumnName(i));
do{//获取记录集
rows.addElement(getNextRow(rs,rsmd));
}while(rs.next());
//建立相应的TableModel,并将TableModel应用到table中显示出来
DefaultTableModelmodel=newDefaultTableModel(rows,columnHeads);
table.setModel(model);
return;
}catch(SQLExceptionsqlex){
sqlex.printStackTrace();
}
}
//-----------------------------------------------------------------------------//所属类:
Utilities
//功能:
被displayResultSet(JTabletable,ResultSetrs)调用,返回一个记录行
privatestaticVectorgetNextRow(ResultSetrs,ResultSetMetaDatarsmd)
throwsSQLException{
Vector
for(inti=1;i<=rsmd.getColumnCount();++i)
currentRow.addElement(rs.getString(i));
returncurrentRow;//返回一条记录
}
//-----------------------------------------------------------------------------
//所属类:
Utilities
//功能:
创建空白EXCEL文件,并将
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 报刊 订阅 系统 课程设计