数据库实验 图书馆管理系统
数据库系统实验报告4(简单图书馆管理数据库的实现)

6
图书信息表:
2.还书后: 借阅信息表:
图书信息表:
备注: 1、表头及以下的栏目和内容,不得更改;其它栏目的位置可以适当调整,可以根据需要适当增加或减少 页。 2、本课程包含多次实验,请每次实验项目填写一份。
7
2
利用 sf_borrow,sf_return 进行借、还操作,并注意数据库中三个表的数据变化情况。 三、实验结果及分析 (一)创建数据库和数据表: 选择用企业管理器创建数据库、数据表
3
(二)数据相关操作: 1.查询:
2.删除:
4
删除后:
3.更新:
更新后:
(三)创建触发器、存储过程进行借还书操作: 1.针对借阅信息表的插入操作创建触发器,当借阅信息表进行插入操作时,自动根据书号,将图 书信息表相应记录的“状态”字段改为 0。 CREATE TRIGGER Insert_borrow ON dbo.借阅信息表 FOR INSERT AS begin update 图书信息表 set 状态=0 from Inserted i,图书信息表 t where t.书号=i.书号 end 2.针对借阅信息表的删除操作创建触发器,当借阅信息表进行删除操作时,自动根据书号,将图 书信息表相应记录的“状态”字段改为 1。
作者 sql c++ ms java c# net
状态 1 1 1 1 1 1
借书证号 1 2 3
姓名 张三 李四 王五
住址 学三 学四 学五
并对这两个表进行删除、更新、和查询等操作 三、创建触发器、和存储过程进行借、还书操作 1) 针对借阅信息表的插入操作创建触发器,当借阅信息表进行插入操作时,自动根据书号,将图 书信息表相应记录的“状态”字段改为 0。 2) 针对借阅信息表的删除操作创建触发器,当借阅信息表进行删除操作时,自动根据书号,将图 书信息表相应记录的“状态”字段改为 1。 3) 创建存储过程:sf_borrow,实现借书功能即:向借阅信息表进行插入操作,将书号、借书证 号,借书时间作为参数,并自动的将还书时间设置为借书时间后一个月。 4) 创建存储过程:sf_return,现实还书功能即:根据书号对借阅信息表进行删除操作,将书号 作为参数。
图书管理系统 实验报告

图书管理系统实验报告图书管理系统实验报告引言:图书管理系统是现代图书馆不可或缺的一部分,它通过计算机技术的应用,实现了对图书的分类、借阅、归还等操作的自动化管理。
本实验旨在通过设计和实现一个简单的图书管理系统,探索其功能和效果,并对系统进行评估和改进。
一、系统设计与功能1.1 系统设计本系统采用了客户端-服务器的架构,客户端通过图形界面与服务器进行交互。
服务器端负责处理用户请求,包括图书查询、借阅、归还等操作,并将结果返回给客户端。
1.2 系统功能本系统具有以下功能:1) 图书查询:用户可以根据图书的名称、作者、ISBN等信息进行查询,并获取相关的图书信息。
2) 图书借阅:用户可以选择所需图书,并进行借阅操作。
系统会自动检查图书的可借状态,并记录借阅信息。
3) 图书归还:用户可以将已借阅的图书归还给图书馆。
系统会更新图书的借阅状态,并记录归还信息。
4) 用户管理:系统支持用户注册、登录和个人信息管理等功能,以便用户进行借阅操作。
二、实验过程与结果2.1 实验过程在实验过程中,我们首先进行了需求分析,明确了系统的功能和性能要求。
然后,我们进行了系统设计,包括数据库设计、界面设计等。
接下来,我们使用Python编程语言实现了系统的客户端和服务器端,并进行了功能测试和性能测试。
2.2 实验结果经过测试,我们的图书管理系统能够正常运行,并且具备良好的用户界面和交互体验。
系统能够快速响应用户请求,并正确处理各种操作。
同时,系统的性能表现也较好,能够处理大量并发请求,并保持稳定的运行状态。
三、系统评估与改进3.1 系统评估在实验过程中,我们对系统进行了评估。
通过用户反馈和测试结果,我们发现系统在功能和性能方面都达到了预期的要求。
用户对系统的易用性和交互体验给予了较高的评价。
3.2 系统改进尽管系统已经达到了预期的要求,但我们仍然发现了一些可以改进的地方。
例如,系统的查询功能可以进一步优化,提供更多的查询条件和搜索选项。
数据库之图书管理系统实验报告

数据库原理及应用课程设计报告题目:图书管理系统2012 - 7一、需求分析随着我国市场经济的迅速发展和人们生活水平的不断提高,图书馆图书种类、数量的不断扩大,图书检索速度慢、统计工作量大,难以满足图书馆现代化管理的要求。
因此,建立一套图书馆管理软件,科学的对图书馆数据进行管理,方便图书的检索和读者借阅工作。
通过对对应问题所处环境的调查,对一个实际问题的分析,设计与实现,将原理与应用相结合,使学生学会如何把书本上学到点知识应用于解决实际问题,培养学生的动手能力以及创新意识;另一方面,使学生深入理解和灵活掌握教学内容。
本程序实现学生与图书馆管理员的界面分离模式,同时实现管理员对学生有全面的资料管理功能。
有多个图书、学生、系统的动态管理功能,如:图书的查询、添加、删除、修改与及学生的详细资料的查询、添加、删除、修改等等多样、动态的管理。
同时可以放权给管理员查询、添加、删除、修改的能力。
设计实现了如下三个功能,分别是书籍管理系统,读者管理子系统,借阅者管理子系统。
书籍管理子系统它主要提供用户登录功能,并按各用户的权限使用本系统。
本系统分三类用户:权限公查询,管理员的权限是借还书和管理书,超级管理员的权限是管理读者,管理图书分类,管理管理员登录帐户,管理逾期图书。
读者管理子系统主要用于查询图书,其中直接查询包括按图书编号直接查询,按书名查询,按作者查询,按出版社查询(可选模糊查询)。
多条件查询可以按读者的要求选取所需要的图书直接查询和模糊查询,多条件查询)。
借阅管理子系统分别是由图书管理员管理图书(包括图书信息的修改,新图书的增加,旧图书的删除),超级管理员管理图书分类,管理信息,管理管理员登录帐户,管理逾期. 图书馆管理信息系统要完成功能主要有:1)读者基本信息查询、修改,包括借书证号,读者姓名、读者性别等2)书籍类别的制定,类别信息输入,包括:书号,图书大类名,图书小类名,3)借书信息的输入,包括读者学号,书号,借书时间,还书时间,是否归还,续借次数,管理员编号4)借书信息的查询包括书号,书名,数量,作者,所属书大类名,所属书小类,出版社,价格5)超期罚款输入包括罚款单号,书号,学号,应罚金额,是否交款,罚款日期,管理员编号6)管理员管理管理员编号,姓名,地址,电话,备注7)书名书籍类别的查询包括书号,图书大类名,图书小类名,书名8)读者基本信息的输入,包括姓名,学号,性别,专业,班号,违章状况,已借数目,可借天数,借书时间.图—1 整体架构图二、概念结构设计2.1 概念结构一个图书馆拥有多个图书室一个图书室可以存放多本书籍,一本书籍也可以放在不同的图书室不同管理员可以管理多本书籍,不同的书籍也可以被不同的管理员管理不同管理员可以办理多个借书证,一个借书证可以由不同的管理员办理不同借书证可以查询不同的书籍,一本书籍可以被不同的借书证查询一个读者可以借阅多本书籍,一本书籍也可以被不同的读者借阅一个读者持有一个借书证,一个借书证只能被一个读者持有一个读者只能查询自己的付款信息表,损害丢失表,还款信息表图—2 整体E-R 图2.3局部E-R 图图—3 局部E-R 图2.4 数据字典数据库名:TSGLXT.mdb2.4.1 数据库内含下列表以及说明等 Library (图书馆)Book(书籍)Manager(管理员)Reader(读者)Library_card(借书证)Library_room(图书室)Publish(出版社)Reserve(存放)Admin(管理)Handle(办理)Before_search(借阅前查询)Last_search(借阅后查询)Offer(提供)Own(拥有)Type(类别)In_and_Out(借还书信息表)Bookmanage(书籍管理表)Harm_and_Miss(损害丢失信息表)Fine(罚款信息表)2.4.2数据库表详细设计(3)Manager表三、逻辑结构设计3.1 E-R图向关系模型转化(加下划线的为候选码)图书馆(馆名,地址,成立时间,电话,房间号)书籍(图书编号,数量,名称,分类,出版社名,出版日期,价格,管理员编号,是否可借,摘要,关键字,书所在房间号,书所在书架号,isbn)管理员(管理员编号,姓名,地址,电话,备注)读者(学号,姓名,性别,专业,班号,违章状况,已借数目,可借天数,借书时间)借书证(学号,姓名,性别,院系,专业,借书上限)图书室(房间号,书架号,图书总量)出版社(出版社名,地址,电话,邮编,e-mail)分类(书号,图书大类名,图书小类名,书名)借还书信息(学号,书号,借书时间,还书时间,是否归还,续借次数,管理员编号)书籍管理信息(书号,书名,数量,作者,所属书大类名,所属书小类,出版社,价格)损害丢失信息(学号,书号,读者姓名,是否已赔,应赔偿金额)罚款信息(罚款单号,书号,学号,应罚金额,是否交款,日期,管理员编号)联系:存放(房间号,书架号,图书编号存放量)管理(书号,房间号,书架号,类别,)办理(学号,姓名,密码,办理日期,性别)借阅前查询(图书编号,名称,出版日期,出版社名,房间号,借阅情况)借书后查询(图书编号,借书证号,借出时间,需归还时间)提供(isbn,书籍数量,书名)拥有(图书室编号,图书室数量)3.2关系截图四、数据库详细设计4.1 表的录入(1 )Library表的录入(2) Book表的录入(3) Manager表的录入(4)Reader表的录入(5)Publish表的录入(6)Reserve表的录入(7)Offer表的录入(8)type表的录入注:其余表的录入从略。
数据库管理系统实验报告doc

数据库管理系统实验报告篇一:数据库_图书馆管理系统实验报告数据库课程设计报告专业:计算机科学与技术班级: 03 组长:张云60 组员:王冉28指导教师:袁道华成绩:XX年12月16日一、课程设计概述1. 课程设计背景课程需要开发一个图书管理系统,要求在读者登记处可以将读者的信息添加,信息系统中保存,当读者信息发生变化,对计算机内容进行修改,当读者办理退卡手续要删除此读者信息,图书管理负责图书和出版社的管理,读书借还处进行借书管理,还书管理,库存查询,图书排行榜,生成超期未还书的读者,进行通知.给不同用户设置不同权限,供用户访问数据库。
2. 编写目的熟练掌握mysql中的创建数据库、创建表、显示、查询、select语句、视图、存储过程、创建检索、对表的添加、删除、修改和用户权限的设置等基本运用,并通过编写这个图书管理系统来实际演练。
3. 软件定义Mysql是目前最流行的开源的中小型关系数据管理系统,目前被广泛的应用于internet上得中小型网站中,它由mysql AB公司开发、发布并支持。
本实验用的是mysql 5.1版本4. 开发环境本实验用的是mysql 5.1版本,windowsXX二、需求分析1. 问题的提出1:怎么通过mysql和信息之间的关系来创建图书管理系统的数据库及表? 2:怎样来实现对插入读者信息并保存、修改及删除? 3:怎么来实现对图书的管理?4:怎样实现对借书后在读书借还处添加读者借书信息和还书后删除读者借还处中的借书信息且更新图书管理处的图书数量?5:怎么实现对超期读者进行罚款操作和生成这些读者的名单,以方便通知? 6:怎样实现图书的借书排行榜和查看库存书量?7:怎么样来根据不同用户对数据库的等级的不同来设置这些用户的权限?2. 需要完成的功能及各部分功能概述1:读者登记建卡处的功能是对读者基本信息进行登记,读者信息发生变化对读者基本信息进行修改,读者要求退还借书卡时对读者信息进行删除等操作。
图书管理系统 实验报告

需求分析、本图书管理系统就是将传统图书馆业务的手工操作转变成由计算机馆理,即图书馆的图书期刊、音像资料等各种载体文献的采编、典藏、流通、检索及常规业务管理等工作,利用计算机技术,使得图书馆的管理更智能、更有效的进行,最终的目的以方便图书借阅者方便借阅及管理者高效、方便管理为目的。
1、图书馆管理系统需求,通过调查,要求系统需要有以下功能:⑴ 由于操作人员的计算机知识普遍较差,要求有良好的人机界面;⑵ 由于该系统的使用对象多,要求有较好的权限管理;⑶ 原始数据修改简单方便,支持多条件修改⑷ 方便的数据查询,支持多条件查询;⑸ 在相应的权限下,删除数据方便简单,数据稳定性好;⑹ 数据计算自动完成,尽量减少人工干预;2、开发环境本系统的设计是在Windows 2003以上中文版操作系统环境下,用C#语言实现功能,使用Microsoft Visual Studio 2010平台下开发设计的。
数据库是使用SQL server 2000中文版,它是基于客户机/服务器体系结构的多线程、高性能的数据库管理系统。
由于它具有对数据集中进行管理,保证数据的安全性和完整性,可以优化系统性能,支持开放性等优点,在各个行业中都得到了广泛的应用。
3、系统设计目标系统功能依据用户需求而设计,主要包括信息管理对象的特征、事物流程的内容和数据流量,根据用户需求和方便用户使用的原则确定相应的功能模块。
本系统为学校的图书馆信息而设计,实现信息处理的自动化、规范化,主要用于处理图书日常借阅和还书、图书入库、各种查询操作,系统具有以下功能。
1)图书借阅处理2)图书与读者信息查询与修改、删除3)图书入库与图书的信息修改、删除4)员工信息的修改、删除4、系统功能设计要求系统实现图书馆日常管理事务最主要的功能,包括图书的借出于还回,图书信息的录入、修改和查询,读者信息的录入、修改和查询,员工信息的录入、修改和查询。
实现这些基本功能,组建了图书管理系统的基本框架,根据功能的关联关系和集中分组的原则,将系统细化的结构图。
数据库《图书管理系统》综合实验报告

华北科技学院计算机系综合性实验实验报告课程名称《数据库系统A》实验学期2011 至2012 学年第 2 学期学生所在系部计算机学院年级2010 专业班级网络B10—3班学生姓名安志欣学号200907024320 任课教师郭红实验成绩计算机系制《数据库系统B》课程综合性实验报告借阅执行后的读者信息状态:图书归还后的读者信息状态:创建存储过程后,对dm为1003的读者的借阅信息进行查询后的结果:四、实验结果及分析数据库创建后,对其性能进行测试。
对图书借阅表进行更改,执行语句后,触发器t2首先工作,看读者是否还具有借阅权限,当有借阅权限时对读者信息进行更改,将读者的借阅次数加1,以此来实现对读者以后借书数量的限制。
;t3工作,对图书基本信息中的数据进行修改。
当读者归还图书时,t1工作,删除图书借阅表中的图书信息,图书的库存量相应增加,t4工作,使读者的借书次数减1,使读者可以以后继续借书.用存储过程p1,实现读者对借书信息的查询。
输入语句,并对语句执行后,显示出所输入编号对应读者的借阅信息;p2用于查询每本图书的借阅情况.相对来说,这个数据库的功能还有很大的改进空间,比如安全性方面的问题,读者不能对自己的登录密码进行更改,当有人知道某个读者的编号后,就可以对读者的信息查询,这些都使这个数据库不够完美。
但,这个数据库可以使读者对自己的借书信息,归还信息,个人信息进行查询,在对图书借阅的时候,自动对读者,图书馆藏信息进行更改,在归还图书时,可以对读者和馆藏信息更改,从而减少了图书管理员的操作内容,避免了由于人员输入出错导致数据不能操作的现象.用存储过程减少了临时对语句输入所耗费的时间,提高了系统的操作效率.体会:对于这次综合实验的设计,最开始没有担心太多事情,因为时间给的很多,而且对于图书馆的一些管理内容的东西有比较多的经历,所以最开始就只是先对图书管理的需求进行了下简单的分析,同时进入学校的图书馆管理系统体会已经设计好的数据库系统所应包含的功能与信息。
图书馆管理系统数据库设计

图书馆管理系统数据库设计图书馆是每个高校必备的建筑之一,而一个图书馆的好坏不仅与管内藏书的数量、质量有关,还与一个图书馆的管理系统密切相关。
一个好的图书管理系统,可以实时跟踪书的近况,了解每本书的在借续借情况。
本组成员经过研究讨论,决定针对图书馆借书系统进行进一步的研究、优化,提高图书馆图书的管理性能,方便学生了解图书借阅情况,及时还书,避免出现逾期。
本实验数据库设计包括以下四个部分:数据库需求分析、数据库概念结构设计、数据库逻辑结构设计、数据库物理结构实现。
一、数据库需求分析通过对##大学图书馆借书还书流程的分析,得到以下数据流程图1、借书流程图2、还书流程图根据数据流图,设计如下数据项和数据结构:1、图书信息,包括的数据项有:图书号、书名、图书数量、作者、出版社、出版日期、所属图书馆等。
2、借阅人信息,包括的数据项有:一卡通卡号、姓名、性别、专业、联系方式3、图书馆信息,包括的数据项有:图书馆ID、图书馆名称等。
4、图书借阅关系,包括的数据项有:一卡通卡号、图书号、借阅时间、还书时间等。
5、图书收藏关系,包括的数据项有:图书馆ID、图书号、藏书量等。
二、数据库功能组成三、 数据库概念结构设计本数据概念设计采用E-R 图体现。
各个实体具体的E-R 图描述如下:图书信息E-R 图所在校区图书馆图书馆ID图书馆信息E-R 图借阅者姓名年级专业一卡通卡号 联系方式借阅者信息E-R 图实体及其关系E-R图四、数据库逻辑结构设计逻辑结构设计,即将以上E-R图转化为关系模式,具体如下所示:1、借阅关系信息表:创建此表所需要的字段名是:借阅人一卡通号、借阅图书号、借阅时间、借阅期限、还书时间,其中借阅人一卡通号、借阅图书设为主键。
学生借阅图书表字段名字段类型字段宽度说明描述jyykth varchar 10 不空,主键借阅人一卡通号jytsh varchar 18 不空,主键借阅图书号jysj datetime 18 不空借阅时间hssj datetime 18 不空还书时间qfje money 8 不空欠费金额2、图书馆信息表:创建此表所需要的字段名是:图书馆ID、图书馆名称,其中图书馆ID设为主键。
图书馆管理系统数据库设计实验报告

一、实验目的利用所学的数据库的基本原理和SQL Server2000数据库管理系统,以“图书馆管理”为对象,按照数据库设计、开发的步骤,设计并实现图书馆管理的数据库。
二、实验步骤(一)系统需求分析1、系统开发背景2、系统设计目标(二)系统设计1、系统的功能需求2、系统功能分析(三)数据库设计1、图书馆管理系统的流程图2、各实体的关系模式3、图书馆管理系统的E—R图三、报告主要内容(一)系统需求分析1、系统开发背景目前,在高校系部图书管理中,师生查找图书都是采用传统的查询方法,让读者在图书分类架上一本本地去查找,这样不仅很难找到自己所需要的图书,而且费时费力。
而图书管理员在办理借书登记、查询读者借书记录时,管理人员必须在借书记录上一个个去查找,而要找到借书记录并删除该记录是件很麻烦的事情。
每当新书入库时,图书管理员既要填写新书入库卡片,又要填写新书入库帐目,不仅工作量大,而且,在新书入库后要经历较长的时间方能借出。
另外,有的系部因图书数量有限,必须对图书实行限量借阅,因此,要实施弹性借书方法是件很困难的事。
为提高图书查询效率,减少系部图书管理员的工作负担,有必要开发一个小型图书管理软件来对系部图书实施有效管理。
该系统必须具备以下功能:1、能对各类图书实行分类管理;2、提供必要的读者信息;3、能进行各种高级查询(如未还书目的查询;已还书目的查询等);4、具有图书检索功能;5、能管理登录系统的图书管理员等。
计算机这样不仅能较好地帮助读者在最短的时间内找到自己所需要的图书书目、编号,而且能让图书管理员以最高的效率办理借阅手续。
2、设计目标针对以上的要求,本系统将实现用计算机管理图书馆的功能。
具有完成图书信息管理、读者信息管理、管理员信息管理及图书借阅管理等功能。
(二)系统分析1、系统的功能需求本系统是一个图书管理系统,本系统用户分为普通用户和管理员用户两类,管理员用户负责系统的维护,包括对图书信息、读者信息、借阅信息的录入、修改、查询、删除等。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、目的与要求1.本实验是为计算机科学与技术等专业的学生在学习数据库原理后,为培养更好的解决问题和实际动手能力而设置的实践环节。
通过这个环节,使学生具备应用数据库原理对数据库系统进行设计的能力。
为后继课程和毕业设计打下良好基础。
2.通过该实验,培养学生在建立数据库系统过程中使用关系数据理论的能力。
3.通过对一个数据库系统的设计,培养学生对数据库需求分析、数据库方案设计、系统编码、界面设计和软件调试等各方面的能力。
是一门考查学生数据库原理、面向对象设计方法、软件工程和信息系统分析与设计等课程的综合实验。
二、实验内容针对一个具有实际应用场景的中小型系统(本设计为图书馆管理系统)进行数据库设计,重点分析系统涉及的实体、实体之间的联系,实现增加、删除、更新、查询数据记录等基本操作。
大致分为如下步骤:1. 理解系统的数据库需求,分析实体及实体间联系,画出E-R图:1)分析确定实体的属性和码,完成对该实体的实体完整性、用户自定义完整性的定义。
2)设计实体之间的联系,包括联系类型和联系的属性。
最后画出完整的E-R图。
2.根据设计好的E-R图及关系数据库理论知识设计数据库模式:1)把E-R图转换为逻辑模式;2)规范化设计。
使用关系范式理论证明所设计的关系至少属于3NF并写出证明过程;如果不属于3NF则进行模式分解,直到该关系满足3NF为止,要求写出分解过程。
3)设计关系模式间的参照完整性,要求实现级联删除和级联更新。
4)用SQL语言完成数据库内模式的设计。
3.数据库权限的设计:1)根据系统分析,完成授权操作;2)了解学习收回权限的操作。
4.完成用户界面的设计,对重要数据进行加密。
5.连接数据库,用宿主语言实现系统所需的各种操作:1)实现数据记录的录入、删除、查询和修改。
2)以视图的形式完成复杂查询,比如多表、多条件等。
三、实验原理该系统所使用的原理有概念模型、三层模式、关系表理论、范式理论等。
四、实验仪器及设备计算机、SQL Server2005、C#五、设计步骤(一)准备工作1、选择DBMS,本设计选择SQL Server20052、选择编程环境,本设计选用Visual studio 2010 C#3、连接数据库,设置连接管理(二)概念模型设计1、本系统涉及到的实体及其属性图如图1所示如下:图1 实体及其属性图2、图书管理系统的E-R图如图2所示。
图2 图书馆管理系统E-R图(三)逻辑模型的设计根据图2建立的E-R图选用关系模式建立关系表如下所示:1、关系模式描述:(1)管理员(姓名,密码)(2)读者(读者编号,姓名,借书本数,密码)(3)图书(图书编号,图书名,借出时间)(4)借书登记(图书编号,读者编号)2、建立的以上关系模式的关系表:表1.1 管理员的属性表表1.2 管理员的数据表表2.1 读者的属性表表2.2 读者的信息表表3.1 图书的属性表表3.2 图书的数据表表4.1 借阅记录的属性表表4.2 借阅记录的数据表(四)完整性设计1、实体完整性:根据E-R得出各个基本关系的主属性(不能取空值,见各属性表设置)、外码如下所示(1)管理员(姓名,密码)主码:姓名(MName)(2)读者(读者编号,姓名,借书本数,密码)主码:姓名(RName)外码:读者编号(BNo)(5)图书(图书编号,图书名,借出时间)主码:图书名(BName)外码:图书编号(BNo)(6)借书登记(图书编号,读者编号)主码:(图书编号,读者编号)即(BNo,RNo)2、参照完整性:各个关系之间寻在的属性的引用如下所示,其中主码用下划线标出了。
(1)读者(读者编号,姓名,借书本数,密码)借书登记(图书编号,读者编号)(2)图书(图书编号,图书名,借出时间)借书登记(图书编号,读者编号)3、自定义完整性:是编程数据库设计时用户自己设置的,如可以把各关系的主码设为唯一值。
(五)规范化设计此数据库关系属于3范式,由于从实体的完整性主码的标注中可以看出每一个非主属性既不部分依赖于码也不传递依赖于码,所以为3NF。
(六)SQL语言的考察:完成关系表的建立后可以实现查询、插入、删除和更改等操作,即能实现单表和多表的组合查询。
(七)权限设置:如学生登陆后对成绩表只有查询的权限而没有更新的权限等。
(八)图书馆管理系统图形化用户界面设计如下所示:图1 登陆界面图2 读者登陆后的界面图3 读者修改密码界面图4 读者借阅记录查询界面图5 管理员登陆后界面图6 管理员添加图书界面图7 管理员添加读者界面图8 管理员查询读者界面图9 管理员查询图书界面图10 管理员查询借阅记录界面图11 管理员添加借书登记界面图12 还书登记界面六、设计结果本设计主要是三大模块,一种不一部分是共同模块,再者是分为管理员和读中文模块,这两个主要模块完成的相关操作见图13所示,各界面的设计见图1-图12所示,程序的关键代码见附录,由于代码较长,所以每一部分只保留了重要操作代码,主要是对数据库的操作代码,详情见附录。
图13 模块最后设计实现的功能七、思考题1.如何从一个实际的题目中设计概念模型?答:(1)确定出实体及其属性;(2)确定主码及各实体之间的关系;(3)用E-R图表示各实体间的关系2.如何将一个概念模型转换成关系模型?答:根据概念模型中的E-R图确定关系,即一张表,然后确定出各元组和属性,并完成完整性约束,则从概念模型转化为关系模型。
八、课程设计总结本课程设计结合数据库和C#完成了图书馆管理系统的设计,基本功能操作都实现了,在设计和编程过程中也遇到了许多问题,具体总结如下所示:1.系统设计难的不是界面的设计而是正确建立数据库的链接同时在C#中实现数据库的相关操作。
2.本系统运行时出现不足的地方也是有的,如个界面的框没有在一起,以至于实现每个操作都要打开相应的界面窗体,结果就出现好多界面都没关掉,在验收时老师已经帮助给出建议,让我们以后设计时注意,再者是程序中有的表示确定的一些按钮忘记设置提示了,如添加图书信息有个“添加”按钮,点这个按钮后没有提示,其实已经添加成功了,这需要改进加进去。
3.本程序在进行数据库链接时是把链接封装在一起的,不至于每次访问数据库都建立链接,这样可以使程序更加简单。
4.通过本系统的成功设计可以熟练掌握相关DBMS里的对于数据库的相关操作及相关操作的语句实现,在以后运用中方便了很多。
5.在做一个系统设计时,即使它很复杂,但是遇到困难不要灰心,要有耐心,虚心向老师及同学请教,任何程序问题只要我们认真对待都是可以解决的。
附录连接数据库代码:SqlConnectionStringBuilder connectStringBuilder = new SqlConnectionStringBuilder(); connectStringBuilder.DataSource = @"CHINA-76384DCD7";connectStringBuilder.InitialCatalog = "BookMangeMessageSystem";connectStringBuilder.IntegratedSecurity = true;登陆代码:mandText = "SELECT password FROM mm where mname= '" + textBox1.Text + "'";con.Open();password = getID.ExecuteScalar().ToString();if(String.Equals(textBox2.Text.ToLower().Trim(),password.ToLower().Trim())){manager manager1 = new manager();manager1.Show();manager1.managerID = LoadingID;break;}else{DialogResult result =MessageBox.Show("登录失败,用户密码不正确", "系统消息", buttonType, iconType, 0, 0);break;}修改密码代码:mandText = "SELECT password FROM RM where RName= '" + ReaderID + "'";con.Open();password = getID.ExecuteScalar().ToString();if (String.Equals(textBox1.Text.ToLower().Trim(), password.ToLower().Trim())) {if(String.Equals(textBox2.Text.ToLower().Trim(),textBox3.Text.ToLower().Trim())){SqlCommand changePassword = new SqlCommand();changePassword.Connection = con;mandText = "update RM set password ='"+ textBox2.Text + "' where rname='" + ReaderID + "'";添加信息代码:connection.Open();SqlCommand command = new SqlCommand("insert into BM values('"+textBox1.Text+"','"+textBox2.Text+"','"+textBox3.Text+"')",connection);SqlDataAdapter adapter = new SqlDataAdapter(mandText, connection);DataSet dataset = new DataSet();adapter.Fill(dataset);frmStatusMessage.Close();借书登记代码:connection.Open();SqlCommand command1 = new SqlCommand("insert into PA values('" + textBox1.Text + "','" + textBox2.Text + "')", connection);SqlDataAdapter adapter1 = new SqlDataAdapter(mandText, connection);DataSet dataset = new DataSet();adapter1.Fill(dataset);SqlCommand command2 = new SqlCommand("update BM set outtime='"+ textBox3.Text + "' where BNO='"+ textBox2.Text + "'", connection);SqlDataAdapter adapter2 = new SqlDataAdapter(mandText, connection); adapter2.Fill(dataset);frmStatusMessage.Close()借书记录查询代码:connection.Open();SqlCommand command;if (comboBox1.Text.Trim() == "按恪读á者?序ò号?查é询ˉ"){command = new SqlCommand("SELECT * FROM PA WHERE RNO='" + textBox1.Text + "'", connection);}else if (comboBox1.Text == "按恪图?书酣序ò号?查é询ˉ"){command = new SqlCommand("SELECT * FROM PA WHERE BNO='" + textBox1.Text + "'", connection);}读者信息查询代码:connection.Open();SqlCommand command;if (comboBox1.Text.Trim() == "按恪序ò号?查é询ˉ"){command = new SqlCommand("SELECT * FROM RM WHERE RNO='" + textBox1.Text + "'", connection);}else if (comboBox1.Text == "按恪人?名?查é询ˉ"){command = new SqlCommand("SELECT * FROM RM WHERE RNAME='" + textBox1.Text + "'", connection); }还书登记代码:connection.Open();SqlCommand command1 = new SqlCommand("delete from PA WHERE BNO='" + textBox2.Text + "'", connection);SqlCommand command2 = new SqlCommand("update bm set outtime='00000000' where bno='"+textBox2.Text+"'",connection);SqlDataAdapter adapter1 = new SqlDataAdapter(mandText, connection);SqlDataAdapter adapter2 = new SqlDataAdapter(mandText, connection);DataSet dataset = new DataSet();adapter1.Fill(dataset);adapter2.Fill(dataset);frmStatusMessage.Close();this.Close();。