(图书馆管理数据库课程设计

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

课程设计
课程名称_ _ 数据库原理及应用___ 题目名称__ _图书借阅管理系统
学生学院__ _ _
专业班级__
学号
学生姓名
指导教师___ _
2010年7月5日
1 引言 (6)
2 需求分析 (6)
2.1 处理对象 (6)
2.1.1 处理要求及功能 (7)
3 数据库概念模式设计 (7)
3.1 图书管理数据流图 (7)
3.2 由数据流图抽象出E-R图 (8)
4 数据库逻辑模式设计 (9)
4.1 将E-R图转换成关系模型 (9)
4.2 关系模式优化 (10)
4.2.1 关系规范化 (10)
4.2.2 关系完整性约束 (10)
5 数据库的实施与维护 (11)
5.1 建立数据库及其对象 (11)
5.1.1 创建模式 (11)
5.1.2 创建数据表 (11)
5.1.3 创建索引 (12)
5.1.4 数据库关系图 (12)
5.2 数据入库 (13)
5.3 数据库试运行 (14)
6 学习心得 (16)
数据库原理及应用课程设计任务书
题目名称数据库原理及应用课程设计
学生学院管理学院
专业班级08物流管理1班
姓名冯天宇
学号3108006051
发出任务书日期:2010年 6 月 20 日指导教师签名:徐小明
计划完成日期: 2010年 7 月 2 日基层教学单位责任人签章:
主管院长签章:
一、课程设计目的
《数据库原理及应用课程设计》是实践性教学环节之一,是《数据库原理及应用》课程的辅助教学课程。

通过课程设计,使学生掌握数据库的基本概念,结合实际的操作和设计,巩固课堂教学内容,使学生掌握数据库系统的基本概念、原理和技术,将理论与实际相结合,强化学生的实践意识、提高其实际动手能力和创新能力。

二、课程设计内容及学时分配
要求学生按照《数据库原理及应用B课程设计》教学大纲完成一个数据库设计,并撰写相应的课程设计报告,主要内容包括:
(1)数据库概念模式设计
(2)数据库逻辑模式设计
(3)数据库保护设计
课程设计的学时安排如下:
三、课程设计教学基本要求
根据教师给定的选题,运用课堂中学到的数据库的基本理论与设计的知识,完成数据库概念设计、逻辑设计及部分物理设计的内容。

重点是ER图的设计、关系模式的转换与规范化以及如何利用DBMS完成数据表及数据库的创建和操作。

具体要求包括:
1 数据库概念模式设计
写出由基本项构思ERD的四条原则及根据这些原则相应得出的实体、联系及其属性,并确定主实体的主标识,画出ERD;用原则4检查改正错误;对其中复杂的多元联系进行分析,必要则改进。

2 数据库逻辑模式设计
2.1 一般逻辑模型设计:写出由ERD导出一般关系模型的四条原则,列出数据库
初步构思的关系框架,并检查改进之。

2.2 具体逻辑模型设计:按所用的DBMS要求,设计表(文件)的具体结构,在
关系框架下补充字段类型、长度、小数位数等行。

3 数据库保护设计
3.1 设计表间关系:列出父表与子表的关联索引,指出要建立的表间关系的类型。

3.2 完整性设计:列出主要字段完整性的字段名、完整性约束条件;列出记录完整
性约束及其约束条件;列出参照完整性表。

四、课程设计选题
一个图书借阅管理数据库要求提供以下服务:
(1)可随时查询书库中现有书籍的种类、数量与存放位置。

所有各类书籍均可由书号唯一标识。

(2)可随时查询书籍借还情况。

包括借书人单位、姓名、借书证号、借书日期和还书日期。

任何人可借多种书,任何一种书可为多个人所借,借书证号具有唯一性。

(3)当需要时,可通过数据库中保存的出版社电话、邮编及地址等信息向有关书籍的出版社增购有关书籍。

一个出版社可出版多种书籍,同一本书仅为一个出版社出版,出版社名具有唯一性。

根据以上的情景假设,进行如下的分析与设计:
(1)根据上述语义画出ER图。

(2)将ER模型转换成关系模型,并指出每个关系模式的主关键字。

(3)分析每个关系模式已经达到第几范式。

对于不符合第三范式要求的关系模式进行规范化。

(4)根据概念模型设计逻辑模型和保护设计。

(5)在SQLServer中实现。

五、本课程设计与其它课程的联系与分工
先修课程:
后续课程:
六、成绩评定
总分100分。

由以下五部分组成:
(1)学生对待课程设计的态度,占10%;
(2)数据库概念模式设计,占30%;
(3)数据库逻辑模式设计,占30%;
(4)数据库保护设计,占20%;
(5)报告的编排及格式,占10%。

七、建议教材及教学参考书
[1]崔巍编,《数据库应用与设计》,清华大学出版社,2009年出版
[2]互联网资料:/zukhz/blog/item/10d15119cae05e4e43a9add1.html
/view/921d246baf1ffc4ffe47ac20.html
1引言
随着社会信息量的与日俱增,图书作为信息存储的主要媒体之一,数量、规模都比以往任何时候大的多,图书管理部门需要使用方便有效的方式来管理数量庞大的的书籍。

在计算机日益普及的今天,以前单一的手工检索已不能满足人们的要求,为了便于管理图书和读者资料,图书管理部门需要有效的图书管理软件。

对于日益扩大的图书馆,查找特定的书目总是借阅者或工作人员劳神费力,有时还没有结果。

因此往往是投入了大量的人力和财力却得不到高效的管理效率。

为了缩短借阅者的等待时间,减轻工作人员的工作量,方便工作人员对它的操作,提高管理的质量和水平,做到高效、智能化管理,从而达到提高图书借阅信息管理效率的目的,采用数据库技术生成的图书馆借阅管理系统将会极大地方便借阅者并简化图书馆管理人员及其劳动,使工作人员从繁忙、复杂的工作进入到一个简单、高效的工作中。

2需求分析
从课程设计选题中可以得知,我们设计的图书管理数据库需具备以下功能:
(1)可随时查询书库中现有书籍的种类、数量与存放位置。

(2)可随时查询书籍借还情况。

包括借书人单位、姓名、借书证号、借书日期和还书日期。

(3)当需要时,可通过数据库中保存的出版社电话、邮编及地址等信息向有关书籍的出版社增购有关书籍。

2.1 处理对象
读者信息:姓名,借书证号,借书人单位
图书信息:书名,书号,种类,总数量,存放位置,出版社名
出版社信息:出版社名,电话,邮编,地址
借阅信息:借书证号,书号,借书日期,还书日期
2.1.1处理要求及功能
(1)能够存储一定数量的图书信息,并方便有效的进行相应的书籍数据操作和管理,这主要包括:
图书信息的录入、删除及修改。

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

图书的出借和返还。

(2)能够对一定数量的读者进行相应的信息存储与管理,这其中包括:
读者信息的录入、删除及修改。

读者资料的统计与查询。

(3)能够对一定数量的出版社进行相应的信息存储与管理,这其中包括: 出版社信息的录入、删除及修改。

出版社资料的统计与查询。

(4)对查询、统计的结果能够列表显示。

3数据库概念模式设计
先设计面向全局应用的全局概念结构的初步框架,然后根据中层数据流图抽象出总体E-R图,最后解决各局部E-R图间的冲突问题。

3.1 图书管理数据流图
(1)第一层数据流图:
(2)第二层数据流图:
3.2 由数据流图抽象出E-R图
因为课程设计选题里没有要求对管理员进行定义,所以本课程设计将忽略管理员这一实体,同时为了简便起见,将从第二层数据流图直接抽象出以下总体E-R图:
4数据库逻辑模式设计
4.1 将E-R图转换成关系模型
读者、图书和出版社均为实体,因此它们各自转换成一个独立关系模式,实体的属性就是关系的属性,实体的码就是关系的码。

由于读者与图书之间的联系方式为m:n,所以其联系需转化为独立的关系模式,与该联系相连的各实体的码以及联系本身的属性均转换为关
系的属性,而关系的码为各实体码的组合。

而图书与出版社的联系方式为n:1,所以将其之间的联系与n端实体合并。

所以,具体的总体E-R图向关系模型的转化如下:
读者(姓名,借书证号,借书人单位)
图书(书名,书号,种类,总数量,存放位置,出版社名)
出版社(出版社名,电话,邮编,地址)
借阅信息(借书证号,书号,借书日期,还书日期)
(注:标有红色下划线的为主关键字,标有绿色波浪线的为外部关键字)
4.2 关系模式优化
4.2.1关系规范化
由于关系模式“读者”、“图书”、“出版社”和“借阅信息”的所有分量都是不可分的最小数据项,且不存在非主属性对主属性的部分函数依赖,也不存在传递函数依赖,都已达到3NF,所以不用规范化。

4.2.2关系完整性约束
根据实体完整性、参照完整性和用户定义完整性的规则,得到以下数据表设计(注:带红色下划线的为主关键字,带绿色波浪线的为外部关键字):
表4.1 读者信息表
列名数据类型宽度可否为空索引
姓名Char 8 not null 升序
借书证号Char 10 not null 升序
借书人单位Char 40
表4.2 图书信息表
列名数据类型宽度可否为空索引
书名Char 40 not null 升序
书号Char 10 not null 升序
种类Char 10
总数量Tinyint not null
存放位置Char 10 not null
出版社名Char 20
表4.3 出版社信息表
列名数据类型宽度可否为空索引出版社名Char 20 not null 升序电话Char 20
邮编Char 10
地址Char 40
表4.4 借阅信息表
列名数据类型宽度可否为空索引借书证号Char 10 not null 升序书号Char 10 not null 升序借书日期Datetime not null 升序还书日期Datetime not null 升序
5数据库的实施与维护
5.1 建立数据库及其对象
5.1.1创建模式
create schema bookmanager
5.1.2创建数据表
(1)读者信息表的建立。

命令如下:
create table bookmanager.读者
(姓名char(8)not null,
借书证号char(10)primary key not null,
借书人单位char(40))
(2)出版社信息表的建立。

命令如下:
create table bookmanager.出版社
(出版社名char(20)primary key not null,
电话char(20),
邮编char(10),
地址char(40))
(3)图书信息表的建立。

命令如下:
create table bookmanager.图书
(书名char(40)not null,
书号char(10)primary key not null,
种类char(10),
总数量tinyint not null,
存放位置char(10)not null,
出版社名char(20)foreign key references bookmanager.出版社)
(4)借阅信息表的建立。

命令如下:
create table bookmanager.借阅信息
(借书证号char(10)foreign key references bookmanager.读者not null,
书号char(10)foreign key references bookmanager.图书not null,
借书日期datetime not null,
还书日期datetime not null,
primary key(借书证号,书号))
5.1.3创建索引
考虑到在连接中会频繁使用到表bookmanager.读者中的“姓名”和“借书证号”两列,同时“借书证号”列已经存在唯一索引,所以在表bookmanager.读者创建一个名为“读者信息”的非聚簇索引,索引关键字为“姓名”、“借书证号”。

命令如下:
create nonclustered index读者信息on bookmanager.读者(借书证号,姓名)
同理,在表bookmanager.图书上创建名为“图书信息”的非聚簇索引,索引关键字为“书名”、“书号”。

命令如下:
create nonclustered index图书信息on bookmanager.图书(书号,书名)
在表bookmanager.借阅信息上创建名为“借阅时间”的非聚簇索引,索引关键字为“借书日期”、“还书日期”。

命令如下:
create nonclustered index借阅时间on bookmanager.借阅信息(借书日期,还书日期) 5.1.4数据库关系图
5.2 数据入库(1)读者信息
(2)出版社信息
(3)图书信息
(4)借阅信息
5.3 数据库试运行
(1)查询书库中现有书籍的种类、总数量与存放位置。

命令如下:
select种类,总数量,存放位置from bookmanager.图书
(2)查询书籍借还情况(显示姓名、借书证号、借书人单位、书名、书号,借书日期和还书日期)。

命令如下:
select姓名,读者.借书证号,借书人单位,书名,图书.书号,借书日期,还书日期
from bookmanager.读者
join bookmanager.借阅信息on读者.借书证号=借阅信息.借书证号
join bookmanager.图书on借阅信息.书号=图书.书号
where姓名in('张三','李四','王五','赵六')
(3)查询图书所属出版社的相关信息(显示书名,书号,出版社名,电话,邮编,地址)。

命令如下:
select书名,书号,图书.出版社名,电话,邮编,地址
from bookmanager.图书join bookmanager.出版社
on图书.出版社名=出版社.出版社名
(4)查询各种图书借阅次数(显示书名,书号,借阅次数)。

命令如下:
select书名,图书.书号,count(*)借阅次数
from bookmanager.图书
join bookmanager.借阅信息
on图书.书号=借阅信息.书号
group by书名,图书.书号
(5)查询图书《马云谈创业》被那些读者借阅过(显示书名,读者姓名,借书证号,借书人单位,借书日期,还书日期)。

命令如下:
select书名,姓名,读者.借书证号,借书人单位,借书日期,还书日期
from bookmanager.读者join bookmanager.借阅信息on
读者.借书证号=借阅信息.借书证号join bookmanager.图书on
借阅信息.书号=图书.书号where书名='马云谈创业'
6学习心得
通过本次课程设计,我进一步了解数据库的基本概念、原理和技术,结合实际的操作和设计,巩固了课堂的教学内容,将理论与实际相结合,加强了自我实践意识、提高了实际动手能力和创新能力。

由于本次课程设计的内容不多,因此我独立一人完成了所有工作,途中也遇到了不少问题,例如如何画出准确的E-R图、如何将E-R图转换成关系模式、对索引的概念和功能的了解以及怎样创建索引等。

通过自我查找书籍和利用互联网这个自我学习的平台,我顺利解决了大部分问题。

通过互联网上有用的资料,我认识到要获得有效地E-R图需充分了解数据的流程,所以需画出各个层次的数据流图,从中层或底层数据流图抽象出局部的E-R图,再合并各局部E-R图并解决冲突,最后得到有效的总体E-R图。

而索引是刚开始一直困扰我的难点,可能是我上课不专心没有听到老师的讲解。

同时,我在课本找不到对索引的详细解析。

因此,我通过互联网详细了解了它的概念、功能、类型以及怎样创建,使课程设计顺利进行下去。

这次课程设计能够完满完成,最主要是因为老师的悉心教导。

如果没有老师平时为我打下坚实的基础和热情地帮助我解决遇到的各种问题,我是无法完成这次课程设计的。

所以,我在这里衷心地感谢老师,谢谢老师对我们的悉心教导!。

相关文档
最新文档