




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
长春高校计算机学院网络工程专业数据库原理试验报告试验名称:试验五简洁的数据库系统设计——图书管理系统班级:网络五班姓名:董迎顺学号:041440516试验地点:机房日期:2015-12-7一、试验目的:通过完成从用户需求分析、数据库设计到上机编程、调试和应用等全过程,进一步理解和驾驭数据库的设计过程及方法。二、试验内容、要求和环境:【试验要求】注:将完成的试验报告重命名为:班级+学号+姓名+(试验五),(如:041340538张三(试验五)),发邮件到:。提交时限:本次试验后24小时之内。试验课要携带教材、学习辅导、老师下发的试验报告文档等。课前要对试验内容和步骤部分进行预习。【试验环境】1.SQLSERVER2005/2008;2.KingBaseESV7.0,人大金仓。【试验内容和步骤】一个简洁的图书管理系统包括图书馆内书籍的信息、学校在校学生的信息以及学生的借阅信息。此系统功能分为面对学生和面对管理员两部分,其中面对学生部分可以进行借阅、续借、归还和查询书籍等操作;面对管理员部分可以完成书籍和学生的增加、删除和修改以及对学生借阅、续借、归还的确认。参照附录的试验报告参考实例,完成如下内容:1.需求分析(1)借阅人基本信息的查询,输入,插入,修改,删除。包括借阅人的图书证号,姓名,班级,电话,已借书目,能否能借书。(2)图书基本信息的查询,输入,插入,修改,删除。包括图书的图书编号,书名,书号,类别,定价,入库时间,库存量等。(3)借阅的基本信息的查询,输入,插入,修改,删除。包括借阅的借书时间,应还时间,图书证号,图书编号,是否续借等。(4)借阅书籍基本信息的查询,输入,插入,修改,删除。包括借阅书籍的图书编号,图书证号,书名等。(5)归还书籍基本信息的查询,输入,插入,修改,删除。包括归还书籍的图书编号,图书证号,书名等。(6)管理基本信息的查询,输入,插入,修改,删除。包括管理的图书编号,图书证号,登记借书日期,是否在库,存放位置等。(7)管理员基本信息的查询,输入,插入,修改,删除。包括管理员的编号,姓名,性别,值日时间,联系方式等。2.概念结构设计(E-R图)实体:图书信息,借阅书籍,归还书籍,借阅人,管理员联系:借阅信息,管理信息。库存量入库时间定价类别书号书名图书编号库存量入库时间定价类别书号书名图书编号 是否在库图书编号是否在库图书编号存放位置借书时间图书信息存放位置借书时间图书信息管理借阅信息 m m管理借阅信息登记日期借书时间登记日期借书时间图书编号应还时间图书编号应还时间姓名图书证号姓名图书证号班级图书编号借阅人借阅书籍归还书籍班级图书编号借阅人借阅书籍归还书籍姓名管理员姓名管理员电话图书证号电话图书证号性别性别书名书名编号图书证号编号图书证号值日时间已借书目值日时间已借书目姓名能否能借书图书证号图书编号联系方式姓名能否能借书图书证号图书编号联系方式3.逻辑结构设计通过E-R图,写出关系模式的逻辑结构。借阅人(图书证号【主码】,姓名,班级,电话,已借书目,能否能借书)图书基本信息(图书编号【主码】,书名,书号,类别,定价,入库时间,库存量)借阅的基本信息(图书证号,图书编号【外码】,借书时间【主码】,应还时间,是否续借)借阅书籍基本信息(图书编号【外码】,图书证号【外码】,书名)归还书籍基本信息(图书编号【外码】,图书证号【外码】,书名)管理基本信息(图书编号【外码】,图书证号【外码】,登记借书日期【外码】,是否在库,存放位置)管理员基本信息(编号【主码】,姓名,性别,值日时间,联系方式)4.物理设计1.图书基本信息属性数据类型长度主码/外码图书编号char10主码书名char10书号char10类别char10定价money入库时间date库存量int借阅人基本信息属性数据类型长度主码/外码姓名char10电话char10班级char10图书证号char10主码已借书目int能否能借书char2借阅的基本信息属性数据类型长度主码/外码图书证号char10图书编号char10外码借书时间date主码应还时间date是否续借char2借阅书籍基本信息属性数据类型长度主码/外码图书编号char10外码图书证号char10外码书名char106管理基本信息属性数据类型长度主码/外码图书编号char10外码图书证号char10外码登记借书日期date外码是否在库char2存放位置char107管理员基本信息属性数据类型长度主码/外码姓名char10性别char2编号char10主码值日时间date联系方式char105.用SQL实现数据库的设计,并在SQLServer上调试通过。(1)建表(考虑完整性约束)/**********图书基本信息*************/createtable图书基本信息(图书编号char(10)primarykey,书名char(10),书号char(10),类别char(10),定价money,入库时间date,库存量int)/**********借阅人基本信息**********/createtable借阅人(图书证号char(10)primarykey,姓名char(10),班级char(10),电话char(10),已借书目int,能否能借书char(2),)/***********借阅基本信息**********/createtable 借阅的基本信息(图书证号char(10),图书编号char(10)references图书基本信息(图书编号),借书时间dateprimarykey,应还时间date,是否续借char(10),)/******借阅书籍基本信息*******/createtable 借阅书籍基本信息(图书编号char(10)references图书基本信息(图书编号),图书证号char(10)references借阅人(图书证号),书名char(10))/*******归还书籍基本信息********/createtable归还书籍基本信息(图书编号char(10)references图书基本信息(图书编号),图书证号char(10)references借阅人(图书证号),书名char(10))/**********管理基本信息**********/createtable管理基本信息(图书编号char(10)references图书基本信息(图书编号),图书证号char(10)references借阅人(图书证号),登记借书日期datereferences借阅的基本信息(借书时间),是否在库char(2),存放位置char(10))/**********管理员基本信息************/createtable管理员基本信息(姓名char(10),性别char(2),编号char(10)primarykey,值日时间date,联系方式char(10))(2)学生、图书以及借阅信息的输入、删除和修改。/********借阅人信息输入************/insertinto借阅人values(20151214,'张三','网络五班',1234564789,3,'能')insertinto借阅人values(20151216,'王五','网络五班',1434564789,1,'能')insertinto借阅人values(20151217,'董六','网络五班',1534564789,2,'能')insertinto借阅人values(20151218,'孙七','网络五班',1634564789,3,'能')/********图书基本信息输入************/insertinto图书基本信息values(000001,'英语','b001','语言类',30,'2015-12-01',150)insertinto图书基本信息values(000002,'线性代数','b011','几何类',34,'2015-11-01',100)insertinto图书基本信息values(000003,'数据库','b101','计算机类',40,'2015-12-11',90)insertinto图书基本信息values(000004,'近代史','b111','历史类',25,'2015-10-01',50)/********借阅的基本信息输入************/insertinto借阅的基本信息values(20151214,000001,'2015-12-11','2016-01-11','否')insertinto借阅的基本信息values(20151216,000002,'2015-11-11','2015-12-11','否')insertinto借阅的基本信息values(20151217,000003,'2015-12-12','2016-01-12','否')insertinto借阅的基本信息values(20151218,000004,'2015-12-10','2016-01-10','否')三、思索题:对数据库设计的过程有了哪些进一步的理解?答;通过这次的课程设计,我对数据库有了进一步的了解,我娴熟的驾驭了数据库的一些基本语法,比如如何建表,以及添加,删除,查找,更新等操作。我也练习了创建E-R图和从E-R图得到关系图,通过设计物理结构,来创建一个图书管理系统。立刻就要期末考试了,这次课程设计,帮助了我复习以前的学问。五、老师评语:试验成果:老师:(签名)年月日附:试验报告参考示例零件交易中心管理系统试验报告一、试验目的通过完成从用户需求分析、数据库设计到上机编程、调试和应用等全过程,进一步理解和驾驭数据库的设计过程及方法。二、试验内容零件交易中心管理系统主要供应顾客和供应商之间完成零件交易的功能,其中包括供应商信息、顾客信息以及零件信息。供应商信息包括供应商、供应商号、地址、电话、简介;顾客信息包括顾客号、顾客名、地址、电话;零件信息包括零件号、零件名、重量、颜色、简介等。此系统可以让供应商增加、删除和修改所供应的零件产品,还可以让顾客增加、删除和修改所需求的零件。交易员可以利用顾客提出的需求信息和供应商提出的供应信息来提出交易的建议,由供应商和顾客进行确认后完成交易。三、试验过程需求分析(1)供应商供应商的操作流程如图1所示。图1(2)顾客顾客的地位和供应商几乎是对称的,所以功能分类上也很相像。顾客的操作流程如图2所示:图2(3)交易员交易员的工作就是提出交易和完成交易。须要细致考虑的问题是:一个交易如何产生,并如何达成。这可以用图3来说明。图3处理交易的时候可能面临如下问题:a.一个交易只能在交易双方都同意的状况下才可以进行,所以数据库中的供求信息只能作为达成某个交易的基础;b.交易的双方可能不同时运用这个系统,因此须要系统供应一个双方交换信息的方式;c.系统须要供应一种便利系统(交易员)向用户提出建议来促成交易的途径,并在保证数据库数据完整性的状况下达成交易。2.概念模型设计数据库须要表述的信息有以下几种:(1)零件信息;(2)供应商信息;(3)顾客信息;(4)供应商零件之间的联系(供应)(5)顾客和零件之间的联系(求购);(6)交易(三元联系)用E-R模型表述该模型的设计,E-R图如图4所示。图43.逻辑设计通过E-R模型到关系模型的转化,可以得到如下关系模式:(1)零件关系:part(ID,color,name,weight,intro)(2)供应商关系:provider(ID,name,address,tele,intro)(3)顾客关系:customer(ID,name,address,tele)(4)供应关系:supply(partID,provideID,price,quantity)(5)求购关系:after(customerID,partID,price,quantity)(6)交易关系:Business(customerID,provideID,partID,price,quantity)每个关系模式的主码都用下划线标出。同时,对于从联系导出的关系供应,求购和交易,运用与之相联系的实体集的码作为自己的主码,必需符合外码的约束。对于顾客,供应商和零件之间,不存在干脆的约束,所以可以存在没有供应商供应同时也没有顾客求购的零件。4.物理设计为了提高在表中搜寻元组的速度,在实际实现的时候应当基于码建立索引。下面是各表中建立索引的表项。part(ID)provider(ID)customer(ID)supply(partID,provideID)after(customerID,partID)Business(customerID,provideID,partID5.用SQL实现设计实现该设计的环境为Windows2000Professional+MSSQLServer2000。(1)建立各表①建立零件表CREATETABLEPart(IDsmallintidentity(1,1)PRIMARYKEYCLUSTERED,Colorvarchar(20),Namevarchar(20)NOTNULL,Weightintdefault0,Introtext);②建立Provider表CREATETABLEProvider(IDsmallintidentity(1,1)PRIMARYKEYCLUSTERED,Namevarchar(20)NOTNULL,Passwordvarchar(8)NOTNULL,Addressvarchar(30),Telvarchar(20),Introtext);③建立Customer表CREATETABLECustomer(IDsmallintidentity(1,1)PRIMARYKEYCLUSTERED,Namevarchar(20)NOTNULL,Passwordvarchar(8)NOTNULL,Addressvarchar(30),Telvarchar(20));④建立Supply表CREATETABLESupply(PartIDsmallint,ProvideIDsmallint,Priceint,Quantityint,CONSTRAINTPK_SUPPLYPRIMARYKEYCLUSTERED(PartID,ProvideID),CONSTRAINTPK_SUPPLY_PARTIDFOREIGNKEY(PartID)REFERENCESPart(ID),CONSTRAINTPK_SUPPLY_PROVIDERIDFOREIGNKEY(ProvideID)REFERENCESProvider(ID));⑤建立After表CREATETABLEAfter(CustomerID,smallint,PartIDsmallint,Priceint,Quantityint,CONSTRAINTPK_AFTERPRIMARYKEYCLUSTERED(CustomerID,PartID),CONSTRAINTPK_AFTER_CUSTOMERIDFOREIGNKEY(CustomerID)REFERENCESCustomer(ID),CONSTRAINTPK_AFTER_PARTIDFOREIGNKEY(PartID)REFERENCESPart(ID));⑥建立Business表CREATETABLEBusiness(CustomerID,smallint,PartIDsmallint,ProvideIDsmallint,Priceint,Quantityint,CONSTRAINTPK_BUSSINESSPRIMARYKEYCLUSTERED(CustomerID,ProvideID,PartID),CONSTRAINTPK_BUSSINESS_CUSTOMERIDFOREIGNKEY(CustomerID)REFERENCESCustomer(ID),CONSTRAINTPK_BUSSINESS_PROVIDERIDFOREIGNKEY(ProvideID)REFERENCESProvider(ID));CONSTRAINTPK_BUSSINESS_PARTIDFOREIGNKEY(PartID)REFERENCESPart(ID));⑦供应商操作a.注册(Register)INSERTINTOProvider(Name,Address,Tel,Intro)VALUES(#Name,#Address,#Tel,#Intro)在登记操作后,供应商得到一个惟一的ID,可以依据这个ID来查询和修改供应商的数据。b.注销(UnRegister)DELETEProviderWHEREID=#ID;c.修改个人信息(Update)UPDATEProviderSetName=#Name,Address=#Address,Tel=#Tel,Intro=#IntroWHEREID=#IDd.增加供应项(Add_Supply_Item)INSERTINTOSupply(PartID,ProviderID,Price,Quantity)VALUES(#PartID,#ProviderID,#Price,#Quantity))e.删除供应项(Delete_Supply_Item)DELETESupplyWHEREPartID=#PartIDandProvideID=#ProvideID);f.修改供应项(Update_Supply_Item)UPDATESupplySETPrice=#Price,Quantity=#Quantity)WHEREPartID=#PartIDandProvideID=#ProvideID;很明显,系统并没有供应商品面对供应商修改零件信息的接口,所以供应商供应的零件必需已经在零件表中存在;可以这样假设,交易所的管理员负责更新零件信息,而供应商可以向交易所申请增加某种零件的信息。事实上顾客也可提出这样的要求。⑧顾客a.注册(Register)INSERTINTOCustomer(Name,Address,Tel)VALUES(#Name,#Address,#Tel)在登记操作后,供应商得到一个惟一的ID,可以依据这个ID来查询和修改供应商的数据。b.注销(UnRegister)DELETECustomerWHEREID=#ID;c.修改个人信息(Update)UPDATECustomerSetName=#Name,Address=#Address,Tel=#TelWHEREID=#IDd.增加需求项(Add_After_Item)INSERTINTOAfter(PartID,CustomerID,Price,Quantity)VALUES(#PartID,#ProviderID,#Price,#Quantity))e.删除需求项(Delete_After_Item)DELETEAfterWHEREPartID=#PartIDandCustomerID=#CustomerID);f.修改需求项(Update_After_Item)UPDATEAfterSETPrice=#Price,Quantity=#Quantity)WHEREPartID=#PartIDandCustomerID=#CustomerID;⑨交易员针对需求分析中提出的问题,提出了“协议书”的解决方案,方案的说明如下:每个交易在达成以前都作为协议书保存在数据库中,协议书具有和交易一样的完备信息,可以在条件成熟的状况下转为一个达成的交易;协议书只有在供应商和顾客都签字的状况下才有效;有效的协议书由交易员签发,协议书一经签发,就生效,表明一个交易的达成,数据库中的数据将同时予以修改;协议书可以由供应商、顾客或者交易员中的随意一个人提出申请。当协议书在双方没有都签字前,协议的双方或者交易员都可以删除这个协议书;但是,当协议书签字完毕后,协议书就不得删除(修改),只能由交易员进行处理;协议书有可能在转成交易的过程中失败,因为在交易达成以前,数据库中的数据有可能因为其他交易而改变,一个协议书可能失败,这是允许的。依据以上分析,对数据库的模型作一些修改,增加协议书表,其关系模式如下:Agreement(CustomerID,ProviderID,PartID,Price,Quantity,CustomerSign,ProviderSign)对应的SQL描述为:CREATETABLEAgreement(CustomerID,smallint,PartIDsmallint,ProvideIDsmallint,Priceint,Quantityint,CustomerSignint,ProviderSignint,CONSTRAINTPK_AGREEMENTPRIMARYKEYCLUSTERED(CustomerID,ProvideID,PartID),CONSTRAINTPK_AGREEMENT_CUSTOMERIDFOREIGNKEY(CustomerID)REFERENCESCustomer(ID),CONSTRAINTPK_AGREEMENT_PROVIDERIDFOREIGNKEY(ProvideID)REFERENCESProvider(ID));CONSTRAINTPK_AGREEMENT_PARTIDFOREIGNKEY(PartID)REFERENCESPart(ID));与上述其他操作相比,交易的操作对数据完整性要求比较高,其中须要留意的地方是:要防止同一用户(供应商,顾客)的数据因两个交易而同时修改;须要同时对供应数据库(S upply)、需求数据库(After)、交易数据库(Business)和协议数据库(Agreement)作出特性而且须要保持这些修改的原子性;很明显,这些要求正是对一个事务(Transaction)的要求,所以可以用一个事务来完成签发一个协议的操作。事务的描述如下:CREATEPROCPASS_AGREEMENT@providerIDint,@customerIDint,@partIDintASDECLARE@TransNameVARCHAR(20)SELECT@TransName=’Pass_Agreement’BEGINTRANSACTION@TransNameDECLARE@priceint@quantityintSELECT@price=price,@quantity=quantityFROMAgreementWHEREprovideID=@providerIDandcustomerID=@customerIDANDpartID=@partIDINSERTINTOBusiness(ProviderID,customerID,PartID,Price,Quantity)VALUES(@ProviderID,@CustomerID,@PartID,@Price,@Quantity)UPDATESupplySETquantity=quantity-@quantityWHEREProviderID=@ProviderIDANDpartID=@partIDIF(SELECTquantityFROMSupplyWHEREprovideID=@providerIDANDpartID=@partID)<9ROLLBACKTRANSACTION@TransNameDELETEFROMSupplyWHEREquantity=0UPDATEafterSETquantity=quantity-@quantityWHERECustomerID=@CustomerIDANDpartID=@partIDIf(SELECTquantityFROMAfterWHERECustomerID=@CustomerIDANDpartID=@partID)<0ROLLBACKTRANSACTION@TransNameDELETEFROMAfterWHEREquantity=0COMMITTRANSACTION@TransShowGO为了运用便利,这里定义了一个存储过程,功能是完成从Agreement的一个元组到期Business的每个元组的转化工具。这里考虑到了删除空的Supply和After项,更加重要的是,这里考虑到了非法的Agreement的状况,在一段时间后,由于供应商式或者顾客修改数据,Agreement可能就非法,这时就须要把这个事务废除,所以这里检查Supply表和After表中的数据,确保数据仍旧正确。另外,交易员,或者说交易所必需担当的一项任务是更新零件列表,这里在考虑顾客和供应商的时候
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 专用法律知识培训内容课件
- 脑洞英语语法系列之条件状语从句课件
- 2026届重庆市垫江五中学数学九上期末监测试题含解析
- 2026届辽宁省盘锦市七年级数学第一学期期末质量检测模拟试题含解析
- 新疆乌鲁木齐市第八十七中学2026届数学七年级第一学期期末复习检测模拟试题含解析
- 徐州市重点中学2026届数学八上期末考试试题含解析
- 企业外包服务的市场定位与经营策略探讨
- 浙江省杭州市西湖区2026届九年级数学第一学期期末检测模拟试题含解析
- 工商银行鞍山市铁东区2025秋招半英文面试题库及高分答案
- 邮储银行廊坊市香河县2025秋招笔试经济学专练及答案
- GB/T 45845.1-2025智慧城市基础设施整合运营框架第1部分:全生命周期业务协同管理指南
- 2025至2030中国智能卡行业市场深度调研报告
- 民族地区小学英语情境教学实践探索
- 儿童超重或肥胖的规范化诊断与评估(2024)解读课件
- GB/T 45333-2025类金刚石薄膜球盘法测试类金刚石薄膜的摩擦磨损性能
- 农产品检测技术实习心得范文
- 种植业可研报告范文
- 《复活(节选)》统编版高中语文选择性必修上册
- 《水墨风格动画》课件
- 销售合同协议书模板集
- 南通市启秀初中2024-2025八年级上学期第一次月考物理试卷及答案
评论
0/150
提交评论