数据库课程设计图书管理系统实验报告.docx
- 文档编号:30230755
- 上传时间:2023-08-07
- 格式:DOCX
- 页数:45
- 大小:826.35KB
数据库课程设计图书管理系统实验报告.docx
《数据库课程设计图书管理系统实验报告.docx》由会员分享,可在线阅读,更多相关《数据库课程设计图书管理系统实验报告.docx(45页珍藏版)》请在冰豆网上搜索。
数据库课程设计图书管理系统实验报告
海南大学应用科技学院
数据库系统原理课程设计报告
————图书管理系统
组长:
学号:
组员:
学号:
组员:
学号:
组员:
学号:
指导老师:
起始时间:
起始时间:
第一章概述…………………………………………3
1.1项目背景……………………………………………3
1.2软件定义………………………………………………3
1.3编写目的………………………………………………3
1.4开发环境………………………………………………3
第二章需求分析………………………………………4
2.1信息要求……………………………………………4
2.2处理要求……………………………………………7
2.3安全性与完整性要求……………………………8
第三章概念结构设计…………………………………21
3.1流程图及数据字典…………………………………21
3.2全局E-R图…………………………………………23
第四章逻辑结构设计…………………………………24
4.1关系模式……………………………………………24
4.2基本表………………………………………………25
4.3视图………………………………………………30
4.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数据长度:
20
2.1.2数据流图
定义:
数据流图是结构化分析方法中使用的工具,它以图形的方式描绘数据在系统中流动和处理的过程,由于它只反映系统必须完成的逻辑功能,所以它是一种功能模型。
在结构化开发方法中,数据流图是需求分析阶段产生的结果。
设计:
图书管理系统与管理员、用户(读者)之间分别有数据的交互(见图2-1)
读者通过查看借阅表、图书表查看借阅与图书信息,借阅图书;管理者可查看、修改、更新所有表,达到管理图书和读者的目的。
(见图2-2)
2-1
2-2
2.2处理要求
1.能够存储一定数量的图书信息,并方便有效的进行相应的书籍数据操作和管理。
2.能够对一定数量的读者进行相应的信息存储与管理。
3.能够提供一定的安全机制,提供数据信息授权访问,防止随意删改,同时提供信息备份的服务。
4.正常使用时不应出错,对于用户的输入错误应给出适当的改正提示。
若运行时遇到不可恢复的系统错误,也必须保证数据库完好无损。
5.满足运行环境在允许操作系统之间的安全转换和与其它应用软件的独立运行要求。
其中包括两大系统:
(见图2-3)
一、学生图书借阅系统图书借阅,个人修改登陆密码系统
二、管理图书借阅系统管理图书、借阅、读者信息系统
2-3
2.3安全性与完整性要求
定义:
数据库的安全性与完整性属于数据库的保护的内容。
安全性主要是指对数据库的存取控制,防止未授权使用的人员非法存取他不应存取的数据,防止数据泄密,防止数据被破坏。
完整性是指保证数据的正确和一致,使数据库中的数据在任何时刻都是有效的。
包括保持数据的正确性、准确性、有效性。
实现方式有:
一是通过定义和使用完整性约束规则;二是通过触发器(Trigger)和存储过程(StoredProcedure)等
触发器(Trigger)是SQLserver提供给程序员和数据分析员来保证数据完整性的一种方法,它是与表事件相关的特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发,经常用于加强数据的完整性约束和业务规则。
设计:
1、对图书管理系统添加管理者和用户(读者),管理者拥有查看、操作所有表的权限,读者只能查看借阅表和图书表。
(见图2-4至2-17)
2、创建DDL触发器safety(见图2-18)避免误删、误改表(见图2-19)
创建表的触发器reminder提醒用户对表的(见图2-20、2-21)
实现:
DDL触发器safety:
createtriggersafety
ondatabase
fordrop_table,alter_table
as
print'你必须使触发器无效以执行对表的操作!
'
rollback;
触发器reminder以【读者表】的为例:
createtriggerreminder
on读者表
forinsert,delete,update
as
raiserror('你在插入、修改或删除读者表的数据',16,10)
结果:
1、在计算机管理里创建用户(以管理员:
李婷为例):
2-4
2、在系统安全性—》登录名—》创建新登录名,点击【搜索】用【高级】选择用户李婷:
2-5
3、创建新登录名“李婷”成功:
2-6
4、用新登录名【A56\李婷】创建Windows身份验证用户:
2-7
5、用新登录名【xin】创建SQLServer身份验证用户xin:
2-8
6、用创建的新SQLServer身份验证用户xin连接数据库:
2-9
7、连接SQLServer身份验证用户xin结果如下:
2-10
8、点击管理员【李婷】的属性:
2-11
9、选择【安全对象】属性,添加需要设置权限的表:
2-12
10、勾选对每个表的权限,因为是管理者,对所有表授予权限:
2-13
11、点击用户【小五】的属性:
2-14
12、因为是读者,对用户【小五】只授予图书表、借阅表的权限:
2-15
13、新建用户【小六】,设置属性:
2-16
14、使用sql语句设置读者【小六】对表的权限:
createselect,alter,control,delete,update
on图书表
to小六
15、显示【小六】对图书表的权限:
2-17
16、DDL触发器safety:
2-18
17、若删除表则显示出错提醒:
2-19
18、触发器reminder
2-20
2-21
第三章概念结构设计
定义:
E-R图也称实体-联系图(EntityRelationshipDiagram),提供了表示实体类型、属性和联系的方法,用来描述现实世界的概念模型。
3.1局部E-R图
3-1书为实体,书名、作者、分类及图书编号为属性,其中图书编号为主键,
3-1
3-2中管理者为实体,用户名、密码及管理员编号为属性,其中管理员编号为主键。
3-2
3-3中读者为实体,姓名、专业班级及学号为属性,其中学号为主键。
3-3
3.2全局E-R图
整合了3个实体(管理者、读者、书),并分别建立联系(管理读者、管理书、借阅),均为多对多的关系。
第四章逻辑结构设计
4.1关系模式
定义:
关系模型是用二维表来描述现实世界中的事物以及事物之间联系的数据模型。
4.2基本表
定义:
基本表是实实在在的保存数据的实体,写入的数据都保存在表中
#图书管理系统属性设计表,把系统中的几个重要组成部分的属性统一列出,简洁直观。
为了方便查看读者信息创建了读者表:
(见图4-1读者表部分)
#读者表中的学号是记录一个读者借阅情况最简单直观的辨识方式,因此我们设定了一个读者的学号,一般长度为20.
#读者除了学号以外,姓名也需要做登记,因此有了姓名这个数据项,根据国情姓名一般是两个字或者3个字,所以我们定他的长度为10即可以是5个汉字。
#学生所在的专业班级是在找不到学生本人的情况下可以联系其班级,此项可以为空,不填也可以,一般是网工2班这种格式,所以给它长度为20
为了方便查看有多少图书及其信息创建了图书表:
(见图4-1图书表部分)
#图书的编号作为图书的唯一标识,能让我们最快的找到这本图书的情况,所以我们设定了这个数据项。
#图书可以有很多,长度暂设为20,查到图书编号我们必然要知道的是书的名字以确定要的是否是这本书,书名可长可短,根据了解一般在十个字以内,所以给它长度为20.
#图书该有的作者名字,可以让读者知道这本书是谁写的,这也是对出书人的尊重,所以设定作者这个项,作者项的名字并不像国内姓名那样简单,有的可以是笔名什么的,所以给它长度为20.
#而图书的分类则为了对图书的更好的管理,管理员可以更好的统计什么书更受大家欢迎,分类占用的空间不会很大,长度设为10.
为了方便查看管理者的信息创建了管理者表:
(见图4-1管理者表部分)
#为了管理更方便,所以设定管理员编号,管理员个数未知,因此长度暂设为20。
#管理员登入时需要用到用户名来登入,设定一个用户名数据项,用户名依个人喜好设定,但也不要太过长难记,因此给它长度为20.
#管理员登入的时候必需要有密码登入,这样才能给它权限去管理数据库,密码长度基本定在20,这样密码不会太长,长度合适即保障安全,也免忘记密码。
为了方便查看被借阅的图书信息创建了借阅表:
(见图4-1借阅表部分)
#图书的编号作为图书的唯一标识,能让我们最快的找到这本图书的情况,所以我们设定了这个数据项。
#图书可以有很多,长度暂设为20,查到图书编号我们必然要知道的是书的名字以确定要的是否是这本书,书名可长可短,根据了解一般在十个字以内,所以给它长度为20.
#图书该有的作者名字,可以让读者知道这本书是谁写的,这也是对出书人的尊重,所以设定作者这个项,作者项的名字并不像国内姓名那样简单,有的可以是笔名什么的,所以给它长度为20.
#而图书的分类则为了对图书的更好的管理,管理员可以更好的统计什么书更受大家欢迎,分类占用的空间不会很大,长度设为10.
#学号是记录一个读者借阅情况最简单直观的辨识方式,因此我们设定了一个读者的学号,一般长度为20.
#读者除了学号以外,姓名也需要做登记,因此有了姓名这个数据项,根据国情姓名一般是两个字或者3个字,所以我们定他的长度为10即可以是5个汉字。
#学生所在的专业班级是在找不到学生本人的情况下可以联系其班级,此项可以为空,不填也可以,一般是网工2班这种格式,所以给它长度为20。
4-1
为了方便查看读者信息创建了读者表:
(见图4-2)
#读者表中的学号是记录一个读者借阅情况最简单直观的辨识方式,因此我们设定了一个读者的学号,一般长度为20.
#读者除了学号以外,姓名也需要做登记,因此有了姓名这个数据项,根据国情姓名一般是两个字或者3个字,所以我们定他的长度为10即可以是5个汉字。
#学生所在的专业班级是在找不到学生本人的情况下可以联系其班级,此项可以为空,不填也可以,一般是网工2班这种格式,所以给它长度为20
4-2
为了方便查看有多少图书及其信息创建了图书表:
(见图4-3)
#图书的编号作为图书的唯一标识,能让我们最快的找到这本图书的情况,所以我们设定了这个数据项。
#图书可以有很多,长度暂设为20,查到图书编号我们必然要知道的是书的名字以确定要的是否是这本书,书名可长可短,根据了解一般在十个字以内,所以给它长度为20.
#图书该有的作者名字,可以让读者知道这本书是谁写的,这也是对出书人的尊重,所以设定作者这个项,作者项的名字并不像国内姓名那样简单,有的可以是笔名什么的,所以给它长度为20.
#而图书的分类则为了对图书的更好的管理,管理员可以更好的统计什么书更受大家欢迎,分类占用的空间不会很大,长度设为10.
4-3
为了方便查看被借阅的图书信息创建了借阅表:
(见图4-4)
#图书的编号作为图书的唯一标识,能让我们最快的找到这本图书的情况,所以我们设定了这个数据项。
#图书可以有很多,长度暂设为20,查到图书编号我们必然要知道的是书的名字以确定要的是否是这本书,书名可长可短,根据了解一般在十个字以内,所以给它长度为20.
#图书该有的作者名字,可以让读者知道这本书是谁写的,这也是对出书人的尊重,所以设定作者这个项,作者项的名字并不像国内姓名那样简单,有的可以是笔名什么的,所以给它长度为20.
#而图书的分类则为了对图书的更好的管理,管理员可以更好的统计什么书更受大家欢迎,分类占用的空间不会很大,长度设为10.
#学号是记录一个读者借阅情况最简单直观的辨识方式,因此我们设定了一个读者的学号,一般长度为20.
#读者除了学号以外,姓名也需要做登记,因此有了姓名这个数据项,根据国情姓名一般是两个字或者3个字,所以我们定他的长度为10即可以是5个汉字。
#学生所在的专业班级是在找不到学生本人的情况下可以联系其班级,此项可以为空,不填也可以,一般是网工2班这种格式,所以给它长度为20。
#借阅时间方便管理者查看图书借出去的时间,以便管理图书。
4-4
为了方便管理者管理图书创建了图书管理表(见图4-5)
#为了管理更方便,所以设定管理员ID,管理员个数未知,因此长度暂设为20。
#图书ID作为图书的唯一标识,能让我们最快的找到这本图书的情况,所以我们设定了这个数据项,长度暂定为20.
#图书的上架时间对于对新书渴望的读者来说那是必要的,读者可以通过查询来知道新书上架的时间,从而第一时间内借到自己想看的书,日期以XXXXXX形式存在,长度设为20.
#图书可以有很多,长度暂设为20,查到图书编号我们必然要知道的是书的名字以确定要的是否是这本书,书名可长可短,根据了解一般在十个字以内,所以给它长度为20.
#图书该有的作者名字,可以让读者知道这本书是谁写的,这也是对出书人的尊重,所以设定作者这个项,作者项的名字并不像国内姓名那样简单,有的可以是笔名什么的,所以给它长度为20.
#而图书的分类则为了对图书的更好的管理,管理员可以更好的统计什么书更受大家欢迎,分类占用的空间不会很大,长度设为10.
4-5
为了方便管理者管理读者创建了读者管理表(见图4-6)
#为了管理更方便,所以设定管理员ID,管理员个数未知,因此长度暂设为20。
#读者管理表中的读者ID是记录一个读者借阅情况最简单直观的辨识方式,因此我们设定了一个读者的学号,一般长度为20.
#学生所在的专业班级是在找不到学生本人的情况下可以联系其班级,此项可以为空,不填也可以,一般是网工2班这种格式,所以给它长度为20。
4-6
4.3视图
定义:
视图是一个虚拟表,其内容由查询定义。
同真实的表一样,视图包含一系列带有名称的列和行的数据。
设计:
为了方便查看,分别定义三个视图:
(见图4-7)
【读者_借阅_管理】创建读者视角视图,显示读者学号、姓名,图书编号,借阅时间,管理员编号(见图4-8)
【管理】创建管理者视角视图,显示学号,图书编号,管理员编号,用户名,上架时间(见图4-9)
【图书_借阅_管理】创建图书视图,显示学号,图书编号,书名,管理员编号,借阅时间(见图4-10)
实现:
1、用语句创建【图书_借阅_管理】视图并定义其属性
CREATEVIEW读者_借阅_管理
AS
SELECT读者表.学号,读者表.姓名,借阅表.图书编号,借阅时间,管理员编号
FROM读者表,借阅表,管理读者表
WHERE读者表.学号=管理读者表.学号
AND管理读者表.学号=借阅表.学号
GO
2、用语句创建【管理】视图并定义其属性
CREATEVIEW管理
AS
SELECT管理读者表.学号,图书管理表.图书编号,管理员表.管理员编号,用户名,上架时间
FROM管理员表,管理读者表,图书管理表
WHERE管理员表.管理员编号=图书管理表.管理员编号
AND管理员表.管理员编号=管理读者表.管理员编号
GO
3、用语句创建【读者_借阅_管理】视图并定义其属性
CREATEVIEW读者_借阅_管理
AS
SELECT读者表.学号,读者表.姓名,借阅表.图书编号,借阅时间,管理员编号
FROM读者表,借阅表,管理读者表
WHERE读者表.学号=管理读者表.学号
AND管理读者表.学号=借阅表.学号
GO
结果:
1.一共创建3个视图
4-7
2.【读者_借阅_管理】
4-8
3.【管理】
4-9
4.【图书_借阅_管理】
4-10
4.4索引
定义:
索引是对数据库表中一列或多列的值进行排序的一种结构。
设计:
创建索引加快对信息的搜索速度。
实现:
(以【读者表】的【读者学号索引】为例,见图4-11)
createindex读者学号索引
on读者表(学号)
go
结果:
4-11
第五章数据库与表的创建与实施
实现:
1.用语句进行【图书管理系统】的创建,并说明存放路径及格式等(见图5-1)
CREATEDATABASE图书管理系统
ON
PRIMARY
(
NAME='图书管理系统',
FILENAME='E:
\120\图书管理系统.mdf',
SIZE=10MB,
MAXSIZE=UNLIMITED,
FILEGROWTH=1MB
)
LOGON
(
NAME='图书管理系统_log',
FILENAME='E:
\120\图书管理系统_log.ldf',
SIZE=1MB,
MAXSIZE=UNLIMITED,
FILEGROWTH=10%
)
GO
2.用语句创建【读者表】并定义其属性(见图5-3)
CREATETABLE读者表
(
学号varchar(20)notnullprimarykey,
姓名varchar(10)notnull,
专业班级varchar(20)
)
GO
3.用语句创建【管理员表】并定义其属性(见图5-4)
CREATETABLE管理员表
(
管理员编号varchar(20)notnullprimarykey,
用户名varchar(10)notnull,
密码varchar(20)notnull
)
GO
4.用语句创建【图书表】并定义其属性(见图5-5)
CREATETABLE图书表
(
图书编号varchar(20)notnullprimarykey,
书名varchar(20)notnull,
作者varchar(10)notn
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 课程设计 图书 管理 系统 实验 报告