《数据库大作业图书管理系统设计.pdf》由会员分享,可在线阅读,更多相关《数据库大作业图书管理系统设计.pdf(27页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、本科学生综合性实验报告本科学生综合性实验报告课程名称:数据库系统原理课程名称:数据库系统原理数据库设计班级 B01 班姓名学号项目名称图书馆管理系统指导教师开课学期 2011 至 2012 学年 第二学期完成时间 2012年 5 月 30日目录1 1 需求分析需求分析.3 311.1 系统目标.31.2 业务需求及处理流程.31.3 功能需求及数据需求分析.51.4 业务规则分析.72 2概念设计概念设计.9 92.1 命名规范.错误错误!未定义书签。未定义书签。2.2 实体集及属性.错误错误!未定义书签。未定义书签。2.3 联系集及属性.92.4 系统总 E-R 图.162.5 报表.173
2、 3 逻辑设计逻辑设计.1 18 83.1 数据字典.183.2 基本数据设计.183.3 业务数据设计.213.4 其它数据设计.213.5 视图设计.213.6 触发器设计.223.7 存储过程设计.234 4 模式求精模式求精.2 24 44.1 存在的问题.244.2 解决方案.245 5 物理设计物理设计.2 25 55.1 设计目标.255.2 数据分布.255.3 索引实现.256 6 安全设计安全设计.2 26 66.1 设计目标.266.2 用户设计.266.3 权限设计.2721 1 需求分析需求分析1.1系统目标图书馆在正常运营中面对大量书籍、读者信息以及两者间相互联系产
3、生的借书信息、还书信息。现有的人工记录方法既效率低又错误过多,大大影响了图书馆的正常管理工作。因此需要对书籍资源、读者资源、借书信息、还书信息进行管理,及时了解各个环节中信息的变更,有利用管理效率的提高。本系统通过强大的计算机技术给图书管理人员和读者借、还书带来便利。本系统除了图书馆内管理的一般功能还外,还包括网上在线查询图书信息、查询本人的借阅情况和续借等功能,系统的功能相对比较完善。根据以后不同的需要,还可以对系统进行更新。1.2业务需求及处理流程根据实际情况可以将图书馆管理系统分为四大流程:图书上架流程图、读者借书流程图、读者还书流程图和读者网上流程图。(1 1)图书上架流程如图)图书上
4、架流程如图 1-11-1开始给图书分类,编号给图书贴上条形码和带编号的标签把信息录入数据库按图书编号规则上架到指定位置结束图 1-1图书上架流程图3(2 2)读者借书流程如图)读者借书流程如图 1-21-2开始N借书证件有效?借书证件有效?Y YY Y有超期未还的书有超期未还的书?N把信息写入数据库办理借书结束图 1-2 读者借书流程图(3 3)读者还书流程如图)读者还书流程如图 1-31-3开始Y Y有超期未还的书?有超期未还的书?处罚N把信息写入数据库办理还书结束图 1-3 读者还书流程图4(4 4)读者网上流程图如图)读者网上流程图如图 1-41-4开始管理员登录此图书馆查询预订图查询网
5、上续查询阅读图书结束建议图书馆还需购买哪些查询图书信把信息写入数据库图 1-4 读者网上流程图1.31.3 功能需求及数据需求分析功能需求及数据需求分析图书馆管理系统总的系统功能模块如图 1-5 所示:5图书馆管理系统图书馆管理系统新新图图图图管管管管读读图图图图书书书书书书理理理理者者书书书书录录信信档档员员员员借借流流下下入入息息案案档档证证阅阅通通架架和和管管管管案案件件管管统统管管上上理理理理管管管管理理计计理理架架理理理理管管理理新新图图图图图图上上图图管管管管挂挂补补禁禁各各分分图图下下书书书书书书书书架架书书理理理理失失办办用用种种析析书书架架录录信信信信档档下下档档员员员员数数
6、有有下下图图入入息息息息案案架架案案注注档档据据用用架架书书数数查查更更的的家家注注册册案案的的数数处处据据询询新新建建管管销销的的统统据据理理库库及及立立理理注注借借还还续续计计并并删删销销书书书书借借上上除除架架图 1-5 系统功能模块图(1)、新书录入和上架管理。新书录入和上架管理。1新书录入数据库并上架。主要是为图书流通环节(如借书,还书等)做准备工作。包括图书编号、图书名称、作者、版本单价、出版社名、出版时间、上架时间、描述、图书图片、光盘数量、光盘价格等信息。(2)、图书信息管理图书信息管理1图书信息查询。可输入指定关键词进行简单查询,也可根据 ISBN、书名、作者、出版社等组合查
7、询。2图书信息更新及删除。当发现图书信息录入有误时,管理员可随时更新和删除图书信息。(3)、图书档案管理图书档案管理1.图书档案的建立。管理员要为每个图书建立档案,包括图书名称、图书编号、isbn、上架时间、操作人、翻译者、条形码、单价、版本、页数等信息。2.图书档案注销。对要注销图书的和因其它原因要注销的图书进行注销。6图图书书续续借借管管理理备备案案(4)、管理员档案管理。、管理员档案管理。1管理员注册。管理员在系统里注册管理员帐号,被图书馆总负责人允许后生效。包括管理员姓名、管理员地址、管理员联系电话、管理员e-mail、管理员密码、管理员性别、管理员相片等信息。2管理员档案的注销。总负
8、责人对辞职的管理员进行注销。(5)、读者借阅管理读者借阅管理。1借书。审查读者的借书证件是否有效.并为读者办理借阅手续。并修改读者借书信息。2还书。对需要还书的读者办理还书手续,若发现借书超期则给予相应处罚。并修改读者还书信息。3续借。当有读者需更多时间去浏览此书,可到图书馆办理续借手续,也可登录网站续借图书。修改读者数据库相关信息。(6)、图书流通统计。图书流通统计。1各种数据的统计。图书流通统计主要是对借阅图书的统计,借阅情况的统计对研究文献流通数量方面发展变化的程度和规律具有参考价值,并能为实现文献流通工作的目标管理提供了科学的手段和方法。包括借阅次数较多的图书、没人借的图书、借书次数较
9、多的读者、借书次数少的读者等信息。2分析有用数据。可以了解哪些是热门图书,哪些图书无人问津,对管理员的购书决策有很大的帮助。(7)、图书下架管理。图书下架管理。1图书下架。管理员定期将损毁的书籍和部分偏门无人借阅的书籍下架,以空出位置给其他书籍。2下架图书处理。管理员根据实际情况将下架的书籍或修补好重新上架,或将之卖以废纸回收处等方法处理。(8)、图书遗失管理。图书遗失管理。1备案。管理员对发现遗失的图书进行登记,备案。包括图书编号、遗失时间等信息。1.4 业务规则分析业务规则分析主要是分析数据之间的约束以及数据库约束。基于上述功能7需求,通过进一步了解,图书馆管理系统业务规则如下:(1).管
10、理员凭帐号密码登录系统。然后才能给读者办理业务。帐号为管理员编号,密码初始也为管理员编号,要求管理员第一次登录系统时必需修改密码。(2).系统需要记录每种图书的当前数量,当数量经常处于 0 时,要求提示增加此书。(3)发现读者有超期未还图书的情况,不让该读者借书。(4)对已超期的图书不予办理续借。(5)当读者违章禁用借书凭证时,将借书凭证可用状态改为“不可用”,当取消此惩罚时改为“可用”。(6)只有管理员才可以对图书的信息进行修改,如增加、删除、修改。(7)当读者归还图书后将其借书记录自动存档。(8)读者在网上预订的书其他人不可借出。(9)采用中国图书馆图书分类法对图书进行编码。82 2概念设
11、计概念设计2.1 命名规范概念设计中涉及到联系集和实体集。在我的图书馆管理系统中,一致将实体集的名称定义为与该实体集意义相关的名词,将联系集的名称定义为与该实体集意义相关的动词。每个单词各字母均为小写,单词后加学号后四位(如:publishing4098)。将实体集或者联系集中包含的属性定义为与该属性意义相关的名词。每个名词各字母均为小写(如:translator,ISBN 等除外)。2.2 实体集及属性根据以上命名规范的原则,各实体集的定义、属性和 E-R 图分别设计如下:(1)图书馆实(library4098)体集:其属性有:图书馆编号(id1)、图书馆名(libraryname1)、图书
12、馆地址(address)、建馆时间(createDate)、电话(tel)、图书馆网址(url)、图书馆介绍(introduce)、email(email)、馆长(curator)。图书馆实体集 E-R 图如图 2-1 图书分馆实体集 E-R 图所示。图书馆编号图书馆图书馆名图书馆地址建馆时间图 2-1 图书馆实体集 E-R 图(2)图书分类 bookType4098)实体集:其属性有:图书类型编号(id1)、图书类型名(typename1)、可借天数(days)。图书类目实体集 E-R 图如图 2-2书架实体集 E-R 图所示。9图书类目类目编号可借天数类目名称图 2-2 书架实体集 E-R
13、 图(3)书架(bookCase4098bookCase4098)实体集:其属性有:书架编号(id1id1)、书架、书架别名(别名(name1name1)、书架描述(、书架描述(Column_3Column_3)。书架实体集 E-R 图如图 2-3 图书类目实体集 E-R 图所示。书架书架编号图书馆编号书架位置图 2-3 图书类目实体集 E-R 图(4)图书信息(bookInfo4098)实体集:其属性有:图书编号(id1id1)、图书名称(bookname1bookname1)、作者(authorauthor)、版本(typeid1typeid1)、单价(price)、条形码(barcode
14、)、翻译者(translator)、图书 ISBN 号(ISBNISBN)、图书页码(pagepage)、书架(bookcasebookcase)、入库时间(intimeintime)、操作人员(operator1operator1)。图书实体集E-R 图如图 2-4 图书实体集 E-R 图所示。10作者图书名称版本单价出版社名图书编号图书光盘价格光盘数量描述图片书架编号类目编号出版时间上架时间图 2-4 图书实体集 E-R 图(5)读者(reader4098)实体集:其属性有:读者编号(id1)、读者姓名(name1)、借书卡编号(rbarcode)、读者联想电话(tel)、读者e-mail
15、(email)、职业(vocation)、出生年月(birthday)、证件类型(paperType)、证件号码(paperNo)、操作人员(operator1)、读者类型编号(typeid1)、评论(remark)、性别(sex)。读者实体集 E-R 图如图 2-5 读者实体集 E-R 图所示。读者地址读者创建日期读者姓名读者编号读者读者联系电话读者emailVip等级读者相片性别工作单位身份证号借书凭证可用状态读者密码借书数量图 2-5 读者实体集 E-R 图(6)管理员(Admin)实体集:其属性有:管理员编号(id1)、管理员姓名(name1)、管理员密码(PWD)。管理员实体集 E-
16、R 图如图 2-6 管理员实体集 E-R 图所示。11管理员联系电话管理员姓名管理员email管理员创建日期管理员编号管理员管理员密码图 2-6 管理员实体集 E-R 图(7)出版信息(publishing4098)实体集:其属性有:图书 ISBN 号(ISBN)、出版社名(pubname1),出版信息实体集 E-R 图如图 2-7 出版信息实体集 E-R 图所示。规章编号规章内容规章制度图 2-7 出版信息实体集 E-R 图(9)权限(purview4098)实体集:其属性有:权限编号(id1)、系统设置权限(sysset)、读者管理权限(readerset)、图书设置(bookset)、图
17、书归还权限(borrowback)、查询权限(sysquery),电子书实体集 E-R 图如图 2-9 电子书实体集 E-R 图所示。12电子书名称作者版本电子图书编号电子图书单价描述存储路径电子书字节大小电子书图片图 2-9 电子书实体集 E-R 图(10)参数信息(parameter4098)实体集:其属性有,参数编号(id1)、费用(cost)、有效期(valid1ity),系统功能模块实体集 E-R 图如图 2-10 系统功能模块实体集 E-R 图所示。功能编号功能名称系统功能模块图 2-10 参数信息实体集 E-R 图(11)归还(giveBack4098)实体集:其属性有,归还编号
18、(id1)、读者编号(readerid1)、图书编号(bookid1)、归还时间(backTime)、操作人员(operator1)归还实体集 E-R 图如图 2-11 归还实体集 E-R 图所示。留言编号内容时间留言模块图 2-11 归还实体集 E-R 图13(12)借出(borrow4098):其属性有借书编号(id1),读者编号(readerid1)、图书编号(bookid1)、借出时间(borrowTime)、应归还时间(backTime)、操作人员(operator1);借借出实体集 E-R 图如图 2-12 借借出实体集 E-R 图所示。图书编号借书时间归还时间读者编号借书历史应还
19、时间图 2-12 借书历史实体集 E-R 图(13)读者类型(readerType4098)实体集:其属性有类型编号(id1),类型名称(name1)、可借书本数(number1);读者类型实体集 E-R 图如图 2-13 读者类型实体集 E-R 图所示。类型名称类型编号可借数量读者类型图 2-13 VIP 等级实体集 E-R 图2.3 联系集及属性(1)图书馆和书架之间的“包含”联系集,它是一对多的关系,其属性有书架名(name1)、书架编号(id1)、书架描述(Column_3)。(2)图书类目和图书的“包含”联系集,它是一对多的关系,其属性有:类目编号(classNo)、图书编号(boo
20、kNo)。(3)书架和书之间的“存放”联系集,它是一对多的关系,其属性有:书架编号(bookrackNo)、图书编号(bookNo)。(4)读者和图书之间的“借、还、续”联系集。它是一对多的关系,其属性有:读者编号(readerNo),图书编号(bookNo)、借书时间(borrowDate)、应还时间(shouldDate)、续借时间(reborrowDate)、归还时间(returnDate)、管理员编号(adminNo)。(6)读者借还图书和借书历史之间的“数据转移”联系集。读者借还书的记录14在读者还书后要把记录转移到历史记录里。它是一对多的关系,其属性有:读者编号(readerNo)
21、,图书编号(bookNo)、借书时间(borrowDate)、应还时间(shouldDate)、归还时间(returnDate)、管理员编号(adminNo)。(7)读者、管理员和系统功能模块之间的“用户权限”联系集,它是一对多的关系,其属性有:用户编号(userNo)(包括读者编号和管理员编号)、功能编号(systemFunctionNo)。(8)管理员和图书之间的“管理“联系集,如对图书信息的删除、增加、更新。它是一对多的关系,其属性有:管理员编号(adminNo)、图书编号(bookNo)、处理时间(dealDate)。(9)管理员和遗失图书之间的“备案”联系集,它是一对多的关系,其属性
22、有:管理员编号(adminNo)、图书编号(bookNo)。152.4 系统总 E-R 图遗失图书备案系统功能模块图书馆包含管理管理员用户权限书架图书类目包含包含图书借还书读者数据转移违章借出表规章制度162.5 报表为方便图书馆管理人员分析图书流通信息,方便发现那些书受欢迎、那些书较冷门、那些群体借书多、那些群体借书少等信息,建立图书流通统计月报表借出记录统计报表借出记录读者读者图书图 书 名书类单价序号编号姓名编号称123借阅日应归还期日期读者信息统计报表读者信息读者读者性累计借未还序号编号姓名别书次数数量123开户信息统计报表开户信息读者VIP 等VIP 等序号编号级号级12317登记时
23、间有效期状态身份证号序号123123图书入库信息统计报表书架号图书图书分类分类单价入库编号名称号时间书架 1书架 2作者出 版出版社时间3 3 逻辑设计逻辑设计3.1 数据字典(1)性别字典(DCSex)。其数据字典描述如图 3-1 所示:属性名称属性名称属性类型属性类型是否允许为空是否允许为空默认值默认值否sexNochar(1)是sexNamevarchar(4)是ifVoidchar(1)0图 3-1 性别字典属性描述属性描述性别编号性别名称是否有效3.2 基本数据设计(1)图书馆表,如图 3-2 所示:属性名称属性名称id1libraryname1curatorteladdressem
24、ailurlcreateDate数据类型数据类型intvarchar2(50)varchar2(10)varchar2(10)varchar2(100)varchar2(100)varchar2(100)date18是否为空是否为空否是是是是是是是属性描述属性描述图书馆编号图书馆名馆长电话地址email图书馆网址创建时间varchar(200)是图 3-2 图书馆表 library4098(2)图书分类表,如图 3-3 所示:introduce图书馆介绍属性名称属性名称数据类型数据类型是否为空是否为空属性描述属性描述id1int否图书类型编号typename1varchar2(30)是图书类型
25、名daysint是可借天数图 3-3 图书分类表 bookType4098(3)书架表,如图 3-4 所示:属性名称属性名称数据类型数据类型是否为空是否为空int否id1varchar2(30)是name1varchar2(30)是Column_3图 3-4 书架表 bookCase4098(4)图书信息表,如图 3-5 所示:属性名称属性名称数据类型数据类型是否为空是否为空属性描述属性描述barcodevarchar2(30)是条形码bookname1varchar2(70)是书名typeid1int是类型编号authorvarchar2(30)是作者名varchar2(30)是翻译者tra
26、nslatorvarchar2(30)是图书 ISBN 号ISBNpricenumeric(8,2)是图书价格pageint是图书页码bookcaseint是书架date是入库时间intimevarchar2(30)是操作人员operator1Int是是否删除delInt否图书编号id1图 3-5 图书信息表 bookInfo4098(5)读者表,如图 3-6 所示:属性名称属性名称数据类型数据类型19属性描述属性描述图书架编号书架 m 名书架描述是否为空是否为空属性描述属性描述id1int否name1Varchar2(20)是sexvarchar2(4)是barcodeVarchar2(20
27、)是vocationvarchar2(50是birthdaydate是paperTypevarchar2(10)是paperNovarchar2(10)是telvarchar2(20)是emailvarchar2(100)是createDatedate是operator1Varchar2(30)是remarkvarchar2(200)是typeid1int是图 3-6 读者表 reader4098读者编号读者姓名性别借书卡编号职业出生年月证件类型证件号码电话email创建时间操作人员评论读者类型编号(6)管理员表,如图 3-7 所示:属性名称属性名称数据类型数据类型id1intname1Var
28、char2(20)PWDVarchar2(20)(7)出版信息表,如图 3-8 所示:是否为空是否为空否是是属性描述属性描述管理员编号管理员姓名管理员密码属性名称属性名称数据类型数据类型是否为空是否为空属性描述属性描述ISBNvarchar2(20)否图书 ISBN 号pubname1varchar2(30)否出版社名图 3-8 出版信息表 publishing4098(8)图书分类表,如图 3-9 所示:属性名称属性名称id1数据类型数据类型int是否为空是否为空否属性描述属性描述图书类型编号typename1varchar2(30)是图书类型名daysint是可借天数图 3-9 图书分类表
29、 bookType4098(9)读者类型表,如图 3-10 所示:属性名称属性名称id1数据类型数据类型int20是否为空是否为空否属性描述属性描述类型编号name1Varchar2(50)是类型名称number1int是可借书本数图 3-10 读者类型表 readerType40983.3 业务数据设计通过上述的E-R 图设计,得到了商品销售系统的业务数据,包括:借书表(borrow4098)、归还表(giveBack4098)(11)借出表,如图 3-12 所示:属性名称属性名称数据类型数据类型是否为空是否为空属性描述属性描述id1int否借书编号readerid1int是读者编号book
30、id1int是图书编号borrowTimeDate是借出时间backTimeDate是归还时间operator1varchar2(30)是操作人员ifbackint是是否归还图 3-12 借书表 borrow4098(2)归还表(giveBack4098):由归还实体集转化而来,如图 3-15 所示:属性名称属性名称数据类型数据类型是否为空是否为空id1int否readerid1int否bookid1int是backTimedate是operator1varchar2(30)是图 3-15 归还表(giveBack4098)属性描述属性描述归还编号读者编号图书编号归还时间操作人员3.4 其它数
31、据设计(1)参数信息表,如图 3-11 所示:属性名称属性名称id1cost数据类型数据类型intint21是否为空是否为空否是属性描述属性描述参数编号费用valid1ityint是有效期图 3-11 参数信息表 parameter4098(2)权限表,如图 3-13 所示:属性名称属性名称id1syssetreadersetbooksetborrowbacksysquery数据类型数据类型是否为空是否为空int否int否int否int否int是int是图 3-13 权限表 purview4098属性描述属性描述权限编号系统设置权限读者管理权限图书设置图书归还权限查询权限3.5 视图设计数据库
32、的视图设计可以在一定层次上提高数据库的安全性,来达到业务的透明性;也可以降低脚本设计的复杂度。安全性主要涉及到图书的查询、借还书时信息的处理、网上续借、网上订书、隐藏读者部分信息等业务。同时用户没有访问涉及到业务关系到的基本表的权限,所以建立各种视图来处理各种业务,这样既不破坏数据库的安全性设计,又达到了预期的效果。为提高数据的查询和提高数据的安全性,建立以下视图:(1)视图一 BooksViewBooksView:方便读者快速高效的查询图书信息。(2)视图二 BorrowViewBorrowView:保证借书业务相关基本表的安全性。(3)视图三ReaderViewReaderView:从读者
33、表里选部分数据出来组成视图,保证其他数据的安全性,只能查看视图里的数据,保证了读者的个人隐私。(4)视图四 BookingViewBookingView:预订图书视图,方便读者查询哪些图书已经被其他读者预订。3.6 触发器设计触发器是用户定义在关系表上的一类由事件驱动的存储过程,由服务器自动激活。触发器可以进行更为复杂的检查和操作,具有更精细和更强大额数据控制能力。数据库的触发器设计主要是在数据的插入、删除和更新操作场合下来进行更为复杂的检查和操作,一次来保证数据库的正确性和一致性。本系统涉及到图书的借还信息、图书的网上预订等数据更新操作,对应于不同的操作建立不同的触发器来限定各种操作的范围和
34、数据的一致性。为此设计了如下触发器:22(1)触发器一 BorrowIns,当插入或删除读者借书记录时,保证 Borrow 表某读者的借书记录数量和 Reader 表中的 borrowCount 值一致。(2)触发器二 ReaderStatus,当读者违反某规章制度时,自动让读者的借书证件可用状态改为不可用。(3)触发器三 BookingRemove,当读者在网上预订某图书后,有效期为一天,若一天内,读者没到图书馆借此书,此触发器自动从预订表中删除此预订记录。如果预定此书的读者借出书,此触发器自动从预订表中删除此预订记录。(4)触发器四 BookingNotBorrow,控制预订表中的图书不可
35、被其他读者借出。只允许预订此书的读者借出。3.7 存储过程设计数据库的存储过程设计主要是为了完成特定功能汇集而成的一组 SQL 语句集合,该集合编译后存放在数据库中。由于存储过程可以直接运行,也可以远程运行,使用存储具有将业务操作封装、便于事物管理、实现一定程度的安全性保护等优点。并且存储过程特别适合统计和查询操作、减少网络通讯量,因为这部分数据的计算在服务端执行,客户端只调用此存储过程,并获得结果,减轻网络的负载。(1)存储过程一 proFindBooks,输入图书名称查找该图书是否借出,并显示图书的图书编号、作者、出版社等信息。(2)存储过程二proFindReader,输入读者编号或读者
36、姓名,显示读者的借阅信息,包括已借图书数量、已借图书的编号、已借图书名称、违章次数等信息。(3)存储过程三 proOverdue,此触发器是为方便程序设计而准备的,用来显示有多少读者至今有超期未还的图书,并显示那些超期未还图书的读者编号、姓名、工作单位、未还图书编号、图书名称等信息。(4)存储过程四 proReader Available,方便系统判断读者的借书证件是否有效,若无效则不允许借书。234 4 模式求精模式求精4.1 存在的问题读者在图书馆网站留言关系模式若设计为 Message(readerNo,readerName,messageModuleNo,content,message
37、ModuleDate,adminNo,adminName,replyDate)。这样设计会产生大量数据冗余,所以必需对 Message 进行模式分解。4.2 解决方案通过分析关系模式 Message 可知,存在以下函数依赖:readerNo readerNamemessageModuleNocontent,messageModuleDateadminNoadminName显然存在非主属性对主属性的部分依赖,所以 Message 只是第一范式。经过模式分解,并定义一个留言编号做主键,最后将 Message 分解为如下满足BCNF 要求的关系模式:NewMessage(MessageNo,read
38、erNo,messageModuleNo,adminNo,replyDate)。245 5 物理设计物理设计5.1 设计目标数据库最终是要存储在物理设备上的。为一个给定的逻辑数据模型选取一个最适合应用环境的物理结构(存储结构与存取方法)的过程,就是数据库的物理设计。物理结构依赖于给定的 DBMS 和和硬件系统,本系统数据库物理设计的目标为:(1)提高数据库的性能,以满足应用的性能需求。(2)有效利用存储空间,合理存放易变部分、稳定部分、经常存取部分和存取频率较低部分的数据。(3)综合考虑存取时间、存储空间利用率和维护代价三方面的因素,在三者之间找到一个权衡点。5.2 数据分布本系统数据库中要存
39、储的数据主要包括:关系表、数据字典、索引、日志和备份等。为了提高系统性能,因此,对于数据备份和日志文件的备份,由于他们只是在故障恢复时才使用,而且数据量很大,因此存放在三级存储介质上;对于计算机中有多个磁盘,可以考虑将表和索引分别存放在不统的磁盘上,在查询时,由于多个磁盘驱动器分别在工作,因此可以保证物理读写速度比较快,不过也可以将比较大的表分拆存放在多个磁盘中,以加快存取速度;对于数据字典,由于其访问量很大,可以单独的为其开辟一块存储空间,以保证快速相应用户的需求。本系统将数据字典中的数据放在了主逻辑设备 DictionaryDB.mdf 上,将基础数据放在了从逻辑设备一BasicDB.md
40、f 上,将业务数据放在了从逻辑设备二BusinessDB.mdf 上,将其他数据放在了从逻辑设备三 OtherDB.mdf 上,将日志及备份的数据放在了逻辑设备 LibraryDBLog.ldf 上。5.3 索引实现如果只是从数据分布那方面来提高数据库的性能,那是远远不够的,因为最终的数据存取还是要对数据进行搜索、遍历。所以,能提高对数据的搜索和遍25历的一个常用的技术就是建立索引。但如果对某一存储的数据建立过多的索引反而会导致数据性能的降低,反之则会降低数据的搜索速度。因此如何对各种存储的数据建立合适的索引成了提高数据库性能的一大问题。本系统就索引的实现提供了一些具体的方法,如:根据用户查询
41、的习惯来对特定的属性或者属性集合建立非聚簇索引;对数据量比较多的表中采用多级索引或者 B+树索引来提高数据顺序扫描的速度;采用 B+树索引技术来有效地支持范围索引等等。以下是本系统所建立的一些索引:(1)给 图 书 表(bookInfo)中 的 图 书 名 称 属 性 建 立 非 聚 簇 索 引bookNameIdx。(2)给读者表(reader4098)中的读者姓名属性建立非聚簇索引readerNameIdx。(3)给借书表(borrow4098)中的读者编号建立索引 borrowIdx,因为借书数据,不经常更新,所以采用聚簇索引。(4)给归还表(giveBack4098)中的读者编号编号属
42、性建立非聚簇索引giveBackIdx。6 6 安全设计安全设计6.1 设计目标由于数据库中的数据是共享资源,必需在数据库管理系统中建立一套完整的使用规则进行数据库保护,以防止不合法的使用造成的数据泄密、更改或破坏,因此每个数据库管理系统都应提供完善的安全措施。本系统数据库安全保护的目标是确保只有授权的用户才能访问数据库,而未被授权的用户则不能访问数据库。当用户已被授权进入数据库时,还要有相关访问控制,控制哪些用户可以访问或修改哪些表里的哪些属性,从而达到只让用户访问或修改他被授权的表属性。其他表和属性则不能访问。6.2 用户设计根据本系统的需求,将用户分为二类:(1)普通管理员(2)超级管理员266.36.3 权限设计权限设计权限设计是数据库安全设计中至关重要的一部分,因为他直接涉及到数据库用户对数据的读取操作。所以一个好的数据库访问权限设计更能提高数据库的安全性。以下是本系统对各种用户的权限管理:(1)普通管理员的权限:普通管理员权限除包含读者权限外还可以办理读者借还书业务、处罚违章的读者、可以修改图书信息、可以回复留言、可以备案遗失图书、可以修改规章制度。所涉及的表及权限有对几乎所有表的全部权限。(2)超级管理员的权限:超级管理员对所有表有完全的权限、可以适当的根据需求建立视图、索引或删除表等权限,负责数据库的正常运行,此帐号方便数据库管理者对数据库的维护。27