页眉页脚目录1前言.............................................................................................12需求分析......................................................................................12.1课程设计目的.....................................................................12.2课程设计任务.....................................................................12.3设计环境............................................................................22.4开发语言............................................................................23分析和设计..................................................................................23.1系统E-R模型.....................................................................53.2表空间及表的设计..............................................................63.3视图设计..........................................................................153.4存储过程、函数、包的设计.............................................163.5触发器设计.......................................................................233.6角色、用户、权限设计....................................................253.7备份方案设计...................................................................264课程设计总结............................................................................27参考文献.......................................................................................28致谢...........................................................................................2911前言一个简单的图书管理系统包括图书馆内书籍的信息、学校在校师生的信息以及师生的借阅信息。此系统功能面向图书馆管理员,可以完成书籍和读者的增加、删除和修改,制定借阅规则,以及对读者借阅、续借、归还、预约的确认。2需求分析2.1课程设计目的通过专业课程设计Ⅱ,即大型数据库系统课程设计,有助于培养学生综合运用数据库相关知识解决实际问题的能力。本设计要求对实际问题进行需求分析,提炼实际问题中的数据,建立关系模型,并在大型数据库中得以实现。同时要求对数据库的运营、管理及使用上进行必要的规划和实现。2.2课程设计任务(1)图书信息:包括图书编号、图书名称、所属类别等;(2)读者信息:包括读者编码、姓名、性别、专业等;(3)借还书信息:包括图书当前状态、被借还次数、借阅时间等。基本要求:(1)根据需求,补充必要的数据库实体,建立ER模型,通过ER图表示。(2)在Oracle中创建该系统的数据库,并在数据库中实现各表,写入一定的数据。(3)从实际查询应用出发,为一些主要的应用模块设计至少3个参数化视图。(4)从数据检验的角度出发,为相关的表建立至少1个触发器。(5)从数据更新或修改的角度出发,设计至少1个存储过程。(6)从安全的角度出发,规划系统的角色、用户、权限,并通过相关的SQL实现。(7)预计每个表的大致容量和增长速度,指定备份的方案,写出相关的备份命令。22.3设计环境(1)WINDOWS2000/2003/XP系统(2)Oracle数据库管理系统2.4开发语言PL/SQL语言3分析和设计(1)功能简介借阅功能:图书出借时考虑三个问题:1读者是否因为超期、罚款等情况被关闭了借阅权限;2该书是否不在库中;3读者是否已经借满其限额。如果不存在以上情况,则可以出借。预约功能:读者想借的书如果不在库中(已经被出借),读者可以预约该图书,当该图书被归还时系统给读者发送邮件,提醒他来借阅,此时其他读者也可以借阅该书。续借功能:读者还书的时候可以续借该图书,续借的过程包括先执行还书操作,再执行借阅操作。(2)发送催还邮件管理员可以发送邮件提醒读者到期还书。1读者管理功能:对读者信息进行查看、添加、修改、删除。将读者分为不同类别,赋以不同权限。2系统管理功能:对管理员的登录账号、密码进行添加、修改、删除。3规则管理功能:对图书借阅规则进行查看、添加、修改、删除。3(3)需求描述图书馆管理系统管理员登录系统管理图书管理读者管理借阅管理规则管理添加管理员修改密码制定规则图书类别管理图书信息管理读者类别管理读者信息管理借书还书预约续借催还图书馆管理系统管理员登录系统管理图书管理读者管理借阅管理规则管理添加管理员修改密码制定规则图书类别管理图书信息管理读者类别管理读者信息管理借书还书预约续借催还4针对一般图书管理信息系统的需求,通过对图书管理工作过程的内容和数据流程分析,设计如下面所示的数据项:1)读者信息属性:读者编号,读者姓名,联系电话,邮箱地址,所在系,权限状况,读者类型,备注主键:读者编号2)书籍信息属性:图书编号,ISBN,书名,作者,出版社,出版日期,简介,封面图片,价格,学科类型,藏书类型主键:图书编号3)管理员信息属性:编号,账号,密码主键:编号4)读者类型属性:编号,类型,说明主键:编号5)藏书类型属性:编号,类型,说明主键:编号6)学科类型属性:编号,类型,说明主键:编号7)借阅信息属性:图书编号,读者编号,借阅日期,应还日期主键:图书编号,读者编号8)预约信息属性:图书编号,读者编号,预约日期主键:图书编号,读者编号9)借阅规则属性:图书类型,读者类型,期限,册数,续借次数,逾期罚款主键:图书类型,读者类型5本系统共设计9个表、6个序列、4个存储过程、3个函数、4个触发器①其中存储过程有:1)检查借阅是否超期的存储过程;2)判断读者可否进行借阅的存储过程;3)计算超期罚款的存储过程;4)发送邮件的存储过程;②其中函数有:1)计算图书应归还日期的函数;2)计算读者可借阅图书册书的函数;3)计算读者已经借阅某类型图书的册数的函数;③其中触发器有:1)删除藏书类型的触发器;2)删除读者类型的触发器;3)删除图书的触发器;4)删除读者的触发器。④本系统的功能可以在以下几个方面进行拓展和完善练习添加和使用以下命名块:1)修改读者类型的触发器;2)修改藏书类型的触发器;3)将图片存储为Blog类型的存储过程;4)将超期未还的读者借阅权限关闭的存储过程;5)计算读者应交欠费的存储函数。练习添加以下系统功能:1)管理员添加、修改、删除系统公告的功能;2)管理员权限开通/关闭的功能;3)上传图片的功能(本系统中只实现了保存图片地址);4)批量删除图书或读者的功能。63.1系统E-R模型数据库需要表述的信息有以下几种:(1)读者信息(2)书籍信息(3)管理员信息(4)藏书分类信息(5)图书学科分类信息(6)读者分类信息(7)读者与书籍之间的关系(借阅关系E-R图)(8)读者类型与书籍类型之间的关系(规则关系E-R图)3.2表空间及表的设计表1管理员用户表(admin)列名类型长度约束备注Idnumber11主键管理员编号usernamevarchar210非空管理员帐号passwordvarchar211非空帐号密码表2读者类型(reader_type)列名类型长度约束备注typeidnumber11主键类型编号typenamevarchar220非空类型名称7demovarchar2100说明表3读者表(reader)列名类型长度约束备注readeridnumber11主键读者编号namevarchar210非空读者姓名telephonevarchar215联系电话emailvarchar230邮箱地址deptvarchar220所在院系rightnumber1取值为0或1借阅权限readertypenumber11外键读者类型demovarchar21000说明表4藏书类型表(book_type)列名类型长度约束备注typeidnumber11主键类型编号typenamevarchar220非空类型名称demovarchar2100说明表5学科类型表(book_class)列名类型长度约束备注classidnumber11主键类型编号classnamevarchar220非空类型名称demovarchar2100说明表6图书表(book)列名类型长度约束备注bookidnumber11主键书籍编号booknamevarchar220非空书籍名称author1varchar220非空书籍作者author2varchar220书籍作者author3varchar220书籍作者pubdatedate出版日期publishvarchar230出版社photovarchar2100图片地址abstractvarchar24000内容简介Pricenumber7,2非空价格ISBNvarchar217非空书籍ISBN码bookclassnumber11外键学科类型booktypenumber11外键藏书类型表7借阅表(borrow)列名类型长度约束备注readeridnumber11联合主键,外键读者编号bookidnumber11联合主键,外键图书编号8borrowdatedate出借日期duedate应还日期表8预约表(preconcert)列名类型长度约束备注readeridnumber11联合主键,外键读者编号bookidnumber11联合主键,外键图书编号predatedate预约日期表9规则表(rule)列名类型长度约束备注booktypenumber11联合主键,外键藏书类型号readertypenumber11联合主键,外键读者类型号daysnumber5非空期限(天)numnumber5非空册数(本)renewnumber5非空续借次数(次)overtimenumber5,2非空逾期处罚(元/册/天)(1)创建数据表语句createtableadmin(idnumber(11)primarykey,usernamevarchar2(10)notnull,passwordvarchar2(11)notnull);在SQLDeveloper中创建数据表截图3-1所示:图3-1admin数据表createtablereader_type(typeidnumber(11)primarykey,typenamevarchar2(20)notnull,demovarchar2(100));在SQLDeveloper中创建数据表截图3-2所示:9图3-