《数据库课程设计--报刊订阅管理系统(共37页).doc》由会员分享,可在线阅读,更多相关《数据库课程设计--报刊订阅管理系统(共37页).doc(37页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上 网络教育学院数据库原理课 程 设 计 题 目: 报刊订阅管理系统数据库设计学习中心: 榆林市奥鹏学习中心 层 次:专升本 专 业: 网络工程 年 级: 2014 年 秋 季 学 号: 201309745363 学 生: 吴彩银 辅导教师: 龙珠 完成日期: 2015年3 月 2 日题目三:报刊订阅管理系统数据库设计1. 系统需求分析1.1 信息需求分析 1.3.1 资料收集:业务流程中用到的相关单据主要是报刊信息还有订单信息报刊信息表:报刊代号46-250报刊名称IT时代周刊出版报社科技出版社出版周期半月刊每月定价10.00元/月分类编号1001报刊介绍IT时代周刊
2、是一本深刻解读信息时代商业变革的杂志。除深度报道信息产业的重大新闻外,还报道金融、汽车、股市、零售等传统行业利用IT提升商业与管理的新闻。IT时代周刊以调查见深度;以商业故事见功力。是CEO/CIO/CFO以及政府官员、商业领袖首选刊物。订单信息表:订单编号报刊代号用户编号订阅日期订阅月数份数操作300346-20532062008-7-1订一月1取消订阅300426-30631082008-7-8订半年2取消订阅300572-31031002008-7-9订一年1取消订阅300645-21425412008-7-10订一季1取消订阅1.2 业务流程分析:本系统主要面向的用户有系统管理员、读者
3、。下面分角色对该系统的不同操作范围做说明。下图为该系统的业务流程图1.3 功能需求分析 本系统的主要结构功能图如下: (1)登陆功能:登陆系统为身份验证登录。分为管理员登录和一般用户登录。分别通过不同的用户名和密码进入报刊订阅管理界面。(2)录入新信息功能:对于管理员,包括新用户信息和新报刊信息的录入功能,信息一旦提交就存入到后台数据库中;普通用户自行注册进行录入个人信息。(3)订阅功能:用户可以订阅报刊,系统自动计算所需金额,并显示在界面上;管理员不可订阅报刊,必须以用户身份订阅报刊。(4)查询功能:用户可以查询并显示自己所订阅的信息;管理员可以按人员、报刊、部门分类查询。查询出的信息显示在
4、界面上。(5)统计功能:管理员可以按用户、部门、报刊统计报刊的销售情况,并对一些重要的订阅信息进行统计;普通用户可以统计出自己的订阅情况。(6)系统维护功能:管理员可以对用户、报刊、部门、订阅等信息进行添加、删除、更改等维护工作;用户可以更改自己的注册信息,但用户名不能更改。1.4 数据流图图1.6.1 报刊订阅管理系统顶层图图1.6.2 系统1层图图1.6.3 系统2层图图1.6.4 系统3层图图1.6.5 系统4层图1.5 数据字典 (1)数据结构管理员用户=管理员帐户+管理员密码订户=订户编号+订户名+联系电话+联系地址目录=目录编号+目录名+单价+批注信息订单=订单号+订户编号+下订日
5、期订单细节=订单号+目录编号+订阅数量+订阅期数+单价+总价(注:为保证订单确定后价格不随目录单价变动,订单细节中应该有独立的单价来记录下订时目录的单价) (2)数据项表2.1 数据项表编号标识符类型长度所属表名同义名1AnameVarchar20Administrator管理员帐户2ApasswordVarchar20Administrator管理员密码3UnameVarchar20Consumer订户名4UphoneVarchar15Consumer联系电话5UAddressVarchar50Consumer联系地址6Magazine_nameVarchar20Magazine目录名7Wh
6、olPriceFloat8MagazineSubscrible目录单价,下订时目录单价8Snum Int4Subscribe订阅数量9Subscribenum Int4Subscribe订阅期数10SnumFloat8Subscribe订单项总价(3) 数据流编号名称来源去向组成1身份信息系统管理员应用系统管理员帐户+密码2授权信息应用系统系统管理员3错误身份信息应用系统系统管理员4查询请求系统管理员应用系统待查询对象识别符(如Cid,Ono)5查询结果应用系统系统管理员被查询对象具体信息6管理请求系统管理员应用系统识别符(Cid,Ono等)+类型7管理结果信息应用系统系统管理员被管理对象处理
7、结果8非法请求应用系统系统管理员非法请求提示信息表2.2 数据流表2 系统设计 2.1系统功能结构设计 系统功能结构图如下图所示: 图2.1.1 系统功能结构图2.2数据库概念设计基本项构思ERD的四条基本原则:原则1 (确定实体):能独立存在的事物,例如人、物、事、地、团体、机构、活动、事项等等,在其有多个由基本项描述的特性需要关注时,就应把它作为实体。原则2 (确定联系):两个或多个实体间的关联与结合,如主管,从属,组成,占有,作用,配合,协同等等,当需要予以关注时,应作为联系。实体间的联系可分为一对一、一对多、多对多等三类,在确定联系时还要确定其类型。原则3 (确定属性):实体的属性是实
8、体的本质特征。实体应有标识属性(能把不同个体区分开来的属性组),并指定其中一个作为主标识。联系的属性是联系的结果或状态。原则4(一事一地):信息分析中得到的基本项要在且仅在实体联系图中的一个地方作为属性出现。经过上述系统功能分析和需求总结,设计如下面所示的数据项和数据结构。l 管理员表(Administrator):用于存放管理员的数据记录,包括数据项:管理员名、密码。l 部门表(Department):用来存放部门的相关记录,包括数据项:部门号,部门名。l 用户表(Consumer):用于存放注册用户的记录,包括数据项:用户账号、密码、真实姓名、身份证号、联系电话,联系地址,部门号(和部门表
9、有关)等。l 报刊信息表(magazine):用于存放报刊记录,包括数据项:报刊代号、报刊名称、出版报社、出版周期、季度报价、内容介绍、分类编号(和报刊类别表有关)等。l 订单表(subscribe):用于存放用户下达的订阅报刊的基本信息,包括数据项:订单编号、用户编号(用户表的主码)、报刊代号(报刊信息表的主码)、订阅份数、订阅月数等。 根据上面的设计规划出来的实体有部门实体、管理员实体、用户实体、报刊信息实体和订单实体。部门实体的E-R图如下图所示: 管理员实体的E-R图如下图所示: 用户实体的E-R图如下图所示: 报刊信息实体的E-R图如下图所示: 订单实体的E-R图如下图所示: 所有实
10、体之间的的关系E-R图如下图所示:2.3 数据库逻辑设计 (1)一般逻辑模型设计 关系模型的逻辑结构是一组关系模式的集合。将E-R图转换为关系模型就是要将实体型、实体的属性和实体型之间的联系转换为关系模式。由ERD导出一般关系模型的四条原则;一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。如果软换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,每个实体的码均是该关系的候选码。如果与某一端实体对应的关系模式何明,则需要在该关系模式的属性中加入另一个关系模式的码和联系本身的属性。一个1:n联系可以转换为一个独立的关系模式,也可以
11、与n端对应的关系模式合并。如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为n端实体的码。一个m:n联系转换为一个关系模式。与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,各实体的码组成关系的码或关系码的一部分。3个或3个以上实体间的一个多元联系可以转换为一个关系模式。与该多元联系项链呢的各实体的码以及联系本身的属性均转换为关系的属性,各实体的码组成关系的码或关系码的一部分。 根据以上原则将E-R图转换成的关系模式如下:部门(部门号,部门名称)用户(用户账号,密码,用户真实姓名,联系电话,联系地址,部门号)管理员(管理员名,
12、密码)报刊类别(分类编号,分类名称)报刊(报刊代号,报刊名称,出版报社,出版周期,每月订价,内容介绍,分类编号)订单(用户名,报刊代号,订阅份数,订阅月数,订阅总额)(2)具体逻辑模型设计在SQL Server2000数据库中,首先创建报刊订阅管理系统数据库,然后根据数据库的逻辑结构分析创建表4-14-6的6张数据表。在前台访问数据库阶段设置了用户和密码,用户为sa,密码为空。表4-1 department部门表结构字段名称字段类型允许空说明Dnumber(主码)Char(10)否部门号DnameChar(50)否部门名称表4-2 consumer用户表结构字段名称字段类型允许空说明Uname
13、(主码)Char(10)否用户帐号UpasswordChar(20)是真实姓名UrealnameChar(10)否用户密码UsexChar(150)是用户联系地址UphoneChar(20)是用户联系电话UaddressChar(10)否用户所属部门号SubscribenumChar(10)否订阅数量表4-3 magazine报刊表结构字段名称字段类型允许空说明mnumber(主码)Char(10)否报刊代号mnameChar(40)否报刊名称mkindInt(4)否报刊分类mpressChar(10)否出版报社mtimeChar(30)否出版日期mhalfpriceChar(10)否半年定价
14、mwholeFloat(8)否全年定价表4-4 subscribe订单表结构字段名称字段类型允许空说明Uname(主码)Char(10)否用户帐号Mnumber(主码)Char(10)否报刊代号SyearInt(4)否订阅份数SnumberInt(4)否订阅月数SsumFloat(8)是订阅总额表4-5 adminuser管理员表结构字段名称字段类型允许空说明Aname(主码)Char(10)否管理员用户名ApasswordChar(10)否管理员密码2.4 数据库物理设计(1)索引的选择建立由于系统可能要涉及大量数据的操作,所以索引的建立就成为一种必需。本系统采用B+树索引方法,分别在各Co
15、nsumer,magazine_query,consumer_stat和query_depat各个表的主键上建立关系表。(2)数据存放位置本系统数据和索引存放在磁盘中。(3)确定系统配置根据具体需要配置。(4) 模块设计 登陆模块图2.4.1 登陆模块IPO图 管理功能模块图2.4.2 管理功能模块IPO图 查询功能模块图2.4.3 查询功能模块IPO图3 系统实现与测试 3.1 连接数据库的实现 打开PowerBuilder,新建一个magazine,新建一个Application,取名magazine,然后点击工具栏上的DB Profile,新建一个MSS Microsoft SQL Se
16、rver,填入Profile Name,服务器名,用户名,密码,数据库,如下图: 连接数据库:然后输入连接数据库的主要代码:3.2 模块功能实现 3.2.1 菜单的实现 (1)制作管理员主菜单w_adminview,建管理员主界面w_mainmenu,将该菜单放到窗口中 (2)制作用户主菜单w_consumer,建用户主界面w_consumermain,将菜单放到窗口中3.2.2 登录模块的实现 (1)制作登录页面w_login1,在“确定”按钮输入如下: “注册”按钮代码:open(w_enroll) /打开用户注册页面 “退出”按钮代码:close(w_login1) /退出本系统(2)
17、制作注册窗口w_register,在“注册”按钮的代码如下:“取消”按钮代码:close(w_register) open(w_login) 3.2.3录入信息模块的实现 (1)制作管理员主菜单里的录入报刊信息窗口w_inputmagazine,录入用户信息窗口w_inputconsumer, (2)制作数据窗口d_consumer,d_magazien在数据窗口调整好外观,添加控件,并设定相应的动作,分别放到这两个窗口中这两个窗口功能相识,在窗口中输入:dw_1.settransobject(sqlca) dw_1.retrieve()dw_2.settransobject(sqlca) d
18、w_2.retrieve()3.2.4 查询信息模块的实现 (1)制作管理员主菜单中的查询订阅信息窗口w_searchorder,制作数据窗口dw_booksearch,将其放入窗体中,在窗口中输入代码:dw_1.settransobject(sqlca)dw_1.retrieve()sle_1.setfocus() 在“检索”按钮中输入代码: “返回”按钮代码: open(w_main) close(w_magazine_query) 数据窗口字段 如下图: (2)按用户查询, 按钮代码如下: 返回代码如下: open(w_main) close(w_consumer_ruery) 数据窗口
19、字段如下: (3)用户主菜单的查询订单窗口w_consumer_query,将订单查找d_consumer_ruery_c放到窗口里,在窗口中过过滤器筛选中用户自己的订单信息,一打开就可以看到自己的订单信息,窗口代码: 用户统计d_consumer_query_c数据窗口如下:3.2.5统计信息模块的实现 (1)制作管理员主菜单中的统计用户订单窗口w_stat_consumer,统计部门订单窗口w_stat_department,统计报刊订单窗口w_statconsumer:制作统计数据窗口d_consumer_stat,d_query_dept,w_stat_magazine,将d_cons
20、umer_stat,d_query_dept,w_stat_magazine分别放入w_stat_consumer,w_stat_department,w_statconsumer中;以下仅列出按出按部门统计的代码和界面 (按用户、报刊统计类似,略); 按部门统计代码: 窗口代码: 按部门统计数据窗口: dw_1.settransobject(sqlca) dw_1.retrieve() 预览键代码:(与上页预览代码相同) 退出:close(parent)3.2.6 订阅报刊模块的实现(1)用户主菜单的订阅报刊窗口w_userorder该系统中定义了一个全局变量gs_userid,其它窗口界面
21、都可以使用该变量,并显示用户名,用户登录后,它会显示“,欢迎使用本系统!”的欢迎界面。窗口代码:dw_1.settransobject(sqlca) dw_1.retrieve()sle_1.setfocus()sle_2.text=gs_userid“清空”按钮代码:sle_1.text= sle_3.text= sle_5.text=“退出”按钮代码:close(w_userorder)“提交”按钮代码:3.2.7 更改信息的实现 (1)用户主菜单中的修改用户信息窗口w_modify_consumer,打开会先显示出你的信息,而用户名这一栏是输入不了的,也就是不能修改用户名,窗口代码如下:
22、“确定”按钮代码如下:3.3 系统测试 打开本系统,首先弹出欢迎界面,选择用户入口,点击“新用户注册” 按确定后,弹出“恭喜,您已注册成功!”的对话框。如果这时刷新服务管理器,打开SQL Server企业管理器,打开该数据库的用户表,就可看到刚才注册的用户已经在表中了。 然后返回到登陆页面,输入刚才注册到的用户名和密码chen,1。 登录后,弹出一个窗口,有供用户使用的菜单,然后进入系统。 选择“订阅报刊”菜单,在这个订阅界面,用户可以浏览到所有的报刊信息,看到信息的下去,订阅报刊时,输入用户名,密码,报刊号,报刊名称,订阅数量(五年以下,一次只能增加0.5),订阅年限,然后点击“提交”按钮
23、点击“清空”按钮就可以将输入框中的内容。点击上页,下一页可以浏览报刊信息。 订阅成功后,系统弹出“恭喜!你已成功订阅该报刊,总金额是”确定后会显示出您所订阅的总额是多少元,按“清空”按钮后可以订阅其它报刊(同样的报刊不可重复订阅)。再订阅其它报刊,然后按“下页”按 由于权限的限制,“统计”菜单中的也是只能统计自己订单信息的数据。 在“修改”信息菜单中,用户名也是不可输入的文本框,即不可修改用户名,其它信息可以修改,保存后它会自动添加到数据库中。 以管理员的身份登录,用户名admin,密码admin,按登录按键,可看到管理员菜单。 选择菜单栏中的录入-录入报刊信息,管理员可以大致浏览所有报刊信息,在上面的数据窗口可以查看上一页和下一页的具体内容,并且可以对其进行添加,删除、修改、保存等操作。 录入用户信息页面,基本相似。 选择菜单栏中的“查询”-“订单信息”,管理员拥有的权限可以看到所有的订单信息。 管理员也可以根据需要分别按部门、按用户、按报刊查询,结果如下: 菜单栏中的“统计”菜单有三个子菜单,管理员可以分别统计用户订单信息、部门订单信息和报刊订单信息, 直接选择就可看到统计结果,比如选择“统计用户订单信息”。专心-专注-专业
限制150内