这个作业什么时候要呢?
Private Sub Command1_Click()Dim n As Integer
Dim sum As Double
sum = 0
n = InputBox("请输入n的值")
For i = 1 To n
sum = sum + jiecheng(i)
Next i
Print sum
End Sub
Public Function jiecheng(ByVal n As Integer) As Double
Dim jc As Double
jc = 1
For i = 1 To n
jc = jc i
Next
jiecheng = jc
End Function
IT行业,数据库确实是一门相当重要的课程。但是在大学里面,对待数据库原理及应用这么课程以及其课程设计的重视程度就相差很大了,各个学校要求也不一样。如果是要学好,那确实要下工夫;如果只是完成课程设计,交差了事,其实相当简单。
既然是课程设计,也算是个小小的项目,既然是项目,也就离不开需求分析、数据库设计、部署实现等环节。当然,这个小小的项目只需要前面的部分:需求和数据库设计,数据库设计是重点。
需求分析就不用多说,和所有其他项目一样,无非就是用户需求,功能需求,系统需求等,找任何一本关于需求分析的书都是可以,除了那些个空话之外,更多的是要根据设计需要进行分析。
数据库设计就比较复杂一点,首先得把数据库原理搞清楚,比如:符合什么样的范式,怎么画ER图,如何理解用例图。在设计数据库之前,有一系列的分析要做:面向对象分析,用例分析,类和对象分析等等。分析到位是数据库设计成功的重要保障。分析完成之后才是设计,比如:逻辑结构设计,关系模式设计,存取方法设计,存储结构设计,数据完整性设计,参考完整性设计,Check约束,Default约束,触发器设计,视图设计,存储过程设计,权限设计等。这些都完成了,最后一步才是写SQL代码实现这些设计,创建数据库及相关的数据表,关联,视图,触发器,存储过程等一些列的看得见的数据库参数。
上面说的比较理论,也比较笼统。我想我可以用一个简单例子告诉你我要表达的意思。例子很简单,其中很多地方都不是太好,不过或许可以给你一个直观的思路。
数据库应用课程设计报告书
网上超市管理系统
成 绩:
学 号:
姓 名:
指导教师:
20 年 月 日
目录
任务书 (3)
1 需求调查、分析 (4)
11 企业介绍 (4)
12 需求调查及分析 (5)
2 面向对象分析和设计 (7)
21 用例分析 (7)
22类和对象设计 (12)
3 逻辑结构设计 (15)
31 类和对象向关系模式转换 (15)
32 关系模式优化 (16)
4 数据库物理结构设计 (16)
41 存取方法设计 (16)
42 存储结构设计 (17)
5 数据库完整性设计 (17)
51 主键及唯一性索引 (17)
52 参照完整性设计 (18)
53 Check约束 (18)
54 Default约束 (18)
55 触发器设计 (19)
6 数据库视图设计 (19)
7 数据库存储过程设计 (20)
8 权限设计 (20)
9 总结 (21)
参考资料 (21)
网上超市管理系统
摘要:
网上超市管理系统,是以网上管理方式为实例而设计的一种实用型管理系统。本系统最大的特点是通用性、简单 *** 作性,适用于超市的管理。随着商品的增多,商品管理人员的负担越来越重,为了让所有商品管理人员能从繁重的工作中解脱出来,实现无纸化办公;也为了使工作更有条理,更方便,更有效率,更为了超市在经营中提高利润而开发出这套网上超市管理系统。
1 需求调查、分析
11 企业介绍
在Internet飞速发展的今天,互联网成为人们快速获取、发布和传递信息的重要渠道,它在人们政治、经济、生活等各个方面发挥着重要的作用。在政府的大力提倡和支持下,我国电子商务已走上了健康发展的轨道。各行业纷纷建立自己的网站,开展网上产品信息发布,进行网上洽谈、签约,开展网络营销。将超市办成网上超市已经是大势所趋,甚至一些小型的超市也可以开展网上交易。总之,电子商务以互联网为媒介,以信息传播速度快、受众广泛、低成本动作的优势决定着其必然成为未来营销的主导,我国企业要充分重视由此带来的机遇和挑战,才能在激烈的国际竞争中立于不败之地。
在超市经营中,随着超市规模的不断扩大,人们对超市服务的要求不断提高,使用一款适合的网上超市管理系统将更加迫切。利用网上超市,人们可以在家里逛超市,只需要办理会员卡,就可以为本地顾客送货上门。不仅如此,把超市办成网上经营和管理将大大提高效率和收益。因此,开发一个网上超市管理系统是非常有必要和好处的。
12 需求调查及分析
121顾客需求
为方便用户购买商品,网上超市客户系统应该提供如下所示几种功能:
(1)商品分类:网上超市与传统超市相比的一个优势是,当用户明确自己要买哪类商品时,用户可以使用商品分类功能快速找到需要的商品。
(2)商品预览:以列表的方式显示商品信息,这样可以在页面显示大量的商品信息,同时可以提供更多的商品浏览方式,如分类浏览、热门商品等。
(3)商品显示:当用户找到感兴趣的商品后需要显示商品的详细信息,包括商品简介、出产商、价格等。
(4)购物帮助:当用户在购物中遇到什么问题时,可以查看购物帮助获得相关信息。管理员会根据顾客反映的情况及时更改或增添购物帮助的内容。
(5)购物车:当用户找到需要的商品时,可以先将商品加入购物车,然后继续允许找其他的商品,购物车中存储当前用户打算购买的所有商品。
(6)商品订单:当用户在网上超市中找到了所有需要的商品后,决定购买,可以下订单。管理员会定期处理用户下达的订单,并根据用户订单的信息向用户送货。
(7)用户注册:提供用户注册功能以及相关的用户信息修改、密码维护等。
122销售管理员需求
网上超市的销售部分的管理员功能是维护销售的正常工作,它需要提供如下功能:
(1)商品管理:商品是网上超市的内容所在,管理员需要能够维护超市中的商品信息。同时与商品相关的商品类型等信息也需要管理员维护。
(2)会员管理:由于有注册用户,所以管理员需要对拥护账号进行管理,如删除一些无效账号等。
(3)订单处理:在用户下达订单后,管理员需要对用户订单进行处理,为用户准备订购的商品,并组织送货、收取货等。
(4)购物帮助管理:管理员要根据用户反映的情况及时修改购物帮助的内容,使用户得到即时的帮助。
123采购、仓存管理员需求
网上超市的系统中将采购员和仓存管理员统一为采购、仓存管理员,其主要需求如下:
(1)录入商品信息:商品是网上超市的内容所在,当有新进的货物时,采购管理员需要维护超市中的商品信息。
(2)维护供应商信息:采购管理员在进行采购工作时,就需要对供应商信息的查询。
(3)维护仓库信息:有多上仓库,什么商品存放在哪个仓库,这些都需要采购仓存管理员来维护。
124系统管理员需求
网上超市的系统管理员功能是维护系统的正常工作,它需要提供如下功能:
(1)对系统中用户的管理:系统中顾客,销售管理员,采购、仓存管理员都是系统的用户,这些用户就需要系统管理员进行统一管理。
(2)会员管理:由于有注册用户,所以管理员需要对拥护账号进行管理,如删除一些无效账号等。但这样的一个功能可以授权于销售管理员去处理。
125数据库需求分析
用户的需求具体体现在各种信息的提供、保存、更新和查询。这就要求数据库结构能够充分地满足各种信息的输入和输出。收集基本数据、数据结构和数据处理流程,为下一步的具体设计做好充分的准备。
网上超市管理系统要处理的数据流程图:
2 面向对象分析和设计
21 用例分析
22 类和对象设计
3 逻辑结构设计
31 类和对象向关系模式转换
顾客信息(姓名、顾客编号、性别、出生年月、家庭地址、邮政编码、是否居住本地区、联系电话、身份z号、备注信息)
供应商信息(供应商编号、公司名称、联系人姓名、联系地址、所在城市、邮政编码、电话号码、传真号码、备注信息)
购物车(商品编号、顾客编号、商品名称、商品规格、时间、备注信息)
商品信息(商品编号、商品名称、单价、商品规格、商品产地、保质期、类别、备注信息)
订单信息(订单编号、商品编号、顾客编号、商品名称、商品规格、数量、顾客姓名、时间、备注信息)
员工信息(姓名、职工号、部门编号、性别、出生年月、家庭地址、邮政编码、联系电话、身份z号、备注信息)
进货信息(进货信息编号、供应商编号、公司名称、联系人姓名、商品编号、商品名称、商品规格、商品产地、商品数量、商品单价、进货日期、备注信息)
部门信息(部门编号、部门名称、负责人姓名)
销售信息(销售信息编号、顾客编号、顾客姓名、商品编号、商品名称、商品规格、商品产地、商品数量、商品单价、销售日期、折扣、备注信息)
仓库信息(仓库编号、仓库名称、存放商品类别、容量、负责人编号,负责人姓名)
留言信息(留言编号、留言标题、留言内容、留言日期、顾客编号、回复人编号、回复日期)
积分信息(积分编号、顾客编号、顾客姓名、积分)
商品入库(仓库编号、仓库名称、商品编号、商品名称、库存量、入库时间)
32 关系模式优化
顾客信息(姓名、顾客编号、性别、出生年月、家庭地址、邮政编码、是否居住本地区、联系电话、身份z号、备注信息)
供应商信息(供应商编号、公司名称、联系人姓名、联系地址、所在城市、邮政编码、电话号码、传真号码、备注信息)
购物车(商品编号、顾客编号、时间、备注信息)
商品信息(商品编号、商品名称、单价、商品规格、商品产地、保质期、类别、备注信息)
订单信息(订单编号、商品编号、顾客编号、数量、时间、备注信息)
员工信息(姓名、职工号、部门编号、性别、出生年月、家庭地址、邮政编码、联系电话、身份z号、备注信息)
进货信息(进货信息编号、供应商编号、商品编号、商品名称、商品规格、商品数量、商品单价、进货日期、备注信息)
部门信息(部门编号、部门名称、负责人姓名)
销售信息(销售信息编号、顾客编号、商品编号、商品数量、商品单价、销售日期、折扣、备注信息)
仓库信息(仓库编号、仓库名称、存放商品类别、容量、负责人编号)
留言信息(留言编号、留言标题、留言内容、留言日期、顾客编号、回复人编号、回复日期)
积分信息(积分编号、顾客编号、积分)
商品库存(仓库编号、商品编号、库存量、入库时间)
4 数据库物理结构设计
41 存取方法设计
42 存储结构设计
为了提高查询时间和空间的利用率,对网上超市管理系统的数据库作如下设计:
首先将网上超市管理系统日志文件存放在磁带上,因为数据库的数据备份和日志文件等只在故障恢复的时候才要使用,而且数据量很大。第二,把所有的基本表(如:顾客信息表)存放在一块磁盘上,而所有的索引则存放在另一块磁盘上。这样分开存放的目的在于查询时多个磁盘驱动器并行工作,提高了物理I/O读写效率,也加快了存取速度。
5 数据库完整性设计
51 主键及唯一性索引
52 参照完整性设计
1、由于员工信息表中的部门编号必须在部门信息中存在,而部门编号又是部门信息表中的主键,所以员工信息表中将属性部门编号设计为外键。
2、订单信息表中属性商品编号对应于商品信息表中的商品编号,因此将其设计为外键。
订单信息表中字段顾客编号对应于顾客信息表中的顾客编号,而顾客编号又是顾客信息的主键,所以将顾客编号作为订单信息表的外键。
3、进货信息表中属性商品编号对应于商品信息表中的商品编号,因此将其设计为外键。
进货信息表中字段供应商编号对应于供应商信息表中的供应商编号,而供应商编号又是供应商信息表的主键,所以将供应商编号作为进货信息表的外键。
4、销售信息表中字段顾客编号对应于顾客信息表中的顾客编号,而顾客编号又是顾客信息表的主键,所以将顾客编号作为销售信息表的外键。此外,销售信息表中的商品编号必须在商品信息表中存在,所以将商品编号也设计为改表的外键。
5、留言信息表中顾客编号需要在顾客信息表中存在记录,把顾客编号作为该表的外键。留言信息表中的属性回复人编号必须是员工信息表在存在的记录,所以把回复人编号也设为留言信息表的外键。
6、积分表中的属性顾客编号对应于顾客信息表中的顾客编号,而顾客编号是主键,所以将其设计为积分表的外键。
53 Check约束
1、对积分表中的积分字段设计check约束:积分必须是大于或者等于0的。
2、订单信息表、进货信息表和销售信息表对数量、商品数量设计check约束:即这些属性值必须取大于或者等于0的值。
54 Default约束
1、积分表中的积分字段设计default约束:积分默认值为0。
2、订单信息表中属性值数量默认为1单位。
55 触发器设计
1、 当采购完成后,即在进货信息表中添加信息时,建立该表上的插入触发器。该触发器的功能是当进货信息表中插入信息时,将进货的商品信息自动添加到商品信息表中以及在商品库存表在自动增加库存量。在这些动作完成之后,将进货信息表中添加的该信息删除。
2、 在订单信息表上建立插入触发器。如果订单中要添加的商品信息在商品信息表中不存在,则不予以添加。当订单信息成功提交,即订单信息表在成功插入新记录时,首先根据该顾客的积分情况自动生成折扣,然后自动将订单信息表中的记录添加到销售信息表中,并且将积分信息表中的记录更新或添加。在这些动作完成之后,再将订单信息表在的该记录删除。
3、 在商品库存量不足的时候需要系统提示工作人员及时的进行采购,所以在商品库存表上建立一个触发器就可以完成以上功能。当商品库存量到达一定的底线时,自动给采购、库存管理员留言,即在留言信息表中添加信息。这样可以对商品库存情况动态掌握。
6 数据库视图设计
1、为了方便查看部门信息,建立部门信息视图。显示部门信息表中的全部内容。
2、商品查询在网上超市管理系统中查看的非常频繁,需要建立商品信息视图。显示商品信息表中的全部信息。
3、建立顾客信息视图,显示顾客信息表中的全部内容。
4、在采购的时候,采购人员需要对供应商的信息进行查询,因此需要建供应商信息视图,显示该表中的全部内容。
5、当顾客在网上逛过超市后会将自己喜欢的商品先放入购物车中备选,这时就需要对购物车进行查询。所以有必要建立购物车信息视图。除了显示购物车表中的全部信息外,还需要连接查询并显示商品信息表中的商品名称和商品规格以及其他的商品信息。
6、顾客确定要购买商品的时候,需要提交订单信息,而在提交之前必须对其进行查询,所以需要建立订单信息视图。显示订单信息,以及连接查询并显示商品信息表中的商品名称和商品规格以及其他的商品信息。
7、对于网上超市的各部门的负责人来说,经常需要对员工的信息查看,故建立员工信息视图。除显示员工信息表中全部信息外,还要通过连接查询并显示部门名称。
8、采购人员在采购前后都需要对进货信息进行查询,这就需要建立进货信息视图。除显示进货信息表中全部信息外,还要通过连接查询并显示供应商的公司名称、联系人姓名、联系电话和商品名称、商品规格、商品产地、数量及单价。
9、每隔一段时间,都要查看一下收益如何,即查询销售情况。因此需要建立一个销售信息视图。显示销售信息表中的全部信息和通过连接查询并显示商品名称、商品规格、商品产地、数量及单价。除此之外,还要计算并显示销售总额。
10、建立仓库信息视图,显示仓库信息表中的所有信息即可。
11、建立留言信息视图。显示留言信息表中的全部信息以及通过连接查询并显示顾客姓名和回复人的姓名。
12、对积分的查询也是顾客经常查询的项目。所以非常有必要建立积分信息视图。显示积分信息表在的所有信息和连接查询并显示顾客姓名。
13、不管是在销售还是在采购的时候,都要对商品的库存量进行查询。因此要建立商品库存信息视图。显示库存信息以及通过连接查询并显示仓库名称和商品名称、商品规格等其他商品信息。
7 数据库存储过程设计
1、 顾客是网上超市管理系统的最主要的用户,也需要经常的添加和删除,故建立顾客删除存储过程。在删除某个顾客信息的时候,如果他的购物车中还有记录,则将其删除;若他提交了订单信息,也要把订单信息中的记录删除;最后还要把留言信息表和积分表中与该顾客相关的信息一并删除。
2、 建立删除员工的存储过程。如果该员工是某个部门的负责人,则一般情况下不予以删除,如果要删除,则必须对部门信息表中的负责人进行更新。若该员工是留言信息表中的回复人,则要对留言信息表在回复人编号进行修改或者删除。
3、 建立删除商品的存储过程。如果某个商品已经过了保质期或者已经被淘汰了,则要对这样的商品进行删除。首先要在商品信息表中把这些商品删除,在商品库存表将其删除,其次若果有顾客将该商品选入了购物车,甚至提交了订单,则要对顾客予以说明并将其从购物车表和订单信息表中删除。
8 权限设计
9 总结
理论联系实际才能做好一件事,学习一门课程同样是这样。通过一周的数据库课程设计实习,我受益匪浅,从中学到了许多新知识,这些知识是在课堂中不能学到或者说很难学到的。并且对数据库应用这一门课程有了更深一步的理解。在做课程设计中,我们可以把课堂上所学的理论知识和实践联系起来,在所要开发的系统中渐渐学会了融会贯通。同样通过对SQL的应用,也使我们熟练和巩固了对SQL的理解。这样我们对开发系统的整个过程也有了一个系统的了解。
这次课程设计,我选择的课题是《教务管理系统》,在教务管理系统的开发中采用了完整的数据库设计的全过程,从需求分析到概念结构设计,到逻辑结构设计,再到物理结构设计,最后到数据库的实施和维护,每一步都认真的分析和实施。当然,在本次课程设计的成果中还存在许多的不足之处,这就需要我们学习更多的知识,进行更深研究。
在这次实习中,我们完全投入到了开发系统的世界里。结束后明白了理论和实践要想充分地结合,需要非常扎实的基本功。这就说明学好基础知识是理论付诸实践的前提。在开发教务管理系统中我学到了很多,希望在以后能充分利用实习的机会充实自己,用所学的理论知识充分去实践,在实践中又要努力去巩固理论知识。只有这样,才能把一门课程甚至一门学科学精、学透
参考资料:
1 萨师煊,王珊数据库系统概论高等教育出版社第三版2000
2 龚波等译 SQL SERVER 2000教程北京希望电子出版社
3 史嘉权,史红星,李博等数据库系统概论习题、实验与考试辅导清华大学出版社2006
4 赵乃真等信息系统设计与应用清华大学出版社2005
注:由于这里不好排版,文章中的表格和没有显示出来,我打包成附件了,可以下载查看。
用户表:{用户编号(PK),用户名,密码,用户类别, 所属专业号(FK)}
课程表:{课程编号(PK),课程名,用户编号(FK) ,学分}
院 系:{院系编号(PK),院名}
专 业:{专业号(PK),专业名称 ,专业简介 ,总学时,所属院号(FK)}
参考书:{索书号(PK),课程编号(FK),ISBN/ISSN,责任者,出版日期,校图书馆连接地址,电子书连接地址}
专业课程表{专业号,课程编号} 联合主键
《数据库系统导论》(第七版)CJDate著机械工业出版社,数据库领域中的权威著作,专业理论书籍出版至第七版,在业界是罕见的,可以想见该书具有多高的水平。
《数据库系统概念》(第三版)Silberschatz著机械工业出版社光看作者的名字就知道这肯定是一本好书。
《数据库系统基础教程》清华大学出版社、《数据库系统实现》机械工业出版社JDUllman著斯坦福大学五门数据库系列课程的前两门教材,《数据库系统实现》一书的层次在我国已相当于研究生课程水平。
《数据库设计》Stephens著机械工业出版社一本不太厚也不太难的入门书。
《数据挖掘--概念与技术》JiaweiHan(韩家炜)著机械工业出版社数据挖掘领域的国际知名专家韩家炜教授最新力作,系统而全面的介绍了数据挖掘技术,可读性甚佳。
《数据库处理--基础、设计与实现》(第七版)DMKroenke著电子工业出版社很少见的使用Access作为实例介绍数据库原理与设计的书,内容清晰易懂。
《数据库系统概论》(第三版)萨师煊、王珊著高教出版社国内本科及研究生专选教材,两位作者均为我国数据库界的著名专家。
《数据库原理、编程与性能》作者:(美)PatrickO'NeilElizabethO'Neil译者:周傲英俞荣华季文_钱卫宁等
本书既强调理论又强调应用,全书众多的定义、定理、详细的证明过程、丰富的应用实例使得本书翻之有望而生畏之感,读之又有畅快淋漓之觉。实在是一本不可多得的好书,值得大家认真去学。
这个要看你想看数据库哪方面的,因为数据库所涵盖的范畴很大,比如说数据库的基本理论,简单点那你可以看一些本科教材,比如说数据库系统概论 是一个姓萨的写的,如果是想看一些具体的数据库DBMS方面的书,比如说Orecle 、SQL Server等,这样书太多了,都是工具性质的,可以选一本自己看着习惯的;再或者你想了解一些数据库方面的一些技术,比如说数据挖掘、数据仓库的话,我个人认为可以看看机械出版社出版的那些大砖头。呵呵,很多的。
《数据库原理及应用》课程设计
数据库原理课程设计任务书
一、目的
1 掌握计算机管理信息系统设计的一般方法,主要包括系统分析、系统设计的组织和实施。
2 关系型数据库管理系统的编程技术,并能独立完成一般小系统的程序设计、调试运行等工作。
3 培养把所学知识运用到具体对象,并能求出解决方案的能力。
二、任务(任选其一)
A运用关系型数据库管理系统,实现本院图书馆管理信息系统。具体要求如下:
—图书、资料的登记、注销和查询。
—借书证管理,包括申请、注销借书证,查询借书证持有人等。
—借还图书、资料的登记、超期处理,超期拒借等。
—图书、资料查询,借、还图书和资料情况查询。
—图书、资料借阅情况的统计分析,拒此作为图书馆图书、资料订够的依据之一。(本项不作为基本要求)
B 运用关系型数据库管理系统,实现服务电话管理系统
向客户现场派技术人员的服务公司可以用服务电话管理系统跟踪客户、员工、工作订单、发票、付款等等。
要求:
数据库要存储以下信息:
—客户信息
—客户工需单信息
—完成工需单所需人工
—完成工需单所需部件
—部件信息
—付款信息
—雇员信息
完成的功能:
—输入/查看 客户工需单信息
—输入/查看部件、雇员等其它信息
—付款
—打印发票等
三、结果形式
1. 设计报告:含E-R图、数据字典、关系模式、关系实例、查询描述、关系代数、SQL实现的查询语言及查询结果。
2. 上机实现。
四、考核
1. 课程设计态度(20分)。
2. 递交的书面材料(40分)。
3. 上机运行情况(40分)
目录
1问题描述 2
11背景 2
12数据需求 2
13事物需求 3
14关系模式 3
2方案图表设计 3
21 E-R图 3
22数据流程图 8
23数据字典 9
24关系图: 11
3数据库源代码 12
31数据库建立 12
32数据初始化 14
4结果数据处理 17
41单表查询 17
42超期处理 19
43还书 *** 作 20
44借书 *** 作 22
45书籍状态 24
46读者状态 24
5结束语 26
51课程设计心得 26
1问题描述
11背景
随着图书馆规模的不断扩大,图书数量也相应的增加,有关图书的各种信息量也成倍增加,面对着庞大的信息量,传统的人工方式管理会导致图书馆管理上的混乱,人力与物力过多浪费,图书馆管理费用的增加,从而使图书馆的负担过重,影响整个图书馆的运作和控制管理,因此,必须制定一套合理、有效,规范和实用的图书管理系统,对图书资料进行集中统一的管理。
另一方面,IT产业和Internet获得了飞速发展,计算机应用已渗透到了各个领域,引起信息管理的革命,实现了信息的自动化处理,提高了处理的及时性和正确性。
提高图书管理工作效率,作到信息的规范管理,科学统计和快速查询,让图书馆更好的为学校,社会服务。
12数据需求
图书馆管理信息系统需要完成功能主要有:
1 读者基本信息的输入,包括借书证编号、读者姓名、读者性别。
2.读者基本信息的查询、修改,包括读者借书证编号、读者姓名、读者性别等。
3.书籍类别标准的制定、类别信息的输入,包括类别编号、类别名称。
4.书籍类别信息的查询、修改,包括类别编号、类别名称。
5.书籍库存信息的输入,包括书籍编号、书籍名称、书籍类别、作者姓名、出版社名称、出版日期、登记日期。
6.书籍库存信息的查询,修改,包括书籍编号、书籍名称、书籍类别、作者姓名、出版社名称、出版日期登记日期等。
7.借书信息的输入,包括读者借书证编号、书籍编号、借书日期。
8.借书信息的查询、修改,包括借书证编号、读者编号、读者姓名、书籍编号、书籍名称、借书日期等。
9.还书信息的输入,包括借书证编号、书籍编号、还书日期。
10.还书信息的查询和修改,包括还书读者借书证编号、读者姓名、书籍编号、书籍名称、借书日期、还书日期等。
11.超期还书罚款输入,还书超出期限包括超出期限还书的读者借书证号,书籍编号,罚款金额。
12.超期还书罚款查询,删除,包括读者借书证编号、读者姓名、书籍编号、书籍名称,罚款金额等
13事物需求
(1)在读者信息管理部分,要求:
a可以查询读者信息。
b可以对读者信息进行添加及删除的 *** 作。
(2 )在书籍信息管理部分,要求:
a可以浏览书籍信息,要求:
b可以对书籍信息进行维护,包括添加及删除的 *** 作。
(3)在借阅信息管理部分,要求:。
a可以浏览借阅信息。
b可以对借阅信息进行维护 *** 作。
(4)在归还信息管理部分,要求:
a可以浏览归还信息
b对归还信息可修改维护 *** 作
(5)在管理者信息管理部分,要求:
a显示当前数据库中管理者情况。
b对管理者信息维护 *** 作。
(6)在罚款信息管理部分,要求:
a可以浏览罚款信息
b对罚款信息可以更新
14关系模式
(一) 书籍类别(种类编号,种类名称)
(二) 读者(借书证编号,读者姓名,读者性别,读者种类,登记时期)
(三) 书籍(书籍编号,书籍名称,书籍类别,书记作者,出版社名称,出版日期,登记日期)
(四) 借阅(借书证编号,书籍编号,读者借书时间)
(五) 还书(借书证编号,书籍编号,读者还书时间)
(六) 罚款(借书证编号,读者姓名,借书证编号,书籍编号,读者借书时间)
以上通过关系代数方法的进行运算得到所需要的结果,在实验结果中可以看到。
2方案图表设计
21 E-R图
根据1)所要实现的功能设计,可能建立它们之间的关系,进而实现逻辑结构功能。
图书管理信息系统可以划分的实体有:书籍类别信息实体、读者信息实体、书籍信息实体、借阅记录信息实体,归还记录信息实体。用E-R图一一描述这些实体。
211类别实体E-R图:
图2-1类别实体E-R图
212读者信息实体E-R图:
图2-2 读者信息实体E-R图
213信息实体E-R图:
图2-3信息实体E-R图
214记录信息实体E-R图:
图2-4 记录信息实体E-R图
215记录信息实体E-R图:
图2-5记录信息实体E-R图
216罚款信息实体E-R图:
图2-6罚款信息实体E-R图
216总的信息实体E-R图:
图2-7总的信息实体E-R图
22数据流程图
D5
归还信息录入 基本信息录入
D2
D1
基本信息录入 基本信息录入
D3
D4
借阅信息录入
读者信息返回 书籍信息返回
图2-7系统的数据流程图
23数据字典
表2-1 book_sytle 书籍类别信息表
表中列名 数据类型 可否为空 说明
bookstyleno varchar not null(主键) 种类编号
bookstyle Varchar not null 种类名称
表2-2 system_readers读者信息表格
表中列名 数据类型 可否为空 说明
readerid varchar not null(主键) 读者借书证号
readername varchar not null 读者姓名
readersex varchar not null 读者性别
readertype varchar null 读者种类
regdate datetime null 登记日期
表2-3 system_book书籍信息表
表中列名 数据类型 可否为空 说明
bookid Varchar Not null(主键) 书籍编号
bookname Varchar Not null 书籍名称
bookstyle Varchar Not null 书籍类别
bookauthor Varchar Not null 书籍作者
bookpub Varchar Null 出版社名称
bookpubdate Datetime Null 出版日期
bookindate Datetime Null 登记日期
isborrowed Varchar Not Null 是否被借出
表2-4 borrow_record 借阅记录信息表
表中列名 数据类型 可否为空 说明
readerid Varchar Not null(外主键) 读者借阅证编号
bookid Varchar Not null(外主键) 书籍编号
borrowdate Varchar Not null 读者借书时间
表2-5 return_record 借阅记录信息表
表中列名 数据类型 可否为空 说明
readername Varchar Not null(外主键) 读者借阅证编号
readerid Varchar Not null(外主键) 书籍编号
returndate datetime Not null 读者还书时间
表2-6 reader_fee 罚款记录信息表
readerid varchar Not null 读者借书证编号
readername varchar Not null 读者姓名
bookid varchar Not null(外主键) 书籍编号
bookname varchar Not null 书籍名称
bookfee varchar Not Null 罚款金额
borrowdate datetime Not Null 借阅时间
24关系图:
图2-8数据库存表关系图
3数据库源代码
31数据库建立
311创建数据库
USE master
GO
CREATE DATABASE librarysystem
ON
( NAME = librarysystem,
FILENAME = 'd:\librarysystemmdf',
SIZE = 10,
MAXSIZE = 50,
FILEGROWTH = 5 )
LOG ON
( NAME = 'library',
FILENAME = 'd:\librarysystemldf',
SIZE = 5MB,
MAXSIZE = 25MB,
FILEGROWTH = 5MB )
GO
312书本类别表建立
create table book_style
(
bookstyleno varchar(30) primary key,
bookstyle varchar(30)
)
313创建书库表
create table system_books
(
bookid varchar(20) primary key,
bookname varchar(30) Not null,
bookstyleno varchar(30) Not null,
bookauthor varchar(30),
bookpub varchar(30) ,
bookpubdate datetime,
bookindate datetime ,
isborrowed varchar (2) ,
foreign key (bookstyleno) references book_style (bookstyleno),
)
314借书证表建立
create table system_readers
( readerid varchar(9)primary key,
readername varchar(9)not null ,
readersex varchar(2) not null,
readertype varchar(10),
regdate datetime
)
315借书记录表建立
create table borrow_record
( bookid varchar(20) primary key,
readerid varchar(9),
borrowdate datetime,
foreign key (bookid) references system_books(bookid),
foreign key (readerid) references system_readers(readerid),
)
316还书记录表建立
create table return_record
( bookid varchar(20) primary key,
readerid varchar(9),
returndate datetime,
foreign key (bookid) references system_books(bookid),
foreign key (readerid) references system_readers(readerid)
)
317罚款单表建立/
create table reader_fee
( readerid varchar(9)not null,
readername varchar(9)not null ,
bookid varchar(20) primary key,
bookname varchar(30) Not null,
bookfee varchar(30) ,
borrowdate datetime,
foreign key (bookid) references system_books(bookid),
foreign key (readerid) references system_readers(readerid)
)
32数据初始化
321将书籍类别加入表book_style中
insert into book_style(bookstyleno,bookstyle)values('1','人文艺术类')
insert into book_style(bookstyleno,bookstyle)values('2','自然科学类')
insert into book_style(bookstyleno,bookstyle)values('3','社会科学类')
insert into book_style(bookstyleno,bookstyle)values('4','艺术类')
insert into book_style(bookstyleno,bookstyle)values('5','政治经济类')
insert into book_style(bookstyleno,bookstyle)values('6','工程技术类')
insert into book_style(bookstyleno,bookstyle)values('7','语言技能类')
322将已有的图书加入system_books表中(定义相同的作者出版社的书本编号不一样)
insert
into system_books(bookid ,bookname, bookstyleno,bookauthor,bookpub,bookpubdate, bookindate, isborrowed )
values('00125415152','计算机组成原理','6','王爱英','清华大学出版社','2001-01-03','2003-11-15','1');
insert
into system_books(bookid ,bookname, bookstyleno,bookauthor,bookpub,bookpubdate, bookindate, isborrowed )
values('00125415153','计算机组成原理','6','王爱英','清华大学出版社','2001-01-03','2003-11-15','1');
insert
into system_books(bookid ,bookname, bookstyleno,bookauthor,bookpub, bookpubdate,bookindate, isborrowed )
values('00456456','数据库原理','6','萨师煊','高等教育出版社','2007-07-02','2007-09-15','1');
insert
into system_books(bookid ,bookname, bookstyleno,bookauthor,bookpub,bookpubdate, bookindate, isborrowed )
values('12215121','C程序设计','6','谭浩强','清华大学出版社','2002-04-02','2004-03-14','1');
insert
into system_books(bookid ,bookname, bookstyleno,bookauthor,bookpub, bookpubdate,bookindate, isborrowed )
values('9787308020558','计算机体系结构','6','石教英','浙江大学出版社','2004-10-03','2006-11-15','1');
insert
into system_books(bookid ,bookname, bookstyleno,bookauthor,bookpub, bookpubdate,bookindate, isborrowed )
values('45456141414','数据结构(C语言版)','6','吴伟民,严蔚敏','清华大学出版社','2002-06-28','2004-01-21','1');
insert
into system_books(bookid ,bookname, bookstyleno,bookauthor,bookpub, bookpubdate,bookindate, isborrowed )
values('5455515','中华历史5000年','1','吴强','北京大学出版社','2005-04-03','2006-05-15','1');
insert
into system_books(bookid ,bookname, bookstyleno,bookauthor,bookpub, bookpubdate,bookindate, isborrowed )
values('015115','古代埃及','3','赵文华','北京大学出版社','2001-02-02','2002-09-15','1');
insert
into system_books(bookid ,bookname, bookstyleno,bookauthor,bookpub, bookpubdate,bookindate, isborrowed )
values('1514514','日本文化','1','吴小鹏','北京大学出版社','2002-04-02','2004-03-14','1');
insert
into system_books(bookid ,bookname, bookstyleno,bookauthor,bookpub, bookpubdate,bookindate, isborrowed )
values('15154656','微观经济学','5','李小刚','北京大学出版社','2000-10-03','2001-11-15','1');
insert
into system_books(bookid ,bookname, bookstyleno,bookauthor,bookpub, bookpubdate,bookindate, isborrowed )
values('5658','影视文学','4','苏庆东','北京大学出版社','1999-02-28','2000-01-21','1');
insert into
system_books(bookid ,bookname, bookstyleno,bookauthor,bookpub, bookpubdate,bookindate, isborrowed )
values('565800020','探索宇宙奥秘','2','苏庆东','北京大学出版社','1999-02-28','2000-01-21','1');
323将已有图书证的读者加入system_readers表中/
insert into system_readers(readerid,readername,readersex,readertype,regdate)
values('X05620207','陈远鹏','男','学生','2005-9-23 14:23:56')
insert into system_readers(readerid,readername,readersex,readertype,regdate)
values('X05620206','陈特','男','学生','2005-09-30 13:24:54623')
insert into system_readers(readerid,readername,readersex,readertype,regdate)
values('X05620204','赵铭静','女','学生','2005-09-27 11:24:54123')
insert into system_readers(readerid,readername,readersex,readertype,regdate)
values('X05620202','潘虹','女','学生','2005-09-30 13:24:54473')
insert into system_readers(readerid,readername,readersex,readertype,regdate)
values('008415','蒋伟','男','教师','2004-04-30 09:24:54478')
insert into system_readers(readerid,readername,readersex,readertype,regdate)
values('001456','李叶风','女','教师','2004-04-30 09:24:54478')
324添加已借书读者的记录,同时将在已借出的借阅标记置0/
insert into borrow_record(bookid,readerid,borrowdate)
values('00125415152','X05620202','2007-09-27 11:24:54123')
update system_books
set isborrowed=0
where bookid='00125415152'
insert into borrow_record(bookid,readerid,borrowdate)
values('00125415153','X05620206','2007-12-27 08:26:51452')
update system_books
set isborrowed=0
where bookid='00125415153' and isborrowed='1'
insert into borrow_record(bookid,readerid,borrowdate)
values('5455515','X05620207','2007-12-27 08:26:51452')
update system_books
set isborrowed=0
where bookid='5455515' and isborrowed='1'
insert into borrow_record(bookid,readerid,borrowdate)
values('015115','X05620204','2007-10-21 12:11:51452')
update system_books
set isborrowed=0
where bookid='015115' and isborrowed='1'
insert into borrow_record(bookid,readerid,borrowdate)
values('15154656','001456','2007-12-28 14:11:51312')
update system_books
set isborrowed=0
where bookid='15154656' and isborrowed='1'
insert into borrow_record(bookid,readerid,borrowdate)
values('565800020','008415','2007-08-28 15:11:31512')
update system_books
set isborrowed=0
where bookid='565800020' and isborrowed='1'
4结果数据处理
41单表查询
411表book_style中查询演示:
图4-1 表book_style中内容
412表system_books中查询演示:
图4-2 表system_books中内容
413将已有图书证的读者加入system_readers表中结果查询:
图4-3 表system_readers中内容
414借书纪录表borrow_record结果查询:
图4-4 表borrow_record中内容
42超期处理
421现在对已有借书证的读者进行查询借书是否超期(这里归定30天):
说明:当前的getdate()以日期为2008年1月6日计算
图4-4 选出借出超过30天的读者
422同时也可以用语句超过天数的读者进行罚款,加入到罚款单里面,一天以03元扣除计算:
SQL语言:
insert into reader_fee(readerid,readername,bookid,bookname,bookfee,borrowdate)
select system_readersreaderid 读者借书证编号 ,readername 读者姓名,
system_booksbookid 书籍编号,bookname 书名,
03(Datediff(day,convert(smalldatetime,borrowdate),getdate())-30) 超过时间天数,
borrowdate 借书时间
from borrow_record ,system_readers ,system_books
where system_readersreaderid=borrow_recordreaderid
and system_booksbookid=borrow_recordbookid
and Datediff(day,convert(smalldatetime,borrowdate),getdate())>=30
(所影响的行数为 3 行)
select readerid 书读者借书证编号,readername 读者姓名,
bookid 书籍编号,bookfee 超期罚款
from reader_fee
形成各本书对应的罚款金额,按03元每天算
图4-5查看罚款单
43还书 *** 作
431现在对某一读者进行还书 *** 作:
1.首先还书要在还书纪录中添加一条还书纪录
2.其次删除相应书本的借阅纪录
3.最后在书库中标记该本书为1,表示归还了未借,可供其他读者借阅
说明:学号为X05620207 姓名为陈远鹏 借阅的565800020书籍编号进行归还。
SQL语言:
insert into return_record(bookid,readerid,returndate)
select bookid,readerid,getdate()
from borrow_record
where bookid='565800020'
(所影响的行数为 1 行)
delete
from borrow_record
where bookid='565800020'
(所影响的行数为 1 行)
update system_books
set isborrowed=1
where bookid='565800020'
(所影响的行数为 1 行)
三个表的结果如图:
图4-6 增加了565800020纪录
图4-7 565800020这本书在借书纪录里没有了
图4-8 标记设为了‘1’
说明:这本书重新回到未被借出标记为1(注,相同的书其编号是不同的)
其结果为还书成功,相应的各表都有变化,对于罚款单通过借阅记录表borrow_record中更新。
44借书 *** 作
441查询未被借出的书本:
图4-9
442查询已被借出的书本:
图4-10
443申请借书证:
SQL语言:
Insert into system_readers(readerid,readername,readersex,readertype,regdate)
values('X05620211','小华','男','学生',getdate())
图4-11
说明:查询相应的纪录增加了小华这样一个读者的借书证纪录:
444注销借书证:
说明:
1.在注销之前执行所有的还书过程,就是上面写到的所述SQL语句,然后执行
delete from system_readers where readerid=' X05620211',
2.小华借书证纪录就被删除了,同时要删除和小华归还纪录的内容
delete from return_record where readerid=' X05620211',
445查询所有书所对应的类别:
图4-12
45书籍状态
451查询所有工技术类的书:
图4-13
452查询清华大学出版社出版的书:
图4-14
46读者状态
461查询什么人借了什么书:
SQL语言:
select readername 读者姓名,bookname 书籍名称
from borrow_record,system_books,system_readers
where system_readersreaderid=borrow_recordreaderid
and system_booksbookid=borrow_recordbookid
图4-15
462指定潘虹借了什么书:
SQL语言:
select readername 读者姓名,bookname 书籍名称
from borrow_record,system_books,system_readers
where system_readersreaderid=borrow_recordreaderid
and system_booksbookid=borrow_recordbookid
and readername='潘虹'
图4-16
5结束语
51课程设计心得
通过此次数据库的课程设计,真正达到了学与用的结合,增强了对数据库方面应用的理解,对自己今后参与开发数据库系统积累了不少经验,在实验过程中,从建立数据开始,对灵据库设计理念及思想上有更高的认识,从需求分析,到概念设计和逻辑设计,E-R图的表示,数据字典的创建,懂得了不少有关数据库开发过程中的知识,在实验中建表,及其关系模式,关系代数的建立及理解,将SQL语的查询语句用得淋漓尽致,增强了自己在数据库中应用SQL语言的灵活性,其中包括,插入、删除、修改、查询,牵涉表和表之间的联系,主建与外主键的定义,约束项的设置,使逻辑更严密,在学习过程中,我也能过上网查了不少资料,也看了一些别人设计的图书馆管理信息系统的设计报告,学以致用,自我创新,独立完成了这份自己的报告,从中在学到用,从用又到学,不断修改,系统更新。虽然不能达到完善系统,但也做到了尽善尽美,加强理论学习对完善系统会有很多帮助,不管怎么说,对这次做的课程设计自己觉得还算满意。
以上就是关于数据库大作业,要求做一个网上书店信息系统,VB+SQL全部的内容,包括:数据库大作业,要求做一个网上书店信息系统,VB+SQL、数据库sql 的课程设计怎么做,要借哪些书看,求大神指教、数据库表的设计等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)