1、数据库系统概论课程设计设计名称:网上书店系统数据库设计网上书店系统数据库设计网上书店系统数据库设计 -2一、需求分析 -31.1 编写目的 -31.2 背景 -31.3 可行性分析 -31.3.1 经济可行性 -31.3.2 技术可行性 -41.4 用户分析 -41.5 网上书店系统的特点 -41.6 定义 -41.7 系统功能性需求 -51.7.1 系统结构 -51.7.2 功能性需 求分类 -61.8 数据字典 -61.9 实体间的联系 -6二、概念结构设计 -8三、逻辑结构设计 -13四、系统实现 -164.1 表的建立 -164.2 数据库关系图 -204.3 表的信息 -204.4
2、视图 -234.5 索引 -264.6 触发器 -264.7 存储过程 -284.8 主要代码 -29五、课程设计总结 -30一、需求分析在需求分析阶段,主要分析了用户的各种需求,在此基础上确定了新系统的功能,具体内容包括编写目的、开发背景、相关定义、开发目标等部分。1.1 编写目的随着信息技术的发展与普及,网络竞争越发的激烈、残酷,传统的营销方式在现今的社会竞争中已经力不从心,尤其是书本的营销。客户作为市场的最大资源,已经成为了市场营销的核心,谁争取到了最多的客户,谁就取得了最大的成功,对客户的把握将最终决定企业的命运。书籍网络营销于一种新的营销模式出现在当前人们的生活中,而随着电子商务的发
3、展,人们已经更多地关注了网上购物,这就无形中对网上书店的管理提出了更高的要求,需要其现代化、系统化、规范化、高效化。如何更加完善自身的管理,扩大网上书城的知名度,提高经济效益,增加客户量,成为网上书店管理迫切需要解决的问题。 网上书店管理的特殊性在于书籍信息量大、信息更新快、客户信息量大、客户反馈信息量大、信息间关联多、涉及的各层管理人员复杂. 同时其分工、权限又各不相同,如果所有的工作都按部就班地手工完成,将在很大程度上浪费劳动力和时间,降低工作效率。 因此通过引进计算机管理系统,把大量的工作微机化管理,这样就可以实现高效、安全、合理的管理模式,本系统就是基于这样一个目的来编写的。1.2 背
4、景数据库名称:OBMS软件系统名称:网上书店管理系统(Online Bookstore Management System,简称 OBMS) 。软件系统用户:一般中小型网上书店。软件及数据安装中心:湖北汽车工业学院文管楼实验室。1.3 可行性分析1.3.1 经济可行性随着信息技术的发展与普及,网络竞争越发的激烈、残酷,传统的营销方式在现今的社会竞争中已经力不从心,尤其是书本的营销。客户作为市场的最大资源,已经成为了市场营销的核心,谁争取到了最多的客户,谁就取得了最大的成功,对客户的把握将最终决定企业的命运,现在做电子商务的网站很多,网络书店就只有那么几个屈指可数的知名网站,像是“当当网上书城”
5、 、 “卓越网”等正是由于网上书店的数量少,而且不规范,以及在网络书店的客户量上存在很大的发展空间,为满足广大读者朋友的需求,网上书店的系统的建立将是未来一笔可观的财富。1.3.2 技术可行性网络管理日益趋向于系统化、完整化、人性化。在网络书店的数据库设计上,我们运用到 SQL2000 编程,具有完善的数据库设计思想和操作能力。1.4 用户分析随着网络的普及,越来越多的读者都习惯在网上看书、买书。在网络上用户可以找到自己想要的书籍,解决了用户区域性的问题,为广大读者提供一个平台能够找到珍贵的书籍。网上书店数据库系统是针对广大的读者,在线的用户量极具的增加,网上读书的客户量也在扩大,例如“当当”
6、网上书城、 “卓越”网。我们在整个书店的管理上将网络书籍进行分类,包括出版社管理、用户管理、订单管理、销售管理、物流管理等,以便更好的熟悉整个网络书店的后台数据库的运行环境。1.5 网上书店系统的特点简单性:在实现平台的功能的同时,尽量让平台操作简单易懂。针对性:平台设计使网上书店系统我们的数据库设计主要是后台管理,所以具有很强的针对实用性:我们在数据库设计的时候,将用户、管理员、书籍等基本信息在数据库中存储,具有良好的实用性。1.6 定义所有的表名的命名规则 :所有的表名用具有实际含义的英文单词组成,本系统共有 12 张表:books:书籍信息表,记录书籍信息stock:书籍库存表,记录书籍
7、库存信息booktype:书籍大类别表,记录书籍总体分类booktype2:书籍小类别表,记录书籍总分类下属的小分类publish:出版社信息表,记录出版社信息users:用户表,记录用户信息Administrators:管理员表,记录管理员信息leaveWords:用户留言表,记录用户留言信息orders:订单表,记录订单信息sales:销售单表,记录销售单信息shipped:运单表,记录运单信息waybill:发货表,记录发货单信息1.7 系统功能性需求1.7.1 系统结构根据网上书店的项目功能需求及对网上书店的调研,该系统的系统总体结构如下图所示。网上书店前台管理模块后台管理模块销售管理
8、订单管理留言管理图书类别管理图书信息设置用户信息管理搜索书籍订购书籍留言功能运单管理网上书店的业务流程图用户 管理登陆结账检索书目留言查询,修改订单信息订购书籍订单管理书籍销售管理出版社管理图书类别管理图书情报管理浏览书目管理员运单管理用户管理1.7.2 功能性需求分类功能类别 子功能书籍信息管理 管理书籍相关信息书籍类别管理 对书籍的类别进行初始化,并进行增删改查等操作订单管理 查询用户订单,并确认,生成销售单销售管理 对销售订单进行确认,并进行书籍的销售出库留言管理 管理员查看留言后台管理模块 运单管理 由第三方物流公司对出库的书籍进行配送用户信息管理 用于用户的注册、修改信息操作搜索书籍
9、 提供以不同方式进行搜索书籍的功能订购书籍 提供用户订购书籍的功能留言功能 用于用户对所购买书籍提出反馈意见,管理员可查看留言前台管理模块 首页显示书籍 用于在首页上现实特价图书和最新出版书籍的信息1.8 数据字典管理员(管理员编号、用户名、管理员姓名、管理员密码、管理员邮箱)用户(用户名、密码、电话、邮箱、家庭住址、真实姓名、邮政编号)用户留言(留言编号、用户名、主题、提交时间、留言内容、回复状态)书籍(书籍编号、书籍名称、ISBN、作者、出版社编号、版次、出版日期、内容简介、书籍小类别编号)库存(ISBN、库存数量、原始价格、折扣店、登记日期)书籍大类别(大类别编号、大类别名称)书籍小类别
10、(小类别编号、小类别名称、所属大类别)出版社(出版社编号、出版社名称、出版社电话、出版社地址)订单(订单编号、用户名、订购时间、书籍编号、订购数量、状态)销售单(销售单编号、订单编号、创建日期、创建人、状态)发货单(发货单编号、销售单编号、发货日期、发货人)运单(运单编号、发货单编号、快递公司名称、送货人姓名、送货人电话)1.9 实体间的联系通过以上分析可知,实体之间的联系有:管理员与用户之间是一对多关系(1:n)用户与用户留言之间是一对多关系(1:n)出版社与书籍之间是一对多关系(1:n)书籍与库存十件事一对一关系(1:1)书籍小类别与书籍之间是一对多关系(1:n) 书籍大类别与书籍小类别之
11、间是一对多关系(1:n)用户与订单之间是一对多关系(1:n)订单与销售单之间是一对一关系(1:1)销售单与发货单之间是一对一关系(1:1)发货单与运单之间是一对一关系(1:1)二、概念结构设计出版分类 存货出版社书籍书籍小类别分类书籍大类别库存书,订单库存订单订单表用户表 订单留言留言表管理员销售单表发货表运单表运输发货出单管理出版社出版社编号出版社名称 地址 电话邮编书籍书籍小类别ISBN 号书籍编号内容简介出版日期版次 出版社编号作者书籍名称书籍小类别小类别编号所属大类别小类别名称书籍大类别大类别编号 大类别名称库存ISBN 号库存量原始价格折扣点登记说明用户表密码邮编用户名电话电子邮件家
12、庭住址真实姓名用户留言表留言编号用户名 主题提交时间留言内容回复状态管理员管理员编号管理员名管理员密码 具体身份邮箱用户编号订单表订单编号用户名订购时间书籍编号订购数量状态销售单表销售单编号订单编号创建日期 创建人状态发货表发货单编号销售单编号 发货日期发货人运单表发货单编号运货单编号快递公司名称运货人姓名联系方式三、逻辑结构设计表一 书籍信息表 books字段名 字段描述 类型 可否为空 备注isbn ISBN 号 字符串 长度 20 可Book_id 书籍编号 字符串 长度 6 否 主键title 书籍名称 字符串 长度 80 否author 作者 字符串 长度 50 否Pub_id 出版
13、社编号 整型 可Version 版次 字符串 长度 20 可Publishdate 出版日期 日期/时间 可introduction 内容简介 字符串 长度 2000 可type 书籍小类别编号 整型 否 外键表二 书籍库存表 stock字段名 字段描述 类型 可否为空 备注isbn ISBN 号 字符串 长度 20 否 主键stock_qty 库存数量 字符串 长度 10 可price 原始价格 货币 否discount 折扣点 小数类型 可logdate 登记日期 日期/时间 可表三 书籍大类别表 booktype字段名 字段描述 类型 可否为空 备注Bigtype_id 大类别编号 整型
14、 否 主键,标识列Bigtype_name 大类别名称 字符串 长度 50 否 唯一表四 书籍小类别表 booktype2字段名 字段描述 类型 可否为空 备注Smalltype_id 小类别编号 整型 否 主键,标识列Smalltype_name 小类别名称 字符串 长度 50 否 唯一Bigtype_id 所属大类别编号 整型 否表五 出版社信息表 publish字段名 字段描述 类型 可否为空 备注Pub_id 出版社编号 整型 否 主键,标识列Pub_name 出版社名称 字符串 长度 50 否 唯一Pub_phone 出版社电话 字符串 长度 15 否Pub_add 出版社地址 字符
15、串 长度 50 否表六 用户表 users字段名 字段描述 类型 可否为空 备注Username 用户名 字符串 长度 20 否 主键Password 密码 字符串 长度 50 否Phone 电话 字符串 长度 15 可E-mall 电子邮箱 字符串 长度 30 可Address 家庭住址 字符串 长度100否True_name 真实姓名 字符串 长度 20 否Postcode 邮政编号 字符串 长度 6 否表七 管理员表 Administrators字段名 字段描述 类型 可否为空 备注Administrator_id 管理员编号 整型 否 主键Username 用户名 字符串 长度 20
16、否 外键Administrator_name 管理员姓名 字符串 长度 20 否Administrator_password 管理员密码 字符串 长度 50 否Administrator_e-mall 管理员邮箱 字符串 长度 30 可表八 用户留言表 leaveWords字段名 字段描述 类型 可否为空 备注Lword_id 留言编号 整型 否 主键,标识列Username 用户名 字符串 长度 6 否Subject 主题 字符串 长度 6 否Submit_date 提交时间 日期型 可Lword_texe 留言内容 字符串 长度 4000 可Re_status 回复状态 字符串 长度 10
17、 可 0-“待回复”1-“已回复”表九 订单表 orders字段名 字段描述 类型 可否为空 备注Order_id 订单编号 整型 否 主键,标识列username 用户名 字符串 长度 20 否Order_date 订购时间 日期型 可 默认系统时间Book_id 书籍编号 字符串 长度 6 否quantity 订购数量 整型 否 大于 0status 状态 位类型 长度 1 可 0-“未处理”1-“已处理”表十 销售单表 sales字段名 字段描述 类型 可否为空 备注Sale_id 销售单编号 整型 否 主键,标识列Order_id 订单编号 整型 否 外键Sale_date 创建日期
18、日期型 可 默认系统时间Saler 创建人 字符串 长度 20 否Sale_status 状态 位类型 长度 1 可 0-“未发货”1-“已发货”表十一 发货表 shipped字段名 字段描述 类型 可否为空 备注Ship_id 发货单编号 整型 否 主键,标识列Sale_id 销售单编号 整型 否 外键Ship_date 发货日期 日期型 可 默认系统时间Ship_man 发货人 字符串 长度 20 否表十二 运单表 waybill字段名 字段描述 类型 可否为空 备注Waywill_no 运单编号 整型 否 主键,标识列Ship_id 发货单编号 整型 否 外键express_compan
19、y 快递公司名称 字符串 长度 20 否Delivery_man 送货人姓名 字符串 长度 20 可Delivery-man_phone 送货人电话 字符串 长度 15 可四、系统实现4.1 表的建立书籍信息表 books 的建立书籍库存表 stock 的建立书籍大类别表 booktype 的建立书籍小类别表 booktype2 的建立出版社信息表 publish 的建立用户表 users 的建立管理员表 Administrators 的建立订单表 orders 的建立用户留言表 leaveWords 的建立销售单表 sales 的建立发货表 shipped 的建立运单表 waybill 的建
20、立4.2 数据库关系图4.3 表的信息4.4 视图创建视图:视图的创建:在 users 表中建立 username 为 ran520611 视图V1 中视图在 books 表中建立视图如下:建立如下视图:视图中包含每个用户的留言编号视图查询:建立视图 v6_books 并查询视图中 book_id、title、auther查询结果如下:建立并查询视图:向视图中插入新的数据:插入后在 users 表中:删除视图中的记录:4.5 索引以上是对 users 表建立的索引4.6 触发器对于在网上书店系统数据库,表 users 的 username 列与表 administrators的 usersna
21、me 满足下列参照完整性规则。A.向 users 表插入或修改一记录时,通过触发器检查记录的 users 值在administrators 表中是否存在,若不存在,则取消插入或修改操作;B.修改 administrators 表的 usersname 字段值时,该字段在 users 表中的对应值也做相应修改。C.删除 administrators 表中一记录的同时删除该记录 administrators 字段值在 users 表中对应的记录。(1) 向 users 表插入或修改一记录时,通过触发器检查记录的 username 值在administrators 表中是否存在,若不存在,则取消插入
22、或修改操作。(2) 修改 administrators 表的 username 字段值时,该字段在 users 表中的对应值也做相应修改。对 administrators 表建立更新触发器IF (COLUMNS_UPDATED() 测试是否插入或更新了提及的列,仅用于 INSERT 或 UPDATE 触发器中。COLUMNS_UPDATED 返回 varbinary 位模式,表示插入或更新了表中的哪些列。COLUMNS_UPDATED 函数以从左到右的顺序返回位,最左边的位表示表中的第一列;向右的下一位表示第二列,依此类推。在 INSERT 操作中 COLUMNS_UPDATED 将对所有列返
23、回 TRUE 值,因为这些列插入了显式值或隐性 (NULL) 值。(3)删除 CLASS 表中一记录的同时删除该记录 CLASS_ID 字段值在 STUDENT 表中对应的记录。对 administrators 表建立删除触发器4.7 存储过程创建添加记录的存储过程创建修改记录的存储过程创建删除记录的存储过程调用三个存储过程:存储过程的调用4.8 主要代码触发器的应用create trigger administratorsdelete on dbo.administratorsfor deleteas begindelete from userswhere username=(select
24、username from deleted)endgousers 表的存储过程 usersaddcreate procedure usersadd(username varchar(20),password varchar(50),phone varchar(15),e_mall varchar(30),address varchar(100),turename varchar(20),postcode varchar(6)asbegininsert into usersvalues(username,password,phone,e_mall,address,turename,postcod
25、e)endreturngo修改 users 表的存储过程 usersupdatecreate procedure usersupdate(userid varchar(20),username varchar(20),password varchar(50),phone varchar(15),e_mall varchar(30),address varchar(100),turename varchar(20),postcode varchar(6)asbeginupdate usersset username=username,password=password,phone=phone,e
26、_mall=e_mall,address=address,turename=turename,postcode=postcodewhere username=useridendreturngo删除 users 表的删除过程 usersdeletecreate procedure usersdelete(username varchar(20)asbegindelete from userswhere username=usernameendreturngo五、课程设计总结这次课程设计我们花了一个星期的时间来完成,感觉时间过的很快。在大家的共同合作下,终于完成了这次课设。在完成过程中,我主要工作是完成概念结构设计。在设计之前我们共同讨论了一下网上书店的整个流程,主要的工作步骤,设计 ER 图。完成的不是那么的完美。但对于数据库设计的整个流程有了了解。同时我也明白了在 IT 行业中分工合作的重要性。课程设计的完成离不开队友的帮助。