收藏 分销(赏)

数据库专业课程设计任务与指导基础手册.doc

上传人:二*** 文档编号:4532193 上传时间:2024-09-26 格式:DOC 页数:55 大小:1.63MB
下载 相关 举报
数据库专业课程设计任务与指导基础手册.doc_第1页
第1页 / 共55页
本文档共55页,全文阅读请下载到手机保存,查看更方便
资源描述
《数据库课程设计》任务书 1. 任务和要求 (1) 先修课程:《数据库原理及应用》,《面向对象程序设计C#》、ASP.NET或JAVA等。 (2) 课程设计题目:《图书管理系统》 若自选题目,则需在课程设计第一天上报题目名称,和开发工具和数据库。 (3) 时间:2周,在《数据库原理及应用》课程结束后进行,提议提前5—8周开始准备。 (4) 开发工具和环境 开发工具:VC、VB、C#、ASP.Net、Java、Delphi等任选。 数 据 库: SQL Server、Oracle、DB2、Sybase等任选。 应用程序:Windows界面程序(C/S),或Web界面程序(B/S)。 (5) 设计汇报正文字数不少于5千字,汇报附录应包含关键源代码。要求层次清楚、整齐规范,不得相互剽窃,凡正文内容有整段相同者一律以作弊论处。 明确课程设计目标和关键性,认真领会课程设计题目,读懂课程设计指导书要求,学会设计基础方法和步骤,主动认真地做好准备工作。课程设计中,学会应用理论知识,搜集、归纳相关资料,和处理实际问题方法。严格要求自己,自信但不固执,独立完成课程设计任务,善于接收老师指导和听取同学意见,有意识地树立严谨科学作风,要独立思索,刻苦钻研,勇于创新,按时完成课程设计任务。 2. 考勤、考评和成绩 (1) 严格考勤制度,每次上机全部要统计,学生有事必需请假。考勤统计影响最终成绩。 (2) 因试验室环境不能满足课题要求,能够申请在试验室外进行设计工作。 (3) 在课程设计最终一次上机之前,必需向老师申请考评,考评时要求演示程序并回复老师提出问题。 (4) 最终成绩以考评成绩为主,考评成绩占80%以上。 (5) 课程设计完成后一周内提交设计汇报Word电子文档和打印件,和程序源代码文件(含处理方案文件和工程文件)、数据库脚本文件和数据库文件。 3. 设计汇报 (1)要求采取统一格式汇报封面。 (2)目录,要求目录层次结构清楚、合理。 (3)正文,要求包含概况、系统分析和设计、系统实现、总结、参考文件等方面内容。 系统分析和设计可包含:系统功效分析、概念模型、数据表结构、三层架构、类设计等。 系统实现可包含:数据库实现(SQL脚本)、程序界面、界面操作、关键技术及实现代码、调试中碰到问题等。 总结可包含:结论(已完成功效、包含关键技术)、下一步工作安排、收获和体会等。 (4)附录,要求包含数据库对象(含存放过程等)SQL脚本代码,和关键源程序代码。 《图书管理系统》设计指导书 1. 设计题目 图书管理系统 2. 设计目标 经过对图书管理系统系统分析、系统设计、编码和调试等工作实践,熟悉管理信息系统开发过程、设计方法及相关编程技术,熟练掌握数据库设计基础理论及方法。 3. 设计任务 要求完成一个含有一定实用价值图书管理系统,关键任务包含:  在Microsoft SQL Server //环境下建立图书管理系统所使用数据库,利用企业管理器或查询分析器建立多种数据库对象,包含:数据表、视图、约束、存放过程和触发器等; ‚ 掌握ADO.NET编程技术,对MS SQL Server数据库进行连接和操纵; ƒ 掌握使用C#语言开发一个数据库应用系统基础方法和步骤,熟悉部分基础功效实现方法,如:数据维护(插删改等操作),数据查询、浏览和Excel导出,统计和报表,用户登录和权限管理等。 „ 了解C/S或B/S应用程序多层体系结构及三层架构方案设计思想,了解迭代式开发,熟悉面向对象设计方法及其分析和设计过程,了解UML文档及其开发过程中作用。 指导书说明: (1)开发环境和目标:微软 C#、SQL Server,基于C/S结构Windows应用程序。 (2)仅给出了部分功效设计和实现,以说明面向对象分析和设计通常方法和关键编程技术,其它功效部分需要自己完成。 (3)为降低篇幅和降低阅读门槛,没有追求使用标准UML设计文档和术语。 4. 设计准备 4.1 系统准备 操作系统:Windows xp/7/8 数据库系统:SQL Server // 用户端开发工具:Visual Studio /// 4.2 知识准备 熟悉SQL Server //使用; 熟悉C#、ASP.NET语言及其数据库编程技术。 了解:迭代式开发过程、UML设计文档、设计模式;和图书馆相关业务知识 4.3 迭代式开发 迭代式开发(统一过程UP) 系统开发被组织成一系列固定短期(一段为2-6周)小项目,称为迭代;每次迭代全部产生可实施系统。每次迭代全部包含计划、需求、分析、设计、编码、测试等过程和文档编写工作;第一次迭代考虑系统关键功效,随即迭代逐步扩展系统功效;每次迭代结果(含需求、分析、设计、代码和文档等)均为下一次迭代工作基础,直至满足最终需求。这种开发过程是基于面向对象方法。 5. 系统分析 系统边界和约定 (1) 系统限定在实体书库借阅和管理等业务范围; (2) 不考虑图书馆电子书库、订购、情报、人事管理等业务; (3) 不考虑图书馆跨区分布情况,如长江大学图书馆包含多个校区图书馆; (4) 不考虑图书通借通还,如长江大学读者可在湖北省高校任何一家图书馆借还图书; (5) 不考虑珍藏图书借阅业务; (6) 暂不考虑和校园一卡通系统外部接口。一卡通系统为外部系统(外部参与者),卡内统计有身份及相关信息,该系统负责身份验证工作。 (7) 期刊库和论文库借阅和管理等业务可作为二期项目目标,视本系统使用情况而定。 需求概要 (1) 图书管理系统基础功效需求包含:读者管理、图书管理、借阅管理、用户登录和用户管理等;其它功效需求包含:读者查询和预约借书*、统计和报表*、数据备份*、书架管理*、期刊管理*、期刊借阅*、论文管理*、论文借阅*等。(* 表示留待以后迭代周期完成,下同) (2) 相关领域概念:借书证(读者)、图书、借还书统计。 (3) 系统外部参与者:读者、借书证管理员、图书管理员、借阅管理员、系统管理员。将图书馆工作人员划分为借书证管理、图书管理、借阅管理等三类人员;系统管理员负责数据库和软件系统管理,包含各类管理员用户创建和授权、数据库备份等工作。 系统分析目标 找出系统用例,书写用例文档,建立领域模型(概念模型)。 [用例] use case,或译为使用案例、用况。是指为了完成一个领域目标或任务,提供一个或多个场景来说明其在系统内部和外部(人员或外部系统等)之间交互过程。如办理借书证、借书、还书、用户登录等均为用例;而借阅管理不是用例,因为它包含多个任务;读者可否借书也不是用例,因为它不是一个领域任务或业务目标。参见“参考资料01 用例.doc”。 用例是一个事件流,一个事件对应一个系统操作;如借书用例中“依据借书证号查询读者信息”、“依据借书证号查询超期未归还图书”、“判定读者可否借书”、“判定图书是否在馆”、“确定借书”等均为事件或系统操作。 找出系统用例后,对每个用例交互操作过程进行描述(即书写用例),经过用例发觉领域概念及其属性,并建立领域模型(即概念模型)。用例和领域模型建立过程通常是交互进行,并相互参考、印证和补充完善。 经过用例发觉事件或系统操作,可进行下一步设计和实现工作,是系统设计关键内容。 在面向对象方法开发过程中,分析和设计没有显著界限,只是侧重面不一样而已。 5.1 读者管理 读者管理即借书证管理,包含业务(即用例)有:办理借书证、借书证变更、借书证挂失、解除挂失、补办借书证、注销借书证、批量办理新生借书证*等。(*表示留待迭代2及以后完成,下同。完成这类用例文档并实现其功效者,老师可酌情加分) 借书证(读者)可分为2种类别:老师、学生。 借书证(老师)=借书证号、姓名、性别、所在单位、办证日期、照片等。 借书证(学生)=借书证号、学号、姓名、性别、专业、班级、办证日期、使用期、照片等。其中,使用期由学生类别决定,本科生4年、专科生3年、硕士生3年等。 相关业务规则:(1)读者凭借书证借书;(2)老师最多借书12本,借书期限最长为60天,可续借2次;学生最多借书8本,借书期限最长为30天,可续借1次;(3)处于挂失、注销状态读者不能借书;(4)未归还图书者不能注销其借书证。 分析:增加读者类别概念,统一并简化读者信息,采取老师属性项,而学生可在所在单位填写班级,学生特有读者信息可留待以后开发周期处理。可得到2个概念:读者、读者类别。 读者=借书证号、姓名、性别、所在单位、读者类别、办证日期、照片等。(另可加:电话、邮箱等) 读者类别=读者类别号、类别名称、可借书本数、可借书天数、可续借次数。 思索:学生借书证使用期怎样处理? 1. 办理借书证 用例名称:办理借书证 迭 代:1 (说明:第1次迭代期间用例文档) 参 和 者:借书证管理员(或系统管理员)、读者 综 述:用例起始于读者来到借书证管理办公室,管理员给读者办理新借书证。 触 发 器: (说明该用例触发条件) 前置条件:登录用户含有读者管理权限。 过程描述: (标题名或为:基础步骤、基础事件流、关键成功场景等) 1. 管理员输入:读者类别、所在单位、姓名。 2. 点击“查询”。 3. 系统查询读者信息,并显示查询结果。 4. 管理员判定该读者是否已办理借书证,若是,则可取消办证过程。(人工操作) 5. 管理员输入读者信息:读者类别、姓名、性别、所在单位、办证日期、照片等。(类别、姓名、单位等可预置为过程1中输入值,办证日期可预置为系统日期) 6. 确定办证。 后置条件:创建新读者对象,并含有新借书证号;系统统计读者信息。 业务规则:借书证号应含有唯一性。 待处理问题: 1. 打印借书证; 注 释:未考虑校园一卡通做为借书证使用情况 作者和日期: -7-24日,LSH,版本号1.0 思索:读者分成老师和学生2个概念时,用例有何不一样? 2. 变更借书证 变更借书证类别、使用期、所在单位等,和其它信息;借书证号不可更改。 用例(略 要求自己完成) 3. 挂失借书证 用例名称:挂失借书证 参 和 者:借书证管理员、读者 综 述:用例起始于读者来到借书证管理办公室,管理员给读者办理借书证挂失。 前置条件:登录用户含有读者管理权限,且读者已经存在 过程描述: 1. 输入借书证号,或输入读者类别、单位、姓名。 2. 点击“查询”。 3. 系统查询并显示读者信息。 4. 找到其借书证,且读者状态为有效。 5. 确定挂失。系统修改读者状态为挂失。 后置条件:系统统计读者信息。 业务规则:借书证挂失后严禁读者借书。 分析:修改读者概念,增加属性“借书证状态”;并修改办理借书证用例。 4. 解除挂失 用例名称:解除挂失 参 和 者:借书证管理员、读者 综 述:用例起始于读者来到借书证管理办公室,管理员给读者办了解除借书证挂失。 前置条件:登录用户含有读者管理权限,且读者已经存在 过程描述: 1. 输入借书证号,或输入读者类别、单位、姓名。 2. 点击“查询”。 3. 系统查询并显示读者信息。 4. 找到其借书证。 5. 确定解除挂失。(前提:读者状态为挂失) 6. 系统修改读者状态为有效。 后置条件:系统统计读者信息。 5. 补办借书证 补办借书证过程:创建新借书证(复制原读者信息,但借书证需取新号,其它信息不变),并将原借书证借阅统计转移到新证上,原借书证注销。 用例(略 自己完成) 6. 注销借书证 相关规则:有未归还图书者不能办理注销。 用例(略 自己完成) 7. 批量办理新生借书证* 从教务管理系统导入新生信息,系统生成借书证信息,管理员核实后办理借书证。 用例(略,思索:联机在线导入,离线导入) 8. 读者类型管理 从系统功效完整性来看,还存在一个隐性功效需求:读者类型管理,即读者类型信息插、删、改、查等数据维护操作。 用例(略 要求自己完成) 5.2 图书管理 包含业务(用例):图书编目*、新书入库、图书信息维护、图书变卖和销毁处理*等。 图书信息=书号、书名、作者、出版社、出版日期、ISBN、分类号、语言、页数、单价、内容介绍、图书封面、图书状态等;(图书状态包含:在馆、借出、遗失、变卖、销毁) 1. 图书编目* 新书入库前,图书管理员对图书进行图书编目工作,即依据该馆现有图书分类目录信息编写新书分类号,需要时依据图书分类法增加新图书分类条目。 图书信息= … 、分类号、… 图书分类目录=分类号、分类名。图书分类信息关键用于统计,如汉字图书分类条目: ----------------------------------------------------------- 分类号 分类名 TP 自动化技术、计算机技术 TP3 计算技术、计算机技术 TP31 计算机软件 TP311 程序设计、软件工程 TP312 程序语言、算法语言 TP311.13 数据库理论和系统 TP311.131 数据库理论 新书分类号,图书“C#高级编程(第7版)”可编为:TP312/3033.2 图书分类概念暂不考虑, 可留待以后开发周期处理。 用例名称:图书编目(略) 2. 新书入库 用例名称:新书入库 参 和 者:图书管理员 前置条件:登录用户含有图书管理身份和权限 过程描述: 1. 输入或系统生成起始书号(BkNO)。 2. 输入:图书信息(书名、作者、出版社、出版日期、语言、页数、单价、ISBN、分类号、内容介绍等)、入库数量(N,N>=1)、入馆日期。 3. 确定图书入库。 4. 图书馆工作人员对图书进行贴书签(分类号)、印书号(或条形码)、盖图书馆印章。 5. 图书上架。 后置条件:创建N个图书对象,书号分别为BkNO、BkNO+1、…、BkNO+N-1,这N本图书状态均修改为在馆;系统统计图书信息。 注 释:BkNO+N可作为下一次新书入库起始书号。 思索:图书信息划分为2个概念是否更为合理? 馆藏图书目录=书名、作者、出版社、出版日期、ISBN、分类号、语言、页数、单价、内容介绍、图书封面、入库数量、入馆日期 图书=书号、分类号、图书状态 3. 图书信息维护 图书信息查、删、改等信息维护操作。 用例名称:图书信息维护(略 自己完成,提醒:先查找,再删改) 4. 在馆图书变卖和销毁处理* 长久没有借阅统计且失去保留价值图书能够进行变卖或销毁处理。 用例名称:在馆图书销毁和变卖处理(略) 5.3 借阅管理 包含业务用例:借书、续借、还书等。还书过程包含超期罚款、遗失图书罚款等业务规则。 罚款规则:(1)超期罚款规则 应罚款金额=超期天数*罚款率,罚款率=0.05元/天,罚款率可能随时间或读者类别而改变;实际罚款金额<=应罚款金额,依据实际情况能够进行减免。(2)遗失罚款规则 遗失图书应罚款金额=3*图书单价;实际罚款金额在(1*图书单价,3*图书单价)之间。(3)遗失罚款规则优先于超期罚款规则。 借书统计=借书证号、书号、借书操作员、借书日期、应还日期 续借统计=借书证号、书号、续借操作员、续借日期、应还日期,续借次数 还书统计=借书证号、书号、还书操作员、还书日期、应还日期,超期天数、应罚款金额,实际罚款金额 分析:借书统计、续借统计、还书统计等信息可合并为借阅统计,续借可舍去部分信息。借阅历史统计应该长久保留在数据库中,方便于统计分析,另外,读者对一本书可能数次借阅,故借阅信息应该增加一个标识项:借书次序号。 借阅信息=借书次序号、借书证号、书号、借书操作员、借书日期、应还日期,续借次数、还书操作员、还书日期,超期天数、应罚款金额,实际罚款金额 1. 借书 用例名称:借书 参 和 者:借阅管理员、读者 综 述:用例起始于读者带着图书来到图书借阅大厅,管理员给读者办理借书手续。 前置条件:登录用户含有借阅管理权限。 过程描述: 1. 管理员输入借书证号,点击“查询读者”。 2. 系统查询读者信息、未归还图书信息(含超期),并进行显示。 3. 系统判定读者可否借书(借书证状态为有效,已借书数量小于可借书数量,不存在超期未归还图书)。若不可借书,则严禁借书。 4. 管理员输入待借图书书号,点击“查询图书”。 5. 系统查询,并显示图书信息。 6. 系统判定图书是否在馆,若不在馆,则严禁借书。 7. 管理员点击“借书”。 8. 系统完成以下操作: 8.a 创建借阅统计对象(借书次序号由系统自动产生,借书证号和书号为上述输入值,借书操作员=登录用户,借书日期=系统日期,应还日期=系统日期+可借书天数,续借次数=0,还书日期=NULL,还书操作员=NULL),并标识为未归还; 8.b 修改读者对象已借书数量+1; 8.c 修改图书状态为借出; 后置条件:系统统计借阅对象、读者对象、图书对象。 业务规则:(1)借书证状态为挂失、注销者不能借书;(2)借书数量不能超出可借书数量;(3)有超期未归还图书者不能借书。 注 释:未归还图书状态可采取还书日期为空(NULL)来标识,或另加属性表示是否还书。 修改读者信息:增加“已借书数量”;修改用例办理借书证:后置条件中,已借书数量=0。 练习:修改用例以满足读者携带多本图书进行借书要求。 2. 续借 用例名称:续借 参 和 者:借阅管理员、读者 前置条件:登录用户含有借阅管理权限、图书状态为借出 过程描述: 1. 输入待续借图书书号。 2. 系统查询并获取图书对象、未归还状态借阅统计对象、及其读者对象,并进行显示。 3. 系统判定可否续借(续借次数<可续借次数, 读者状态为有效)。 4. 点击“续借”。 后置条件:修改借阅统计对象(续借次数+1,应还日期+=可借书天数),图书状态为借出,并保留到数据库中。 业务规则:(1)借书证状态为挂失、注销者不能续借;(2)续借次数不能超出可续借次数。 注 释:续借前后图书状态应为借出 3. 还书 还书用例需要处理超期罚款、遗失图书罚款处理2种情况。 用例名称:归还图书(略 要求自己完成,完成罚款处理者,老师可酌情加分) 5.4 用户登录和用户管理 包含用例:用户登录、密码修改、用户管理*,为本系统基础和关键功效。 用户包含2类:读者、管理员。其中,管理员用户权限是4种角色组合:借书证管理、图书管理、借阅管理、系统管理;系统管理员负责全部管理员用户及其权限管理,借书证管理员负责读者管理(即借书证管理)。 管理员是读者,但读者不一定是管理员;读者和管理员间存在(1对0..1)联络。 读者信息+=密码。 管理员信息=用户号、用户名、密码、管理角色 管理角色设计:可采取4位二进制,借书证管理(0001)2=1、图书管理(0010)2=2、借阅管理(0100)2=4、系统管理(1000)2=8。如表示图书管理和借阅管理权限:2+4=6;判定7是否含有图书管理权限:7位和2,即(0111)2位和(0010)2=(0010)2,表示有此权限。 分析:将管理员信息合并到读者中,可简化概念,此时,非管理员管理角色(0000)2=0。好处:简化用户登录用例;坏处:概念不够清楚,给用户管理带来不便。第1个迭代周期采取简化概念设计。另外也可用4个逻辑数据项分别表示4个管理角色。 读者信息+=密码、管理角色。需修改用例办理借书证(自己完成)。 1. 用户登录 用例名称:用户登录 参 和 者:读者或管理员 前置条件:无 过程描述: 1. 输入用户号(即借书证号)、密码;密码采取掩码“*”号显示。 2. 点击“登录”。 3. 系统依据借书证号获取读者对象。 3a. 未获取读者对象时,显示无此用户,转入1; 3b. 密码未匹配时,显示密码错误,并清空密码,转入1; 4. 进入系统主程序界面。 后置条件:依据登录用户权限显示或隐藏对应系统功效(菜单等)。 待处理问题: 1. 挂失或注销借书证者不能登录。 注 释:该登录用户(读者)对象应为全局可见 系统功效和用户角色之间关系参见“表1 系统功效和用户角色关系表”。 2. 密码修改 用例名称:修改密码 参 和 者:用户 综 述:用户登录后修改自己登录密码。 ..(略) 3. 用户管理* 用例名称:用户管理 参 和 者:系统管理员、图书馆工作人员 综 述:系统管理员对图书馆工作人员进行权限管理。 前置条件:登录用户为系统管理员,图书馆工作人员需先办理借书证 过程描述: 1. 输入借书证号,或输入读者类别、单位、姓名。 2. 点击“查询”。 3. 系统查询,并显示读者信息。 4. 找到借书证后,设置该读者管理角色。 5. 确定完成。 后置条件:修改读者管理员角色,系统统计读者信息。 注 释: 管理角色有4种:借书证管理、图书管理、借阅管理、系统管理 5.5 读者查询和预约借书* 读者(非管理员用户)功效需求,包含用例:未归还图书查询和续借*(含超期、立即到期查询操作)、预约借书*(含在馆图书查询操作)等。 该类读者所使用功效最好是采取web程序实现,Web程序功效可包含:读者登录、密码修改、未归还图书查询和续借*、预约借书*等。 用例名称:未归还图书查询和续借(略,思索:和续借用例有不一样吗?) 用例名称:预约借书(略,思索:对借书用例有何影响?可在迭代2完善借书用例) 5.6 统计和报表* 包含:馆藏图书统计、借阅情况统计、借阅时段统计等等。 馆藏图书统计可按图书类别、入馆时间统计图书数量、金额等,可得图书分布情况; 借阅情况统计可按单位(含专业、年级)、图书类别、借阅时间(年、学期、月份)等统计借阅次数和天数,统计结果可作为订购新书参考依据; 借阅时段统计按工作日(星期一、二、、、)和时段(8:00-8:30、8:30-9:00、、、)统计借还书次数,可得各时段借阅工作量,并可依此安排借阅管理人员。 注:包含OLAP(联机分析处理)技术,开发者需了解“多维数据模型”及相关概念。 用例(略) 5.7 数据备份* 用户备份是对SQL Server数据库进行备份,由系统管理员操作。 5.8 系统功效和用户角色 表1 系统功效和用户角色关系表 序号 系统功效 借书证管理 图书管理 借阅管理 系统管理 读者 1 读者管理 √ (√) 2 图书管理 √ 3 借阅管理 √ 4 用户登录 √ √ √ √ √ 5 密码修改 √ √ √ √ √ 6 用户管理 √ 7 读者预约 √ √ √ √ √ 8 统计和报表 √ √ √ √ 9 数据备份 √ 10 5.9 领域模型 领域概念小结 读者=读者号(借书证号)、姓名、性别、所在单位、电话、邮箱地址、办证日期、照片、借书证状态、已借书数量、密码、管理角色。(借书证状态:有效、挂失、注销) 读者类别=读者类别号、读者类别名称、可借书数量、可借书天数、可续借次数,罚款率,证件使用期。 图书=书号、书名、作者、出版社、出版日期、ISBN、分类号、语言、页数、单价、内容介绍、图书封面、图书状态。(图书状态包含:在馆、借出、遗失、销毁、卖出) 借阅信息=借书次序号、读者号、书号、借书操作员、借书日期、应还日期、续借次数、还书操作员、还书日期,超期天数、应罚款金额、实际罚款金额。 领域模型 图1 图书管理系统概念模型(V1) 关键提醒:在领域模型建立后、和数据库设计完成后,均应检验全部用例文档(检验关键:事件流、前置条件和后置条件),检验二者一致性,发觉缺漏点及矛盾之处,并进行修正。 6.系统设计和实现 6.1 数据库设计和实现 1. 读者类别表(TB_ReaderType) 序号 字段名 数据类型 说明 1 rdType SmallInt 读者类别【主键】 2 rdTypeName Nvarchar(20) 读者类别名称【唯一、非空】 3 CanLendQty Int 可借书数量 4 CanLendDay Int 可借书天数 5 CanContinueTimes Int 可续借次数 6 PunishRate Float 罚款率(元/天) 7 DateValid SmallInt 证书使用期(年)【非空,0表示永久有效】 2. 读者信息表(TB_Reader) 序号 字段名 数据类型 说明 1 rdID Int 读者编号/借书证号【主键】 2 rdName nvarchar(20) 读者姓名 3 rdSex nchar(1) 性别,男/女 4 rdType SmallInt 读者类别【外键TB_ReaderType】【非空】 5 rdDept nvarchar (20) 单位代码/单位名称 6 rdPhone nvarchar(25) 电话号码 7 rdEmail nvarchar(25) 电子邮箱 8 rdDateReg datetime 读者登记日期/办证日期 9 rdPhoto image 读者照片 10 rdStatus nchar(2) 证件状态,3个:有效、挂失、注销 11 rdBorrowQty Int 已借书数量(缺省值0) 12 rdPwd nvarchar (20) 读者密码(初值123),可加密存放 13 rdAdminRoles SmallInt 管理角色,0-读者、1-借书证管理、2-图书管理、4-借阅管理、8-系统管理,可组合 分析提醒:(1)可将管理员另外建表,和读者信息分开单独进行设计。(2)单位rdType能够采取名称,若采取代码则需另建一张表:单位代码和名称对照表,这么便于按单位统计。(3)管理角色(rdAdminRoles)也可设计为4个bit类型字段。 3. 图书信息表(TB_Book) 序号 字段名 数据类型 说明 1 bkID Int 图书序号【标识列,主键】 2 bkCode Nvarchar (20) 图书编号或条码号(前文中书号) 3 bkName Nvarchar(50) 书名 4 bkAuthor Nvarchar(30) 作者 5 bkPress Nvarchar(50) 出版社 6 bkDatePress datetime 出版日期 7 bkISBN Nvarchar (15) ISBN书号 8 bkCatalog Nvarchar(30) 分类号(如:TP316-21/123) 9 bkLanguage SmallInt 语言,0-汉字,1-英文,2-日文,3-俄文, 4-德文,5-法文 10 bkPages Int 页数 11 bkPrice Money 价格 12 bkDateIn DateTime 入馆日期 13 bkBrief Text 内容介绍 14 bkCover image 图书封面照片 15 bkStatus NChar(2) 图书状态,在馆、借出、遗失、变卖、销毁 说明:bkCode为前文中书号,这里没有设计为关键字,而增加bkID字段作为表关键字,其原因为:预防新书入库时起始书号输入错误时,因关键字而不易修改。 4. 借阅信息表(TB_Borrow) 序号 字段名 数据类型 说明 1 BorrowID Numeric(12,0) 借书次序号【主键】 2 rdID Int 读者序号【外键TB_Reader】 3 bkID Int 图书序号【外键TB_Book】 4 ldContinueTimes Int 续借次数(第一次借时,记为0) 5 ldDateOut DateTime 借书日期 6 ldDateRetPlan DateTime 应还日期 7 ldDateRetAct DateTime 实际还书日期 8 ldOverDay Int 超期天数 9 ldOverMoney Money 超期金额(应罚款金额) 10 ldPunishMoney Money 罚款金额 11 lsHasReturn Bit 是否已经还书,缺省为0-未还 12 OperatorLend Nvarchar(20) 借书操作员 13 OperatorRet Nvarchar(20) 还书操作员 分析提醒:借阅信息即用于图书借还管理,同时又是统计分析关键信息起源,故要求保持其历史信息。设计时不能以(读者序号+图书序号)为关键字,不然读者不能第二次借阅同一本书了。 5. 数据库实现 内容: (1) 创建数据库:Library; (2) 创建登录名:LibAdmin,密码:123;并设置为数据库Librarydbo; (3) 创建上述4张数据表及约束; 实现方法: (1) 采取SQL Server企业管理器手工操作方法完成创建工作;(自己完成) (2) 编写SQL脚本文件,并在查询窗口工具中运行并创建;如创建TB_ReaderType表: CREATE TABLE [dbo].[TB_ReaderType]( [rdType] smallint NOT NULL, [rdTypeName] nvarchar(20) NOT NULL, [CanLendQty] int NULL, [CanLendDay] int NULL, [CanContinueTimes] int NULL, [PunishRate] float NULL, [DateValid] smallint NULL DEFAULT ((0)), PRIMARY KEY ([rdType]), UNIQUE ([rdTypeName]) ) GO insert into [TB_ReaderType] values(10,'老师',12,60,2,0.05,0); insert into [TB_ReaderType] values(20,'本科生',8,30,1,0.05,4); insert into [TB_ReaderType] values(21,'专科生',8,30,1,0.05,3); insert into [TB_ReaderType] values(30,'硕士硕士',8,30,1,0.05,3); insert into [TB_ReaderType] values(31,'博士硕士',8,30,1,0.05,4); GO 6.2 三层架构介绍 采取三层体系结构,即表示层、业务逻辑层和数据访问层,图2所表示,图中箭头表示调用和依靠关系。 图2 三层架构示意图 表示层(USL):也称UI,提供交互式界面,形式:WinForm或HTML Web界面。 业务逻辑层(BLL):实现业务功效,为表示层提供服务,形式:类库。 数据访问层(DAL):实现数据访问功效(如数据库、文件等数据读取、保留和更新),为业务逻辑层提供服务,形式:类库。微软公布SQLHelper类提供了对SQL Server数据库通常访问方法(JAVA有类似类或组件)。 实体类(Model):描述一个业务实体类,也即应用系统所包含业务对象。对数据库来讲,每个数据表对应于一个实体类,数据表每个字段对应于类一个属性。 表示层、业务逻辑层、数据访问层全部依靠于业务实体。各层之间数据传输关键是实体对象,业务信息封装在实体对象中。 6.3 搭建三层架构处理方案 创建C#应用程序处理方案,包含4个项目:BookManage(Windows窗口应用程序)、BookManage.Model(类库)、BookManage.DAL(类库)、BookManage.BLL(类库)。 1. 新建项目BookManage(开启项目) MS VS菜单:“文件”->“新建”->“项目”,在新建项目窗口中,选择“C#”->“Windows”->“Windows窗口应用程序”,选择项目文件存放位置,并输入项目名称:BookManage,图3。 项目BookManage即为UI层,该项目在VS .NET编译后产生BookManage.exe文件。 图3 新建项目BookManage 2. 添加新项目BookManage.Model MS VS菜单:“文件”->“添加”->“新建项目”,选择“类库”,输入项目名称,图4。VS .NET编译后产生BookManage.Model.dll文件(.DLL后缀文件称为动态链接库)。 图4 添加新建项目BookManage.Model 3. 添加新项目BookManage.DAL 操作和BookManage.Model类似,项目名称设置为:BookManage.DAL。VS .NET编译后产生BookManage.DAL.dll文件。 4. 添加新项目BookManage.BLL 操作和BookManage.Model类似,项目名称设置为:BookManage.BLL。VS .NET编译后产生BookManage.BLL.dll文件。至此,处理方案参见图5。 图5 图书管理项目处理方案 5. 设置开启项目和项目引用关系 在处理方案中设置BookManage为开启项目(“BookManage”右键菜单“设为开启项目”)。 项目引用关系如表2所表示。如BookManage.BLL项目引用DAL和Model,其设置方法:处理方案中项目“BookManage.BLL”右键菜单“添加引用”,并按图6进行设置。 表2 项目引用关系。 BookManage BookManage.BLL BookManage.DAL BookManage.Model BookManage - √ × √ BookManage.BLL - √ √ BookManage.DAL - √ BookManage.Model - 图6 给BookManage.BLL项目添加引用 6.4 类总体设计(迭代1) 实体类、数据访问层类、业务逻辑层类、表示层窗口类初步设计如表3。 表3 实体类、数据访问层、业务逻辑层类设计 层 类名 说明 实体类模块 (Model) ReaderType 读者类型实体类 Reader 读者实体类 Book 图书实体类 Borrow 借阅统计实体类 数据访问层 (DAL) ReaderTypeDAL 读者类型数据表访问类(插、删、改、查、存放过程等) ReaderDAL 读者数据表访问类(插、删、改、查、存放过程等) BookDAL 图书数据表访问类(插、删、改、查、存放过程等) BorrowDAL 借阅数据表访问类(插、删、改、查、存放过程等) SQLHelper 微软提供对SQL Server数据库进行访问通用类 业务逻辑层 (BLL) ReaderTypeAdmin 读者类型管理类,实现插、删、改、查等信息维护操作。 ReaderAdmin 读者管理类,实现借书证办理、变更、补办、挂失、解除挂失、注
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 学术论文 > 其他

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

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

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

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

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

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

客服