1、数据库课程设计网上书店数据库管理系统网上书店数据库系统设计概念结构设计 1.书籍信息表 数据项含义说明数据类型数据长度取值范围书籍整型合法字符ISBN号区别每本书的唯一标识,字符型80任意合法字符且在长度范围内书籍名称书籍的名称字符型80合法的字符书籍作者书籍的作者字符型10合法字符丛书整型合法字符出版商书籍的出版商字符型关键字书籍的关键字字符型书籍的目录字符型封面书籍封面字符型 2 供货信息表 数据项含义说明数据类型数据长度取值范围书籍区别每本书整型库存量书籍的存货量整型10价格书籍的单价浮点型10库存位置书籍的位置字符型合法字符供应商供应商的整形103. 订单信息表数据项含义说明数据类型数
2、据长度取值范围订单区别每个不同订单的唯一标识整型用户订购人的注册网名字符型10合法的字符订购日期用户生成订单的时间日期型日期型的长度满足特定的日期格式订单总数每份订单书籍的数量整型101-9999999999发货地址管理员确定发货的地址字符型订单状态订单的发货状态字符 4 顾客信息表 数据项含义说明数据类型数据长度取值范围用户唯一区分用户的表示字符型20合法的字符用户姓名顾客的真实姓名字符型20合法的字符用户密码用户的登录密码字符型家庭住址顾客收货地址字符型100合法的字符账户余额用户可用的金额整型信用等级整型.根据对网上书店的需求分析,画出如下实体的ER图和实体之间的关系ER图。图-书籍信息
3、图图-2 缺货信息ER图图-3 订单信息ER图 图-4 用户信息ER图图-5 供货信息ER图图- 订单详情ER图图- 供应商信息ER图图-6 实体之间关系ER图3.逻辑结构设计 3.1 把ER图转换成相应的关系模型(a) 书籍 ISBN号,书籍名称,书籍作者,书籍出版年份(b) 订单 订购号,订购人,订购日期,订购书籍,书籍数量,发货日期(c) 库存 ISBN号,库存量,价格,折扣,库存下限(d) 顾客 注册名,真实姓名,家庭住址,联系方式,购书卡号(e) 管理员 管理员编号,管理员真实姓名,密码,具体身份,邮箱(f) 书-订单 订单号,ISBN号,书籍数量,发货日期(g) 订单-顾客 订单号
4、,注册名,订购日期(h) 库存-订单 ISBN号,订单号3.2 数据模型的优化 将关系模式订单垂直分解为书-订单,和订单-顾客。个人体会为期近一个星期的软件能力测试实习结束了,回首整个过程,当第一次拿到实习报告的时候,真的没有想到自己能够和我的同伴们顺利的完成任务,最终事实证明我们做到了,我们学到了更多的知识。在这期间,我们开始接触了小型的系统。这些小型的系统分析、设计与实现巩固了我们的基础知识,让我们学会了一些编程的技巧,以及一些验证的方法。首先是需求分析这块,它很重要。我们根据老师给的要求,结合在网上差的一些资料,做了初步的需求分析,本系统的主要功能是实现信息的发布和管理,涉及到前台用户对
5、书籍信息的浏览和后台管理。在前台的新闻浏览模块里,一般需要对书籍进行分类展示,并需要通过栏目导航进入特定的书籍信息模块。如有文艺类书籍,理工类书籍,计算机类书籍等等。在后台的管理方面。需要由合法的管理者来管理书籍的添加、修改、删除等,还有一个管理者的登录、注销的模块。最重要的是管理网上交易。从后台管理大体来看,系统实际分为,书籍管理栏目、网上购物管理及模块管理。然后进行了系统总体设计,我们采用采用B/S模式实现,分为三个层次。用户界面层:界面层为客户端浏览器提供对应用程序的访问,这一层是为用户提供操作接口而实现的。业务逻辑层:包含各种业务规则和逻辑的实现,业务规则完成如匿名用户书籍查找,用户登
6、录时进行身份认证等。数据访问层:数据访问层为业务逻辑层提供数据服务,首先设计了一个连接数据库的类,然后封装了对数据库的数据进行的操作。访问数据库的结果供业务逻辑层使用。现在我谈一下自己做系统总体设计的体会。系统总体设计的好坏直接影响后面的编码过程。刚开始我们的总体设计不是很完善,导致在具体实现时,我们的模块划分的不是很好,数据表的设计也不能很好的反映现实情况。后来我们又完善了系统的总体设计,对各个模块进行了详细的规划,系统层次显得分明,编码也相对容易一些。最主要的是数据库设计与实现。在设计一个数据库时,首先应该仔细研究业务需求。雨雾需求将直接决定表的设计。表之间可以是一对一、一对多、多对多的关
7、系。在一般情况下,它们是一对一的关系:即一张原始单据对应且只对应一个实体。在特殊情况下,它们可能是一对多或多对 一的关系,即一张原始单据对应多个实体,或多张原始单据对应一个实体。明确这种对应关系后,对我们设计录入界面大有好处。数据库设计的实用原则是:在数据冗余和处理速度之间找到合适的平衡点。表的设计应该遵循“三少”原则:数据库中表的个数尽量少,一个表中组合主键的字段个数尽量少,表中的字段个数尽量少。 但是必须要能反映现实情况。我一共设计了四个表,书籍信息表、用户登录表、银行卡表和订单表。四个表的详细设计在上面数据库的设计中有说明,各表的关系也用E-R图展示出来了,这里就不在赘述了。最后我觉得理
8、论知识很必要,实践也不可缺少,只有在实践中才能更清楚的了解自己对理论知识的掌握程度,才能学以致用,把所学的知识运用到实践中去。通过这次课程设计,我培养了自己的动手操作能力。我基本经历了整个系统的开发:从需求分析,到系统的总体设计、详细设计,再到数据库的设计与实现,让我能把现实世界中的实际问题在计算机内部表示出来,并培养基本的、良好的软件设计与开发技能。4.物理结构设计4.1 设计基本表 书籍:1. 表名: Books2. 所有者:dbo3. 源代码: CREATE TABLE Books( isbn CHAR(80),Title CHAR(80), Author CHAR(10), Year_
9、published DATE, PRIMARY KEY(isbn)4. 权限管理:GRANT SELECT ,INSERT , DELETE , UPDATE ON Books TO 超级管理员GRANT SELECT ,INSERT , DELETE , UPDATE ON Books TO 书籍管理员GRANT SELECT ON Books TO 顾客 库存:1.表名:Store2.所有者:dbo3.源代码:CREATE TABLE Store_Book ( isbn CHAR(80), qty_in_stock INTEGER(10), price NUMERIC(10,2), dis
10、count NUMERIC(4,2), low_stock INTEGER(10), PRIMARY KEY (isbn)4.权限管理:GRANT SELECT ,INSERT , DELETE , UPDATE ON Store TO 超级管理员GRANT SELECT ,INSERT , DELETE , UPDATE ON Store TO 书籍管理员 顾客:1. 表名: Customers2. 所有者:dbo3. 源代码:CREATE TABLE Customers( cname CHAR(20), realname CHAR(20), address CHAR(100), telep
11、hone CHAR(20), cardnum CHAR(30), PRIMARY KEY (cname)4. 权限管理:GRANT SELECT ,INSERT , DELETE , UPDATE ON Customers TO 超级管理员GRANT SELECT ,INSERT , DELETE , UPDATE ON Customers TO 用户管理员GRANT SELECT ,INSERT , ON Customers TO顾客 订单-顾客:1. 表名:Orders2. 所有者:dbo3. 源代码:CREATE TABLE Orders ( ordernum CHAR(20), cna
12、me CHAR(20), order_date DATE, PRIMARY KEY (ordernum), FOREIGN KEY (cname) REFERENCES Customers)4.权限管理:GRANT SELECT ,INSERT , DELETE , UPDATE ON Orders TO 超级管理员GRANT SELECT ,INSERT , DELETE , UPDATE ON Orders TO 订单管理员GRANT SELECT ,INSERT , ON Orders TO 顾客 订单-书:1. 表名:Orderlists2. 所有者:dbo3. 源代码:CREATE
13、TABLE Orderlists ( ordernum CHAR(20), Isbn CHAR(80), Qty INTEGER(10), PRIMARY KEY (ordernum), FOREIGN KEY (isbn) REFERENCES Books)4.权限管理:GRANT SELECT ,INSERT , DELETE , UPDATE ON Orderlists TO 超级管理员GRANT SELECT ,INSERT , DELETE , UPDATE ON Orderlists TO 订单管理员GRANT SELECT ,INSERT , ON Orderlists TO 顾
14、客 管理员:1. 表名:Managers2. 所有者:dbo3. 源代码:CREATE TABLE Managers ( mgr_num CHAR(20), mgr_name CHAR(20), passwords CHAR(10), actor CHAR(20), mail CHAR(30), PRIMARY KEY (mgr_num)4. 权限管理:GRANT SELECT ,INSERT , DELETE , UPDATE ON Managers TO 超级管理员GRANT SELECT , UPDATE ON Managers TO 订单管理员GRANT SELECT , UPDATE ON Managers TO 书籍管理员GRANT SELECT , UPDATE ON Managers TO 用户管理员4.2 为数据库管理系统设计规则create rule Actor_rule as actor in(超级管理员,用户管理员,书籍管理员,订单管理员) create rule Mail_rule as in str(mail,)1 and right(mail,1)5数据库的实施6.数据库的运行和维护