数据库原理简单的数据库系统设计图书管理系统董迎顺.doc
- 文档编号:2136028
- 上传时间:2023-05-02
- 格式:DOC
- 页数:13
- 大小:1.44MB
数据库原理简单的数据库系统设计图书管理系统董迎顺.doc
《数据库原理简单的数据库系统设计图书管理系统董迎顺.doc》由会员分享,可在线阅读,更多相关《数据库原理简单的数据库系统设计图书管理系统董迎顺.doc(13页珍藏版)》请在冰点文库上搜索。
长春大学计算机学院网络工程专业
数据库原理实验报告
实验名称:
实验五简单的数据库系统设计——图书管理系统
班级:
网络五班
姓名:
董迎顺
学号:
041440516
实验地点:
机房
日期:
2015-12-7
一、实验目的:
通过完成从用户需求分析、数据库设计到上机编程、调试和应用等全过程,进一步理解和掌握数据库的设计过程及方法。
二、实验内容、要求和环境:
【实验要求】
注:
将完成的实验报告重命名为:
班级+学号+姓名+(实验五),(如:
041340538张三(实验五)),发邮件到:
ccujsjzl@。
提交时限:
本次实验后24小时之内。
1.实验课要携带教材、学习辅导、老师下发的实验报告文档等。
2.课前要对实验内容和步骤部分进行预习。
【实验环境】
1.SQLSERVER2005/2008;
2.KingBaseESV7.0,人大金仓。
【实验内容和步骤】
一个简单的图书管理系统包括图书馆内书籍的信息、学校在校学生的信息以及学生的借阅信息。
此系统功能分为面向学生和面向管理员两部分,其中面向学生部分可以进行借阅、续借、归还和查询书籍等操作;面向管理员部分可以完成书籍和学生的增加、删除和修改以及对学生借阅、续借、归还的确认。
参照附录的实验报告参考实例,完成如下内容:
1.需求分析
(1)借阅人基本信息的查询,输入,插入,修改,删除。
包括借阅人的图书证号,姓名,班级,电话,已借书目,能否能借书。
(2)图书基本信息的查询,输入,插入,修改,删除。
包括图书的图书编号,书名,书号,类别,定价,入库时间,库存量等。
(3)借阅的基本信息的查询,输入,插入,修改,删除。
包括借阅的借书时间,应还时间,图书证号,图书编号,是否续借等。
(4)借阅书籍基本信息的查询,输入,插入,修改,删除。
包括借阅书籍的图书编号,图书证号,书名等。
(5)归还书籍基本信息的查询,输入,插入,修改,删除。
包括归还书籍的图书编号,图书证号,书名等。
(6)管理基本信息的查询,输入,插入,修改,删除。
包括管理的图书编号,图书证号,登记借书日期,是否在库,存放位置等。
(7)管理员基本信息的查询,输入,插入,修改,删除。
包括管理员的编号,姓名,性别,值日时间,联系方式等。
2.概念结构设计(E-R图)
实体:
图书信息,借阅书籍,归还书籍,借阅人,管理员
联系:
借阅信息,管理信息。
库存量
入库时间
定价
类别
书号
书名
图书编号
是否在库
图书编号
存放位置
借书时间
图书信息
管理
借阅信息
m m
登记日期
借书时间
图书编号
应还时间
姓名
图书证号
班级
图书编号
借阅人
借阅书籍
归还书籍
姓名
管理员
电话
图书证号
性别
书名
编号
图书证号
值日时间
已借书目
姓名
能否能借书
图书证号
图书编号
联系方式
3.逻辑结构设计
通过E-R图,写出关系模式的逻辑结构。
借阅人(图书证号【主码】,姓名,班级,电话,已借书目,能否能借书)
图书基本信息(图书编号【主码】,书名,书号,类别,定价,入库时间,库存量)
借阅的基本信息(图书证号,图书编号【外码】,借书时间【主码】,应还时间,是否续借)
借阅书籍基本信息(图书编号【外码】,图书证号【外码】,书名)
归还书籍基本信息(图书编号【外码】,图书证号【外码】,书名)
管理基本信息(图书编号【外码】,图书证号【外码】,登记借书日期【外码】,是否在库,存放位置)
管理员基本信息(编号【主码】,姓名,性别,值日时间,联系方式)
4.物理设计
1.图书基本信息
属性
数据类型
长度
主码/外码
图书编号
char
10
主码
书名
char
10
书号
char
10
类别
char
10
定价
money
入库时间
date
库存量
int
3.借阅人基本信息
属性
数据类型
长度
主码/外码
姓名
char
10
电话
char
10
班级
char
10
图书证号
char
10
主码
已借书目
int
能否能借书
char
2
4.借阅的基本信息
属性
数据类型
长度
主码/外码
图书证号
char
10
图书编号
char
10
外码
借书时间
date
主码
应还时间
date
是否续借
char
2
5.借阅书籍基本信息
属性
数据类型
长度
主码/外码
图书编号
char
10
外码
图书证号
char
10
外码
书名
char
10
6管理基本信息
属性
数据类型
长度
主码/外码
图书编号
char
10
外码
图书证号
char
10
外码
登记借书日期
date
外码
是否在库
char
2
存放位置
char
10
7管理员基本信息
属性
数据类型
长度
主码/外码
姓名
char
10
性别
char
2
编号
char
10
主码
值日时间
date
联系方式
char
10
5.用SQL实现数据库的设计,并在SQLServer上调试通过。
(1)建表(考虑完整性约束)
/**********图书基本信息*************/
createtable图书基本信息
(
图书编号char(10)primarykey,
书名char(10),
书号char(10),
类别char(10),
定价money,
入库时间date,
库存量int
)
/**********借阅人基本信息**********/
createtable借阅人
(
图书证号char(10)primarykey,
姓名char(10),
班级char(10),
电话char(10),
已借书目int,
能否能借书char
(2),
)
/***********借阅基本信息**********/
createtable 借阅的基本信息
(
图书证号char(10),
图书编号char(10)references图书基本信息(图书编号),
借书时间dateprimarykey,
应还时间date,
是否续借char(10),
)
/******借阅书籍基本信息*******/
createtable 借阅书籍基本信息
(
图书编号char(10)references图书基本信息(图书编号),
图书证号char(10)references借阅人(图书证号),
书名char(10)
)
/*******归还书籍基本信息********/
createtable归还书籍基本信息
(
图书编号char(10)references图书基本信息(图书编号),
图书证号char(10)references借阅人(图书证号),
书名char(10)
)
/**********管理基本信息**********/
createtable管理基本信息
(
图书编号char(10)references图书基本信息(图书编号),
图书证号char(10)references借阅人(图书证号),
登记借书日期datereferences借阅的基本信息(借书时间),
是否在库char
(2),
存放位置char(10)
)
/**********管理员基本信息************/
createtable管理员基本信息
(
姓名char(10),
性别char
(2),
编号char(10)primarykey,
值日时间date,
联系方式char(10)
)
(2)学生、图书以及借阅信息的输入、删除和修改。
/********借阅人信息输入************/
insertinto借阅人
values(20151214,'张三','网络五班',1234564789,3,'能')
insertinto借阅人
values(20151216,'王五','网络五班',1434564789,1,'能')
insertinto借阅人
values(20151217,'董六','网络五班',1534564789,2,'能')
insertinto借阅人
values(20151218,'孙七','网络五班',1634564789,3,'能')
/********图书基本信息输入************/
insertinto图书基本信息
values(000001,'英语','b001','语言类',30,'2015-12-01',150)
insertinto图书基本信息
values(000002,'线性代数','b011','几何类',34,'2015-11-01',100)
insertinto图书基本信息
values(000003,'数据库','b101','计算机类',40,'2015-12-11',90)
insertinto图书基本信息
values(000004,'近代史','b111','历史类',25,'2015-10-01',50)
/********借阅的基本信息输入************/
insertinto借阅的基本信息
values(20151214,000001,'2015-12-11','2016-01-11','否')
insertinto借阅的基本信息
values(20151216,000002,'2015-11-11','2015-12-11','否')
insertinto借阅的基本信息
values(20151217,000003,'2015-12-12','2016-01-12','否')
insertinto借阅的基本信息
values(20151218,000004,'2015-12-10','2016-01-10','否')
三、思考题:
对数据库设计的过程有了哪些进一步的理解?
答;通过这次的课程设计,我对数据库有了进一步的了解,我熟练的掌握了数据库的一些基本语法,比如如何建表,以及添加,删除,查找,更新等操作。
我也练习了创建E-R图和从E-R图得到关系图,通过设计物理结构,来创建一个图书管理系统。
马上就要期末考试了,这次课程设计,帮助了我复习以前的知识。
五、教师评语:
实验成绩:
教师:
(签名)年月日
附:
实验报告参考示例
零件交易中心管理系统实验报告
一、实验目的
通过完成从用户需求分析、数据库设计到上机编程、调试和应用等全过程,进一步理解和掌握数据库的设计过程及方法。
二、实验内容
零件交易中心管理系统主要提供顾客和供应商之间完成零件交易的功能,其中包括供应商信息、顾客信息以及零件信息。
供应商信息包括供应商、供应商号、地址、电话、简介;
顾客信息包括顾客号、顾客名、地址、电话;
零件信息包括零件号、零件名、重量、颜色、简介等。
此系统可以让供应商增加、删除和修改所提供的零件产品,还可以让顾客增加、删除和修改所需求的零件。
交易员可以利用顾客提出的需求信息和供应商提出的供应信息来提出交易的建议,由供应商和顾客进行确认后完成交易。
三、实验过程
1.需求分析
(1)供应商
供应商的操作流程如图1所示。
图1
(2)顾客
顾客的地位和供应商几乎是对称的,所以功能分类上也很相似。
顾客的操作流程如图2所示:
图2
(3)交易员
交易员的工作就是提出交易和完成交易。
需要仔细考虑的问题是:
一个交易如何产生,并如何达成。
这可以用图3来说明。
图3
处理交易的时候可能面临如下问题:
a.一个交易只能在交易双方都同意的情况下才可以进行,所以数据库中的供求信息只能作为达成某个交易的基础;
b.交易的双方可能不同时使用这个系统,因此需要系统提供一个双方交换信息的方式;
c.系统需要提供一种方便系统(交易员)向用户提出建议来促成交易的途径,并在保证数据库数据完整性的情况下达成交易。
2.概念模型设计
数据库需要表述的信息有以下几种:
(1)零件信息;
(2)供应商信息;(3)顾客信息;(4)供应商零件之间的联系(供应)
(5)顾客和零件之间的联系(求购);(6)交易(三元联系)
用E-R模型表述该模型的设计,E-R图如图4所示。
图4
3.逻辑设计
通过E-R模型到关系模型的转化,可以得到如下关系模式:
(1)零件关系:
part(ID,color,name,weight,intro)
(2)供应商关系:
provider(ID,name,address,tele,intro)
(3)顾客关系:
customer(ID,name,address,tele)
(4)供应关系:
supply(partID,provideID,price,quantity)
(5)求购关系:
after(customerID,partID,price,quantity)
(6)交易关系:
Business(customerID,provideID,partID,price,quantity)
每个关系模式的主码都用下划线标出。
同时,对于从联系导出的关系供应,求购和交易,使用与之相联系的实体集的码作为自己的主码,必须符合外码的约束。
对于顾客,供应商和零件之间,不存在直接的约束,所以可以存在没有供应商供应同时也没有顾客求购的零件。
4.物理设计
为了提高在表中搜索元组的速度,在实际实现的时候应该基于码建立索引。
下面是各表中建立索引的表项。
part(ID)provider(ID)customer(ID)
supply(partID,provideID)after(customerID,partID)
Business(customerID,provideID,partID
5.用SQL实现设计
实现该设计的环境为Windows2000Professional+MSSQLServer2000。
(1)建立各表
①建立零件表
CREATETABLEPart(IDsmallintidentity(1,1)
PRIMARYKEYCLUSTERED,
Colorvarchar(20),
Namevarchar(20)NOTNULL,
Weightintdefault0,
Introtext);
②建立Provider表
CREATETABLEProvider(IDsmallintidentity(1,1)
PRIMARYKEYCLUSTERED,
Namevarchar(20)NOTNULL,
Passwordvarchar(8)NOTNULL,
Addressvarchar(30),
Telvarchar(20),
Introtext);
③建立Customer表
CREATETABLECustomer(IDsmallintidentity(1,1)
PRIMARYKEYCLUSTERED,
Namevarchar(20)NOTNULL,
Passwordvarchar(8)NOTNULL,
Addressvarchar(30),
Telvarchar(20));
④建立Supply表
CREATETABLESupply(PartIDsmallint,ProvideIDsmallint,
Priceint,Quantityint,
CONSTRAINTPK_SUPPLY
PRIMARYKEYCLUSTERED(PartID,ProvideID),
CONSTRAINTPK_SUPPLY_PARTID
FOREIGNKEY(PartID)REFERENCESPart(ID),
CONSTRAINTPK_SUPPLY_PROVIDERID
FOREIGNKEY(ProvideID)REFERENCESProvider(ID));
⑤建立After表
CREATETABLEAfter(CustomerID,smallint,PartIDsmallint,
Priceint,Quantityint,
CONSTRAINTPK_AFTER
PRIMARYKEYCLUSTERED(CustomerID,PartID),
CONSTRAINTPK_AFTER_CUSTOMERID
FOREIGNKEY(CustomerID)REFERENCESCustomer(ID),
CONSTRAINTPK_AFTER_PARTID
FOREIGNKEY(PartID)REFERENCESPart(ID));
⑥建立Business表
CREATETABLEBusiness(
CustomerID,smallint,
PartIDsmallint,
ProvideIDsmallint,
Priceint,Quantityint,
CONSTRAINTPK_BUSSINESS
PRIMARYKEYCLUSTERED(CustomerID,ProvideID,PartID),
CONSTRAINTPK_BUSSINESS_CUSTOMERID
FOREIGNKEY(CustomerID)REFERENCESCustomer(ID),
CONSTRAINTPK_BUSSINESS_PROVIDERID
FOREIGNKEY(ProvideID)REFERENCESProvider(ID));
CONSTRAINTPK_BUSSINESS_PARTID
FOREIGNKEY(PartID)REFERENCESPart(ID));
⑦供应商操作
a.注册(Register)
INSERTINTOProvider(Name,Address,Tel,Intro)
VALUES(#Name,#Address,#Tel,#Intro)
在登记操作后,供应商得到一个惟一的ID,可以根据这个ID来查询和修改供应商的数据。
b.注销(UnRegister)
DELETEProviderWHEREID=#ID;
c.修改个人信息(Update)
UPDATEProvider
SetName=#Name,Address=#Address,Tel=#Tel,Intro=#Intro
WHEREID=#ID
d.增加供应项(Add_Supply_Item)
INSERTINTOSupply(PartID,ProviderID,Price,Quantity)
VALUES(#PartID,#ProviderID,#Price,#Quantity))
e.删除供应项(Delete_Supply_Item)
DELETESupply
WHEREPartID=#PartIDandProvideID=#ProvideID);
f.修改供应项(Update_Supply_Item)
UPDATESupplySETPrice=#Price,Quantity=#Quantity)
WHEREPartID=#PartIDandProvideID=#ProvideID;
很明显,系统并没有提供商品面向供应商修改零件信息的接口,所以供应商提供的零件必须已经在零件表中存在;可以这样假设,交易所的管理员负责更新零件信息,而供应商可以向交易所申请增加某种零件的信息。
事实上顾客也可提出这样的要求。
⑧顾客
a.注册(Register)
INSERTINTOCustomer(Name,Address,Tel)
VALUES(#Name,#Address,#Tel)
在登记操作后,供应商得到一个惟一的ID,可以根据这个ID来查询和修改供应商的数据。
b.注销(UnRegister)
DELETECustomerWHEREID=#ID;
c.修改个人信息(Update)
UPDATECustomerSetName=#Name,Address=#Address,Tel=#Tel
WHEREID=#ID
d.增加需求项(Add_After_Item)
INSERTINTOAfter(PartID,CustomerID,Price,Quantity)
VALUES(#PartID,#ProviderID,#Price,#Quantity))
e.删除需求项(Delete_After_Item)
DELETEAfter
WHEREPartID=#PartIDandCustomerID=#CustomerID);
f.修改需求项(Update_After_Item)
UPDATEAfterSETPrice=#Price,Quantity=#Quantity)
WHEREPartID=#PartIDandCustomerID=#CustomerID;
⑨交易员
针对需求分析中提出的问题,提出了“协议书”的解决方案,方案的说明如下:
·每个交易在达成以前都作为协议书保存在数据库中,协议书具有和交易一样的完备信息,可以在条件成熟的情况下转为一个达成的交易;
·协议书只有在供应商和顾客都签字的情况下才有效;有效的协议书由交易员签发,协议书一经签发,就生效,表明一个交易的达成,数据库中的数据将同时予以修改;
·协议书可以由供应商、顾客或者交易员中的任意一个人提出申请。
当协议书在双方没有都签字前,协议的双方或者交易员都可以删除这个协议书;但是,当协议书签字完毕后,协议书就不得删除(修改),只能由交易员进行处理;
·协议书有可能在转成交易的过程中失败,因为在交易达成以前,数据库中的数据有可能因为其他交易而变化,一个协议书可能失败,这是允许的。
根据以上分析,对数据库的模型作一些修改,增加协议书表,其
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 原理 简单 系统 设计 图书 管理 董迎顺