图书管理系统数据库作业access_第1页
图书管理系统数据库作业access_第2页
图书管理系统数据库作业access_第3页
图书管理系统数据库作业access_第4页
图书管理系统数据库作业access_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数据库技术课程实践设计报告数据库技术课程实践设计报告设计题目图书管理系统设计者学号 110900349姓名卓XX设计日期2011.07.08目 录一、设计简介、设计环境21.1 简介21.2 操作系统21.3 软件版本2二、 设计功能需求分析2三、 数据库概念设计33.1、E-R图33.2、关系模型结构4四、数据库逻辑设计44.1、用表格逐个表示各数据项描述:44.2、分析函数依赖关系5五、数据库系统开发65.1、设计过程65.1.1 数据库建立65.1.2 数据定义75.1.3 用SQL进行查询。115.1.4 用SQL进行数据更新和数据控制125.1.5 各表的属性截图125.2、结果简介

2、、实现功能、运行说明14六、 总结、分析17七、 参考文献17八、附录18一、设计简介、设计环境1.1 简介 此图书管理系统主要是对图书馆种类繁多的图书进行管理,并合理管理好用户的借还信息,其开发主要是对后台数据库的建立和维护,力争达到了数据库的数据完整性和数据安全性的要求。开发历时三天,采用access进行此数据库系统的开发。 本图书管理系统的后台数据库开发主要包括图书信息、读者信息、借阅信息、管理员信息等。其实整体的功能主要分为两个面向,即面向读者和面向管理员。读者方面可以进行图书信息的查询、个人信息查询修改等,而管理员方面可以对图书进行增、删、查、改以及对读者借阅图书的管理确认,同时也可

3、以修改自己的密码,此外管理员中的超级管理员可以对普通管理员进行增、删、改等管理。1.2 操作系统 Window XP1.3 软件版本 Access 2003 2、 设计功能需求分析 人工管理图书时代的手续繁索、效率低下给具有强烈时间观念的管理人员带来了诸多不便,图书馆缺少一套完善的图书管理软件,为了对图书的管理方便,因此必须开发图书管理系统。 图书管理系统是一种基于集中统一规划的数据库数据管理新模式。立足于当前实际,着眼于未来发展,建成符合标准化协议、通用性较强、实用的系统,以提高图书信息的现代化管理水平,实现信息资源的共享。在对图书、读者的管理,其实是对图书、读者数据的管理,本系统的建成无疑

4、会为管理者对图书管理系统提供极大的帮助。使用该系统之后,图书馆管理人员可以管理读者的信息及行为、还有进行图书的增、删、改、查等;还可以通过借阅记录表查询某位读者、某本图书的借阅情况,对当前借阅情况给出一些统计,给出统计表格,形象具体,使管理员以全面掌握图书的流通情况。 本系统的目的是提高图书管理工作的效率,减少相关人员的工作量,使的图书管理工作真正做到科学、合理的规划,系统、高效的实施。 基于以上需求,本系统应实现的功能如下: (1) 读者方面:l 查询图书:读者可以根据关键字进行简单的查询,也可以进行一些高级查询。 l 修改信息:读者可以简单的修改自己的一些信息。(2) 管理员方面:l 读者

5、管理:可以对读者进行增、删、改、查等操作。l 图书管理:主要是进行图书的增、删、改、查。l 借阅管理:是管理员使用最频繁的功能,对读者借书、还书得管理。l 其他功能:管理员中有超级管理员和普通管理员,超级管理员可以对其他管理员进行增、删、查、改,而普通管理员只有修改自己密码的权力。3、 数据库概念设计3.1、E-R图l 各实体E-R图Reader Reader: PasswordAddressLimitTelReaderNameReaderID Adimin Adimin: PowerAddressPasswordLimitTelAdiminNameAdiminID Book Book: Au

6、thorIsBorrowPublisherBookIDTitleBorrowBorrow: ReturnDateBorrowDateBookIDReaderIDl 系统整体的E-R图 管理员管理读者 m n借阅 1 1 w管理 q 管理 p r图书 说明:一个管理员可管理多个读者,一个读者可有多个管理员管理;一个读者可以节约多本书,一本书只能借给一个读者;一个管理员可以管理多本书籍,一本书籍可有多个管理员管理;管理员包括超级管理员(只有一个),一个超级管理员可管理多个普通管理员,一个普通管理员只能由一个超级管理员管理。 3.2、关系模型结构将E-R图转换为关系模型结构、标出各模型的候选码:Re

7、ader(ReaderID,ReaderName,Tel,Limit,Password,Address);Book(Title,Author,Publisher,BookID,IsBorrow);Adimin(AdiminID,AdiminName,Address,Tel,Limit,Password,Power);Borrow(ReadID,BookID,ReturnDate,BorrowDate); 说明:标有下划线的为主码。四、数据库逻辑设计4.1、用表格逐个表示各数据项描述: 表1:Reader表字段名意义类型长度小数位是否允许为空约束ReadID读者号文本20-否主键ReaderNa

8、me读者名字文本20-是依赖主键Tel电话文本20-是依赖主键Limit可借阅数数字4-否依赖主键Password密码文本6-是依赖主键Address地址文本50-是依赖主键 表2:Book表字段名意义类型长度小数位是否允许为空约束BookID书号文本20-否主键Title书名文本50-是依赖主键Author作者文本25-是依赖主键Publisher出版社文本50-是依赖主键IsBorrow是否借出文本2-否依赖主键 表3:Borrow表字段名意义类型长度小数位是否允许为空约束ReaderID读者号文本20-否主键1BorrowDate借阅日期日期/时间-否依赖主键 ReturnDate归还日

9、期日期/时间-是依赖主键BookID 书号文本20-否主键2表4:Adimin表字段名意义类型长度小数位是否允许为空约束AdiminID管理员号文本20-否主键AdiminName管理员名文本25-是依赖于主键Tel电话文本20-是依赖主键Limit可借阅数数字4-是依赖主键Password密码文本6-是依赖主键Address地址文本50-是依赖主键Power权限文本20-否依赖主键(注意:“-”表示不存在的属性。)4.2、分析函数依赖关系分析全部关系模式的函数依赖关系,写出每个关系模式的函数依赖集,指出各表格满足哪个范式?Reader: F =ReaderID ->ReaderName

10、,ReaderName->Tel, ReaderID->Limit,ReaderName->Address,ReaderID->Password; 存在着非主属性Tel或Address对主属性ReaderID的传递函数依赖, 所以属于2CNF范式Book: F=BookID->Title,Title->Author,Title->Publisher, BookID->IsBorrow; 存在着非主属性Author或Publisher对主属性BookID的传递函数依赖, 所以属于2CNF范式Borrow: F=(ReaderID,BookID)-&

11、gt;BorrowDate, (ReaderID,BookID)->ReturnDate; 每一个决定因素都包含码,即不存在主属性对不包含它的候选码的部分 或传 递函数依赖,故属于BCNF范式Adimin: F = AdiminID->AdiminName,AdiminName->Tel,AdiminID->Limit, AdiminID->Password,AdiminName->Address,AdiminID->Power; 存在着非主属性Tel或Address对主属性AdiminID的传递函数依赖, 所以属于2CNF范式五、数据库系统开发5.1

12、、设计过程5.1.1 数据库建立在数据库建立过程中,问题不大,就是安装access时,出点小问题,之后才知道是安装了精简版的,又没把原来装的access删除干净,找出问题后立刻对症下药,得以解决,下面是建库的截图:简要步骤:点击右边空数据库,在弹出的对话框中命名数据库名,完成数据库的创建。SQL 语句:create database library; 5.1.2 数据定义(1)Reader、Book、Borrow、Admin四个表格的建立,属性的确定。Reader:SQL 语句:create table Reader ( ReaderID char(20) primary key, Reade

13、rName char(20) not null, Tel char(20), Limit int, Password char(6), Address char(50) );Book:SQL语句:create table Book (BookID char(20) primary key,Title char(50) ,Author char(20),Publisher char(50);IsBorrow char(2) );Borrow:SQL语句:Create table Borrow (ReaderID char(20),BookID char(20),BorrowDate Date,R

14、eturnDate DatePrimary key (ReaderID,BookID);Adimin:SQL语句:Create table Adimin (AdiminID char(20) primary key,AdiminName char(25) , Tel char(20), Limit int, Password char(6), Address char(50) , Power char(20) ); 说明:这四个表的创建过程中,主要遇到的问题要注意主键的定义说明,以及数据类型大小的设置,否则数据无法插入。(2) 用SQL语句实现创建一个视图SQL语句:create VIEW r

15、b_view as select ReaderName,BookIDfrom Reader,Borrowwhere Reader.ReaderID = Borrow.ReaderID;结果截图:说明:视图的定义,花了很久的时间还是没弄懂,我用的是access2003,视图定义一直报错,最后我将SQL放到连接查询窗口,却能成功,这点还是百思不得其解。(3) 修改一个表格,修改某个属性的约束条件 SQL语句:Alter table Book Alter column Publisher char(20);简单步骤:首先是查询的建立,在打开查询窗口后应该切换成SQL视图,再编写相关的语句进行查询的建

16、立。5.1.3 用SQL进行查询。l 连接查询查询借阅了书籍的读者号和读者名字:SELECT Borrow.ReaderID, Reader.ReaderNameFROM Borrow INNER JOIN Reader ON Borrow.ReaderID=Reader.ReaderID;结果截图:注:重复的行我们其实可以用DISTINCT关键进行去除,及消除冗余性。l 嵌套查询查询借阅了书籍的读者的姓名:Select ReaderNameFrom Reader Where ReaderID = ( Select ReaderID From Borrow Where BookID = 

17、9;book1' )结果截图:l 集合查询查询可借阅数为5本的读者和借阅了book1号图书的读者的并集Select ReaderID From ReaderWhere Limit = 5;UNION Select ReaderIDFrom BorrowWhere BookID = 'book1' l 集函数查询 查询所有读者的平均可借书数: Select AVG(Limit) From Reader 5.1.4 用SQL进行数据更新和数据控制Ø 插入数据Insert into Book values('微电技术','我',

18、9;农业出版社','book5','否');Ø 数据更改Update Book set Title = '电子设计2' where Title = '电子设计'Ø 数据库授权和权限回收 SQL语句:授权: GRANT UPDATE ON TABLE BORROW TO U1回收权限:REVOKE UPDATE ON TABLE BORROWFROM U15.1.5 各表的属性截图 5.2、结果简介、实现功能、运行说明² 能过对图书信息、读者信息、管理员信息及借阅信息进行汇总。 说明:以表格的方

19、式进行数据的汇总,高度的结构化,清晰简单明了,大大方便了管理和查询。² 实现对个人总体借阅信息的总体查询比如我想查询读者号为110900302的结书情况:在查询编辑器输入SQL:SELECT *FROM BorrowWHERE ReaderID= '110900302'结果截图:说明:如果我们要获得个人的借阅信息的查询,可以编写一些简单的SQL语句,就能够很方便很快的实现我们的要求,并且能够自动的过滤掉一些冗余的即和所查询的要求不相同的信息,得到我们所需信息,体现出了数据库冗余性低的特点,同时也体现出了SQL语言的高度非过程化,直接得到结果而不必考虑具体复杂的过程。&

20、#178; 实现对个人借阅图书数、读者数等的统计。在那上面的例子,我想简单的查询110900302读者的借书数(历史的和现在的):在查询编辑器输入SQL:SELECT ReaderID, Count(*)FROM BorrowWHERE ReaderID= '110900302'GROUP BY ReaderID;结果截图:说明:为了实现对个人借阅图书数的统计、读者总数的统计、在一定时间内进行书籍借阅的读者数的统计等,我们可以利用集函数以及连接查询的手段进行操作,给出简单的SQL语句,实现我们所想要的结果,功能清晰明了,提高了我们进行图书管理的效率。² 实现方便的更新数据库比如读者号为110900301的读者的电话本来我想把它更新为0,在查询编辑器输入SQL:update Readerset Tel = '0'where ReaderID = '110900301'结果截图:说明:图书管理离不开数据库中图书的更新,即增、删、改,利用SQL语言可以方便的进行数据的添加和删除等,而且简单明了,同时在效率上也得到了巨大的提高。6、 总结、分析 这次的实

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论