




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、个人资料整理 仅限学习使用数据库原理课程设计题目零件交易中心管理系统学院信息工程学院专业计算机科学与技术班级计科072学号学生姓名指导教师编写日期2018-03-021 .需求分析32 .概念模型设计42 / 14个人资料整理 仅限学习使用3 .逻辑设计54 .物理设计55 .测试阶段106 .总结131.需求分析1.供应商供应商的操作流程图如图2-1所示个人资料整理 仅限学习使用图2-1 供应商操作分类表2.顾客顾客的地位和供应商几乎是对称的,所以功能分类上也很相似.顾客的操作流程图如图2-2所示。增加需求项修改需求项修改个人信息删除需求项IIII15 / 14图2-2顾客操作分类表3.交易
2、员交易员的工作就是提出交易和完成交易。这里需要仔细考虑的问题是:一个交易如何产生,并如何达成,可以用图2-3来说明这个问题.b5E2RGbCAP我们在处理交易的时候可能面临如下问题:(1一个交易只能在交易双方都同意的情况下才可以进行,所以数据库中的供求信息只能作为达成某个交易的基础;plEanqFDPw(2交易的双方可能不同时使用这个系统,因此需要系统提供一个双方交换信息的方式;(3系统需要提供一种方便系统(交易员 向用户提出建议来促成交易的途径,并在保证数据库数据完整性的情况下达成交易。 DXDiTa9E3dRTCrpUDGiTI III II (IIII供应商 提出交易顾客提出交易申请交易
3、员提出 交易建议数据库需要表1员L2.概念耳型|图.-3 交易员操隹叫遍有以下几种:、!应商集和零件虫之间的联系(供应II1.供应商集和零件集之叫的联系iI I III 1 iI I协议书草案息、顾客信息及供小、正式答字(供应 j交易员签发完成交易2.顾客集和零件集之间的联系(求购图3-2顾客和零件之间的联系(求购 E-R模型3.交易(三元联系可以用E-R模型表述该模型的设计,E-R图如图3-3所示图3-3全局E-R模型3.逻辑设计通过E/R模型到关系模型的转化,可以得到如下关系模式:(1零件实体集转换为关系:Part(ID_, Color , Name Weight, Intro(2供应商实
4、体集转换为关系 Provider(ID_, Name Addtess , Tel , Intro(3顾客实体集转换为关系 Customer(ID_, Name Addtess, Tel(4 供应联系转换为关系 Supply(PartlD , ProviderlD , Price , Quantity5pczvd7Hxa(5 求购联系转换为关系 OfferToBuy(CustomerlD , PartID , Price , QuantityjLBHrnAlLg(6 交易联系转换为关系Business(CustomerlD , ProviderlD , PartID ,Price , Quant
5、ity xhaqx74jox每个关系模式的主键码都用下划线标出。同时,对于从联系导出的关系Supply(供应,OfferToBuy(求购和 Business(交易,使用与之相联系的实体集的主健码作为自己的键码,必须符合 外键码约束。LDAYtRyKfE对于Customer(顾客,Provider(供应商和Part(零件之间,不存在直接 的约束,所以可以存在没有供应商供应同时也没有顾客求购的零件。Zzz6ZB2Ltk4.物理设计1 .为了提高在表中搜索元组的速度,在实际实现的时候应该基于键码建立 索引是各表中建立索引的表项:(1part(ID(2Provider(ID(3Customer(ID(
6、4Supply(PartID , ProviderID(5OfferTOBuy(CustomerID , PartID(6Business(CustomerlD , ProviderID , PartID2 .用SQL实现设计实现该设计的环境为 Windows 2000 Perfessinal+MSSQLServer 2000. dvzfvkwMIIPRIMARY KEY CLUSTEREDyni4ZNXIColor varchar(20,Name varchar(20 NOT NULL, Weight int DEFAULT 0, Intro text PRIMARY KEY CLUSTER
7、EEJmxvxOtOco Name varchar(20 NOT NULL, password varchar(8 NOT NULL, Address varchar(30, Tel varchar(20, Intro textPRIMARY KEYCLUSTERED;,ixE2yXPq5Namevarchar(20 NOT NULL,Address varchar(30, TeL Varchar(20 , 6ewMyirQFLCONSTRAINT FK_SUPPLY_PARTID FOREIGN KEY(PartID REFERENCES Part(ID, kavU42VRUsCONSTRA
8、INT FK_SUPPLY_PROVIDERID FOREIGN KEY(ProviderID REFERENCES Provider(ID y6V3ALoS89, M2ub6vSTnPCONSTRAINT FK_OFFERTOBUY_CUSTOMERFOREIGN KEY(CustomerID 0YujCfmUCwREFERENCES Customer(ID,CONSTRAINT FK_OFFERTOBUY FOREIGN KEY(PartID REFERENCES Part(ID, eUts8ZQVRdCONSTRAINT FK_BUSINESS_CUSTOMERIDFOREIGNKEY(
9、CustomerID sQsAEJkW5T REFERENCES Customer(ID, CONSTRAINT FK_BUSINESS_PROVIDERlDFOREIGN KEY(ProviderIDGMsIasNXkAREFERENCES Provider(ID, CONSTRAINT FK_BUSINESS_PARTID FOREIGN KEY(PartIDREFERENCES Part(ID TIrRGchYzg VALUES(#Name #password , #Address , #Tel , #Intro在登记操作后,供应商得到一个唯一的ID,可以根据这个ID采查询和修改 供应商
10、的数据。注销(unregisterDELETE Provider WHERE(ID=#ID ;修改个人馆息(updateUPdate Provider Set(Name=#Name,Address=#Address , Tel=#Tel , Intro=#Intro 7EqZcWLZNXWHERE(ID= #ID ;增加供应项(add_supply_itemINSERT INTO Supply(PartID , Providerid , Price , Quantity lzq7IGf02E VALUES(#PartID , #ProvderlD , #Price ; #Quantily ;删
11、除供应项(delete_supplyjtemDELETE SupPlyWHERE(PartlD=#PartID AND ProvideID=#ProviderlD ;修改供应项(update_supplyjtemUPDATESupplySET(Price=#Price , Quantity=#Quantity WHERE(PartlD=#PartID AND ProviderID=#ProviderID 很明显,系统并没有提供面向供应商修改零件信息的接口,所以供应商提供 的零件必须已经在零件表中存在;可以这祥假设,交易所的管理员负责更新零件 信息,而供应商可以向交易所申请增加某种零件的信息.事
12、实上顾客也可以提出 这样的要求。zvpgeqJIhkVALUES(#Name #Address , #Tel ;在登记操作后,顾客得到一个唯一的ID,可以根据这个ID来查询和修改顾客的数据。注销(unregisterDELETE Customer WHERE ;修改个人信息(updateUPDATE Customer Set(Name=#Name Address=#Address , Tel=#Tel NrpoJac3v1 WHERE(1D=#ID增加需求项(add_OfferToBuyJtemINSERT INTO OferToBuy(PartID,CustomeriD , Price ,
13、Quantity inowfTG4KiVALUES(#PartID , #CustomerID , #Price , #Quantity删除需求项(delete_OfferToBuyJtermDELETE OfferToBuyWHERE(PartlD=#PartlD AND CustomerlD=#CustomerID ;修改需求项(date_OfferToBuyJtemUPDATE OfferToBuy SET(Price=#Price , Quantity=#Quantity fjnFLDa5ZoWHERE(PartlD=#PartID AND CustomeriD=#CustomerID
14、 mZkklkzaaP对应的SQL述为:CREATE TABLE Agreement( Customerm smallint , ProviderlD smallint , PartlD smallint , Price int, Quantity int , CustomerSign int , ProviderSign int , CONSTRAINT PK_AGREEMENT PRIMARY KEY CLUSTERED(Custom erIProviderID , PartID , CONSTRAINT FK_AGREEMENT_CUSTOMERFDREIGN KEY(CustomerI
15、D REFERENCESCustomer(ID , CONSTRAINT FK_ AGREEMENT_PROVlDERIFOREIGN KEY(ProviderIDREFERENCES Provider(ID , CONSTRAINTFK_AGREEMENT_PARTID FOREIGN KEY(PartIDREFERENCES Part(IDAVktR43bpw与上述其他操作相比,对交易的操作对数据完整性要求比较高,其中需要注 意的地方是;要防止同一用户(供应商,顾客 的数据因两个交易而同时修改; 需要同时对供应数据库(Supply、需求数据库(OfferToBuy、交易数据库 (Busin
16、ess和协议数据库(Agreement作出修改,而且需要保持这些修改的原子 性;很显然,这些要求正是对于一个事务(transaction的要求,所以可以用一个事务来完成签发一个协议的操作。事务的描述如下:ORjBnOwcEdCREATE PROC PASS_AGREEMENT providerID int , customerid int , partlD int AS DECLARE TransName VARCHAR(20 SELECT TransName=Pass_AgreementBEGIN TRANSACTION TransName DECIARE price INT , qUANT
17、ITY int SELECT price=price , quantity=quantity FROM Agreement 2MiJTy0dTT WHERE prIVIderID=providerIDAND customerID=customerID ANDPanID=partID gIiSpiue7A 1NSERT INTO Business(ProviderID , CustomerID , PartID , Price , QuantityuEh0U1YfmhVALues(providerid , customerID, PartID, price,quantity IAg9qLsgBX
18、 UPDATE Supply SET quantity=quantity-quantity WHERE ProviderID=prividerID AND partID=partID IF (SELECT quantity FROM Supply WHERE Proiderid=provider AND partID=PartID0 asfpsfpi4k ROLLBACK TRANSACTION TransNameDELETE FROM OfferToBuy WHERE quantity=0 COMMIT TRANSACTION TransName为了使用方便,这里定义了一个存贮过程;功能是完
19、成从 Agreementt的一个 元组到Business的一个元组的转化工作。这里考虑到了删除空的Suppiy和OfferTOBUY项,更加重要的是,这里考虑到了非法的Agreement的情况,在一段时间后,由于供应商或者顾客修改数据,Agreement可能就非法,这时就需要把这个事务废除,所以,这里检查了 Supply表和OfferToBuy表中的数据,确保 数据仍然正确。ooeyYZTjjl另外交易员,或者说交易所必须承担的一项任务是更新零件列表。这里在考 虑顾客和供应商的时候+并没有给予他们修改零件列表的权利,所以他们必须根 据数据库中已有的项更新自己的供求信息。BkeGuInkxI由于
20、这个数据库实际上更加偏重于模型化,而不是一个实际环境中的数据 库,所以在实现应用模型的时候我们还需要对这个数据库的模型作一些修改。 PgdO0sRlMo由于本实验在模型设计上使用了Microsoft Transact-SQL的语法,因此以上的数据库操作都是在 SQLSERVER2000测试通过的。3cdXwckmi55.测试阶段1 .输入数据设计 values(black , stick , 30 , of steel显示刚插人的零件id :exec insert_lj id1(1 row(s affected(不同的实验,id值可能不同。以后相应操作要保持前后一致就可以丁。 h8c52WOn
21、gM values(coml , 1234,北京,6543210, nothing显示刚插入的供应商id :exec insert_gys id 1(1 row(s affectedvalues(cusl ,北京,6666666显示刚插入的顾客id :exec insert_gkid1(1 row(Saffected; j0bm4qMpj9values。, 1, 20, 50; xvauA9grYPvalues(1 , 1, 1, 20, 30, 1, 1;2.执行交易操作设计ProviderID int(8 as select Quantity from SUpply where PartI
22、D=PartID and ProviderID=ProviderID exec交易后供应信息 Quantity 70(1 row(s affectedcreate procedure交易后需求信息PartID int(8CustomerID int(8 as select Quantity from OfferToBuywhere PartlD=PartID and CustomerID=CustomerIDexec交易后需求信息Quantity20(1 row(s affected,保存在 OfferToBuy 表中ID为1的零件需求量为 50(参见 OFFERToBu夷的Insert 语句。在Agreement表中指出ID为1的供应商和ID 为1的顾客要交易 30个ID为1的零件。当执行存储过程 PASS_AGREEMENT后,Supply和OfferTo
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 创新素养视角下高中数学高效课堂的构建
- 中学教育基础知到课后答案智慧树章节测试答案2025年春白城师范学院
- 三级人力资源管理师-《企业人力资源管理师(理论知识)》考前强化模拟卷1
- 高考物理课标版一轮复习考点规范练19动量动量定理动量守恒定律的理解
- 重庆市复旦中学2024-2025学年高一下学期开学考试生物试题(原卷版)
- 揭阳中式花园施工方案
- 湖南省衡阳县三中2017-2018学年高二上学期期中考试历史试卷
- 广东省惠州市惠东中学2017-2018学年高三5月热身综合练习生物(二)答案
- 浙江省宁波市2024-2025学年高三上学期期末模拟检测语文试题(原卷版+解析版)
- 河南省南阳市镇平县2024-2025学年七年级上学期期末语文试题(原卷版+解析版)
- GB/T 19923-2024城市污水再生利用工业用水水质
- 冷库使用安全知识培训
- 2023信息系统密码应用高风险判定指引
- 2023年12月全国大学外语等级考试考务工作手册
- 第三单元《 There is a cake on the table 》大单元教案 四年级英语下册(重大版)
- 普通高中语文课程标准课件
- 你是独一无二的自己主题班会课件
- 交通运输行业驾驶员违规处理规范培训
- 智联招聘测评的题库
- 华为企业数据架构、应用架构及技术架构设计方法
- 《空调工作原理》课件
评论
0/150
提交评论