版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、大型数据库课程设计设计报告题 目: 图书借阅管理系统 学 号: 学生姓名: 指导教师: 提交时间: 2014-11-22 49 / 51文档可自由编辑目录1. 需求分析.21.1需求调查.21.2系统功能分析.22. 概念结构设计.32.1概念设计.32.2E-R图建立.33. 逻辑结构设计.83.1E-R图向关系模式转换.83.2建立关系模式.83.3关系模式规范化处理.83.4用户子模式建立.83.5关系模式逻辑结构定义.104. 物理结构设计.115. 数据库实施与测试.125.1数据库实施.125.1.1数据库及数据库对象建立.125.1.2数据存入数据库.135.1.3函数设计.13
2、5.2数据库测试.146. 数据库完整型设计.166.1主键及唯一性索引.166.2参照完整型.166.3Check约束.166.4触发器设计.176.5规则.177. 数据库视图设计.188. 数据库存储过程设计.199. 总结.2710. 参考文献.27某书店图书借阅管理系统第1章需求分析1.1需求调查通过对各个书店的市场调查,该图书借阅管理系统的需求如下:1) 系统管理:实现系统管理人员对系统的管理,包括添加删除用户, 数据备份,数据还原,注销等功能。2) 读者信息管理:添加读者信息,根据借书证编号查看读者信息,根据读者ID删除读者,借阅证到期的读者更改借阅证办证时间。3) 书籍信息管理
3、:添加一条书籍信息,删除一条书籍信息,查看一条图书信息,根据图书名查看图书信息,根据图书类别查看图书信息,根据作者查看图书信息,根据出版社产看图书信息,根据ISBN查看图书库存,根据书籍名查看库存。4) 借阅管理:借书管理,还书管理,续借管理,查看所有借阅信息,根据读者ID查看借阅信息,根据读者ID查看借书记录,根据读者ID查看借书记录,根据读者ID查看罚款信息。图书借阅管理系统书籍信息管理系统管理读者信息管理借书管理还书管理罚款管理续借管理1.2 系统功能分析图1-2 系统功能分析图第2章概念结构设计 2.1 概念设计概念结构设计阶段的目标是通过对用户需求进行综合、归纳与抽象,形成一个独立于
4、具体DBMS的概念模型。即通过对数据流程图的分析归纳和总结,建立E-R图。概念结构的设计方法有两种:(1)集中式模式设计法:这种方法是根据需求由一个统一机构或人员设计一个综合的全局模式。这种方法简单方便,适用于小型或不复杂的系统设计,由于该方法很难描述复杂的语义关联,而不适于大型的或复杂的系统设计。 (2)视图集成设计法:这种方法是将一个系统分解成若干个子系统,首先对每一个子系统进行模式设计,建立各个局部视图,然后将这些局部视图进行集成,最终形成整个系统的全局模式。2.2 E-R图建立局部E-R图1. 对读者建立E-R图,其中读者ID为主键读者联系方式办证时间读者ID密码读者姓名读者性别读者单
5、位读者类别图2-1 读者E-R图2. 对书籍建立E-R图,其中图书ID为主键书籍图书ID书籍名称书籍类别书籍作者出版社登记日期状态定价出版日期ISBN图2-2 书籍E-R图3. 对读者类别建立E-R图,其中读者类别编号为主键读者类别编号借阅证期限读者类别名读者类别持有图书最长期限允许借阅图书最大数图2-3 读者类别E-R图4、 对借阅建立E-R图借阅读者借书时间读者ID图书ID读者姓名图书名ISBN图2-4 借阅图5、 对还书建立E-R图还书时间还书图书ID读者ID图书名读者姓名ISBN图还书图6、 对罚款建立E-R图罚款处理状态读者ID读者姓名图书ID应还日期归还日期借阅日期罚款类别编号 书
6、籍名ISBN图罚款图7、 对罚款类别建立E-R图罚款类别罚款类别编号罚款名称罚款金额罚款原因图罚款类别图全局E-R图读者实体读者类别实体罚款类别实体罚款借阅登记登记罚款实体借阅信息实体书籍实体还书实体归还第3章逻辑结构设计3.1E-R图向关系模式转换数据库的逻辑结构设计就是把概念结构设计阶段设计好的基本 E 一 R 图转换为与选用的 DBMS产品所支持的数据模型相符合的逻辑结构。逻辑结构是独立于任何一种数据模型的,在实际应用中,一般所用的数据库环境已经给定(如SQL Server或Oracel或MySql)。由于目前使用的数据库基本上都是关系数据库,因此首先需要将E-R图转换为关系模型,然后根
7、据具体DBMS的特点和限制转换为特定的DBMS支持下的数据模型,最后进行优化。3.2 建立关系模式读者信息: 读者ID,密码,读者姓名,读者性别,读者类别,读者单位,办证时间,联 系方式;读者类别信息:读者类别编号,读者类别名,允许借阅图书最大数 ,持有图书最长期 限,借阅证期限;书籍信息:图书ID,ISBN,书籍名称,书籍类别,书籍作者,出版社,定价,出版日期, 登记日期 ,状态;借书信息:借书证编号,读者姓名,书籍编号,ISBN,书籍名,读者借书时间;还书信息:借书证编号,书籍编号,ISBN,图书名,读者姓名,还书时间;罚款信息:借书证编号,读者姓名,书籍编号,ISBN,书籍名,借阅日期,
8、归还日期,应 还日期,罚款类别编号,处理状态;罚款类别:罚款类别编号,类别名,罚款原因,罚款金额3.3 关系模式规范化处理根据F,分析每一个关系模式是否满足3NF,对不满足3NF的关系模式要进行规范化处理。 优化处理,消除不必要的数据冗余3.4 用户子模式建立根据需求分析,研究建立满足不同需求的用户子模式,子模式表示形式为: 子模式名(属性列表)3.5 关系模式逻辑结构定义1.读者详细信息字段名数据类型长度约束读者IDChar 10主键,Not null密码char20Not null姓名char15Not null性别char2男/女,not null类别编号char2外键,not null
9、单位char30null办证日期dateNot null联系方式char20Null 表3-12、 读者类别详细信息字段名数据类型长度约束读者类别编号char2主键,01/02读者类别名char15普通读者/高级读者可借阅最大数目smallint3/6持有最长期限smallint30/60借阅证期限smallint1 表3-23、书籍详细信息字段名数据类型长度约束图书IDchar10主键ISBNchar20Not null书籍名char30Not null书籍类别Char 10Not null作者char15Not null出版社char30Not null定价moneyNot null出版日
10、期dateNot null登记日期dateNot null状态bitNot null 表3-34、罚款类别详细信息字段名数据类型长度约束罚款类别编号char5主键罚款类别名char15Not null罚款原因char30Not null罚款金额moneynull 表3-45、借阅详细信息字段名数据类型长度约束IDint主键,自增图书IDchar10Not null读者IDchar10Not nullISBNchar20Not null借走日期dateNot null归还日期datenull应还日期dateNot null罚款类别编号char5null处理状态bitnull 表3-5第4章 数据
11、库物理结构设计数据库物理设计:设计数据库的物理结构,根据数据库的逻辑结构来选定RDBMS(如Oracle、Sybase等),并设计和实施数据库的存储结构、存取方式等。数据库物理设计是后半段。将一个给定逻辑结构实施到具体的环境中时,逻辑数据模型要选取一个具体的工作环境,这个工作环境提供了数据存储结构与存取方法,这个过程就是数据库的物理设计。物理结构依赖于给定的DBMS和和硬件系统,因此设计人员必须充分了解所用RDBMS的内部特征、存储结构、存取方法。数据库的物理设计通常分为两步,第一,确定数据库的物理结构,第二,评价实施空间效率和时间效率确定数据库的物理结构包含下面四方面的内容:1、确定数据的存
12、储结构2、设计数据的存取路径3、确定数据的存放位置4、确定系统配置数据库物理设计过程中需要对时间效率、空间效率、维护代价和各种用户要求进行权衡,选择一个优化方案作为数据库物理结构。在数据库物理设计中,最有效的方式是集中地存储和检索对象。第5章 数据库实施与测试5.1 数据库实施5.1.1数据库及数据库对象建立(1) -建立读者类别表 create table 读者类别( 读者类别编号 char(2) primary key not null check(读者类别编号 in(01,02), 读者类别名 char(15) not null check(读者类别名 in(普通读者,高级读者), 可借
13、阅最大数目 smallint not null check(可借阅最大数目 in(3,6), 持有最长期限 smallint not null check(持有最长期限 in(30,60), 借阅证期限 smallint not null check(借阅证期限 in(1)(2) -建立读者表create table 读者( 读者ID char(10) not null primary key, 密码 char(20) not null, 姓名 char(15) not null, 性别 char(2) not null check(性别 in(男,女), 类别编号 char(2) not n
14、ull foreign key(类别编号)references 读者类别(读者类别编号), 单位 char(30) null, 办证日期 date not null, 联系方式 char(20) null)(3) -建立书籍表create table 书籍( 图书ID char(10) not null primary key, ISBN char(20) not null, 书籍名 char(30) not null, 书籍类别 char(10) not null, 作者 char(15) not null, 出版社 char(30) not null, 定价 money not null,
15、 出版日期 date not null, 登记日期 date not null, 状态 bit not null)(4) -建立罚款类别表create table 罚款类别( 罚款类别编号 char(5) not null primary key, 罚款类别名 char(15)not null, 罚款原因 char(30)not null, 罚款金额 money null)(5) -建立借阅信息表create table 借阅信息( id int primary key identity(1,1), -id 自增 图书ID char(10) not null, 读者ID char(10) no
16、t null, ISBN char(20) not null, 借走日期 date not null, 归还日期 date null, 应还日期 date not null, 罚款类别编号 char(5) null, 处理状态 bit null foreign key(图书ID) references 书籍(图书ID), foreign key(读者ID) references 读者(读者ID), foreign key(罚款类别编号) references 罚款类别(罚款类别编号)5.1.2数据存入数据库 读者信息由存储过程随机产生100条数据,代码略 书籍信息由存储过程随机产生100条数据
17、,代码略5.1.3自定义函数-根据读者ID判断读者证是否过期,判断依据:将读者办证日期加上一年,再和当前系统时间比较alter function check_reader_date(reader_id char(10) returns bitas begin declare reader_register_date date,result bit set reader_register_date=(select 办证日期 from 读者 where 读者ID=reader_id) if(Dateadd(year,1,reader_register_date)CAST(GETDATE() as
18、date) -如果过期,返回bit=0 set result=0 else set result=1 return result end -测试check_reader_date() declare result bit set result=dbo.check_reader_date(1000002) if(result=1) print 没过期 else print 过期 -判断读者已借的书籍数量是否超出限制 create function check_reader_books(reader_id char(10) returns bit as begin declare result b
19、it -记录返回值 declare up_book_num smallint -记录读者最高可借的书籍数量 declare borrow_num smallint -记录读者已借的书籍数量 set up_book_num=(select 可借阅最大数目 from dbo.读者类别 where 读者类别编号=(select 类别编号 from dbo.读者 where 读者ID=reader_id ) ) set borrow_num=(select count(*) from dbo.借阅信息 where 读者ID=reader_id and 处理状态=0) if(borrow_num0 -如
20、果上面一条语句出错,则回滚事物,并返回 begin rollback tran print 执行过程中遇到错误 return 0 end select * from 读者 where 读者ID=n -print 增加成功 end-管理员根据借书证编号查看读者信息的存储过程create procedure reader_info reader_no char(10)as begin if(select COUNT(*) from 读者 where 读者ID=reader_no)=1) select * from 读者 where 读者ID=reader_no else print 没有该读者 e
21、nd-根据读者ID删除读者的存储过程create procedure delete_reader reader_no char(10)as begin if(select COUNT(*) from 读者 where 读者ID=reader_no)=1) begin delete from 读者 where 读者ID=reader_no print 删除成功 end else print 没有该读者 end-管理员删除读者证到期的读者的信息create procedure delet_reader_by_dateas begin declare now_date date set now_da
22、te=GETDATE() delete from 读者 where Dateadd(year,1,办证日期)CAST(GETDATE() as date) end-管理员借阅证到期的读者延长借阅证时间create procedure alter_reader_register_date reader_id char(10)as begin update 读者 set 办证日期=cast(GETDATE() as DATE) where 读者ID=reader_id print 修改成功 end-书籍信息管理-存储过程添加一条书籍信息alter procedure add_book ISBN c
23、har(20),book_name char(30),book_kinds char(10), book_author char(15),book_publish char(30),book_price smallint, book_publish_date dateas begin -产生编号 declare book_id char(10),m int,n int set m=(select count(*)from 书籍) set n=100000000+m set book_id=cast(n as char(10) -产生登记日期 declare book_rigste_date d
24、ate set book_rigste_date=GETDATE() -产生书籍状态 declare book_state bit set book_state=1 insert into 书籍 values(book_id,ISBN,book_name,book_kinds,book_author,book_publish,book_price,book_publish_date,book_rigste_date,book_state) select * from 书籍 where 图书ID=book_id print 插入成功 end -根据图示ID删除一条书籍信息create proce
25、dure delete_book book_id char(10)as begin delete from 书籍 where 图书ID=book_id end-根据图书ISBN查看一条图书信息create procedure find_book_by_id book_id char(10)as begin select * from 书籍 where 图书ID=book_id end-根据图书名查看图书信息create procedure find_book_by_name book_name char(30)as begin select * from 书籍 where 书籍名=book_n
26、ame end-根据图书类别查看图书信息create procedure find_book_by_kinds book_kinds char(10)as begin select * from 书籍 where 书籍类别=book_kinds end-根据作者查看图书信息create procedure find_book_by_author book_author char(15)as begin select * from 书籍 where 作者=book_author end-根据出版社产看图书信息create procedure find_book_by_publishment bo
27、ok_publishment char(30)as begin select * from 书籍 where 出版社=book_publishment end-根据ISBN查看图书库存create procedure find_book_stock_by_ISBN ISBN char(20)as begin select * from dbo.book_stock where ISBN=ISBN end -根据书籍名查看库存create procedure find_book_stock_by_name book_name char(30)as begin select * from dbo.book_stock where 书籍名=book_name End-书籍借阅管理-借书管理alter procedure reader_borrow_book reader_id char(10),book_id char(10)as begin declare state bit set s
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 宣纸购销合同范例
- 蔬菜超市加盟合同范例
- 歌曲mv合同范例
- 共享办公合同范例
- 施工垫资合同范例
- 人防工程保养合同范例
- 疫情转运合同范例
- 2024商铺转租委托代理合同范本3篇
- 租赁仪器使用合同范例
- 辣椒承包种植协议合同范例
- 股东损害公司债权人利益责任纠纷起诉状(成功范文)
- 仙桃市自然灾害救助应急预案操作手册
- 《Premiere影视剪辑》课件-基础篇
- “小哥白尼杯”科普知识竞赛题库
- 2024名校版人教语文一年级上册《比尾巴》同步练习含答案
- 人美版初中美术知识点汇总八年级全册
- 公路路面毕业论文中英文资料外文翻译文献
- 临建施工方案1
- 训练及产说改鑫瑞发布会流程
- 产业园EPC总承包工程项目施工组织设计
- 学校安全教育珍爱生命-拒绝打架斗殴课件
评论
0/150
提交评论