您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据库 > Oracle第16章基于Oracle数据库的应用开发
Oracle10g数据库基础教程第16基于Oracle数据库的应用开发Oracle10g数据库基础教程本章内容图书管理系统数据库设计与开发基于Oracle数据库的人事管理系统开发Oracle10g数据库基础教程本章要求了解基于数据库的应用系统开发过程了解图书管理系统开发的过程与实现了解人事管理系统部分核心代码的实现Oracle10g数据库基础教程16.1图书管理系统数据库设计与开发图书管理系统需求分析图书管理系统数据库对象设计图书管理系统数据库对象创建图书管理系统应用开发Oracle10g数据库基础教程16.1.1图书管理系统需求分析Oracle10g数据库基础教程16.1.2图书管理系统数据库对象设计表设计序列设计视图设计PL/SQL功能模块设计Oracle10g数据库基础教程表设计BOOK_CLASS表结构及其约束字段名数据类型长度约束说明classidNUMBER11主码学科类型编号classnameVARCHAR220NOTNULL学科类型名称demoVARCHAR2100说明Oracle10g数据库基础教程BOOK_TYPE表结构及其约束字段名数据类型长度约束说明typeidNUMBER11主码图书类型编号typenameVARCHAR220NOTNULL图书类型名称demoVARCHAR2100说明Oracle10g数据库基础教程BOOK表结构及其约束字段名数据类型长度约束说明bookidNUMBER11主码书籍编号booknameVARCHAR220NOTNULL书籍名称author1VARCHAR220NOTNULL书籍作者author2VARCHAR220书籍作者author3VARCHAR220书籍作者pubdateDATE出版日期publishVARCHAR230出版社photoVARCHAR2100图片地址abstractVARCHAR24000内容简介priceNUMBER7,2NOTNULL价格ISBNVARCHAR217NOTNULL书籍ISBN码bookclassNUMBER11外码学科类型booktypeNUMBER11外码藏书类型Oracle10g数据库基础教程READER_TYPE表结构及其约束字段名数据类型长度约束说明typeidNUMBER11主码图书类型编号typenameVARCHAR220NOTNULL图书类型名称demoVARCHAR2100说明Oracle10g数据库基础教程READER表结构及其约束字段名数据类型长度约束说明readeridNUMBER11主码读者编号nameVARCHAR210NOTNULL读者姓名telephoneVARCHAR215联系电话emailVARCHAR230邮箱地址deptVARCHAR220所在院系rightNUMBER1取值为0或1借阅权限readertypeNUMBER11外码读者类型demoVARCHAR21000说明Oracle10g数据库基础教程BORROW表结构及其约束字段名数据类型长度约束说明readeridNUMBER11外码联合主码读者编号bookidNUMBER11外码图书编号borrowdateDATE出借日期dueDATE应还日期last_dueDATE实际归还日期Oracle10g数据库基础教程RULE表结构及其约束字段名数据类型长度约束说明booktypeNUMBER11外码联合主码藏书类型编号readertypeNUMBER11外码读者类型编号daysNUMBER5NOTNULL期限(天)numNUMBER5NOTNULL册数(本)renewNUMBER5NOTNULL续借次数(次)overtimeNUMBER5,2NOTNULL逾期处罚(元/册/天)Oracle10g数据库基础教程ADMIN表结构及其约束字段名数据类型长度约束说明IdNUMBER11主码管理员编号usernameVARCHAR210NOTNULL管理员账号passwordVARCHAR211NOTNULL账号密码Oracle10g数据库基础教程PRECONCERT(预约表)表结构及其约束字段名数据类型长度约束说明readeridNUMBER11主码联合主码读者编号bookidNUMBER11主码图书编号predateDATE预约日期Oracle10g数据库基础教程SEQ_READERS:产生读者编号,起始值为10000。SEQ_BOOKS:产生图书编号,起始值为100。序列设计Oracle10g数据库基础教程视图设计创建名为“READER_BOOK_VIEW”的视图,包括读者信息、所借图书信息及借阅信息。创建名为“BOOK_TYPE_STAT_VIEW”的视图,包括各类图书的借阅统计信息。Oracle10g数据库基础教程PL/SQL功能模块设计创建一个计算借阅超期天数的存储过程。创建一个计算图书应归还日期的函数。创建一个计算超期罚款的存储过程。创建一个触发器,禁止星期六、星期日以及非工作时间借阅图书操作。Oracle10g数据库基础教程16.1.3图书管理系统数据库对象创建创建admin表CREATETABLEadmin(idNUMBER(11)PRIMARYKEY,usernameVARCHAR2(10)NOTNULL,pASswordVARCHAR2(11)NOTNULL);创建reader_type表CREATETABLEreader_type(typeidNUMBER(11)PRIMARYKEY,typenameVARCHAR2(20)NOTNULL,demoVARCHAR2(100));Oracle10g数据库基础教程创建reader表CREATETABLEreader(readeridNUMBER(11)PRIMARYKEY,nameVARCHAR2(10)NOTNULL,telephoneVARCHAR2(15),emailVARCHAR2(30),deptVARCHAR2(20),rightNUMBER(1)CHECK(right=0orright=1),readertypeNUMBER(11)REFERENCESreader_type(typeid),demoVARCHAR2(1000));Oracle10g数据库基础教程创建book_type表CREATETABLEbook_type(typeidNUMBER(11)PRIMARYKEY,typenameVARCHAR2(20)NOTNULL,demoVARCHAR2(100));创建book_class表CREATETABLEbook_class(clASsidNUMBER(11)PRIMARYKEY,clASsnameVARCHAR2(20)NOTNULL,demoVARCHAR2(100));Oracle10g数据库基础教程创建book表CREATETABLEbook(bookidNUMBER(11)PRIMARYKEY,booknameVARCHAR2(20)NOTNULL,author1VARCHAR2(20)NOTNULL,author2VARCHAR2(20),author3VARCHAR2(20),pubDATEDATE,publishVARCHAR2(30),photoVARCHAR2(100),abstractVARCHAR2(4000),priceNUMBER(7,2)NOTNULL,isbnVARCHAR2(17)NOTNULL,bookclASsNUMBER(11)REFERENCESbook_clASs(clASsid),booktypeNUMBER(11)REFERENCESbook_type(typeid));Oracle10g数据库基础教程创建borrow表CREATETABLEborrow(readeridNUMBER(11)REFERENCESreader(readerid),bookidNUMBER(11)REFERENCESbook(bookid),borrowdateDATE,dueDATE,last_dueDATE,PRIMARYKEY(readerid,bookid));Oracle10g数据库基础教程创建preconcert表CREATETABLEpreconcert(readeridNUMBER(11)REFERENCESreader(readerid),bookidNUMBER(11)REFERENCESbook(bookid),predateDATE,PRIMARYKEY(readerid,bookid));Oracle10g数据库基础教程创建rule表CREATETABLErule(booktypeNUMBER(11)REFERENCESbook_type(typeid),readertypeNUMBER(11)REFERENCESreader_type(typeid),daysNUMBER(5)NOTNULL,numNUMBER(5)NOTNULL,renewNUMBER(5)NOTNULL,overtimeNUMBER(5,2)NOTNULL,PRIMARYKEY(booktype,readertype));Oracle10g数据库基础教程序列的创建CREATESEQUENCEseq_readerSTARTWITH1INCREMENTBY10000;CREATESEQUENCEseq_bookSTARTWITH1INCREMENTBY100;Oracle10g数据库基础教程创建视图reader_book_viewCREATEORREPLACEVIEWreader_book_viewASSELECTname,bookname,borrowdate,due,last_dueFROMreader,book,borrowWHWERreader.readid=borrow.readidANDborrow.bookid=book.bookid;Oracle10g数据库基础教程创建视图book_type_stat_viewCREATEORREPLACEVIEWbook_type_stat_viewASSELECTbooktype,COUNT(booktype)FROM(SELECTreaderid,borrow.booktype,Booktype,borrowdate,due,last_dueFROMborrow,bookWHEREbook.bookid=borrow.bookid)Oracle10g数据库基础教程计算借阅超期天数的存储过程CREATEORREPLACEPROCEDUREp_days_FROM_due(v_readeridNUMBER,v_bookidNUMBER,v_daysoutNUMBER)ASBEGINSELECTdue–sysdateINTOv_daysFROMborrowWHEREreaderid=v_readeridANDbookid=v_bookid;IFv_days=0THENv_day:=0;ENDIF;END;Oracle10g数据库基础教程计算图书应归还日期的函数CREATEORREPLACEFUNCTIONf_date_is_due(v_readeridNUMBER,v_bookidNUMBER)RETURNVARCHAR2ASv_booktypeNUMBER;v_readertypeNUMBER;v_dateVARCHAR2(10);BEGINSELECTbooktypeINTOv_booktypeFROMbookWHEREbookid=v_bookid;SELECTreadertypeINTOv_r
本文标题:Oracle第16章基于Oracle数据库的应用开发
链接地址:https://www.777doc.com/doc-13033 .html