您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据库 > 图书管理系统数据库设计-MYSQL实现
word格式文档专业整理图书管理系统数据库设计一、系统概述1、系统简介图书管理是每个图书馆都需要进行的工作。一个设计良好的图书管理系统数据库能够给图书管理带来很大的便利。2、需求分析图书管理系统的需求定义为:1.学生可以直接通过借阅终端来查阅书籍信息,同时也可以查阅自己的借阅信息。2.当学生需要借阅书籍时,通过账号密码登陆借阅系统,借阅系统处理学生的借阅,同时修改图书馆保存的图书信息,修改被借阅的书籍是否还有剩余,同时更新学生个人的借阅信息。3.学生借阅图书之前需要将自己的个人信息注册,登陆时对照学生信息。4.学生直接归还图书,根据图书编码修改借阅信息5.管理员登陆管理系统后,可以修改图书信息,增加或者删除图书信息6.管理员可以注销学生信息。通过需求定义,画出图书管理系统的数据流图:word格式文档专业整理数据流图学生查询图书信息登陆借阅学生信息借阅信息归还借阅信息学生注册学生信息学生学生管理员登陆管理员信息图书管理学生管理图书信息学生信息管理员word格式文档专业整理二、系统功能设计画出系统功能模块图并用文字对各功能模块进行详细介绍。系统功能模块图:图书管理系统借阅者模块管理员模块访问模块查询图书借阅图书归还图书查询图书修改图书信息增加/删除图书查询借阅信息注册个人信息查询借阅信息删除学生信息管理员登陆借阅者登陆三、数据库设计方案图表1、系统E-R模型总体E-R图:学生借阅图书管理员管理word格式文档专业整理精细化的局部E-R图:学生借阅-归还E-R图:学生学生ID年级年龄性别专业诚信级借阅图书图书ID书名出版社分类数量作者登记日期图书借阅表学生ID图书ID归还学生ID图书ID归还时间借阅时间图书归还表处罚表图书ID学生ID超期处罚金额管理员E-R图:管理员ID号姓名年龄所属单位联系电话管理管理学生图书属于图书类别类别编号类别名称word格式文档专业整理2、设计表给出设计的表名、结构以及表上设计的完整性约束。student:列名数据类型是否为空/性质说明stu_idintnotnull/PK标明学生唯一学号stu_namevarcharnotnull学生姓名stu_sexvarcharnotnull学生性别stu_ageintnotnull学生年龄stu_provarcharnotnull学生专业stu_gradevarcharnotnull学生年级stu_integrityintnotnull/default=1学生诚信级book:列名数据类型是否为空/性质说明book_idintnotnull/PK唯一书籍序号book_namevarcharnotnull书籍名称book_authorvarcharnotnull书籍作者book_pubvarcharnotnull书籍出版社book_numintnotnull书籍是否在架上book_sortvarcharnotnull书籍分类book_recorddatatimenull书籍登记日期book_sort:列名数据类型是否为空/性质说明sort_idvarcharnotnull/PK类型编号sort_namevarcharnotnull类型名称borrow:存储学生的借书信息列名数据类型是否为空/性质说明student_idvarcharnotnull/PK学生编号book_idvarcharnotnull/PK书籍编号borrow_datedatatimenull借书时间expect_return_datedatetimenull预期归还时间return_table:存储学生的归还信息列名数据类型是否为空/性质说明student_idvarcharnotnull/PK学生编号book_idvarcharnotnull/PK书籍编号borrow_datedatetimenull借书时间return_datedatatimenull实际还书时间ticket:存储学生的罚单信息列名数据类型是否为空/性质说明student_idvarcharnotnull/PK学生编号word格式文档专业整理book_idvarcharnotnull/PK书籍编号over_dateintnull超期天数ticket_feefloatnull处罚金额manager:列名数据类型是否为空/性质说明manager_idvarcharnotnull/PK管理员编号manager_namevarcharnotnull管理员姓名manager_agevarcharnotnull管理员年龄manager_phonevarcharnotnull管理员电话3、设计索引给出在各表上建立的索引以及使用的语句。student:1.为stu_id创建索引,升序排序sql:createindexindex_idonstudent(stu_idasc);2.为stu_name创建索引,并且降序排序sql:altertablestudentaddindexindex_name(stu_name,desc);插入索引操作和结果如下所示:mysqlcreateindexindex_idonstudent(stu_idasc);QueryOK,0rowsaffectedRecords:0Duplicates:0Warnings:0mysqlaltertablestudentaddindexindex_name(stu_namedesc);QueryOK,0rowsaffectedRecords:0Duplicates:0Warnings:0mysqlbook:1.为book_id创建索引,升序排列sql:createindexindex_bidonbook(book_id);2.为book_record创建索引,以便方便查询图书的登记日期信息,升序:sql:createindexindex_brecordonbook(book_record);插入索引的操作和结果如下所示:mysqlcreateindexindex_bidonbook(book_id);QueryOK,0rowsaffectedRecords:0Duplicates:0Warnings:0word格式文档专业整理mysqlcreateindexindex_brecordonbook(book_record);QueryOK,0rowsaffectedRecords:0Duplicates:0Warnings:0borrow:1.为stu_id和book_id创建多列索引:sql:createindexindex_sid_bidonborrow(stu_idasc,book_idasc);插入索引的操作和结果如下所示:mysqlcreateindexindex_sid_bidonborrow(stu_idasc,book_idasc);QueryOK,0rowsaffectedRecords:0Duplicates:0Warnings:0return_table:1.为stu_id和book_id创建多列索引:sql:createindexindex_sid_bidonreturn_table(stu_idasc,book_idasc);插入索引的操作和结果如下所示:mysqlcreateindexindex_sid_bid_ronreturn_table(stu_idasc,book_idasc);QueryOK,0rowsaffectedRecords:0Duplicates:0Warnings:0ticket:1.为stu_id和book_id创建多列索引:sql:createindexindex_sid_bidonticket(stu_idasc,book_idasc);插入索引的操作和结果如下所示:mysqlcreateindexindex_sid_bidonticket(stu_idasc,book_idasc);QueryOK,0rowsaffectedRecords:0Duplicates:0Warnings:0manager:word格式文档专业整理1.为manager_id创建索引:sql:createindexindex_midonmanager(manager_id);插入索引的操作和结果如下所示:mysqlcreateindexindex_midonmanager(manager_id);QueryOK,0rowsaffectedRecords:0Duplicates:0Warnings:04、设计视图给出在各表上建立的视图以及使用的语句。1.在表student上创建计算机专业(cs)学生的视图stu_cs:sql:createviewstu_csasselect*fromstudentwherepro=‘cs’;操作和结果:mysqlcreateviewstu_csasselect*fromstudentwherestu_pro='cs';QueryOK,0rowsaffected2.在表student,borrow和book上创建借书者的全面信息视图stu_borrow:sql:createviewstu_borrowasselectstudent.stu_id,book.book_id,student.stu_name,book.book_name,borrow_date,adddate(borrow_date,30)expect_return_datefromstudent,book,borrowwherestudent.stu_id=borrow.stu_idandbook.book_id=borrow.book_id;操作和结果:mysqlcreateviewstu_borrowasselectstudent.stu_id,book.book_id,student.stu_name,book.book_name,borrow_date,adddate(borrow_date,30)expect_return_datefromstudent,book,borrowwherestudent.stu_id=borrow.stu_idandbook.book_id=borrow.book_id;word格式文档专业整理QueryOK,0rowsaffected3.创建类别1的所有图书的视图cs_book:sql:createviewcs_bookasselect*frombookwherebook.book_sortin(selectbook_sort.sort.namefrombook_sortwheresort_id=1);操作和结果显示:mysqlcreateviewcs_bookasselect*frombookwherebook.book_sortin(selectbook_sort.sort_namefrombook_sortwheresort_id=1);QueryOK,0rowsaffected4.创建个人所有借书归还纪录视图stu_borrow_return:sql:createviewstu_borrow_returnasselectstudent.stu_id,student.stu_name,book.book_id,book.book_name,return_table.borrow_date,return_table.return_datefromstudent,book,return_tablewherestudent.stu_id=return_table.stu_idandbook.book_id=return_table.book_id;word格式文档专业整理5、设计触发器给出在各表上建立的触发器以及使用的语句。1.设计触发器borrow,当某学生借书成功后,图书表相应的图书不在架上,变为0:sql:createtriggerborrowafterinsert
本文标题:图书管理系统数据库设计-MYSQL实现
链接地址:https://www.777doc.com/doc-3677935 .html