当前位置:文档之家› 图书管理系统数据库设计-MYSQL实现

图书管理系统数据库设计-MYSQL实现

图书管理系统数据库设计、系统概述1、系统简介图书管理是每个图书馆都需要进行的工作。

一个设计良好的图书管理系统数据库能够给图书管理带来很大的便利。

2、需求分析图书管理系统的需求定义为:1. 学生可以直接通过借阅终端来查阅书籍信息,同时也可以查阅自己的借阅信息。

2. 当学生需要借阅书籍时,通过账号密码登陆借阅系统,借阅系统处理学生的借阅,同时修改图书馆保存的图书信息,修改被借阅的书籍是否还有剩余,同时更新学生个人的借阅信息。

3. 学生借阅图书之前需要将自己的个人信息注册,登陆时对照学生信息。

4. 学生直接归还图书,根据图书编码修改借阅信息5. 管理员登陆管理系统后,可以修改图书信息,增加或者删除图书信息6. 管理员可以注销学生信息。

通过需求定义,画出图书管理系统的数据流图:数据流图学生信息1、系统功能设计画出系统功能模块图并用文字对各功能模块进行详细介绍。

系统功能模块图:三、数据库设计方案图表1、系统E-R模型精细化的局部E-R 图: 学生借阅-归还E-R 图:学生ID 年级诚信级学生专业学生ID归还时间H图书归还表归还图书借阅表图书ID 处罚表图书ID学生ID图书作者图书ID书名数量分类出版社年龄C 性别处罚金额超期 登记日期2、设计表给出设计的表名、结构以及表上设计的完整性约束。

3、设计索引给出在各表上建立的索引以及使用的语句。

student :1•为stu」d创建索引,升序排序sql:create in dex in dex_id on stude nt(stu_id asc);2•为stu_name仓U建索弓I,并且降序排序sql:alter table stude nt add in dex in dex_ name(stu_ name, desc);插入索引操作和结果如下所示:mysql> create in dex in dex_id on stude nt(stu_id asc);Query OK, 0 rows affectedRecords: 0 Duplicates: 0 Warnin gs: 0mysql> alter table stude nt add in dex in dex_ name(stu_ name desc);Query OK, 0 rows affectedRecords: 0 Duplicates: 0 Warnin gs: 0book:1•为book_id创建索引,升序排列sql:create in dex in dex_bid on book(book_id);2•为book_record创建索引,以便方便查询图书的登记日期信息,升序: sql:create in dex in dex_brecord on book(book_record);插入索引的操作和结果如下所示:mysql> create in dex in dex_bid on book(book_id);Query OK, 0 rows affectedRecords: 0 Duplicates: 0 Warnin gs: 0mysql> create in dex in dex_brecord on book(book_record);Query OK, 0 rows affectedRecords: 0 Duplicates: 0 Warnin gs: 0borrow:1.为stu」d和book_id创建多列索引:sql:create in dex in dex_sid_bid on borrow(stu_id asc, book_id asc); 插入索引的操作和结果如下所示:mysql> create in dex in dex_sid_bid on borrow(stu_id asc, book_id asc); Query OK, 0 rows affected Records: 0 Duplicates: 0 Warnin gs: 0return_table:1.为stu」d和book_id创建多列索引:sql:create in dex in dex_sid_bid on retur n_table(stu_id asc, book_id asc); 插入索引的操作和结果如下所示:mysql> create in dex in dex_sid_bid_r on retur n_table(stu_id asc, book_id asc); Query OK, 0 rows affectedticket:1.为stu」d和book_id创建多列索引:sql:create in dex in dex_sid_bid on ticket(stu_id asc, book_id asc);插入索引的操作和结果如下所示:mysql> create in dex in dex_sid_bid on ticket(stu_id asc, book_id asc);Query OK, 0 rows affectedRecords: 0 Duplicates: 0 Warnin gs: 0man ager:1.为manager_id 创建索引:sql:create in dex in dex_mid on man ager(ma nager_id);插入索引的操作和结果如下所示:mysql> create in dex in dex_mid on man ager(ma nager_id);Query OK, 0 rows affectedRecords: 0 Duplicates: 0 Warnin gs: 0呂塞W方去Jindexmid 1 man^cer id Ncrmal BTREE4、设计视图给出在各表上建立的视图以及使用的语句。

1.在表student上创建计算机专业(cs)学生的视图stu_cs : sql: create view stu_cs asselect *from stude ntwhere pro = ‘ cs ';操作和结果:mysql> create view stu_cs asselect *from stude ntwhere stu_pro = 'cs';Query OK, 0 rows affectedwtu Id name stui &ex stu age pro stu grade5-tu integrity ?tu a m20匚£201412stu b m21c2014135tU_C f20c s201414 stu_d f19c s201415m20C5201412.在表student, borrow 和book上创建借书者的全面信息视图stu_borrow :sql: create view stu_borrow asselect stude nt.stu_id, book.book_id, stude nt.stu_ name, book.book_ name, borrow_date adddate(borrow_date,30) expect_retur n_datefrom stude nt, book, borrowwhere stude nt.stu」d = borrow.stu_id and book.book_id = borrow.book_id;操作和结果:mysql> create view stu_borrow asselect stude nt.stu_id, book.book_id, stude nt.stu_ name, book.book_ name, borrow_date adddate(borrow_date,30) expect_retur n_datefrom stude nt, book, borrowwhere stude nt.stu」d = borrow.stu_id and book.book_id = borrow.book_id;Query OK, 0 rows affecteds-tu_id bookjd&tu_name book_name borrow_date expect_retu rn_d ate ►1computer netwo 2016-12-28 17:07 2017-01-27 17r07:183•创建类别1的所有图书的视图cs_book :sql: create view cs_book asselect *from bookwhere book.book_sort in(select book_sort.sort .n amefrom book_sortwhere sort_id = 1);操作和结果显示:mysql> create view cs_book asselect *from bookwhere book.book_sort in(select book_sort.sort_ namefrom book_sortwhere sort_id = 1);Query OK, 0 rows affectedbook, name book.author bctok.rujm book.scrt bock_recofd1c omputer nenvoric A-iithar p<jb^ 1 c?诺:們572Dp色『靳i白片^utborh pub b 1 Ct201<U 12-28-infcmiiation security1author 匚1231 15:53:374s oftwa-ffl cnginMrirg autbcir_d pub^dl 1 “2016 12 28 15(5^105C++ plus lea^nirg autlhore pub Q 1 C52016 12 2S 15t5H56c prog~flmrnng autbor_e pub_a 1 CS20lfi-l2-2a 1&3&567詢autbor.cl ptjbj; 1 a2010-12 28 17:00 474.创建个人所有借书归还纪录视图stu_borrow_return:sql:create view stu_borrow_return asselect stude nt.stu_id, stude nt.stu_ name, book.book_id, book.book_ name,retur n_table.borrow_date,retur n_table.retur n_datefrom stude nt, book, retur n_tablewhere stude nt.stu_id = retur n_table.stu_id and book.book_id = retur n_table.book_id;stujd stui^name book^id booking me borrow^date returri_clate>]I stu_a 1 computer network2016-10-16 17r07:182016^12-29 1^5550end5、设计触发器给出在各表上建立的触发器以及使用的语句。

相关主题