图书馆管理系统说明书

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数据库课程设计任务书

题目图书馆管理系统数据库的设计与实现

起讫日期2015年1月5日至2015年1月16日学生姓名专业班级学号

所在院系学院

指导教师职称

所在单位软件测试教研室

2015年1月4日

第一章需求分析

1.1 业务流程

经过可行性分析和初步需求调查,抽象出该系统业务流程图,结合该实例具体情况,给出图书馆员工信息、读者信息、图书信息和图书借阅的具体需求。

借书:

还书:

图1.1 读者借书、还书流程图

1.2 数据流分析

图1.2图书馆管理系统数据流图

1.3数据字典

将所有子系统全部细化。将所有用户需求分析完毕之后,就要开始构造数据字典了。经分析之后,本系统要用到六个基本表:管理员信息表、员工信息表、读者信息表、图书信息表、借书信息表和还书信息表。数据结构定义如表1.3所示。

表1.3 数据结构定义

第二章概念结构设计

2.1 概念结构设计的方法与步骤

概念设计阶段我采用自底向上的方法,即自顶向下的进行需求分析,然后再自底向上的进行概念结构设计。对已经细化到无法再分的阶段逐步集成在一起,最终合成一个全局概念模式。

2.2 数据抽象与局部视图设计

设计实体属性图以及局部E-R图。

图2.3员工信息实体属性图

图2.5局部E-R图

2.3视图的集成

图2.6总体E-R图

第三章逻辑结构设计

3.1 E-R图向关系模型的转换

将图2.6总体概念结构E-R图转化成关系模型。将转化的关系模式进行优化,最终达到第三范式。(至少包括6张表,每个表都有主键,设必要的外键。)

管理员信息表(管理员编号,登陆账号,登陆密码)

员工信息表(员工编号、姓名、性别、年龄、管理员编号)

读者信息表(读者学号、姓名、性别、年龄、所在系部、管理员编号)

图书信息表(图书编号,图书名,作者,出版社,分类,价格,可借阅本数,员工编号)

借书信息表(图书编号,读者学号,图书名,姓名,借阅本数,借阅时间)还书信息表(图书编号,读者学号,图书名,姓名,归还本数,归还时间)

第四章物理设计

根据总体结构图设计各表的结构,其相应表的定义如下:

表4.1管理员信息表的结构

表4.2图书信息表的结构

表4.3员工信息表的结构

表4.4读者信息表的结构

表4.5借书信息表的结构

表4.6还书信息表的结构

第五章详细设计与SQL实现

5.1 查询语句

简单查询

(1)查询过程如下

SELECT stunum

FROM WEIHUAN

WHERE stuname='陈芳'

多表查询

查询过程如下

SELECT bookname

FROM bookborrow INNER JOIN bookreturninfo ON bookborrow.stunum=bookreturninfo.stunum

子查询

查询过程如下:

SELECT bookname

FROM bookborrow

WHERE stuname IN

(SELECT stuname

FROM bookreaderinfo

WHERE stunum='1218004')

5.2 视图、存储过程、触发器

视图

(1)、建立女员工视图V_YUANGONG

创建过程如下:

CREATE VIEW V_YUANGONG

AS

SELECT empnum,empname,empsex

FROM employeeinfo

WHERE empsex='女'

视图结果如下:

(2)、建立一个所借图书信息的视图V_SHUJI 创建过程如下:

CREATE VIEW V_SHUJI

AS

SELECT bnum,bname,btime

FROM borrow

视图结果如下:

(3)、建立外语类图书的视图V_W AIYU 创建过程如下:

CREATE VIEW V_WAIYU

AS

SELECT bnum, bname, benshu, bclasses FROM bookinfo

WHERE bclasses = '外语'

视图结果如下:

存储过程

(1)、创建一个存储过程PS_YG,输出指定性别员工的编号、姓名及年龄。创建过程如下:

CREATE PROCEDURE PS_YG

@employeeinfo_SEX CHAR(2)

AS

SELECT empnum,empname,empage

FROM employeeinfo

WHERE empsex=@employeeinfo_SEX

执行结果如下:

(2)、创建一个存储过程PS_STUDENT,输入一个读者年龄,输出该年龄段所有读者的姓名和系部。

创建过程如下:

CREATE PROCEDURE PS_STUDENT

@readerinfo_AGE CHAR(2)

AS

SELECT stuname,studept

FROM readerinfo

WHERE stuage=@readerinfo_AGE

执行结果如下:

(3)、创建一个存储过程PS_BORR,输入一个学生的学号,输出该学生的姓名和未归还图书的书名。

创建过程如下:

CREATE PROCEDURE PS_BORR

@S_SNO CHAR(20)

AS

SELECT stuname,bname

FROM borrow

WHERE stunum=@S_SNO

EXCEPT

SELECT stuname,bname

FROM returninfo

WHERE stunum=@S_SNO

执行结果如下:

相关文档
最新文档