数据库课程设计——图书管理系统.doc
目 录1 前言22 需求概述2 2.1 读者登记处2 2.2 图书总管部门2 2.3 图书借还处23 业务流程分析34 概念结构设计44.1 实体44.2 ER图55 逻辑结构设计65.1 一般逻辑模型设计65.2具体逻辑模型设计66 数据库保护设计7 6.1设计表间关系76.2 完整性设计87 数据库应用系统的实现88 结束语129 附 注 SQL语言131 前言数据库技术和Interne的飞速发展,使他们已经成为现代信息技术的重要组成部分,是现在计算机信息系统和计算机应用系统的基础和核心。对于拥有庞大人员的学校的管理来讲,数据的有效使用是一个学校能否进行有效管理的一个关键。学校作为一个学习的地方,一定会有一个图书馆。有图书馆就必定要有管理,这样学校图书管理系统就显得更为重要。学校图书管理系统适应于绝大多数的学校图书馆的管理。应用此系统可以将众多的学生信息和图书信息进行有效的管理,提高学校的效率。2 需求概述2.1 读者登记处学生或教师需要通过办理图书证之后才能进行图书借阅。图书证包括借书证号,姓名,读者类型,借书人单位等信息。在读者登记处,需要把读者的有关信息添加到信息系统中保存,当读者信息发生改变时,需要对计算机里的内容进行相应的修改。当读者办理退证手续时,需要删除相应的读者信息。另外,生成超过期限未还书的读者信息表,通知读者应尽快还书等。2.2 图书总管部门2.2.1图书管理部门负责书籍和出版社等的信息管理,具体如下: (1) 图书信息管理。完成图书的录入、修改、删除和查询功能。在查询图书信息时,可随时查询书库中现有书籍的类型、书号、书名、作者、数量等信息。所有书籍都可由书号唯一标识。(2) 为了方便业务往来,需保存出版社相关信息。这些信息包括出版社编号、名称、电话、邮编、地址、联系人等。2.3 图书借还处2.3.1图书借还处负责图书的借阅和归还工作。具体如下:(1) 读者借书管理。读者可以根据图书类别和书名查找自己要借阅的图书,在图书借阅登记中,借阅日期是自动填写的(当前系统日期)。(2) 还书管理。在办理还书业务时,系统判断是否过期,若过期,则首先查看是否已经交了罚款。若未交,则生成一张罚款通知单。(3) 完成图书在库数量的查询。此外,对于书籍、读者和出版社等信息,系统管理员可以做添加、修改、删除和查询操作。普通读者只能查询。3 业务流程分析图书管理系统系统管理员读者管理图书读者查询图书信息借还情况种类数量书号出版社存放位置借书证号借还情况读者类型姓名4 概念结构设计4.1 实体之间的联系(有下划线的为主键),具体如下:实体1:书籍【种类、数量、存放位置、书号、书名、出版年、作者、出版社编号、价格】实体2:读者【借书证号、姓名、性别、借书人单位、读者类型】实体3:出版社【出版社编号、出版社名、电话、邮编、地址】实体4:借还情况【借书证号、书号、借书日期、还书日期】实体5:读者身份【读者类型、可借阅天数、可借阅数量】4.2 改进后的整体E-R图,具体如下图所示:(转下一页)读者借还书籍出版出版社还书日期借书日期电话出版社编号种类书号出版年作者书名数量存放位置地址邮编读者身份包含读者类型可借阅数量期可借阅天数姓名性别借书人单位借书证号出版社名5 逻辑结构设计5.1 一般逻辑模型设计一个完整的数据库不可缺少的就是数据表,若干个数据表的集合成一个数据库。数据表主要用来存放一定各式的纪录,数据表中的行称为纪录,列被称为字段,创建数据表的过程其实就是定义字段的过程。在此图书管理系统中需要创建5个表,即读者、书籍、借还情况、出版社、读者身份表。 5.2具体逻辑模型设计读者表:创建此表所需要的字段名是:姓名、借书证号、性别、借书人单位读者类型,其中借书证号设为主键。字段名字段类型字段宽度小数点关键字读者编号char20-主键读者姓名char10-读者性别char2-读者单位char30-读者类型char4-出版社表:用于记录书籍出版社信息,所需要的字段名是:出版社编号、出版社名、电话、邮编、地址,其中出版社编号是主键。字段名字段类型字段宽度小数点关键字出版社编号tinyint-主键出版社名称char30-出版社电话char50-出版社邮编char30-出版社地址char50-图书表:用于记录书籍信息,所需要的字段名是:书号、书名、数量、类型、出版年、作者、出版社编号、存放位置。主键是书号。字段名字段类型字段宽度小数点关键字图书编号char10-主键图书名称char50-图书数量tinyint-图书类型char30-出版时间 tinyint-图书作者char10-出版社编号tinyint-存放位置char30-读者身份表:用于记录读者类型信息,是学生还是老师。所需要的字段名是:读者类型、可借阅天数、可借阅数量。主键是读者类型。字段名字段类型字段宽度小数点关键字读者类型char4-主键可借阅天数tinyint-可借阅数量tinyint-借还情况表:用于记录读者借还图书的情况。所需要的字段名是:借书证号、书号、借书日期、还书日期。主键是借书证号、书号。字段名字段类型字段宽度小数点关键字读者编号char20-主键图书编号char10-主键借书日期datetime8-还书日期datetime8-6 数据库保护设计 6.1设计表间关系读者表通过读者类型和读者身份表联系,书籍表通过出版社编号和出版社表联系,借还情况表通过借书证号和书号与读者表和书籍表联系。6.2 完整性设计实体完整性约束:关系中的主属性不能为空。在数据库中使用Primary key实现。参照完整性约束:读者与书籍,出版社与书籍,读者与读者身份,借还情况与读者和书籍表之间采用级联更新和级联删除。用户定义的完整性约束:规定姓名、书名借书日期非空, 借书日期设置默认值为当前时间。7 数据库应用系统的实现7.1 建数据库 (学校图书管理)7.2 建表7.2.1 读者身份表7.2.2 读者表7.2.3 出版社表7.2.4 书籍表7.2.5 借还情况表7.3 输入数据7.3.1读者身份表7.3.2 出版社表7.3.3 书籍表7.3.4 读者表7.3.5 借还情况表结 束 语在设计这个系统中,不断地遇到不少问题,主要有下:(1)不熟悉业务流程图,不知如何下手。 通过参考一些优秀的课程设计范本,仔细观察总结,得出业务流程图实际是要表示此数据库是怎样帮助使用者进行数据管理和查询的,整理思路画出流程图。(2)输入数据时总是不成功,出现“将截断字符串或二进制数据”信息,反复检查后才发现是建表时疏忽了字段长度。此外,还有很多很琐碎的问题,都是通过与同学讨论而得以解决。 “学校图书管理系统”是本人亲手设计的。经过本人一番心血、不断的努力,这个设计才能顺利完成。其既有成功的一面也有很多不足待改善的地方。在日后的工作中定能不断的改进,使其更方便的为学校、为广大的师生服务。通过这次学校图书馆图书管理的课程设计,可以对数据库设计的整个过程有进一步了解,对SQL的运用也熟悉很多。但我知道这还不是完整的一个管理系统,要让它能够得到实际运用还需要改进很多。在设计过程中,我遇到了很多问题,很多都是靠同学的帮助解决的。很多时候,同学间的互助是最直接的最快捷的。虽然并不是每个同学都很厉害,但我们可以互相讨论,研究。许多的问题就是这样发现和得以解决的。正所谓三人行,必有我师。通过这次的作业,我们同学间的合作更加紧密了。当然,和同学讨论之前,都是要先参考书籍,独立思考,得不到答案再去寻求他人帮助。这就是我对这次课程设计的一个小小的体会。虽然在这次的设计中还存在不少问题,但也收获良多。希望我在以后的学习过程中能不断的进步。SELECT dbo.读者表.读者编号, dbo.借还情况表.图书编号, dbo.图书表.图书编号 AS Expr1, dbo.图书表.图书名称, dbo.图书表.图书数量, dbo.图书表.图书类型, dbo.图书表.出版时间, dbo.图书表.图书作者, dbo.图书表.出版社编号, dbo.图书表.存放位置, dbo.读者表.读者姓名, dbo.读者表.读者性别, dbo.读者表.读者单位, dbo.借还情况表.借书日期, dbo.借还情况表.还书日期FROM dbo.读者表 INNER JOIN dbo.借还情况表 ON dbo.读者表.读者编号 = dbo.借还情况表.读者编号 INNER JOIN dbo.图书表 ON dbo.借还情况表.图书编号 = dbo.图书表.图书编借阅详细信息表SELECT dbo.读者表.读者编号, dbo.读者表.读者姓名, dbo.读者表.读者性别, dbo.读者表.读者单位, dbo.读者身份表.读者类型, dbo.读者身份表.可借阅天数, dbo.读者身份表.可借阅数量FROM dbo.读者表 INNER JOIN dbo.读者身份表 ON dbo.读者表.读者类型 = dbo.读者身份表.读者类型读者详细信息表SELECT dbo.图书表.图书名称, dbo.图书表.图书数量, dbo.图书表.图书类型, dbo.图书表.出版时间, dbo.图书表.图书作者, dbo.图书表.出版社编号, dbo.图书表.存放位置, dbo.出版社表.出版社电话, dbo.出版社表.出版社邮编, dbo.图书表.图书编号, dbo.出版社表.出版社名称FROM dbo.出版社表 INNER JOIN dbo.图书表 ON dbo.出版社表.出版社编号 = dbo.图书表.出版社编号图书详细信息表SELECT dbo.出版社表.出版社编号 AS Expr12, dbo.读者身份表.读者类型 AS Expr5, dbo.借还情况表.图书编号 AS Expr1, dbo.出版社表.出版社名称 AS Expr19, dbo.出版社表.出版社电话 AS Expr20, dbo.出版社表.出版社邮编 AS Expr21, dbo.出版社表.出版社地址 AS Expr22, dbo.读者表.读者姓名 AS Expr23, dbo.读者表.读者性别 AS Expr24, dbo.读者表.读者单位 AS Expr25, dbo.读者身份表.可借阅天数 AS Expr6, dbo.读者身份表.可借阅数量 AS Expr7, dbo.图书表.图书名称 AS Expr13, dbo.图书表.图书数量 AS Expr14, dbo.图书表.图书类型 AS Expr15, dbo.图书表.出版时间 AS Expr16, dbo.图书表.图书作者 AS Expr17, dbo.借还情况表.借书日期 AS Expr2, dbo.借还情况表.还书日期 AS Expr3, dbo.借还情况表.读者编号 AS Expr4, dbo.图书表.存放位置 AS Expr18, dbo.借还情况表.*, dbo.读者身份表.*, dbo.读者表.读者编号 AS Expr8, dbo.读者表.读者类型 AS Expr9, dbo.图书表.出版社编号 AS Expr10, dbo.图书表.图书编号 AS Expr11, dbo.图书表.*, dbo.出版社表.*, dbo.读者表.*FROM dbo.读者身份表 INNER JOIN dbo.读者表 ON dbo.读者身份表.读者类型 = dbo.读者表.读者类型 INNER JOIN dbo.借还情况表 ON dbo.读者表.读者编号 = dbo.借还情况表.读者编号 INNER JOIN dbo.图书表 ON dbo.借还情况表.图书编号 = dbo.图书表.图书编号 CROSS JOIN dbo.出版社表全部数据输出附注 SQL语言1 建立数据库create database 学校图书管理on(name=library,filename='e:SQLdesigndesign2.mdf',size=10,maxsize=50,filegrowth=5)log on(name=library_log,filename='e:SQLdesigndesign2.ldf',size=5,maxsize=25,filegrowth=5)2 建表(1)读者身份create table 读者身份(读者类型char(4) check (读者类型in ('教师','学生') primary key,可借阅天数tinyint not null,可借阅数量tinyint not null)(2) 读者create table 读者(借书证号char(20) primary key,姓名char(10) not null,性别char(2) check (性别='男' or 性别='女'),借书人单位char(30),读者类型char(4) foreign key references 读者身份(读者类型)(3) 出版社create table 出版社(出版社编号char(30) primary key,出版社名char(30) not null,电话char(50),邮编char(30),地址char(50)(4) 书籍create table 书籍(书号char(10) primary key ,书名char(50) not null,数量tinyint not null,类型char(30),出版年char(10) ,作者char(10),出版社编号char(30) foreign key references 出版社(出版社编号),存放位置char(30)(5) 借还情况create table 借还情况(借书证号char(20) foreign key references 读者(借书证号), 书号char(10) foreign key references 书籍(书号),借书日期datetime default getdate(),还书日期datetime,primary key (借书证号,书号)3 数据输入(1)读者身份insert into 读者身份values ('学生','60','10')insert into 读者身份values ('教师','90','15')(2)出版社insert into 出版社values ('00001','西南交通大学出版社','02887600789','610031','成都二环北路一段')insert into 出版社values ('00002','北京工业大学出版社','01098783566','100022','北京市朝阳区平乐园号')insert into 出版社values ('00003','高等教育出版社','01057293893','100011','北京西城区德外大街号')insert into 出版社values ('00004','南海出版公司','09290876998',' 200023','上海市局门路号B幢楼')insert into 出版社values ('00005','清华大学出版社','()','100084','北京市海淀区双清路学研大厦A座-7层')insert into 出版社values ('00006','海洋出版社','01097289217','100081','北京市海淀区大慧寺路号')insert into 出版社values ('00007','中国市场出版社','()','l00837','北京市西城区月坛北小街号院号楼层')insert into 出版社values ('00008','中国纺织出版社','01064361605','100022','北京朝阳南十里居号')insert into 出版社values ('00009','福建美术出版社','0591-87533718',' 350001','福建省福州市东水路号新闻中心大楼层')insert into 出版社values ('00010','中信出版社','010-85322532','100600','北京市朝阳区亮马河南路号塔园外交人员公寓')insert into 出版社values ('00011','吉林大学出版社','','130021','吉林省长春市明德路号')insert into 出版社values ('00012','人民教育出版社','010-58758866','100081','北京市海淀区中关村南大街号院号楼')insert into 出版社values ('00013','机械工业出版社','01068992542','100037','北京市西城区百万庄南街号')insert into 出版社values ('00014','上海外语教育出版社','65423847','200083','上海市大连西路号')insert into 出版社values ('00015','光明日报出版社','02785498249','430000','湖北省武汉市兴业路特号华中图书交易中心D栋室')(3)读者insert into 读者values ('32090048791','叶社联','女','管理学院','学生')insert into 读者values ('32090048901','黎历史','女','管理学院','学生')insert into 读者values ('32090048041','韦大碗','女','管理学院','学生')insert into 读者values ('32090090221','凌老翎','女','管理学院','学生')insert into 读者values ('32090099871','罗小仪','女','经贸学院','学生')insert into 读者values ('32089911911','姜大佬','女','管理学院','教师')insert into 读者values ('32080090011','黄耶鲁','女','管理学院','教师')insert into 读者values ('32090089091','肖肚脐','男','管理学院','学生')insert into 读者values ('32090076491','朱囧','男','管理学院','学生')insert into 读者values ('32089909131','林花欣','女','经贸学院','教师')insert into 读者values ('32090097451','舒雯','女','经贸学院','学生')insert into 读者values ('32090075821','李佩佩','女','外国语学院','教师')insert into 读者values ('32080079451','黄小新','男','管理学院','教师')insert into 读者values ('32090078541','林苇哥','女','管理学院','学生')insert into 读者values ('32090059551','霍啊淑','女','管理学院','学生')(4)书籍insert into 书籍values ('A2608407','工程电磁场原理','4','O44电磁学、电动力学','2010','倪光正','00003','O441.4/N31(2)')insert into 书籍values ('A2560914','历史的背影','3','K2中国史','2010','冯政','00007','K207/F66')insert into 书籍values ('A2618981','服装品牌广告设计','5','J5工艺美术','2010','贾荣林,王蕴强','00008','J524.3/J32')insert into 书籍values ('A2623384','色彩风景汇编','3','J2绘画','2010','马林兰','00009','J215/M16')insert into 书籍values ('A2611621','杰克·韦尔奇自传','4','F4工业经济','2010','韦尔奇','00010','K837.125.38/W45(4)')insert into 书籍values ('A2620197','犹太人智慧全集','2','B82伦理学(道德哲学)','2010','何国松','00011','B821/H316')insert into 书籍values ('A2547610','德国政治哲学专著:法的形而上学','3','B5欧洲哲学','2009','克里斯·桑希尔著;陈江进译','00012','B516/S14')insert into 书籍values ('A2610192','管理信息系统','3','C93管理学','2010','(美) 戴维M.克伦克著','00013','C931.6/K42')insert into 书籍values ('A2521621','翻译与跨文化交流:整合与创新','3','H05写作学、修辞学','2010','胡庚申','00014','H059-53/H51')(5)借还情况insert into 借还情况values('32080090011','A2608407','04/23/2010','06/23/2010')insert into 借还情况values('32090078541','A2560914','04/23/2010','06/23/2010')insert into 借还情况values('32090099871','A2618981','04/23/2010','06/23/2010')insert into 借还情况values('32080090011','A2618981','04/10/2010','06/10/2010')insert into 借还情况values('32090076491','A2620197','04/10/2010','06/10/2010')insert into 借还情况values('32090090221','A2608407','04/10/2010','06/10/2010')insert into 借还情况values('32090048041','A2521621','05/14/2010','07/14/2010')insert into 借还情况values('32090090221','A2620197','05/14/2010','07/14/2010')insert into 借还情况values('32090048901','A1947632','05/14/2010','07/14/2010')insert into 借还情况values('32080079451','A2608407','06/01/2010','08/01/2010')insert into 借还情况values('32090078541','A2623384','06/01/2010','08/01/2010')insert into 借还情况values('32090059551','A2611621','06/01/2010','08/01/2010')insert into 借还情况values('32090099871','A2614865','06/11/2010','08/11/2010')insert into 借还情况values('32090099871','A2624600','06/11/2010','08/11/2010')读者借阅关系读者借阅时间关系读者借阅图书详细关系图书出版社关系综合关系