ORACLE大型数据库技术图书管理系统Word文件下载.docx
《ORACLE大型数据库技术图书管理系统Word文件下载.docx》由会员分享,可在线阅读,更多相关《ORACLE大型数据库技术图书管理系统Word文件下载.docx(13页珍藏版)》请在冰豆网上搜索。
✧管理员(工作编号,姓名,性别,电话,工资)
✧借阅(读者编号,ISBN,工作编号,是否续借,借书日期,还书日期)
✧管理员_书籍(工作编号,ISBN,添加时间,是否在馆)
2)设计数据表
读者信息表READER
字段名
数据类型
长度
约束
属性
姓名
VARCHAR
30
NOTNULL
非主属性
性别
CHAR
4
系别
借书证号
20
主码
联系电话
11
违章状况
图书信息表BOOK
ISBN
索书号
书名
50
作者
出版社
出版日期
DATE
简介
数量
INT
管理员信息表MASTER
工作编号
2
电话
借阅关系表R-B
外码
借书日期
还书日期
是否续借
CAHR
确认归还
管理员_书籍表M-B
添加时间
是否在馆
三、创建表空间和用户
CREATETABLESPACETESTDATAFILE'
D:
\TEST.ORA'
SIZE100M;
//创建表空间
DROPTABLESPACETEST;
//删除表空间
CREATEUSERTESTIDENTIFIEDBY123456DEFAULTTABLESPACETESTQUOTA100MONUSERS;
//创建用户赋予密码及分配表空间
GRANTALLPRIVILEGESTOTEST;
//赋予用户全部权限
四、在表空间中创建表且插入数据
1.创建表
创建读者-READER表:
CREATETABLEREADER
(借书证号VARCHAR(20)PRIMARYKEYNOTNULL,
姓名VARCHAR(30)NOTNULL,
性别CHAR(4)NOTNULL,
系别VARCHAR(30)NOTNULL,
联系电话CHAR(11),
违章状况CHAR(4)
);
杰伦'
'
男'
计算机科学与技术否'
张华'
地理科学否'
蔡依林'
'
女'
音乐与艺术否'
李明'
数学与应用数学否'
那英'
土木工程否'
哈伦'
酒店管理否'
罗志祥'
旅游管理否'
黄渤'
生物科学否'
唐颖'
国际经济与贸易否'
雷龙'
汉语言文学否'
创建管理员-MASTER表:
CREATETABLEMASTER
(工作编号VARCHAR(20)PRIMARYKEYNOTNULL,
姓名VARCHAR(30)NOTNULL,
电话CHAR(11)
);
韩东'
男
王晓丽'
女
杨自鸣'
冯冰'
杜南珍'
蒋华'
刘翔'
童诗珊'
陈诗诗'
夏蓉'
创建图书-BOOK表:
CREATETABLEBOOK
(ISBNVARCHAR(30)PRIMARYKEYNOTNULL,
索书号VARCHAR(30)NOTNULL,
书名VARCHAR(50)NOTNULL,
作者VARCHAR(30)NOTNULL,
出版社VARCHAR(50),
出版日期DATE,
简介VARCHAR(50),
数量INT
INSERTINTO"
TEST"
."
BOOK"
VALUES('
978-7-111-21382-6'
TP3122626'
JAVA编程思想'
BRUCEECKEL'
机械工业出版社'
TO_DATE('
2007-08-2100:
00:
00'
YYYY-MM-DDHH24:
MI:
SS'
),'
最好的JAVA学习丛书'
5'
978-7-121-05414-3'
TP3127581'
PHP5项目开发实战详解'
PHPCHINA'
电子工业出版社'
2008-08-0800:
PHP项目实战丛书'
4'
978-7-115-21678-6'
TP311426'
PHP基础教程'
LARRYULLMAN'
2010-10-0100:
PHP丛书'
7'
978-7-122-05978-9'
TP3137781'
PHP从入门到精通'
陈超'
化学工业出版社'
2009-09-2200:
10'
978-7-121-06490-6'
TP3137564'
C#程序设计教程'
刘甫迎,刘光会,王蓉'
2008-08-1400:
C#丛书'
2'
978-7-302-17882-8'
TP3124567'
C#从入门到精通'
王小科,吕双'
清华大学出版社'
2008-10-0900:
3'
7-121-03179-5'
TN911.73'
数字图像处理'
胡学龙,许开宇'
2006-07-1800:
图像处理丛书'
978-7-300-10800-1'
TP3113448'
大学音乐鉴赏'
李迎春'
中国人民大学出版社'
2009-08-1100:
音乐丛书'
7-03-016064-9'
F590.7'
旅游环境学'
颜文洪,张朝枝'
科学出版社'
2005-09-2100:
旅游丛书'
9'
7-5338-4487-4'
D920.0'
法律教程'
孙笑侠'
浙江教育出版社'
2004-07-2300:
法律---中国---高等学校---教材'
8'
创建管理员_书籍表M-B表:
CREATETABLEMB
(ISBNVARCHAR(30)NOTNULL,
工作编号VARCHAR(20)NOTNULL,
添加时间DATE,
是否在馆CHAR(4),
PRIMARYKEY(工作编号,ISBN),
FOREIGNKEY(工作编号)REFERENCESMASTER(工作编号),
FOREIGNKEY(ISBN)REFERENCESBOOK(ISBN)
创建借阅关系表R-B表:
CREATETABLERB
借书证号VARCHAR(20)NOTNULL,
借书日期DATENOTNULL,
还书日期DATENOTNULL,
是否续借CHAR(4)NOTNULL,
确认归还CHAR(4)NOTNULL,
PRIMARYKEY(ISBN,借书证号,工作编号),
FOREIGNKEY(ISBN)REFERENCESBOOK(ISBN),
FOREIGNKEY(借书证号)REFERENCESREADER(借书证号),
FOREIGNKEY(工作编号)REFERENCESMASTER(工作编号)
五、索引
1.建立索引:
CREATEINDEXREADER_NAMEONREADER(姓名);
SELECT*FROMREADERRWHERER."
姓名"
='
六、数据查询和视图
1.数据查询:
1.SELECT*FROMREADER//查询读者信息表
2.SELECT*FROMRBWHERE"
3.SELECT*FROMRBWHERE借书证号
//查询借书证号为所借的书名
4.SELECTBOOK."
书名"
FROMRB,BOOKWHERERB."
5.SELECT*FROMRBWHERE"
是否续借"
='
N'
ANDSYSDATE-"
借书日期"
>
'
30'
AND"
确认归还"
;
6.SELECT"
出版社"
SUM("
数量"
)总本数FROMBOOKGROUPBY"
//查询图书馆内各出版社各有多少本书
7.SELECT*FROMREADERWHEREREADER."
借书证号"
IN(SELECT"
FROMRBWHERE"
)
2.视图:
1.CREATEORREPLACEVIEW欠费学生信息AS
SELECTREADER."
READER."
性别"
系别"
READER."
联系电话"
TO_CHAR(0.2*TO_NUMBER(SYSDATE-RB."
),'
999.0'
)欠费
FROMREADER,RB
WHERE"
ANDREADER."
=RB."
SELECT*FROM欠费学生信息;
//创建视图查询未按期归还图书的学生信息及欠费情况。
七、存储过程的使用
学生借阅信息删除存储过程
CREATEORREPLACEPROCEDUREP_DELETE(V_IDVARCHAR2)--定义变量ID
IS
BEGIN
DELETEFROMRBWHERE"
=V_ID;
--执行删除操作
COMMIT;
END;
--执行
学生续借书籍存储过程实现续借日期加一个月续借值改为Y
CREATEORREPLACEPROCEDUREP_XJ(V_IDVARCHAR2,XUJIECHAR)--定义变量ID
--DELETEFROMRBWHERE"
UPDATERBSET"
=XUJIE,"
还书日期"
="
ADD_MONTHS"
("
1)WHERE"
--执行修改操作
P_XJ
--执行完上边后执行
SELECT*FROMRB;
创建函数统计各出版社图书的库存量
--函数
CREATEORREPLACEFUNCTIONGETSCOUNT(IN1INVARCHAR2)RETURNNUMBER
AS
COUNTBOOKNUMNUMBER;
BEGIN
SELECT"
INTOCOUNTBOOKNUMFROMBOOKWHERE"
=IN1;
RETURN(COUNTBOOKNUM);
END;
--调用函数
DECLARE
COUNTNUMNUMBER:
=0;
COUNTNUM:
=GETSCOUNT('
DBMS_OUTPUT.PUT('
图书馆有“科学版社”书籍总数为:
DBMS_OUTPUT.PUT(COUNTNUM);
DBMS_OUTPUT.PUT_LINE('
本'
触发器:
对READER表添加触发器实现插入修改数据时输出插入或修改后的记录信息
CREATEORREPLACETRIGGERREADER_ONLOAD
AFTERINSERTORUPDATEONREADER
FOREACHROW
DECLARE
BEGIN
DBMS_OUTPUT.PUT_LINE('
借书证号:
||:
NEW.借书证号);
姓名:
||:
NEW.姓名);
性别:
NEW.性别);
系别:
NEW.系别);
联系电话:
NEW.联系电话);
触发器已被执行'
雷丰悦'
八、用户、角色
1.普通将图书信息表的查询权限授给普通读者R1
GRANTSELECTONTABLEBOOKTOR1
2.将借阅关系表RB,管理员_书籍表MB的查询和修改的权限给管理员M1
GRANTUPDATE,SELECTONTABLER-B,M-B,M-STOM1
九、实验心得
本图书管理系统的数据库分析与设计是由我们小组分工合作利用一周的课余时间完成。
实验环境:
Windows7+Navicat11+Oracle11g
通过这本次实验,我们掌握了系统开发的数据库设计的各个步骤以及文档的书写,例如E—R图的绘制,物理结构设计等,并且结合实例提高了数据库代码的编写能力。
此次实验中还有不足之处在触发器的应用还待提高。
总的来说动手实践后的更加深入了解到Oracle数据库的强大和美丽。