图书借阅管理数据库设计.docx
- 文档编号:30575569
- 上传时间:2023-08-16
- 格式:DOCX
- 页数:14
- 大小:263.23KB
图书借阅管理数据库设计.docx
《图书借阅管理数据库设计.docx》由会员分享,可在线阅读,更多相关《图书借阅管理数据库设计.docx(14页珍藏版)》请在冰豆网上搜索。
图书借阅管理数据库设计
《数据库系统原理》
课程设计报告
课程名称:
数据库系统原理
实验项目:
图书借阅管理数据库系统设计
班级:
学号:
姓名:
日期:
1.需求分析
假设某大学图书馆要开发一个图书管理系统,经过设计者调查、整理后,规划出该系统的主要工作如下:
读者登记处,
图书总管部门,
图书借还处。
此外,对于图书、读者和出版社等信息,系统管理员可以做添加、修改、删除和查询操作。
普通读者只能查询。
2.概念结构设计
设计局部E-R图
、读者登记处的E-R图
在读者登记处里,有两个实体:
读者和家庭成员。
家庭成员和读者之间是一种依赖关系。
E—R图如下:
、图书总管部门
在图书管理部门,有两个实体:
图书和出版社。
出版社和图书之间是一种一对多的联系。
E-R图如下:
、图书借还处
在图书借还处涉及四个实体:
图书、读者、读者身份和罚款单。
图书和读者之间是多对多的联系,读者身份和读者之间、图书和罚款单之间以及读者和罚款单之间都是一对多的联系。
图书借还处的E-R图如下:
3、逻辑结构设计
概念数据模型CDM
物理数据模型PDM
4、生成的SQL语句如下
/*==============================================================*/
/*DBMSname:
MicrosoftSQLServer2005*/
/*Createdon:
2013/12/1522:
42:
49*/
/*==============================================================*/
ifexists(select1
fromsysindexes
whereid=object_id('借还书登记')
andname='借阅_FK'
andindid>0
andindid<255)
dropindex借还书登记.借阅_FK
go
ifexists(select1
fromsysindexes
whereid=object_id('借还书登记')
andname='被借_FK'
andindid>0
andindid<255)
dropindex借还书登记.被借_FK
go
ifexists(select1
fromsysobjects
whereid=object_id('借还书登记')
andtype='U')
droptable借还书登记
go
ifexists(select1
fromsysobjects
whereid=object_id('出版社')
andtype='U')
droptable出版社
go
ifexists(select1
fromsysindexes
whereid=object_id('图书')
andname='出版_FK'
andindid>0
andindid<255)
dropindex图书.出版_FK
go
ifexists(select1
fromsysobjects
whereid=object_id('图书')
andtype='U')
droptable图书
go
ifexists(select1
fromsysindexes
whereid=object_id('家庭成员')
andname='拥有_FK'
andindid>0
andindid<255)
dropindex家庭成员.拥有_FK
go
ifexists(select1
fromsysobjects
whereid=object_id('家庭成员')
andtype='U')
droptable家庭成员
go
ifexists(select1
fromsysindexes
whereid=object_id('罚款单')
andname='处罚_FK'
andindid>0
andindid<255)
dropindex罚款单.处罚_FK
go
ifexists(select1
fromsysindexes
whereid=object_id('罚款单')
andname='涉及_FK'
andindid>0
andindid<255)
dropindex罚款单.涉及_FK
go
ifexists(select1
fromsysobjects
whereid=object_id('罚款单')
andtype='U')
droptable罚款单
go
ifexists(select1
fromsysindexes
whereid=object_id('读者')
andname='属于_FK'
andindid>0
andindid<255)
dropindex读者.属于_FK
go
ifexists(select1
fromsysobjects
whereid=object_id('读者')
andtype='U')
droptable读者
go
ifexists(select1
fromsysobjects
whereid=object_id('读者身份表')
andtype='U')
droptable读者身份表
go
/*==============================================================*/
/*Table:
借还书登记*/
/*==============================================================*/
createtable借还书登记(
读者编号varchar(20)null,
书号varchar(30)null,
借阅日期datetimenotnull,
还书日期datetimenotnull
)
go
/*==============================================================*/
/*Index:
被借_FK*/
/*==============================================================*/
createindex被借_FKon借还书登记(
书号ASC
)
go
/*==============================================================*/
/*Index:
借阅_FK*/
/*==============================================================*/
createindex借阅_FKon借还书登记(
读者编号ASC
)
go
/*==============================================================*/
/*Table:
出版社*/
/*==============================================================*/
createtable出版社(
出版社编号varchar(20)notnull,
出版社名称varchar(20)notnull,
电话varchar(20)notnull,
地址varchar(30)notnull,
邮编char(6)notnull,
联系人varchar(20)notnull,
constraintPK_出版社primarykeynonclustered(出版社编号)
)
go
/*==============================================================*/
/*Table:
图书*/
/*==============================================================*/
createtable图书(
书号varchar(30)notnull,
出版社编号varchar(20)null,
书名varchar(40)notnull,
类型varchar(20)notnull,
作者varchar(20)notnull,
单价moneynotnull,
购买数量smallintnull,
constraintPK_图书primarykeynonclustered(书号)
)
go
/*==============================================================*/
/*Index:
出版_FK*/
/*==============================================================*/
createindex出版_FKon图书(
出版社编号ASC
)
go
/*==============================================================*/
/*Table:
家庭成员*/
/*==============================================================*/
createtable家庭成员(
读者编号varchar(20)null,
姓名varchar(20)null,
关系varchar(20)null,
工作单位varchar(30)null,
职务varchar(10)null,
电话varchar(20)null
)
go
/*==============================================================*/
/*Index:
拥有_FK*/
/*==============================================================*/
createindex拥有_FKon家庭成员(
读者编号ASC
)
go
/*==============================================================*/
/*Table:
罚款单*/
/*==============================================================*/
createtable罚款单(
罚款单号varchar(20)notnull,
书号varchar(30)null,
读者编号varchar(20)null,
罚款日期datetimenotnull,
金额moneynull,
constraintPK_罚款单primarykeynonclustered(罚款单号)
)
go
/*==============================================================*/
/*Index:
涉及_FK*/
/*==============================================================*/
createindex涉及_FKon罚款单(
书号ASC
)
go
/*==============================================================*/
/*Index:
处罚_FK*/
/*==============================================================*/
createindex处罚_FKon罚款单(
读者编号ASC
)
go
/*==============================================================*/
/*Table:
读者*/
/*==============================================================*/
createtable读者(
读者编号varchar(20)notnull,
读者类型varchar(10)null,
姓名varchar(20)notnull,
出身日期datetimenull,
身份证号char(18)null,
电话varchar(20)notnull,
地址varchar(30)notnull,
邮政编码char(6)null,
constraintPK_读者primarykeynonclustered(读者编号)
)
go
/*==============================================================*/
/*Index:
属于_FK*/
/*==============================================================*/
createindex属于_FKon读者(
读者类型ASC
)
go
/*==============================================================*/
/*Table:
读者身份表*/
/*==============================================================*/
createtable读者身份表(
读者类型varchar(10)notnull,
可借阅天数smallintnotnull,
可借阅数量smallintnotnull,
constraintPK_读者身份表primarykeynonclustered(读者类型)
)
go
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图书 借阅 管理 数据库 设计