数据库原理及应用课程设计.docx

上传人:b****8 文档编号:9657187 上传时间:2023-02-05 格式:DOCX 页数:24 大小:338.07KB
下载 相关 举报
数据库原理及应用课程设计.docx_第1页
第1页 / 共24页
数据库原理及应用课程设计.docx_第2页
第2页 / 共24页
数据库原理及应用课程设计.docx_第3页
第3页 / 共24页
数据库原理及应用课程设计.docx_第4页
第4页 / 共24页
数据库原理及应用课程设计.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

数据库原理及应用课程设计.docx

《数据库原理及应用课程设计.docx》由会员分享,可在线阅读,更多相关《数据库原理及应用课程设计.docx(24页珍藏版)》请在冰豆网上搜索。

数据库原理及应用课程设计.docx

数据库原理及应用课程设计

 

本科生课程设计

 

课程名称

数据库原理及应用课程设计

课程编号

J1670101

学号

201311621230

学生姓名

张少涛

所在专业

计算机科学与技术

所在班级

计科1132

指导教师

徐龙琴

成绩

教师签字

年月日

 

课程设计时间:

2014年12月10日

至2014年12月30日

目录

设计总说明I

第1章需求分析3

第2章概念结构设计3

第3章逻辑结构设计5

第4章物理结构设计9

第5章系统实现13

5.1前台界面13

5.2后台管理16

优缺点自我评价18

参考文献18

 

设计总说明

(1)系统开发目的

数据库课程设计是为数据库原理及应用课程而独立开设的实践性课程,对于巩固数据库知识加强学生的实际动手能力和提高学生综合素质十分必要。

通过本实验达到以下目的:

1、培养学生具有数据库应用软件系统的设计和开发能力。

2、熟练掌握一种数据库系统(如SQLSERVER)的使用。

3、通过设计实际的数据库系统应用课题,进一步熟悉数据库管理系统的操作技术,提高自己动手能力提高分析问题和解决问题的能力。

(2)开发内容

要分析图书管理系统的需求分析,概念结构分析,逻辑结构分析,物理结构分析,数据库的实现以及数据库的保护与维修,通过不断地调试来实现数据软件之间的完善。

(3)开发要求

进行新书入库、现有图书信息修改以及删除;

②能够实现对读者基本信息的查询和编辑管理;

③能够进行预约功能;

④能够进行借阅信息的查询功能;

(4)开发环境及工具

系统前台开发软件:

MyEclipse

系统后台管理软件:

SQLservermanagementstudio2008

系统开发语言:

Jsp

(5)系统功能简介

能够存储一定数量的图书信息,并方便有效的进行相应的书籍数据操作和管理,这主要包括:

   1)图书信息的录入、删除及修改。

   2)图书信息的多关键字检索查询。

   3)图书的出借、返还、预约。

数据库原理及应用课程设计报告

第1章需求分析

进行系统设计,首先要对系统的现状进行分析。

根据系统的目标、需求和功能,制定和选择一个较好的系统方案,从而达到一个合理的优化系统。

每个学校都有图书馆,最初由于图书数量和种类较少,人工手动管理比较方便和灵活。

随着社会的发展,图书的数量和种类越来越多,人工手动管理会降低工作的效率,希望建立一个图书管理系统,是为了解决人工手动管理图书信息在实践的问题,从而达到系统化、规范化、标准化的水平。

该系统的建立不但给管理者带来了方便,也节省了工作时间从而提高了工作效率。

需求分析是在于要弄清用户对开发的数据库应用系统的确切要求。

数据库设计的第一步是明确数据库的目的和如何使用,也就是说需要从数据库中得到哪些信息。

明确目的之后,就可以确定您需要保存哪些主题的信息(表),以及每个主题需要保存哪些信息(表中字段)。

在构造系统时,首先从需求出发构造数据库表,然后再由数据库表结合需求划分系统功能模块。

这样,就把一个大的系统分解成了几个小系统。

这里把系统的层次划分为了四个部分:

图书维护,人员信息管理,图书借阅管理,信息查询。

能够实现以下功能:

进行新书入库、现有图书信息修改以及删除;

②能够实现对读者基本信息的查询和编辑管理;

③能够进行预约功能;

④能够进行借阅信息的查询功能;

第2章概念结构设计

根据以上需求分析,一个基本的图书馆管理系统数据库大致包括10个表,分别存放相应子功能模块的数据信息,期中“读者信息”和“图书信息”表是关键的表,用于存放图书馆读者的信息和文献的信息,图书馆管理系统实际上就是对读者和文献的管理。

其他涉及读者信息和文献信息的表,都只是记录相应的编号,并根据作为外键的“编号”字段相对应。

数据库要表述的信息有:

(1)读者类型

(2)读者信息(3)图书基本信息(4)图书信息(6)图书借阅(7)图书归还(8)图书丢失(9)图书预约

各个主要实体的属性的E-R图

各实体及属性图如图所示

2.2各实体及其联系的E-R图

第3章逻辑结构设计

将概念结构转化为一般的关系、网状、层次模型;将转换来的关系、网状、层次模型向特定DBMS支持下的数据模型转换;对数据模型进行优化。

把概念结构设计阶段设计好的基本E-R图转换为与选用DBMS产品所支持的数据模型相符合的逻辑结构。

所以E-R图转换如下:

读者类型(身份、可借册数、可续借册数、可借时间)

图书基本信息(ISBN、书名、版次、类型、作者、出版社、价格、现存量、库存总量)

读者信息(编号、姓名、身份、读者性别、联系方式、登记日期、有效期至、违规次数、现借图书数、是否挂失)

图书信息(编号、ISBN、入库时间)

图书归还(归还编号、图书编号、读者编号、归还时间)

3.2具体逻辑模型设计

3.2.1读者类型表

字段名

数据类型

能否为空

说明

身份

char(20)

notnull

primarykey

可借册数

int

notnull

可续借次数

int

notnull

可借时间

char(10)

notnull

3.2.2图书基本信息表

字段名

数据类型

能否为空

说明

ISBN

char(20)

notnull

primarykey

书名

char(20)

notnull

版次

char(20)

notnull

类型

char(20)

notnull

作者

char(20)

notnull

出版社

char(20)

notnull

价格

float

notnull

现存量

int

notnull

库存总量

int

notnull

3.2.3读者信息表

字段名

数据类型

能否为空

说明

编号

char(20)

notnull

primarykey

姓名

char(20),

notnull

身份

char(20)

notnull

foreignkey(身份)references读者类型(身份)

性别

char(8)

notnull

check(性别in('男','女')),

联系方式

char(12)

notnull

登记日期

datetime

notnull

有效期至

datetime

notnull

借书数量

Int

notnull

是否挂失

char(8)

notnull

3.2.4图书信息表

字段名

数据类型

能否为空

说明

编号

char(20)

notnull

primarykey,

ISBN

char(20)

notnull

foreignkey(ISBN)references图书基本信息(ISBN))

入库时间

datetime

notnull

3.2.5图书借阅表

字段名

数据类型

能否为空

说明

借阅编号

char(20)

notnull

primarykey

图书编号

char(20)

notnull

foreignkey(图书编号)references图书信息(编号)

读者编号

char(20)

notnull

foreignkey(读者编号)references读者信息(编号)

借阅时间

datetime

notnull

应还时间

datetime

notnull

续借次数

int

notnull

第4章物理结构设计

createtable读者类型表

身份char(20)primarykey,

可借册数intnotnull,

可续借次数intnotnull,

可借天数intnotnull

);

createtable图书基本信息表

ISBNchar(20)primarykey,

书名char(20)notnull,

版次char(20)notnull,

类型char(20)notnull,

作者char(20)notnull,

出版社char(20)notnull,

价格floatnotnull,

现存量intnotnull,

库存总量intnotnull

);

createtable读者表

编号char(20)notnullprimarykey,

密码varchar(20)notnull,

姓名char(20)notnull,

身份char(20)notnullforeignkey(身份)references读者类型表(身份),

性别char

(2)notnullcheck(性别in('男','女')),

联系方式char(12)notnull,

注册时间datetimenotnull,

有效期datetimenotnull,

借书数量intnotnull,

是否挂失bitnotnull,

);

createtable图书信息表

编号char(20)notnullprimarykey,

ISBNchar(20)notnullforeignkey(ISBN)references图书基本信息表(ISBN),

入库时间datetimenotnull

);

createtable借书信息表

借书编号intIDENTITYnotnullprimarykey,

图书编号char(20)notnullforeignkey(图书编号)references图书信息表(编号),

读者编号char(20)notnullforeignkey(读者编号)references读者表(编号),

借书日期datetimenotnull,

应还书日期datetimenotnull,

还书日期datetime,

续借次数intnotnull

);

第5章系统实现

前台实现

主页

个人信息界面

检索

借阅情况

后台实现

借书

还书

图书管理

读者类型管理

读者管理

优缺点及自我评价

优点:

这个学生图书管理系统能够准确表示图书的借阅,归还,预约。

管理员也能够很好地掌握此图书管理系统的用法。

缺点:

现此系统最大的缺点就是借阅者的界面还不够吸引,不够漂亮,还有没有对读者的借阅实现了简单的统计,没有进行排名等功能。

自我评价:

通过这次的数据库课程设计,我更了解数据库的重要性了,学习到不同的东西是这次课程设计的最大收获,虽然遇到了很多的困难,但是通过与别人的讨论,交流,也能够解决问题,所以在接下来的实践,我会更加努力地学习,不断使自己进步,这样才能够充实自己。

参考文献

(1)《数据库原理及设计》陶宏才编清华大学出版社

(2)《SQLServer2000编程员指南》李香敏编北京希望电子出版社

(3)《软件需求分析》SwapnaKishore编机械工业出版社

(4)《数据库系统概论》王珊萨师煊

(5)JDK的src和Docs

(6)《ThinkinginJava》

(7)《Java实例技术手册》DavidFlanagan

(8)《EffectiveJava》

(9)《疯狂Java讲义》

应用互联网XX

数据库及源码War包下载地址:

忽略:

//

创建表和存储过程的sql语句

createtable读者类型表

身份char(20)primarykey,

可借册数intnotnull,

可续借次数intnotnull,

可借天数intnotnull

);

createtable图书基本信息表

ISBNchar(20)primarykey,

书名char(20)notnull,

版次char(20)notnull,

类型char(20)notnull,

作者char(20)notnull,

出版社char(20)notnull,

价格floatnotnull,

现存量intnotnull,

库存总量intnotnull

);

 

createtable读者表

编号char(20)notnullprimarykey,

密码varchar(20)notnull,

姓名char(20)notnull,

身份char(20)notnullforeignkey(身份)references读者类型表(身份),

性别char

(2)notnullcheck(性别in('男','女')),

联系方式char(12)notnull,

注册时间datetimenotnull,

有效期datetimenotnull,

借书数量intnotnull,

是否挂失bitnotnull,

);

 

createtable图书信息表

编号char(20)notnullprimarykey,

ISBNchar(20)notnullforeignkey(ISBN)references图书基本信息表(ISBN),

入库时间datetimenotnull

);

createtable借书信息表

借书编号intIDENTITYnotnullprimarykey,

图书编号char(20)notnullforeignkey(图书编号)references图书信息表(编号),

读者编号char(20)notnullforeignkey(读者编号)references读者表(编号),

借书日期datetimenotnull,

应还书日期datetimenotnull,

还书日期datetime,

续借次数intnotnull

);

 

createtable图书丢失表

丢失编号intIDENTITY(1,1)notnullprimarykey,

图书编号char(20)notnull,

读者编号char(20)notnull,

偿还金额floatnotnull,

操作时间datetimenotnull

);

createtable图书注销表

注销编号intIDENTITY(1,1)notnullprimarykey,

图书编号char(20)notnull,

ISBNchar(20)notnullforeignkey(ISBN)references图书基本信息表(ISBN),

注销时间datetimenotnull

);

 

createtable图书预约表

预约编号intIDENTITY(1,1)primarykey,

图书编号char(20)foreignkey(图书编号)references图书信息表(编号),

读者编号char(20)foreignkey(读者编号)references读者表(编号),

预约时间datetimenotnull

createprocborrow@读者编号char(20),@图书编号char(20),@returnintoutput

as

begin

declare@ISBNchar(20);

declare@可借天数int;

select@可借天数=可借天数from读者类型表,读者表where读者类型表.身份=读者表.身份and编号=@读者编号;

select@ISBN=ISBNfrom图书信息表where编号=@图书编号;

set@return=-1;

ifnotexists(select*from图书预约表where图书编号=@图书编号and读者编号!

=@读者编号and最迟借阅期>=GETDATE())

andnotexists(select*from借书信息表where图书编号=@图书编号and还书日期isnull)

and((select借书数量from读者表where编号=@读者编号)<=(select可借册数from读者类型表,读者表where读者类型表.身份=读者表.身份and编号=@读者编号))

and((select现存量from图书基本信息表whereISBN=@ISBN)>=1)

begin

setxact_aborton

begintran

insert借书信息表values(@图书编号,@读者编号,GETDATE(),dateadd(day,@可借天数,GETDATE()),null,0);

update读者表set借书数量=借书数量+1where编号=@读者编号;

update图书基本信息表set现存量=现存量-1whereISBN=@ISBN;

deletefrom图书预约表where读者编号=@读者编号and图书编号=@图书编号;

set@return=0;

committran

end

end

createprocreturnbook@读者编号char(20),@图书编号char(20),@returnintoutput

as

begin

declare@ISBNchar(20);

select@ISBN=ISBNfrom图书信息表where编号=@图书编号;

set@return=-1;

ifexists(select*from借书信息表where图书编号=@图书编号and读者编号=@读者编号and还书日期isnull)

begin

setxact_aborton

begintran

update借书信息表set还书日期=GETDATE()where图书编号=@图书编号and读者编号=@读者编号and还书日期isnull;

update读者表set借书数量=借书数量-1where编号=@读者编号;

update图书基本信息表set现存量=现存量+1whereISBN=@ISBN;

set@return=0;

committran

end

end

createprocreserve@读者编号char(20),@图书编号char(20)

as

begin

declare@basetimedatetime;

ifexists(select*from借书信息表where图书编号=@图书编号and还书日期isnull)

select@basetime=应还书日期from借书信息表where图书编号=@图书编号and还书日期isnull;

else

set@basetime=getdate();

ifnotexists(select*from图书预约表where图书编号=@图书编号and最迟借阅期>=GETDATE())

insert图书预约表values(@图书编号,@读者编号,GETDATE(),DATEADD(day,7,@basetime));

end

createprocdelbook@编号char(20),@returnintoutput

as

begin

set@return=-1;

ifexists(select*from图书信息表where编号=@编号)

begin

begintran

update读者表set借书数量=借书数量-1where编号=(select读者编号from借书信息表where图书编号=@编号and还书日期isnull);

update图书基本信息表set库存总量=库存总量-1whereISBN=(selectISBNfrom图书信息表where编号=@编号);

ifnotexists(select*from借书信息表where图书编号=@编号and还书日期isnull)

update图书基本信息表set现存量=现存量-1whereISBN=(selectISBNfrom图书信息表where编号=@编号);

insertinto图书注销表select*from图书信息表where编号=@编号;

deletefrom图书信息表where编号=@编号

set@return=0;

committran

end

end........忽略此处.......

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 文学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1