数据库设计范例—图书管理系统 联系客服

发布时间 : 星期一 文章数据库设计范例—图书管理系统更新完毕开始阅读257ae5ae168884868662d63e

1) 由于基本表Reader,Book的主码ReaID,BookID经常在查询条件和连接操作的

连接条件中出现,且它们的值唯一,在两个属性上建立唯一性索引;

2) 由于基本表Reader的属性ReaDep,Book的属性BookPublish经常在查询条件中

出现在两个属性上建立聚簇索引;

3) 借阅信息基本表Borrow的一属性ReaID,BookID,经常在查询条件中出现,考虑

在其之上建立聚簇索引;

4) 罚款信息基本表Fine的一属性ReaID,BookID,经常在查询条件中出现,考虑在其

之上建立聚簇索引; 10.2.5.2系统功能模块

(一) 读者基本信息的查询和更新模块

将实现对读者基本信息的查询和更新(修改、添加、删除)操作,用于新生入学,毕业生离校,以及读者补办借阅证或更改信息的情况,具体的功能模块图如下:

管理查询或更新的命令查询查询?更新?更新查询读者信息表更新读者信息表N是否成功Y更新后的读者信息表查询的结果提示信息Y是否继续N结束

图10.17 读者信息的查询和更新模块

(二) 图书基本信息的查询和更新模块

将完成对图书基本信息的查询、更新(修改、添加、删除)操作,用于读者对图书信息的查询及管理员添加新书、删除淘汰的旧书,具体的功能模块图如下所示:

17

管理员发出更新图书的命令读者发出查询信息N权限是否有效Y查询图书信息表更新图书信息表N是否成功Y更新后的图书信息表查询的结果提示信息Y是否继续N结束

图10.18图书信息的查询和更新模块

10.2.6数据库实施阶段

10.2.6.1建立数据库、数据表、视图、索引 (一) 建立数据库

create database Book;

(二) 建立数据表

1) 读者类别信息表的建立: create table ReaderType(

LBID char(5) primary key, LBName char(20) not null, LBnum char(5) not null, LBbqx char(4) not null, LBqx char(3) not null,

)

2) 管理员基本信息表的建立: create table Maneger(

MID char(10) primary key, MName char(10) not null, MSex char(2),

Mpwd char(8) not null, MAuth char(40) not null, MTeleph char(15), MAddre char(30),

check(MSex ='男' or MSex ='女')

)

18

3) 图书馆室基本信息表的建立: create table Room(

RoomNo char(5) primary key, RoomMID char(10) not null, Roomnum char(5), RoomAddre char(20),

foreign key(RoomMID) references Maneger(MID),

)

4) 馆藏图书基本信息表的建立: create table Book(

BookID char(9) primary key, BookNo char(20) not null, BookName char(50) not null, BookWriter char(30) not null, BookPublish char(20) not null, BookPrice char(7), BookDate datetime, BookClass char(20), BookMain char(200), BookPrim char(30), BookCopy char(5),

BookState char(10) not null, BookRNo char(5) not null,

foreign key(BookRNo) references Room(RoomNo),

)

5) 读者基本信息表的建立: create table Reader(

ReaID char(9) primary key, ReaName char(10) not null, ReaSex char(2) not null, ReaNo char(9) not null, ReaLBID char(5) not null, ReaType char(20), ReaDep char(20), ReaGrade char(5), ReaPref char(20), ReaDate Datetime,

foreign key(ReaLBID) references ReaderType(LBID), check(ReaSex ='男' or ReaSex ='女')

)

19

6) 借阅基本信息表的建立: create table Borrow(

BookID char(9), ReaID char(9),

Outdate Datetime not null, YHdate Datetime not null, Indate Datetime, Fine char(5), CLState char(8),

MID char(10) not null, primary key(BookID,ReaID),

foreign key(MID) references Maneger(MID)

)

(三) 建立视图

(1)用于查询图书基本信息的视图定义如下:

create view Bookview (索书号, 书名, 作者, 出版社, 图书状态) as

select BookNo,BookName,BookWriter,BookPublish,BookState from Book

(2)用于读者基本信息查询的视图定义如下:

create view Readerview (读者姓名,类型,学院,专业,办证日期) as

select ReaName,ReaType,ReaDep,ReaPref,ReaDate from Reader

(3)用于显示当前借阅基本信息的视图定义如下:

create view Borrowview (读者编号,书名,作者,借阅日期,到期日期) as

select ReaID,BookName,BookWriter,Outdate,YHdate from Borrow,Book

where Borrow.BookID=Book.BookID and Borrow.Indate is null

(4)用于借阅历史信息查询的视图定义如下:

create view Historyview (读者编号,书名,借阅日期,归还日期) as

select ReaID,BookName,Outdate,Indate from Borrow,Book

where Borrow.BookID=Book.BookID and Borrow.Indate is not null

(5)用于查询罚款信息的视图定义如下:

create view Fineview (读者编号,书名,借阅日期,归还日期,罚款,处理状态) as

select ReaID,BookName,Outdate,Indate,Fine,CLState

20