2004级信息管理与信息系统2班数据库应用系统开发课程设计论文
5.物理设计阶段
5.1物理设计阶段的目标与任务
数据库的物理设计就是为逻辑数据模型选取一个最合适应用要求的物理结构的过程,在这个阶段中要完成两大任务:
(1)确定数据库的物理结构,在关系数据库中主要是存取方法和存储结构; (2)对物理结构进行评价,评价的重点是时间和空间效率。
5.2数据存储方面
为数据库中各基本表建立的索引如下:
1. 由于基本表Reader,Book的主码ReaID,BookID经常在查询条件和连接操作的
连接条件中出现,且它们的值唯一,在两个属性上建立唯一性索引;
2. 由于基本表Reader的属性ReaDep,Book的属性BookPublish经常在查询条件
中出现在两个属性上建立聚簇索引;
3. 借阅信息基本表Borrow的一属性ReaID,BookID,经常在查询条件中出现,考虑
在其之上建立聚簇索引;
4. 罚款信息基本表Fine的一属性ReaID,BookID,经常在查询条件中出现,考虑在
其之上建立聚簇索引;
5.3系统功能模块
5.3.1 读者基本信息的查询和更新模块
将实现对读者基本信息的查询和更新(修改、添加、删除)操作,用于新生入学,毕
业生离校,以及读者补办借阅证或更改信息的情况,具体的功能模块图如下:
-17-
2004级信息管理与信息系统2班数据库应用系统开发课程设计论文
5.3.2 图书基本信息的查询和更新模块
将完成对图书基本信息的查询、更新(修改、添加、删除)操作,用于读者对图书信
息的查询及管理员添加新书、删除淘汰的旧书,具体的功能模块图如下所示:
-18-
2004级信息管理与信息系统2班数据库应用系统开发课程设计论文
6.数据库实施阶段
6.1建立数据库、数据表、视图、索引 6.1.1 建立数据库
create database Book;
6.1.2 建立数据表
(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 ='女')
)
(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)馆藏图书基本信息表的建立:
-19-
2004级信息管理与信息系统2班数据库应用系统开发课程设计论文
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 ='女')
)
(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),
-20-
2004级信息管理与信息系统2班数据库应用系统开发课程设计论文
MID char(10) not null, primary key(BookID,ReaID),
foreign key(MID) references Maneger(MID)
)
6.1.3 建立视图
(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 from Borrow,Book
where Borrow.BookID=Book.BookID and Fine is not null
6.1.4 建立索引
create clustered index BookPublish on Book(BookPublish); create clustered index ReaDep on Reader(ReaDep);
-21-