目录
一、概述
引言
图书馆是学校的文献信息中心,是为全校教学和科学研究服务的学术性机构,是学校信息化和社会信息化的重要基地。它担负着教育与信息服务的双重职能,也是全校师生学习研究的重要场所。校园图书馆为读者提供书刊借阅、电子资源、参考咨询、学科服务、信息素养教育、代检代查、科技查新、情报分析服务、知识产权信息服务、文献调研、馆际互借与文献传递、自助文印、单人研读间,团体研讨间预约等多类型、全方位、立体式服务,为全校师生提供了重要的文献信息资源支撑与服务。
因此,建立一个完备的校园图书馆数据库是每个大学图书馆重要的环节。该校园图书馆数据库的设计,主要是为大大方便在校大学生借阅自身需要的书籍,来提高学习效率。因此,校园图书馆工作具有长期性、复杂性和内容的多变性;校园图书馆系统不是一个简单的、封闭的、静止的软件,而是一个复杂的、开放的、在应用的深度和广度上逐步变化和发展的软件系统。
-
-
课程设计目的
-
- 掌握关系数据库设计、实施、使用、管理的基本方法和步骤。
- 在SQL Server 平台下,有效运用模式、范式、约束理论设计(E-R图、模式、数据字典)出科学、高效、安全的数据库。
- 熟练使用T-SQL脚本语言,实施(创建库、表)所设计的数据库,进行基本数据操纵(增、改、删、查),创建外模式(视图)。
- 掌握T-SQL安全管理的基本方法(特定账号权限)。
- 了解SQL命令脚本与宿主语言(C#)的衔接。
-
-
题目及要求
-
题目:图书管理系统
图书管理系统不是一个简单的、封闭的、静止的软件,而是一个复杂的、开放的、在应用的深度和广度上逐步变化和发展的软件系统。
要求:
1) 数据库对象(库、表(视图)、字段、各种约束等)名称自定义。数据库名称中必须包含你的姓名拼音缩写和学号末两位数字,子对象的名称包含父对象名称的关键词或缩写。
2) 创建数据库脚本(.sql)中的路径与提交的数据文件(.mdf)、日志文件(.ldf)的路径一致。
3) 创建每个对象前,必须检查对象是否存在,存在则删除的语句。
4) 使用alter table设计完整性约束,独立保存脚本文件,不要在创建对象的同时设计完整性约束。
5) 自己设定应用需求,根据应用需求,设计有一定复杂度的8个查询并编写实施脚本,并将其中4个创建为视图。
6) 每个表有主键约束。至少有2个外键约束。其他约束酌情创建。
7) 为每个表添加5条以上测试记录。
1.3开发环境
- 操作系统: windows 10
- 数据库系统: Microsoft SQL Server 2012
二、需求分析
2.1 基本要求
本系统的最终用户为校园图书馆,我们根据从图书馆方面取得的图表资料、文字资料以及其他细节方面的信息,根据我们日常生活中的经验,根据我们所做的其他询问和调查,得出用户的下列实际要求:
1、图书馆的组织机构情况
一个校园图书馆数据库的主要构成分为五个部分,一是最主要的图书管理员、二是可供学生查询书籍信息表、三是可供图书管理员查询借阅书籍表、借书人员表以及还书信息表、还有就是可供学生查询的图书馆座位信息表。图书馆日常的运作主要以以上六个部分开展。
图书管理员表设置了若干个信息选项,管理员日常管理书籍的类别部门、以及管理员自身的工号、性别、出生年月、姓名、联系电话、当日是否在岗以及薪水待遇等。
为了提高来访借阅者查阅书籍效率和遇到问题能够及时咨询当天的管理员。图书管理员表将管理员的工号作为主键,将借阅信息表书籍编号作为外键,将书籍信息表中的是否借阅作为外键。
书籍信息表提供了可供借阅者查询书籍信息的途径,此表包含了书籍类别、书名、书籍编号、书籍出版日期、出版社信息、作者姓名、市面售价、是否借阅以及在馆内的书籍库存数量情况。书籍信息表将书籍编号作为主键,管理员工号和借阅信息表中的学号作为外键。
借阅信息信息查询表包括了书籍类别、书名、书籍编号、图书是否借阅、学号、借书日期、借书天数、以及归还日期。该表设置书籍编号为主键,将还书人员表中的学生学号作为外键。主要用来提供给管理员查看书籍借阅情况,能快方便且快速地找借阅此书同学的信息和借阅书籍日期、借阅天数以及归还日期。以便提醒忘记归还图书的同学,保持图书馆正常良好得运作。
还书信息表主要提供给图书管理员和借书同学查看是否书籍已归还,确保万无一失。其中主要包含了书籍类别、书名、库存数量、已借阅书籍数、和学生归还该书的日期。此表将书名作为主键。
借书人员表主要包括了借书同学的信息,例如学院、学号、性别、姓名、书籍类别、书名、数量、借书日期、借书天数以及归还日期。此表设置目的是提供给学生查询自己是否有书籍已借,但未归还。同时,也提供给图书管理员查看借书人员名单,确保书籍归还的准确性和及时性。此表将学生学号作为主键,
最后一个表是图书馆座位表,该表主要包括信息是当天座位是否开放、以及各楼层空座位的数量,可供学生自行选择。
各部门的关系图(即图书馆各部分组织结构)如下:
图1 图书馆各部分组织结构
2、各部分的日常运作情况
(1)图书管理员工表:
首先,该表是整个图书管理系统的最核心部分。图书管理员管控着整个图书管数据。当有学生前来借阅书籍,或者查询相关问题,学生就可以通过查询书籍类别来到相对应管理图书的管理员,此表还附有管理员电话,可应对突发情况。如果图书馆内的书籍数量或者归还情况出现问题,则管理员可以动用查看书籍信息表、借书人员表以及还书人员表情况来查阅书籍是否丢失,确保图书馆的书籍流动情况正常。此外,本数据库在设置了仅图书馆经理可以有改动问图书管理员工信息表,以此来保证人员信息的准确性和安全性。
- 书籍信息表
该表主要用于为来访借书的学生查询自身所需要的书籍,当学生进入图书馆借阅书籍时,可以通过查询书籍信息表来确定相关书籍是否仍有库存,以及相关书籍所在的类别区域,以此来避免跑空。为借阅者提供了极大的方便。同时,也可让图书管理员熟悉当下书籍信息,为前来访问者提供有效、准确的回答。
- 借阅信息查询表
此表在于为学生想要的书籍已全部被借阅情况下,可以查询到该书在何时会有库存,以及相关借书人员的学号,在方便之余亦可私下联系同学,协商一起阅读。
- 借书人员表
该表是学生前来图书馆,由于借书的时间较久,可能存在忘记归还图书,因此可以通过查询该表,输入学号,来确定自己是否有存在忘记归还的书籍并及时归还。此外,该表也同样为管理员提供查询书籍借阅信息带去方便,若书籍未按固定的时间归还,管理员可以通过查询该表来提醒逾期未还书籍或者将要逾期同学的书籍归还。
- 还书信息表
该表是学生用来确定自己是否已将图书归还,由于系统有出错的可能性,导致未还书籍被无判定已还,或者已还书籍被判断未还,这样大大的影响了图书馆的正常运作。因此,此系统是为保证学生在离开图书馆之前,可以查询自己是否已经归还书籍,避免不必要的麻烦。该表,也可以为图书管理员查看已还书籍进行整理提供了极大的方便。
- 图书馆座位表
该表是为来图书馆学习的同学提供的查询表,方便学生来到空座位进行学习,避免跑空。
3、用户对系统的要求
(1)信息要求:
由于系统的使用主体是图书馆的管理人员,因此对系统的信息要求可分为以下几个方面:
a.书籍信息
主要包括书籍类别、书名、书籍编号、出版社、书籍作者、库存数量和是否借阅情况,被哪位学生借阅情况,以及是否按时归还;
b.借阅者信息
主要包括借阅者来自学院信息、学号、性别、姓名;
c.座位信息
主要包括当日是否开放空位、各层空位情况。
(2)限制性要求:
a.学生学号唯一性;
b.书籍编号唯一性;
c.管理者号唯一性;
d.不允许同一位学生借同一本书;
e.每位同学最多借阅5本书籍;
(3)处理要求:
系统应当完成以下的信息处理:
a、存储书籍信息,借阅学生信息,管理者信息;
b、对书籍信息、借阅学生信息、管理者信息进行及时的更新和统计;
c、对图书馆各种图书借阅情况做分析报告,各种借据进行打印,以供相关的使用安全性与完整性要求:
(4)安全性要求:
a、系统应设置访问用户的标识以鉴别是否是合法用户,并要求合法用户设置其密码,保证用户身份不被盗用;
b、系统应对不同的数据设置不同的访问级别,限制访问用户可查询和处理数据的类别和内容;
c、系统应对不同用户设置不同的权限,区分不同的用户,如图书经理(可以查询,删改新增管理员日常工作情况情况,如姓名、值班情况、薪水等),图书管理员(可以查询和删改新增相关书籍信息、借阅书籍学生的学院,姓名和学号等基本信息),来访借阅学生(只可以查询相关书籍信息和管理员信息)
(5)完整性要求:
a、各种信息记录的完整性,信息记录内容不能为空;
b、各种数据间相互的联系的正确性;
c、相同的数据在不同记录中的一致性。
(6)实现方法
1.按照要求可分为不同的权限登录
图书馆经理:具有对图书馆管理员信息修改等管理功能;
图书管理员:具有查看以及修改学生借阅书籍信息和书籍信息等权利
借阅学生:具有查询当前书籍信息和查看管理员信息等功能。
三、数据库设计
3.1 概念模型设计
局部E-R图
图2 学生管理员E-R图
图2 学生书籍E-R图
图3 借书/还书人员E-R图
图4 座位表E-R图
整体E-R图
3.2 逻辑数据库设计
针对校园图书馆系统需求,设计如下数据项和数据结构:
图书管理员工表:(工号、性别、出生年月、姓名、薪水、联系电话、是否值班)
书籍信息表:(书籍类别、书名、书籍编号、出版日期、出版社、作者姓名、市面售价、是否借阅、库存数量)
借阅学生表:( 学院、学号、性别、姓名、书籍类别、书名、数量、借阅日期、借阅天数、归还日期)
3.3 数据库的物理设计
数据字典
图书管理员数据 | ||||
字段 | 数据类型 | 字符长度 | 关键字 | 备注 |
书籍类别 | 字符型 | 15 | 否 | |
工号 | 字符型 | 500 | 是 | |
性别 | 字符型 | 1 | 否 | 男/女 |
出生年月 | 日期型 | Data | 否 | |
姓名 | 字符型 | 10 | 否 | |
联系电话 | 字符型 | 100 | 否 | |
是否值班 | 字符型 | 10 | 否 | |
主键:工号 外键:书籍类别 |
借书人员数据 | ||||
字段 | 数据类型 | 字符长度 | 关键字 | 备注 |
学院 | 字符型 | 10 | 否 | |
学号 | 字符型 | 500 | 是 | |
性别 | 字符型 | 1 | 否 | 男/女 |
姓名 | 字符型 | 10 | 否 | |
书籍类别 | 字符型 | 15 | 否 | |
书名 | 字符型 | 10 | 否 | |
数量 | 字符型 | 10 | 否 | |
借书日期 | 字符型 | 100 | 否 | |
借书天数 | 字符型 | 10 | 否 | |
归还日期 | 字符型 | 100 | 否 | |
主键:学号 外键:书籍类别、书名 |
书籍信息数据 | ||||
字段 | 数据类型 | 字符长度 | 关键字 | 备注 |
书籍类别 | 字符型 | 15 | 否 | |
书名 | 字符型 | 10 | 否 | |
书籍编号 | 字符型 | 10 | 是 | |
出版日期 | 字符型 | 100 | 否 | |
出版社 | 字符型 | 100 | 否 | |
作者姓名 | 字符型 | 10 | 否 | |
市面售价 | 字符型 | 10 | 否 | |
是否借阅 | 字符型 | 10 | 否 | |
库存数量 | 字符型 | 10 | 否 | |
主键:书籍编号 外键:书名、书籍类别 |
借阅信息查询数据 | ||||
字段 | 数据类型 | 字符长度 | 关键字 | 备注 |
书籍类别 | 字符型 | 15 | 否 | |
书名 | 字符型 | 10 | 否 | |
书籍编号 | 字符型 | 10 | 否 | |
是否借阅 | 字符型 | 10 | 是 | |
学号 | 字符型 | 500 | 否 | |
借书日期 | 字符型 | 100 | 否 | |
借书天数 | 字符型 | 10 | 否 | |
归还日期 | 字符型 | 100 | 否 | |
主键:书籍类别 外键:书名、书籍编号 |
还书信息数据 | ||||
字段 | 数据类型 | 字符长度 | 关键字 | 备注 |
书籍类别 | 字符型 | 15 | 否 | |
书名 | 字符型 | 10 | 是 | |
库存数量 | 字符型 | 10 | 否 | |
已借书籍数 | 字符型 | 10 | 否 | |
是否归还 | 字符型 | 10 | 否 | |
归还日期 | 字符型 | 100 | 否 | |
主键:书名 外键:书籍类别 |
图书馆座位表 | ||||
字段 | 数据类型 | 字符长度 | 关键字 | 备注 |
是否开放 | 字符型 | 10 | 是 | |
一楼空位数 | 字符型 | 100 | 否 | |
二楼空位数 | 字符型 | 100 | 否 | |
三楼空位数 | 字符型 | 100 | 否 | |
四楼空位数 | 字符型 | 100 | 否 | |
五楼空位数 | 字符型 | 100 | 否 | |
主键:是否开放 外键:无 |
四、参考文献
GB/T 7713.1-2006 学位论文编写规则
五、设计心得
本次设计运用了所学的数据库知识设计校园图书管理系统,对我来说,这是一项艰难的任务。从做期末作业开始,大约耗时一周左右的时间,期间坎坷万般。在完成任务期间,我多次找指导老师询问相关问题,以及通过大量搜集资料。同时,不断地对数据库进行设计、改进和完善。特别是运用E-R图对整体和局部进行分析,最后得出一个图书馆管理系统的数据库设计。
优点:多次询问老师,不断完善代码和改进错误;通过上网大量上查找和实地调查学院图书馆里各模块、各部门的日常运作情况,以及各人员的职能情况。同时,也将老师所授予的知识全部应用在本次数据可设计中。
不足:本次期末作业在创作中效率较低,对代码应用不够熟练;同时,也放了很多低级错误,例如忘记保存文件,导致数据全部丢失;在画E-R图时,发现自己对画图软件掌握不熟,导致画得图不够美观。综上,本次数据库的表并没有很好地将我所有的想法实现出来,但是经过这次历练,我对设计数据库有了更加充分的认识,也学习到很多新的知识。
最后感谢老师这学期的指导,有了很大收获。