1、图书管理系统数据库设计MYSQL实现图书管理系统数据库设计MYSQL实现图书管理系统数据库设计一、系统概述1、系统简介图书管理是每个图书馆都需要进行的工作。一个设计良好的图书管理系统数据库能够给图书管理带来很大的便利。2、需求分析图书管理系统的需求定义为:1.学生能够直接经过借阅终端来查阅书籍信息,同时也能够查阅自己的借阅信息。2.当学生需要借阅书籍时,经过账号密码登陆借阅系统,借阅系统处理学生的借阅,同时修改图书馆保存的图书信息,修改被借阅的书籍是否还有剩余,同时更新学生个人的借阅信息。3.学生借阅图书之前需要将自己的个人信息注册,登陆时对照学生信息。4.学生直接归还图书,根据图书编码修改借
2、阅信息5.管理员登陆管理系统后,能够修改图书信息,增加或者删除图书信息6.管理员能够注销学生信息。经过需求定义,画出图书管理系统的数据流图:数据流图二、系统功能设计 画出系统功能模块图并用文字对各功能模块进行详细介绍。系统功能模块图:三、数据库设计方案图表 1、系统E-R模型总体E-R图:精细化的局部E-R图:学生借阅-归还E-R图:管理员E-R图: 2、设计表 给出设计的表名、结构以及表上设计的完整性约束。student:列名数据类型是否为空/性质说明stu_idintnot null /PK标明学生唯一学号stu_namevarcharnot null学生姓名stu_sexvarcharn
3、ot null学生性别stu_ageintnot null学生年龄stu_provarcharnot null学生专业stu_gradevarcharnot null学生年级stu_integrityintnot null/default=1学生诚信级book:列名数据类型是否为空/性质说明book_idintnot null / PK唯一书籍序号book_namevarcharnot null书籍名称book_authorvarcharnot null书籍作者book_pubvarcharnot null书籍出版社book_numint not null 书籍是否在架上book_sortva
4、rcharnot null书籍分类book_recorddatatimenull书籍登记日期book_sort:列名数据类型是否为空/性质说明sort_idvarcharnot null / PK类型编号sort_namevarcharnot null类型名称borrow:存储学生的借书信息列名数据类型是否为空/性质说明student_idvarcharnot null / PK学生编号book_idvarchar not null / PK书籍编号borrow_datedatatimenull借书时间expect_return_datedatetimenull预期归还时间return_tab
5、le:存储学生的归还信息列名数据类型是否为空/性质说明student_idvarcharnot null / PK学生编号book_idvarchar not null / PK书籍编号borrow_datedatetimenull借书时间return_datedatatimenull实际还书时间ticket:存储学生的罚单信息列名数据类型是否为空/性质说明student_idvarcharnot null / PK学生编号book_idvarchar not null / PK书籍编号over_dateintnull超期天数ticket_feefloatnull处罚金额manager:列名数
6、据类型是否为空/性质说明manager_idvarcharnot null / PK管理员编号manager_namevarchar not null 管理员姓名manager_agevarcharnot null管理员年龄manager_phonevarcharnot null管理员电话 3、设计索引给出在各表上建立的索引以及使用的语句。student:1.为stu_id创立索引,升序排序sql:create index index_id on student(stu_id asc);2.为stu_name创立索引,而且降序排序sql:alter table student add inde
7、x index_name(stu_name, desc);插入索引操作和结果如下所示:mysql create index index_id on student(stu_id asc);Query OK, 0 rows affectedRecords: 0 Duplicates: 0 Warnings: 0mysql alter table student add index index_name(stu_name desc);Query OK, 0 rows affectedRecords: 0 Duplicates: 0 Warnings: 0mysqlbook:1.为book_id创立
8、索引,升序排列sql:create index index_bid on book(book_id);2.为book_record创立索引,以便方便查询图书的登记日期信息,升序:sql:create index index_brecord on book(book_record);插入索引的操作和结果如下所示:mysql create index index_bid on book(book_id);Query OK, 0 rows affectedRecords: 0 Duplicates: 0 Warnings: 0mysql create index index_brecord on b
9、ook(book_record);Query OK, 0 rows affectedRecords: 0 Duplicates: 0 Warnings: 0borrow:1.为stu_id和book_id创立多列索引:sql:create index index_sid_bid on borrow(stu_id asc, book_id asc);插入索引的操作和结果如下所示:mysql create index index_sid_bid on borrow(stu_id asc, book_id asc);Query OK, 0 rows affectedRecords: 0 Duplic
10、ates: 0 Warnings: 0return_table:1.为stu_id和book_id创立多列索引:sql:create index index_sid_bid on return_table(stu_id asc, book_id asc);插入索引的操作和结果如下所示:mysql create index index_sid_bid_r on return_table(stu_id asc, book_id asc);Query OK, 0 rows affectedRecords: 0 Duplicates: 0 Warnings: 0ticket:1. 为stu_id和bo
11、ok_id创立多列索引:sql:create index index_sid_bid on ticket(stu_id asc, book_id asc);插入索引的操作和结果如下所示:mysql create index index_sid_bid on ticket(stu_id asc, book_id asc);Query OK, 0 rows affectedRecords: 0 Duplicates: 0 Warnings: 0manager:1.为manager_id创立索引:sql:create index index_mid on manager(manager_id);插入
12、索引的操作和结果如下所示:mysql create index index_mid on manager(manager_id);Query OK, 0 rows affectedRecords: 0 Duplicates: 0 Warnings: 0 4、设计视图 给出在各表上建立的视图以及使用的语句。1.在表student上创立计算机专业(cs)学生的视图stu_cs:sql: create view stu_cs as select * from student where pro = cs;操作和结果:mysql create view stu_cs as select * from
13、student where stu_pro = cs;Query OK, 0 rows affected2. 在表student, borrow和book上创立借书者的全面信息视图stu_borrow:sql: create view stu_borrow as select student.stu_id, book.book_id, student.stu_name, book.book_name, borrow_date,adddate(borrow_date,30) expect_return_date from student, book, borrow where student.s
14、tu_id = borrow.stu_id and book.book_id = borrow.book_id;操作和结果:mysql create view stu_borrow as select student.stu_id, book.book_id, student.stu_name, book.book_name, borrow_date,adddate(borrow_date,30) expect_return_date from student, book, borrow where student.stu_id = borrow.stu_id and book.book_id = borrow.book_id;Query OK, 0 rows affected3.创立类别1的所有图书的视图cs_book:sql: create view cs_book as select * from book where book.book_sort in (select book
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1