海南大学应用科技学院数据库系统原理课程设计报告————图书管理系统组长:学号:组员:学号:组员:学号:组员:学号:指导老师:起始时间:起始时间:目录第一章概述…………………………………………31.1项目背景……………………………………………31.2软件定义………………………………………………31.3编写目的………………………………………………31.4开发环境………………………………………………3第二章需求分析………………………………………42.1信息要求……………………………………………42.2处理要求……………………………………………72.3安全性与完整性要求……………………………8第三章概念结构设计…………………………………213.1流程图及数据字典…………………………………213.2全局E-R图…………………………………………23第四章逻辑结构设计…………………………………244.1关系模式……………………………………………244.2基本表………………………………………………254.3视图………………………………………………304.4索引………………………………………………32第五章数据库与表的创建与实施……………………33第六章主要模块设计及代码…………………………38第七章总结……………………………………………41第八章参考文献………………………………………41第一章概述1.1项目背景随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一部分,使用计算机对图书信息进行管理,有着手工管理所无法比拟的优点。例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高图书管理的效率,也是图书馆的科学化、正规化管理,是与世界接轨的重要条件。1.2编写目的记录图书借阅情况是非常繁琐工作。使用计算机可以高速,快捷地完成工作。有鉴于此,开发一套图书馆信息管理系统,是十分必要的。采用数据库技术开发的图书馆信息管理系统可以用来实现对图书的信息管理,可以提高管理的效率。图书馆都是封闭式管理,要求藏书全部公开开放,师生共享,开架阅览。这种阅览方式是适合当前我国国情、发挥图书馆应用作用的最佳方式,也是素质教育的最好体现。它充分发挥了图书馆的功效,最大限度地为师生服务,这也是图书馆自动化管理的最终目标。实现这一目标,必须有现代化的管理手段和管理体制。1.3软件定义图书管理系统,是一个由人、计算机等组成的能进行管理信息的收集、传递、加工、保存、维护和使用的系统。利用信息控制企业的行为;帮助企业实现其规划目标。在现代大中型企业纷纷利用的系统。1.4开发环境图书馆管理系统的开发环境是MicrosoftSQLServer2005第二章需求分析2.1信息要求图书馆信息管理系统对于学校图书馆的管理十分重要,所以,图书馆信息管理系统不但要为图书管理者提供充足的信息和快捷的查询手段,也要为学生查询提供必要和快捷的查询手段。2.1.1数据字典定义:数据字典是数据库的重要部分。它存放有数据库所用的有关信息,对用户来说是一组只读的表。数据字典内容包括:数据库中所有模式对象的信息,如表、视图、簇、及索引等。数据字典是一组表和视图结构。它们存放在SYSTEM表空间中。#为了管理更方便,所以设定管理员编号,管理员个数未知,因此长度暂设为20。#管理员登入时需要用到用户名来登入,设定一个用户名数据项,用户名依个人喜好设定,但也不要太过长难记,因此给它长度为20.数据项:管理员编号数据项:用户名简述:定义管理员的唯一标识简述:定义管理员的用户名数据类型:字符型数据类型:字符型数据长度:20数据长度:20#管理员登入的时候必需要有密码登入,这样才能给它权限去管理数据库,密码长度基本定在20,这样密码不会太长,长度合适即保障安全,也免忘记密码。#读者表中的学号是记录一个读者借阅情况最简单直观的辨识方式,因此我们设定了一个读者的学号,一般长度为20.数据项:密码数据项:学号简述:定义管理员口令简述:定义读者的唯一标识数据类型:字符型数据类型:字符型数据长度:20数据长度:20#读者除了学号以外,姓名也需要做登记,因此有了姓名这个数据项,根据国情姓名一般是两个字或者3个字,所以我们定他的长度为10即可以是5个汉字。#学生所在的专业班级是在找不到学生本人的情况下可以联系其班级,此项可以为空,不填也可以,一般是网工2班这种格式,所以给它长度为10数据项:姓名数据项:专业班级简述:定义读者姓名简述:定义读者的专业班级数据类型:字符型数据类型:字符型数据长度10数据长度:10#图书的编号作为图书的唯一标识,能让我们最快的找到这本图书的情况,所以我们设定了这个数据项。#图书可以有很多,长度暂设为20,查到图书编号我们必然要知道的是书的名字以确定要的是否是这本书,书名可长可短,根据了解一般在十个字以内,所以给它长度为20.数据项:图书编号数据项:书名简述:定义图书的唯一标识简述:定义图书的书名数据类型:字符型数据类型:字符型数据长度:20数据长度:20#图书该有的作者名字,可以让读者知道这本书是谁写的,这也是对出书人的尊重,所以设定作者这个项,作者项的名字并不像国内姓名那样简单,有的可以是笔名什么的,所以给它长度为20.#而图书的分类则为了对图书的更好的管理,管理员可以更好的统计什么书更受大家欢迎,分类占用的空间不会很大,长度设为10.数据项:作者数据项:分类简述:定义图书作者的姓名简述:定义图书的分类数据类型:字符型数据类型:字符型数据长度:20数据长度:10#图书的上架时间对于对新书渴望的读者来说那是必要的,读者可以通过查询来知道新书上架的时间,从而第一时间内借到自己想看的书,日期以XXXXXX形式存在,长度设为20.#另外一项借阅时间则是对于管理员来说十分重要,记录下了借阅时间,这样才能看读者是否太久未归还书,对自己借出去的图书也是一种保护,格式与上架时间一样,所以长度也设为20.数据项:上架时间数据项:借阅时间简述:定义图书的上架日期简述:定义图书的借阅日期数据类型:整型数据类型:整型数据长度:20数据长度:202.1.2数据流图定义:数据流图是结构化分析方法中使用的工具,它以图形的方式描绘数据在系统中流动和处理的过程,由于它只反映系统必须完成的逻辑功能,所以它是一种功能模型。在结构化开发方法中,数据流图是需求分析阶段产生的结果。设计:图书管理系统与管理员、用户(读者)之间分别有数据的交互(见图2-1)读者通过查看借阅表、图书表查看借阅与图书信息,借阅图书;管理者可查看、修改、更新所有表,达到管理图书和读者的目的。(见图2-2)2-12-22.2处理要求1.能够存储一定数量的图书信息,并方便有效的进行相应的书籍数据操作和管理。2.能够对一定数量的读者进行相应的信息存储与管理。3.能够提供一定的安全机制,提供数据信息授权访问,防止随意删改,同时提供信息备份的服务。4.正常使用时不应出错,对于用户的输入错误应给出适当的改正提示。若运行时遇到不可恢复的系统错误,也必须保证数据库完好无损。5.满足运行环境在允许操作系统之间的安全转换和与其它应用软件的独立运行要求。其中包括两大系统:(见图2-3)一、学生图书借阅系统图书借阅,个人修改登陆密码系统二、管理图书借阅系统管理图书、借阅、读者信息系统2-32.3安全性与完整性要求定义:数据库的安全性与完整性属于数据库的保护的内容。安全性主要是指对数据库的存取控制,防止未授权使用的人员非法存取他不应存取的数据,防止数据泄密,防止数据被破坏。完整性是指保证数据的正确和一致,使数据库中的数据在任何时刻都是有效的。包括保持数据的正确性、准确性、有效性。实现方式有:一是通过定义和使用完整性约束规则;二是通过触发器(Trigger)和存储过程(StoredProcedure)等触发器(Trigger)是SQLserver提供给程序员和数据分析员来保证数据完整性的一种方法,它是与表事件相关的特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发,经常用于加强数据的完整性约束和业务规则。设计:1、对图书管理系统添加管理者和用户(读者),管理者拥有查看、操作所有表的权限,读者只能查看借阅表和图书表。(见图2-4至2-17)2、创建DDL触发器safety(见图2-18)避免误删、误改表(见图2-19)创建表的触发器reminder提醒用户对表的(见图2-20、2-21)实现:DDL触发器safety:createtriggersafetyondatabasefordrop_table,alter_tableasprint'你必须使触发器无效以执行对表的操作!'rollback;触发器reminder以【读者表】的为例:createtriggerreminderon读者表forinsert,delete,updateasraiserror('你在插入、修改或删除读者表的数据',16,10)结果:1、在计算机管理里创建用户(以管理员:李婷为例):2-42、在系统安全性—》登录名—》创建新登录名,点击【搜索】用【高级】选择用户李婷:2-53、创建新登录名“李婷”成功:2-64、用新登录名【A56\李婷】创建Windows身份验证用户:2-75、用新登录名【xin】创建SQLServer身份验证用户xin:2-86、用创建的新SQLServer身份验证用户xin连接数据库:2-97、连接SQLServer身份验证用户xin结果如下:2-108、点击管理员【李婷】的属性:2-119、选择【安全对象】属性,添加需要设置权限的表:2-1210、勾选对每个表的权限,因为是管理者,对所有表授予权限:2-1311、点击用户【小五】的属性:2-1412、因为是读者,对用户【小五】只授予图书表、借阅表的权限:2-1513、新建用户【小六】,设置属性:2-1614、使用sql语句设置读者【小六】对表的权限:createselect,alter,control,delete,updateon图书表to小六15、显示【小六】对图书表的权限:2-1716、DDL触发器safety:2-1817、若删除表则显示出错提醒:2-1918、触发器reminder2-202-21第三章概念结构设计定义:E-R图也称实体-联系图(EntityRelationshipDiagram),提供了表示实体类型、属性和联系的方法,用来描述现实世界的概念模型。3.1局部E-R图3-1书为实体,书名、作者、分类及图书编号为属性,其中图书编号为主键,3-13-2中管理者为实体,用户名、密码及管理员编号为属性,其中管理员编号为主键。3-23-3中读者为实体,姓名、专业班级及学号为属性,其中学号为主键。3-33.2全局E-R图整合了3个实体(管理者、读者、书),并分别建立联系(管理读者、管理书、借阅),均为多对多的关系。第四章逻辑结构设计4.1关系模式定义:关系模型是用二维表来描述现实世界中的事物以及事物之间联系的数据模型。4.2基本表定义:基本表是实实在在的保存数据的实体,写入的数据都保存在表中#图书管理系统属性设计表,把系统中的几个重要组成部分的属性统一列出,简洁直观。为了方便查看读者信息创建了读者表:(见图4-1读者表部分)#读者表中的学号是记录一个读者借阅情况最简单直观的辨识方式,因此我们设定了一个读者的学号,一般长度为20.#读者除了学号以外,姓名也需要做登记,因此有了姓名这个数据项,根据国情姓名一般是两个字或者3个字,所以我们定他的长度为10即可以是5个汉字。#学生所在的专业班级是在找不到学生本人的情况下可以联系其班级,此项可以为空,不填也可以,一般是网工2班这种格式,所以给它长度为20为了方便查看有多少图书及其信息创建了图书表:(见图4-1图书表部分)#图书的编号作为图书的唯一标识,能让我们最快的找到这本图书的情况,所以我们设定了这个数据项。#图书可以有很多,