美文网首页
Oracle课程报告

Oracle课程报告

作者: 靖_子翊 | 来源:发表于2018-11-27 21:44 被阅读0次

图书借阅管理系统

要求:

设计一个图书借阅管理系统。该系统包括以下****6****个功能模块:

图书分类管理,

图书基本信息管理,

图书库存管理,

图书借阅管理,

图书证管理。

格式:

一、需求分析

图书馆在正常运营中面对大量书籍、读者信息以及两者间相互联系产生的借书信息、还书信息。现有的人工记录方法既效率低又错误过多,大大影响了图书馆的正常管理工作。因此需要对书籍资源、读者资源、借书信息、还书信息进行管理,及时了解各个环节中信息的变更,有利于管理效率的提高。

二、系统设计

系统功能模块图

数据库1.png

三、数据库设计

1****、数据库概念设计

实体描述

读者实体集

具有属性

姓名,学号,班别,性别,电话,院系

图书实体集

具有属性

图书名,图书类别,图书编号,库存,作者,价格,出版社

管理者实体集

具有属性用户名,密码,ID

实体关系

一个学生可以借阅和归还多本图书,所以学生和图书之间的联系为1:n的联系

一个管理员可以对多本图书进行管理,图书管理员可以有多个,所以管理员和图书之间的联系为m:n的联系

一个管理员可以对多个读者进行管理,图书管理员可以有多个,所以管理员和读者之间的联系为m:n的联系

E-R

数据库2.png

2****、数据库逻辑设计

表和字段的设计等

(1) 图书实体集转换为关系:

tBook(cBooksISBN,cBooksName,cBooksAuthor,cBooksType,cBooksPrice,cBooksPublisher ,cBooksStore)

cBooksISBN表示图书编号,

cBooksName表示图书名称,

cBooksAuthor表示图书作者,

cBooksType表示图书类型,

cBooksPrice表示图书价格,

cBooksPublisher表示图书出版社,

cBooksStore表示图书库存量

(2) 读者实体集可以转换为关系:

tUser(cUsersNo, cUsersName,cUsersSex,cUsersDepart,cUsersClass,cUsersTel)

cUsersNo 表示读者学号

cUsersName表示读者姓名

cUsersSex表示读者性别,

cUsersDepart表示读者院系,

cUsersClass表示读者班级,

cUsersTel表示读者电话

(3) 管理员实体集可以转换为关系:

tAdmin(cAdminID,cAdminPwd ,cAdminName,)

cAdminID表示管理员编号,

cAdminPwd表示密码,

cAdminName表示管理员姓名

(4) 因为学生和图书之间的联系为1:n的联系,所以:

tUser(cUsersNO,cBooksISBN)

cBooksISBN表示学生借阅的图书。

(5) 因为管理员和图书之间的联系为m:n的联系,所以:

tAdmin(cAdminID,cBooksISBN)

cBooksISBN表示管理员管理的图书。

(6) 因为管理员和学生读者之间的联系为m:n的联系,所以:

tAdmin(cAdminID,cUsersNO)

cUsersNO表示管理员管理的学生读者。

图书信息表

数据库三.png

读者信息表

数据库4.png

管理员信息表

数据库五.png

**借阅登记表****


数据库六.png

3****、数据库物理设计

创建表

建管理员表

create table tAdmin

(

cAdminID char(6) primary key,

cAdminPwd char(6) not null,

cAdminName char(10) not null

);

建读者表

create table tUser

(

cUsersNo char(11)primary key,

cUsersName char(10) not null,

cUsersSex char(2),

cUsersDepart char(20),

cUsersClass char(6),

cUsersTel char(11)

);

建图书表

create table book tBook

(

cBooksISBN char(13)primary key,

cBooksName char(20)not null,

cBooksAuthor char(10),

cBooksType char(10)not null,

cBooksPrice int,

cBooksPublisher char(20),

cBooksStore int

);

建立借阅信息登记表

create table tReturn

(cUsersNo char(6)not null,

cUserName char(10) not null,

cBooksISBN char(13) not null,

cBookName char(20) not null,

cBorrowTime char(10) not null

cReturnTime char(10) not null,)

primary key( cUsersNo,cBooksISBN)

插入数据

图书信息表

读者信息表

借阅登记表

管理员信息表

方法实现

插入数据

管理员注册

insert into tAdmin

values('98761','123456','李林' );

insert into tAdmin

values('98762','123456','赵林');

insert into tAdmin

values('98763','123456','钱林');

insert into tAdmin

values('98764','123456','孙林');

insert into tAdmin

values('98765','123456','周玲');

管理员注销

delete from tAdmin where cAdminID ='98762';

增加读者

Insert

into tUser(cUsersNo,cUsersName, cUsersSex, cUsersDepart,cUsersClass,cUsersTel)

value('201611781201','张三','男','计科系','1178',' 1382278979');

insert

into tUser(cUsersNo,cUsersName, cUsersSex, cUsersDepart,cUsersClass,cUsersTel)

values('201611781202','李四','男','计科系','1178',' 1382278980');

insert

into tUser(cUsersNo,cUsersName, cUsersSex, cUsersDepart,cUsersClass,cUsersTel)

values('201611781203','王五','男','计科系','1178',' 1382278981');

insert

into tUser(cUsersNo,cUsersName, cUsersSex, cUsersDepart,cUsersClass,cUsersTel)

values('201611781204','李志明','男','计科系','1178',' 1382278982');

insert

into tUser(cUsersNo,cUsersName, cUsersSex, cUsersDepart,cUsersClass,cUsersTel)

values('201611781205','王小二','男','计科系','1178',' 1382278983');

insert

into tUser(cUsersNo,cUsersName, cUsersSex, cUsersDepart,cUsersClass,cUsersTel)

values('201611781206','小二黑','男','计科系','1178',' 1382278984');

insert

into tUser(cUsersNo,cUsersName, cUsersSex, cUsersDepart,cUsersClass,cUsersTel)

values('201611781207','张春华','女','计科系','1178',' 1382278985');

删除读者

delete from tUser where cUsersNo ='201611781202';

修改读者信息

update tUser

set cUsersName='赵七', cUsersSex='男' where cUsersNo ='201611781201'

增加图书

Insert

into book(cBooksISBN, cBooksName, cBooksAuthor, cBooksType, cBooksPrice, cBooksPublisher, cBooksStore)

values ('9787802062373','《围城》','钱钟书','文学','29.78','人民日报出版社',10);

insert

into book(cBooksISBN, cBooksName, cBooksAuthor, cBooksType, cBooksPrice, cBooksPublisher, cBooksStore)

values ('9787802062374','《边城》','沈从文','文学','29','人民日报出版社',11);

insert

into book(cBooksISBN, cBooksName, cBooksAuthor, cBooksType, cBooksPrice, cBooksPublisher, cBooksStore)

values ('9787802062375','《原则》','瑞.达利欧','社科','32','人民日报出版社',11);

insert

into book(cBooksISBN, cBooksName, cBooksAuthor, cBooksType, cBooksPrice, cBooksPublisher, cBooksStore)

values ('9787802062376','《雾》','巴金','文学','31','人民日报出版社',13);

insert

into book(cBooksISBN, cBooksName, cBooksAuthor, cBooksType, cBooksPrice, cBooksPublisher, cBooksStore)

values ('9787802062377','《废都》','贾平凹','文学','30','人民日报出版社',13);

insert

into book(cBooksISBN, cBooksName, cBooksAuthor, cBooksType, cBooksPrice, cBooksPublisher, cBooksStore)

values ('9787802062378','《射雕英雄传》','金庸','文学','33','人民日报出版社',11);

into book(cBooksISBN, cBooksName, cBooksAuthor, cBooksType, cBooksPrice, cBooksPublisher, cBooksStore)

values ('9787802062379','《小李飞刀》','古龙','文学','34','人民日报出版社',12);

删除图书

delete from tBook where cBooksISBN=9787802062373;

修改图书信息

update tBook

set cBooksName ='《家》',bauthor='巴金' where cBooksISBN ='9787802062373';

读者借阅图书

insert into tReturn(cUsersNo,cUserName,cBooksISBN,cBooksName, cBorrwTime, cReturnTime);

values('201611781201','张三','9787802062373','围城','2016-12-01','0000-00-00');

insert into tReturn(cUsersNo,cUserName,cBooksISBN,cBooksName, cBorrwTime, cReturnTime);

values('201611781202','李四','9787802062374','边城','2016-12-02','0000-00-00');

insert into tReturn(cUsersNo,cUserName,cBooksISBN,cBooksName, cBorrwTime, cReturnTime);

values('201611781203','王五','9787802062375','原则','2016-12-03','0000-00-00');

insert into tReturn(cUsersNo,cUserName,cBooksISBN,cBooksName, cBorrwTime, cReturnTime);

values('201611781204','李志明','9787802062376','雾','2016-12-04','0000-00-00');

insert into tReturn(cUsersNo,cUserName,cBooksISBN,cBooksName, cBorrwTime, cReturnTime);

values('201611781205','王小二','9787802062377','废都','2016-12-03','0000-00-00');

insert into tReturn(cUsersNo,cUserName,cBooksISBN,cBooksName, cBorrwTime, cReturnTime);

values('201611781206','小二黑','9787802062378','射雕英雄传','2016-12-03','0000-00-00');

insert into tReturn(cUsersNo,cUserName,cBooksISBN,cBooksName, cBorrwTime, cReturnTime);

values('201611781207','张春华','9787802062379','小李飞刀','2016-12-06','0000-00-00');

读者归还图书

insert into tReturn(cUsersNo,cUserName,cBooksISBN,cBooksName,cBooksName, cBorrwTime, cReturnTime);

values('201611781202','李四','9787802062374','边城','2016-12-01','2016-12-22');

insert into tReturn(cUsersNo,cUserName,cBooksISBN,cBooksName, cBorrwTime, cReturnTime);

values('201611781203','王五','9787802062375','原则','2016-12-03',' 2016-12-22');

insert into tReturn(cUsersNo,cUserName,cBooksISBN,cBooksName, cBorrwTime, cReturnTime);

values('201611781204','李志明','9787802062376','雾','2016-12-04',' 2016-12-23');

insert into tReturn(cUsersNo,cUserName,cBooksISBN,cBooksName, cBorrwTime, cReturnTime);

values('201611781205','王小二','9787802062377','废都','2016-12-03',' 2016-12-12');

insert into tReturn(cUsersNo,cUserName,cBooksISBN,cBooksName, cBorrwTime, cReturnTime);

values('201611781206','小二黑','9787802062378','射雕英雄传','2016-12-03',' 2016-12-11');

insert into tReturn(cUsersNo,cUserName,cBooksISBN,cBooksName, cBorrwTime, cReturnTime);

values('201611781207','张春华','9787802062379','小李飞刀','2016-12-06',' 2016-12-22');

查询姓李的学生信息

select * from tUser where tUsersName like’李%’;

查询借书同学的信息

select cUsersName from tReturn ORDER BY cUsersNo;

查询借某本书的同学的学号、姓名、及联系方式

Select cUsersNo,cUsersName,cUsersTel from tUser where cUsersNo in(select cUsersNo from tReturn where cBooksISBN=’9787802062374’);

创建图书信息视图

create view i_book

as

select*from tBook

where cBooksType like '文学'

读者信息视图

create view view_count(cUsersName, cUsersNo, cUsersName,)

as

select cUsersNo count(*) from. tReturn

group by cUsersName

创建唯一性索引

select cUsersNo count(*) from. tReturn group by cUsersName

Create unique index tBook_ cBooksType on tBook(cBooksType)

创建位图索引

Create bitmap index tUser_sex on tUser(cUserSex)

创建触发器,禁止在周日对图书表进行修改

Create or replace trigger trg_emp_Sunday

Begin

If to_char(sysdate, 'DY ', 'nls_date_language=american') In ('SUN')

Then

raise_application_error(-20200, 'Can''t operate on Sunday.');

End If;

End trigger_trg_emp_Sunday;
总结
感觉还是有点水分啊

相关文章

网友评论

      本文标题:Oracle课程报告

      本文链接:https://www.haomeiwen.com/subject/reanqqtx.html