ImageVerifierCode 换一换
格式:DOC , 页数:19 ,大小:106KB ,
资源ID:2124461      下载积分:8 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/2124461.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(数据库课程研究设计研究设计指导说明书New.doc)为本站上传会员【快乐****生活】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

数据库课程研究设计研究设计指导说明书New.doc

1、 计算机科学与技术专业 数据库原理及应用 课 程 设 计 教学实验指导书 《数据库原理及应用》课程设计教学指导 一.设计目的及要求 本课程是为了配合数据库原理及应用课程开设的,是将数据库理论知识转化为实践能力的重要环节。其主要目的是:通过设计操作,加深对数据库系统理论知识的理解;通过使用具体的DBMS,了解一种实际的数据库管理系统并掌握其操作技术。重点掌握如下环节——概念结构设计与逻辑结构设计;熟练的使用SQL语言实现数据库的建立、应用和维护。 要求如下 1.要充分认识课程设计对培养自己的重要性,认真做好设计前的各项准备工作。 2.

2、既要虚心接受老师的指导,又要充分发挥主观能动性。结合课题,独立思考,努力钻研,勤于实践,勇于创新。 3.独立按时完成规定的工作任务,不得弄虚作假,不准抄袭他人内容,否则成绩以不及格计。 4.学生如有事不能上课要履行正常的请假手续,并且请假时间原则上不允许超过课程设计时间的三分之一。课程设计期间,无故缺席按旷课处理;缺席时间达四分之一以上者(按照缺勤次数/考核次数比值计算),其成绩按不及格处理。 5.在设计过程中,要严格要求自己,树立严肃、严密、严谨的科学态度,必须按时、按质、按量完成课程设计。 二.适用专业 适用计算机科学与技术专业。 三.课程设计的一般步骤 本课程设计分五个阶段

3、 1)选题与搜集资料:选择课程设计题目,进行系统调查,搜集资料。 2)分析与设计:根据搜集的资料,进行功能与数据分析,并进行数据库、系统功能等设计。 3)程序设计:在具体的DBMS环境下,创建数据库、建立表及必要的其它部分(如视图、存储过程、触发器等);运用掌握的语言,编写程序,实现所设计的模块功能(可选)。 4)调试与测试:自行调试程序,成员交叉测试程序,并记录测试情况。 5)验收与评分:指导教师对每个小组的开发的系统,及每个成员开发的模块进行综合验收,结合设计报告,根据课程设计成绩的评定方法,评出成绩。 四.本课程设计内容与要求 掌握数据库的设计的每个步骤,以及提交各步骤所

4、需图表和文档。通过使用目前流行的DBMS(首选SQL SERVER 2000,不得使用ACCESS),建立所设计的数据库,并在此基础上实现数据库查询、连接等操作和触发器、存储过程等对象设计。 1.应用系统需求分析  学生自选由指导教师给定的多个课程设计的题目,进行应用系统需求分析工作,绘制操作流程图、DFD、DD图表以及书写相关的文字说明。 2.概念结构设计 绘制详细的E-R图,由指导教师师检查数据结构是否合理。 3.逻辑结构设计 将E-R图转换成等价的关系模式;按需求对关系模式进行规范化(建议至少满足第三范式要求);对规范化后的模式进行评价,调整模式,使其满足性能、存储等方面要求

5、根据局部应用需要设计外模式。 4.物理结构设计 选定实施环境,存取方法(如索引)等。 5.数据实施和维护 用DBMS建立数据库结构,将初始化数据及部分测试数据装入数据库,实现各种查询、链接应用程序,设计数据库中触发器、存储器等对象,并能对数据库做简单的维护操作; 6.课程设计总结 总结课程设计的过程、体会及建议。 7.答辩 进行课程设计答辩,主要了解学生们通过数据库课程设计,对数据库基本知识 的了解程度。 五.上机任务 1.数据库、基本表的建立和修改。 2.数据加载: 用手工录入或导入等方法实现基本表中的数据加载。 3.单表查询以及多表查询:在建立的基本表中使用se

6、lect基本格式和常用数据库函数;设计合适的视图,实现多表间查询。 4.触发器:设计若干触发器,实现表间关联字段修改时的完整性问题。 5.存储过程:设计若干多表查询的存储过程,根据需要可以创建带参数的存储过程,并用语句调用,要求有一定的输出格式。根据个人能力,可以选用VB、VB、C#、Java等高级编程语言设计界面(如果能够确认该内容为学生自做,可在程序设计部分获得加分,否则不能加分)。 六.课程设计进度安排(时间为两周,10天) 时间 内容 学生上机地点 辅导答疑地点 联系人及电话 1~2Day 指导教师指导DBMS应用与选题指导 数据库教研室 3~4Day

7、 需求分析及概念结构设计 图书馆阅览室 实验室 数据库教研室 5Day 逻辑结构设计 实验室 数据库教研室 6Day 物理结构设计 实验室 实验室 7~8Day 数据库实施、调试 实验室 实验室 9Day 答辩 实验室 10Day 撰写课程设计报告并验收 实验室 寝室 数据库教研室 七.考核方式与成绩评定 课程设计的成绩评定综合3方面考虑,包括:平时考核、现场考核和课程设计报告考核。 1)平时考核:考查学生的组织纪律、考勤情况,平时考核占总成绩的20%; 2)现场考核:主要考查学生对数据库基础知识掌握的熟练程度、现场提问的回答情况

8、应用系统完成后,答辩情况等。现场考核占总成绩的30%; 3)课程设计报告考核:综合考核学生的报告内容、文字表达、页面整洁度等,设计报告考核占总成绩的50%。 4)课程设计成绩将根据以上三项的考核情况评定,分优秀、良好、中等、及格、不及格五个等级。 八.注意事项 1.素材自定,同样题目不能完全相同,否则以不及格计。 2.数据库对象内容:表,视图、存储过程、触发器、参照完整(至少有两张表有关联)。 3.提交: (1)课程设计说明书(需要打印) 要求:①认真添写课程设计任务书 ②添写完毕之后要求侧面装订 ③此课程设计任务书要求A4纸打印,正文设置行距采用固定值20磅(见规范及

9、实例,学会使用格式刷)。 (2)源程序:创建数据库及其他各种数据库对象的脚本及在库上运行若干查询语句和统计函数、存储过程、触发器、查询需要脚本。最后要上交。以班级为单位,刻录光盘,以自己学号与姓名命名文件夹,先学号后姓名,如20张三。(不需要打印), 九.课程设计课题(选题供参考) 《数据库应用设计》课程设计:人事管理系统 系统功能的基本要求: Ø 员工各种信息的输入,包括员工的基本信息、学历信息、婚姻状况信息、职称等。 Ø 员工各种信息的修改; Ø 对于转出、辞职、辞退、退休员工信息的删除; Ø 按照一定的条件,查询、统计符合条件的员工信息;至少应该包括每个员工详细信息的查询

10、按婚姻状况查询、按学历查询、按工作岗位查询等,至少应该包括按学历、婚姻状况、岗位、参加工作时间等统计各自的员工信息; Ø 对查询、统计的结果打印输出。 《数据库应用设计》课程设计:工资管理系统 系统功能的基本要求: Ø 员工每个工种基本工资的设定 Ø 加班津贴管理,根据加班时间和类型给予不同的加班津贴; Ø 按照不同工种的基本工资情况、员工的考勤情况产生员工的每月的月工资; Ø 员工年终奖金的生成,员工的年终奖金计算公式=(员工本年度的工资总和+津贴的总和)/12; Ø 企业工资报表。能够查询单个员工的工资情况、每个部门的工资情况、按月的工资统计,并能够打印; 《数据库应

11、用设计》课程设计:机票预定系统 系统功能的基本要求: Ø 每个航班信息的输入。 Ø 每个航班的坐位信息的输入; Ø 当旅客进行机票预定时,输入旅客基本信息,系统为旅客安排航班,打印取票通知和帐单; Ø 旅客在飞机起飞前一天凭取票通知交款取票; Ø 旅客能够退订机票; Ø 能够查询每个航班的预定情况、计算航班的满座率。 《数据库应用设计》课程设计:仓库管理系统 系统功能的基本要求: Ø 产品入库管理,可以填写入库单,确认产品入库; Ø 产品出库管理,可以填写出库单,确认出库; Ø 借出管理,凭借条借出,然后能够还库; Ø 初始库存设置,设置库存的初始值,库存的上下警

12、戒限; Ø 可以进行盘库,反映每月、年的库存情况; Ø 可以查询产品入库情况、出库情况、当前库存情况,可以按出库单、入库单,产品、时间进行查询; 其它参考的题目 1. 学生信息查询系统 2. 图书借阅管理系统 3. 房屋销售管理系统 4. 住院收费管理系统 5. 干部档案管理系统 6. 订单生成系统 7. 商家打折信息管理系统 8. 实验室数据上报系统 9. 人事管理信息系统 10. 工资管理信息系统 11. 考勤管理信息系统 12. 员工培训管理信息系统 13. 仓库货物管理系统 14. 内部行文管理系统 15. 进销存管理系统 16. 酒店管理系统

13、17. 医院管理系统 18. 银行账户管理系统 19. 光盘管理系统 20. 网吧机房管理系统 21. 机动车驾驶员考试系统 22. 复印店文档管理系统 23. 合同管理系统 24. 通讯录管理系统 25. 试题库管理系统 26. 学生成绩管理系统 27. 学生选课信息系统 28. 电脑销售系统 29. 教材发放管理系统 30. 教师管理系统 31. 设备管理系统 32. 运动会管理系统 33. 个人财物管理系统 34. 洗衣店管理系统 35. 体育彩票分析系统 36. 高校团委团员管理系统 37. 宾馆住宿管理系统 38. 学籍管理系统 39. 房

14、屋中介管理系统 40. 航班售票管理系统 41. 旅游管理系统 42. 高校科研管理系统 43. 校园自助银行模拟系统 十.课程设计说明书参考实例(格式及内容仅供参考) 零件交易中心管理系统设计说明书 1 绪论(四号黑体) 说明: 绪论是整篇文章的开始,应简要说明选题的缘由,设计与研究工作的目的、范围,相关领域以及前人的工作和知识空白,理论基础的分析、研究方法、研究内容、实验方法,预期结果和意义。(正文用宋体小四,行距采用固定值20磅) 2 需求说明(四号黑体,顶格) 说明:详细地调查分析系统对象、功能、性能等需求。 1.供应商(小四黑体,空两个字符) 供应商的操

15、作流程图如图2-1所示。 增加供应项 修改供应项 删除供应项 修改个人信息 供应项 注册 注销 图2-1 供应商操作分类表 2.顾客 顾客的地位和供应商几乎是对称的,所以功能分类上也很相似.顾客的操作流程图如图2-2所示。 增加需求项 修改需求项 删除需求项 修改个人信息 顾客 注册 注销 图2-2 顾客操作分类表 3.交易员 交易员的工作就是提出交易和完成交易。这里需要仔细考虑的问题是:一个交易如何产生,并如何达成,可以用图2-3来说明这个问题. 我们在处理交易的时候可能面临如下问题: (

16、1)一个交易只能在交易双方都同意的情况下才可以进行,所以数据库中的供求信息只能作为达成某个交易的基础; (2)交易的双方可能不同时使用这个系统,因此需要系统提供一个双方交换信息的方式; (3)系统需要提供一种方便系统(交易员)向用户提出建议来促成交易的途径,并在保证数据库数据完整性的情况下达成交易。 交易员 协议书草案 供应商以及顾客签字 正式签字 交易员签发 完成交易 供应商 提出交易 顾客提出 交易申请 交易员提出 交易建议 图2-3 交易员操作图 3 概念模型设计 说明:从实践概括抽象出理论模

17、型E/R。 数据库需要表述的信息有以下几种:零件信息、供应商信息、顾客信息及供应商集和零件集之间的联系(供应)。 1. 供应商集和零件集之间的联系(供应) M 零件 颜色 零件号 零件名 重量 简介 供应商名 供应商 供应商号 地址 电话 简介 供应 数量 价格 N 图3-1供应商和零件之间的联系(供应) E-R模型 2.顾客集和零件集之间的联系(求购) M 零件 颜色 零件号 零件名 重量 简介 顾客 电话 顾客号 顾客名 地址 求购 数量 价格 N

18、 图3-2 顾客和零件之间的联系(求购) E-R模型 3.交易(三元联系) 可以用E-R模型表述该模型的设计,E-R图如图3-3所示。 零件 颜色 零件号 零件名 重量 简介 求购 数量 价格 供应商号 供应商名 地址 电话 简介 供应 数量 价格 顾客 电话 顾客号 顾客名 地址 交易 价格 数量 供应商 图3-3 全局E-R模型 4 逻辑设计 说明:从理论“E-R模型”到理论‘关系模型’的整理转换。 通过E/R模型到关系模型的转化,可以得到如下关系模式: (

19、1)零件实体集转换为关系:Part(ID,Color,Name,Weight,Intro) (2)供应商实体集转换为关系Provider(ID,Name,Addtess,Tel,Intro) (3)顾客实体集转换为关系Customer(ID,Name,Addtess,Tel) (4)供应联系转换为关系Supply(PartlD,ProviderlD,Price,Quantity) (5)求购联系转换为关系OfferToBuy(CustomerlD,PartID,Price,Quantity) (6)交易联系转换为关系Business(CustomerlD,ProviderlD,Par

20、tID,Price,Quantity) 每个关系模式的主键码都用下划线标出。 同时,对于从联系导出的关系Supply(供应),OfferToBuy(求购)和Business(交易),使用与之相联系的实体集的主健码作为自己的键码,必须符合外键码约束。 对于Customer(顾客),Provider(供应商)和Part(零件)之间,不存在直接的约束,所以可以存在没有供应商供应同时也没有顾客求购的零件。 5 物理设计 说明:从理论‘关系模型’到实现/实施‘数据库建立’,物理文件的安排和建立索引。 1.为了提高在表中搜索元组的速度,在实际实现的时候应该基于键码建立索引是各表中建立索

21、引的表项: (1)part(ID) (2)Provider(ID) (3)Customer(ID) (4)Supply(PartID,ProviderID> (5)OfferTOBuy(CustomerID,PartID) (6)Business(CustomerlD,ProviderID,PartID) 2.用SQL实现设计 实现该设计的环境为Windows 2000 Perfessinal+MSSQLServer 2000. (1)建立Part表 CREATE TABLE Part( ID smallint IDENTITY(1,1) PRIMAR

22、Y KEY, Color varchar(20), Name varchar(20) NOT NULL, Weight int DEFAULT 0, Intro text) (2)建立Provider表 CREATE TABLE Provider( ID smallint IDENTITY(1,1) PRIMARY KEY, Name varchar(20) NOT NULL, password varchar(8) NOT NULL, Address varchar(30), Tel varchar(20), Intro text) (3)建

23、立Customer表 CREATE TABLE Customer( ID Smallint IDENTITY(1,1) PRIMARY KEY, Name varchar(20) NOT NULL, Address varchar(30), TeL Varchar(20) ) (4)建立Supply表 CREATE TABLE Supply( PartID Smallint, ProviderID smallint, Price int, QUantity int, CONSTRAINT PK_SUPPLY PRIMARY KEY CLUSTERED(

24、PartID,ProviderID), CONSTRAINT FK_SUPPLY_PARTID FOREIGN KEY(PartID) REFERENCES Part(ID), CONSTRAINT FK_SUPPLY_PROVIDERID FOREIGN KEY(ProviderID) REFERENCES Provider(ID)) (5)建立OfferToBuy表 CREATE TABLE OfferToBuy( CustomerID smallint, PartID Smallint, Price int, Quantity int, CONS

25、TRAINT PK_OFFERTOBUY PRIMARY KEY CLUSTERED(CustomerID,PartID), CONSTRAINT FK_OFFERTOBUY_CUSTOMERID FOREIGN KEY(CustomerID) REFERENCES Customer(ID), CONSTRAINT FK_OFFERTOBUY FOREIGN KEY(PartID) REFERENCES Part(ID)) (6)建立Business表 CREATE TABLE Business( CustomerID smallint, ProviderID smal

26、lint, PartID Smallint, Price int, Quantity int, CONSTRAINT PK_BUSINEss PRIMARY KEY ClUSTERED(CuscomerID,ProviderID,PartID), CONSTRAINT FK_BUSINESS_CUSTOMERID FOREIGN KEY(CustomerID) REFERENCES Customer(ID), CONSTRAINT FK_BUSINESS_PROVIDERlD FOREIGN KEY(ProviderID) REFEREN

27、CES Provider(ID), CONSTRAINT FK_BUSINESS_PARTID FOREIGN KEY(PartID) REFERENCES Part(ID)) (7)供应商操作 ①注册(register) INSERT INTO Provider(Name,password,Address,TeI,Intro) VALUES(#Name,#password,#Address,#Tel,#Intro) 在登记操作后,供应商得到一个唯一的ID,可以根据这个ID采查询和修改供应商的数据。 ②注销(unregister) DELETE Provider

28、 WHERE(ID=#ID); ③修改个人馆息(update) UPdate Provider Set(Name=#Name,Address=#Address,Tel=#Tel,Intro=#Intro) WHERE(ID=#ID); ④增加供应项(add_supply_item) INSERT INTO Supply(PartID,Providerid,Price,Quantity) VALUES(#PartID,#ProvderlD,#Price;#Quantily); ⑤删除供应项(delete_supply_item) DELETE S

29、upPly WHERE(PartlD=#PartID AND ProvideID=#ProviderlD); ⑥修改供应项(update_supply_item) UPDATESupplySET(Price=#Price,Quantity=#Quantity) WHERE(PartlD=#PartID AND ProviderID=#ProviderID)‘ 很明显,系统并没有提供面向供应商修改零件信息的接口,所以供应商提供的零件必须已经在零件表中存在;可以这祥假设,交易所的管理员负责更新零件信息,而供应商可以向交易所申请增加某种零件的信息.事实上顾客也可以提

30、出这样的要求。 (8)顾客操作 ①注册(register) INSERT INTO Customer(Name,Address,Tel) VALUES(#Name,#Address,#Tel); 在登记操作后,顾客得到一个唯一的ID,可以根据这个ID来查询和修改顾客的数据。 ②注销(unregister) DELETE Customer WHERE

31、OfferToBuy_item) INSERT INTO OfferToBuy(PartID,CustomeriD,Price,Quantity) VALUES(#PartID,#CustomerID,#Price,#Quantity)' ⑤删除需求项(delete_OfferToBuy_iterm) DELETE OfferToBuy WHERE(PartlD=#PartlD AND CustomerlD=#CustomerID); ⑥修改需求项(date_OfferToBuy_item) UPDATE OfferToBuy SET(Price=#Price,Quantity=

32、Quantity WHERE(PartlD=#PartID AND CustomeriD=#CustomerID) (9)交易员 针对需求分析中提出的问题,我们提出了“协议书”的解决方案,方案的说明如下: ①每个交易在达成以前都作为协议书保存在数据库中,协议书具有和交易一样的完备信息,可以在条件成熟的情况下转为一个达成的交易; ②协议书只有在供应商和顾客都签字的情况下才有效;有效的协议书由交易员签发,协议书一经签发,就生效,表明一个交易的达成,数据库中的数据将同时予以修改; ③协议书可以由供应商、顾客或者交易员中的任意一个人提出申请。当协议书在双方没有都签字前,协议的双方或者交易

33、员都可以删除这个协议书;但是,当协议书签字完毕后,协议书就不得删除(修改),只能由交易员进行处理; ④协议书有可能在转成交易的过程中失败,因为在交易达成以前,数据库中的数据有可能因为其他交易而变化,一个协议书可能失效,这是允许的。 根据以上分析,对数据库的模型作一些修改,增加协议书表,其关系模式如下: Agreement(CustomerlD,ProviderID,PartID,Price,Quantity,CustomerSign,ProviderSign) 对应的SQL描述为: CREATE TABLE Agreement( Customerm smallint, Prov

34、iderlD smallint, PartlD smallint, Price int, Quantity int, CustomerSign int, ProviderSign int, CONSTRAINT PK_AGREEMENT PRIMARY KEY CLUSTERED(CustomerID,ProviderID,PartID),CONSTRAINT FK_AGREEMENT_CUSTOMERID FOREIGN KEY(CustomerID) REFERENCES Customer(ID),CONSTRAINT FK_ AGREEM

35、ENT_PROVlDERID FOREIGN KEY(ProviderID) REFERENCES Provider(ID),CONSTRAINT FK_AGREEMENT_PARTID FOREIGN KEY(PartID)REFERENCES Part(ID)) 与上述其他操作相比,对交易的操作对数据完整性要求比较高,其中需要注意的地方是;要防止同一用户(供应商,顾客)的数据因两个交易而同时修改; 需要同时对供应数据库(Supply)、需求数据库(OfferToBuy)、交易数据库(Business)和协议数据库(Agreement)作出修改,而且需要保持这些修改的原子性;很

36、显然,这些要求正是对于一个事务(transaction)的要求,所以可以用一个事务来完成签发一个协议的操作。事务的描述如下: CREATE PROC PASS_AGREEMENT @providerID int, @customerid int, @partlD int AS DECLARE @TransName VARCHAR(20) SELECT @TransName='Pass_Agreement' BEGIN TRANSACTION @TransName DEClARE @price INT,@qUANTITY int SELECT @price=price

37、@quantity=quantity FROM Agreement WHERE prIVIderID=@providerID AND customerID=@customerID AND PanID=@partID 1NSERT INTO Business(ProviderID,CustomerID,PartID,Price,Quantity) VALues(@providerid,@customerID,@PartID,@price,@quantity) UPDATE Supply SET quantity=quantity-@quantity WHERE Provider

38、ID=@prividerID AND partID=@partID IF (SELECT quantity FROM Supply WHERE Proiderid=@provider AND partID=@PartID)<0 ROLLBACK TRANSACTlON @TranSName DELETE FROM Supply WHERE quantity=0 UPDATE OfferToBuy SET quantity=quanttity-@quantity WHERE CustomerID=@customerid AND partlD=@partID

39、IF(SELECT quandtity FROM OfferToBuy WHERE CustomerID=@CustomerID AND partID=@partlD)<0 ROLLBACK TRANSACTION @TransName DELETE FROM OfferToBuy WHERE quantity=0 COMMIT TRANSACTION @TransName 为了使用方便,这里定义了一个存贮过程;功能是完成从Agreementt的一个元组到Business的一个元组的转化工作。这里考虑到了删除空的Suppiy和OfferTOBUY项,更加重要的是,这里考虑

40、到了非法的Agreement的情况,在一段时间后,由于供应商或者顾客修改数据,Agreement可能就非法,这时就需要把这个事务废除,所以,这里检查了Supply表和OfferToBuy表中的数据,确保数据仍然正确。 另外交易员,或者说交易所必须承担的一项任务是更新零件列表。这里在考虑顾客和供应商的时候÷并没有给予他们修改零件列表的权利,所以他们必须根据数据库中已有的项更新自己的供求信息。 由于这个数据库实际上更加偏重于模型化,而不是一个实际环境中的数据库,所以在实现应用模型的时候我们还需要对这个数据库的模型作一些修改。 由于本实验在模型设计上使用了Microsoft Transact

41、SQL的语法,因此以上的数据库操作都是在SQLSERVER2000上测试通过的。 6 实验数据示例:测试阶段 (说明:1.实验方案设计 2.测试,查找错误校正错误,检查是否符合用户的功 性能要求。) 1.输入数据设计 (1)插入零件信息; insert into Part(Color,Name,Weight,Intro) values('black','stick','30','of steel'); 显示刚插人的零件id: select id from Part where name='stick'; id ---- 1

42、 (1 row(s) affected) (不同的实验,id值可能不同。以后相应操作要保持前后一致就可以丁。) (2)插入供应商信息: insert into Provider(Name,password,Address,Tel,Intro) values('coml','1234','北京',6543210,'nothing'); 显示刚插入的供应商id: select id from Provider where name='coml'; id - - - 1 (1 row(s

43、) affected) (3)插入顾客信息: insert into Customer(Name,Address,Tel) values('cusl','北京','6666666')' 显示刚插入的顾客id: select id from Customer where name id - - - 1 (1 row(S)affected) (4)插入供应商供应信息: insert into Supply(PartID,ProviderlD,Price,Quantity)

44、 values(1,1,20,100); (5)插入顾客需求信息: insert into OfferToBuy(PartlD,CustomerID,Priee,Quantity) values(1,1,20,50); (6)插入协议信息: insert into Agreement(CustomerID,ProviderID,PartlD,Price,Quantity,CustomerSign,ProviderSign) values(1,1,1,20,30,1,1); 2.执行交易操作设计 (1)执行交易存储过程PA

45、SS_AGREEMENT,参数为:1,1,1: PASS_AGREEMENT 1,1,1; (后面的三个参数分别对应前面选择出的供应商ID、顾客ID和零件ID。) (2)结果:显示交易后供应信息和需求信息: select Quantity from Supply where PartlD=1 and ProviderlD=1; Quantity - - - - 70 (1 row(s) affected) select Quantity from OfferToBuy where PartlD=l and CustomerID;

46、 Quantity ----- 20 (1 row(s) affected) (3)分析结果: 首先,保存在Supply表中1D为1的零件供应量为100(参见Supply表的Insert语句),保存在OfferToBuy表中ID为1的零件需求量为50(参见OFFERToBuy表的Insert语句)。在Agreement表中指出ID为1的供应商和ID为1的顾客要交易30个ID为1的零件。当执行存储过程PASS_AGREEMENT之后,Supply和OfferToBuy表中相应的数量都减少了30,交易成功。 (4)再次执行交易操作: delete from Business; 7 总结 …………………… 成绩:__________ 《数据库原理及应用》 课程设计 课题 班级 学号 姓名 指导教师 2010 年 12 月 20 日—2010 年 12 月 31 日

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服