Oracle第章基于Oracle数据库的应用开发_第1页
Oracle第章基于Oracle数据库的应用开发_第2页
Oracle第章基于Oracle数据库的应用开发_第3页
Oracle第章基于Oracle数据库的应用开发_第4页
Oracle第章基于Oracle数据库的应用开发_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第16基于Oracle数据库的应用开发本章内容图书管理系统数据库设计与开发基于Oracle数据库的人事管理系统开发本章要求了解基于数据库的应用系统开发过程了解图书管理系统开发的过程与实现了解人事管理系统部分核心代码的实现16.1图书管理系统数据库设计与开发图书管理系统需求分析图书管理系统数据库对象设计图书管理系统数据库对象创建图书管理系统应用开发16.1.1图书管理系统需求分析16.1.2图书管理系统数据库对象设计表设计序列设计视图设计PL/SQL功能模块设计表设计BOOK_CLASS表结构及其约束字段名数据类型长度约束说明classidNUMBER11主码学科类型编号classnameVARCHAR220NOTNULL学科类型名称demoVARCHAR2100说明BOOK_TYPE表结构及其约束字段名数据类型长度约束说明typeidNUMBER11主码图书类型编号typenameVARCHAR220NOTNULL图书类型名称demoVARCHAR2100说明BOOK表结构及其约束字段名数据类型长度约束说明bookidNUMBER11主码书籍编号booknameVARCHAR220NOTNULL书籍名称author1VARCHAR220NOTNULL书籍作者author2VARCHAR220书籍作者author3VARCHAR220书籍作者pubdateDATE出版日期publishVARCHAR230出版社photoVARCHAR2100图片地址abstractVARCHAR24000内容简介priceNUMBER7,2NOTNULL价格ISBNVARCHAR217NOTNULL书籍ISBN码bookclassNUMBER11外码学科类型booktypeNUMBER11外码藏书类型READER_TYPE表结构及其约束字段名数据类型长度约束说明typeidNUMBER11主码图书类型编号typenameVARCHAR220NOTNULL图书类型名称demoVARCHAR2100说明READER表表结构及及其约束束字段名数据类型长度约束说明readeridNUMBER11主码读者编号nameVARCHAR210NOTNULL读者姓名telephoneVARCHAR215联系电话emailVARCHAR230邮箱地址deptVARCHAR220所在院系rightNUMBER1取值为0或1借阅权限readertypeNUMBER11外码读者类型demoVARCHAR21000说明BORROW表表结构及及其约束束字段名数据类型长度约束说明readeridNUMBER11外码联合主码读者编号bookidNUMBER11外码图书编号borrowdateDATE出借日期dueDATE应还日期last_dueDATE实际归还日期RULE表结构构及其约约束字段名数据类型长度约束说明booktypeNUMBER11外码联合主码藏书类型编号readertypeNUMBER11外码读者类型编号daysNUMBER5NOTNULL期限(天)numNUMBER5NOTNULL册数(本)renewNUMBER5NOTNULL续借次数(次)overtimeNUMBER5,2NOTNULL逾期处罚(元/册/天)ADMIN表结结构及其其约束字段名数据类型长度约束说明IdNUMBER11主码管理员编号usernameVARCHAR210NOTNULL管理员账号passwordVARCHAR211NOTNULL账号密码PRECONCERT(预约约表)表表结构及及其约束束字段名数据类型长度约束说明readeridNUMBER11主码联合主码读者编号bookidNUMBER11主码图书编号predateDATE预约日期SEQ_READERS:产产生读者者编号,,起始值值为10000。SEQ_BOOKS::产生图图书编号号,起始始值为100。。序列设计计视图设计计创建名为为“READER_BOOK_VIEW”的视图图,包括括读者信信息、所所借图书书信息及及借阅信信息。创建名为为“BOOK_TYPE_STAT_VIEW”的视图图,包括括各类图图书的借借阅统计计信息。。PL/SQL功能模块块设计创建一个个计算借借阅超期期天数的的存储过过程。创建一个个计算图图书应归归还日期期的函数数。创建一个个计算超超期罚款款的存储储过程。。创建一个个触发器器,禁止止星期六六、星期期日以及及非工作作时间借借阅图书书操作。。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));创建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));创建book_type表表CREATETABLEbook_type(typeidNUMBER(11)PRIMARYKEY,typenameVARCHAR2(20)NOTNULL,demoVARCHAR2(100));创建book_class表CREATETABLEbook_class(clASsidNUMBER(11)PRIMARYKEY,clASsnameVARCHAR2(20)NOTNULL,demoVARCHAR2(100));创建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));创建borrow表表CREATETABLEborrow(readeridNUMBER(11)REFERENCESreader(readerid),bookidNUMBER(11)REFERENCESbook(bookid),borrowdateDATE,dueDATE,last_dueDATE,PRIMARYKEY(readerid,bookid));创建preconcert表CREATETABLEpreconcert(readeridNUMBER(11)REFERENCESreader(readerid),bookidNUMBER(11)REFERENCESbook(bookid),predateDATE,PRIMARYKEY(readerid,bookid));创建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));序列的创创建CREATESEQUENCEseq_readerSTARTWITH1INCREMENTBY10000;CREATESEQUENCEseq_bookSTARTWITH1INCREMENTBY100;创建视图图reader_book_viewCREATEORREPLACEVIEWreader_book_viewASSELECTname,bookname,borrowdate,due,last_dueFROMreader,book,borrowWHWERreader.readid=borrow.readidANDborrow.bookid=book.bookid;创建视图图book_type_stat_viewCREATEORREPLACEVIEWbook_type_stat_viewASSELECTbooktype,COUNT(booktype)FROM(SELECTreaderid,borrow.booktype,Booktype,borrowdate,due,last_dueFROMborrow,bookWHEREbook.bookid=borrow.bookid)计算借阅阅超期天天数的存存储过程程CREATEORREPLACEPROCEDUREp_days_FROM_due(v_readeridNUMBER,v_bookidNUMBER,v_daysoutNUMBER)ASBEGINSELECTdue––sysdateINTOv_daysFROMborrowWHEREreaderid=v_readeridANDbookid=v_bookid;IFv_days<=0THENv_day:=0;ENDIF;END;计算图图书应应归还还日期期的函函数CREATEORREPLACEFUNCTIONf_date_is_due(v_readeridNUMBER,v_bookidNUMBER)RETURNVARCHAR2ASv_booktypeNUMBER;v_readertypeNUMBER;v_dateVARCHAR2(10);BEGINSELECTbooktypeINTOv_booktypeFROMbookWHEREbookid=v_bookid;SELECTreadertypeINTOv_readertypeFROMreaderWHEREreaderid=v_readerid;SELECTto_char(sysdate+days,'yyyy-mm-dd')INTOv_dateFROMruleWHEREreadertype=v_readertypeANDbooktype=v_booktype;RETURNv_date;END;计算超超期罚罚款的的存储储过程程CREATEORREPLACEPROCEDUREp_timeover_money(v_readeridNUMBER,v_bookidNUMBER,v_moneyOUTNUMBER)ASv_daysNUMBER;v_readertypeNUMBER;v_booktypeNUMBER;BEGINp_days_from_due(v_readerid,v_bookid,v_days);SELECTbooktypeINTOv_booktypeFROMbookWHEREbookid=v_bookid;SELECTreadertypeINTOv_readertypeFROMreaderWHEREreaderid=v_readerid;SELECTovertime*floor(abs(v_days))INTOv_moneyFROMruleWHEREreadertype=v_readertypeANDbooktype=v_booktype;END;判断读读者可可否进进行借借阅的的存储储过程程CREATEORREPLACEPROCEDUREp_can_borrow(v_readeridNUMBER,v_bookidNUMBER,v_numOUTNUMBER)ASv_rightNUMBER;v_borrowed_numNUMBER;v_rule_numNUMBER;BEGINSELECTrightINTOv_rightFROMreaderWHEREreaderid=v_readerid;v_borrowed_num:=f_borrowed_num(v_readerid,v_bookid);v_rule_num:=f_rule_num(v_readerid,v_bookid);IFv_right=1THENv_num:=0;ELSEv_num:=v_rule_num-v_borrowed_num;ENDIF;EXCEPTIONWHENOTHERSTHENv_num:=0;END;16.2人事管管理系系统开开发人事管管理系统介介绍数据库库设计计重要界界面的的设计计与实实现主要代代码的的实现现16.2.1人事管管理系系统介介绍功能::录入入人事事的基基本资资料,,在操操作上上能够够完成成诸如如添加加、修修改、、删除除、按按各种种条件件进行行查询询、新新用户户的设设置及及密码码修改改等方方面的的工作作,基基本满满足人人事日日常业业务的的需要要。实用的的B/S结构,,后台台Oracle数据库库16.2.2数据库库设计计员工员工编号姓名性别出生日期身份证号员工请假······请假天数员工工资拥有1工资编号员工编号基本工资岗位工资出勤费拥有所属部门······管理员编号姓名密码······。······。。。。.管理管理管理11请假编号q111mnp员工编号员工基基本信信息表表员工基基本信信息表表主要要描述述员工工的个个人情情况,,如姓姓名、、性别别、出出生日日期、、身份份证号号、所所属部部门等等,其其中员员工编编号作作为员员工基基本信信息表表的主主码。。员工工工资信信息表表员工工工资信信息表表主要要描述述每个个员工工所对对应的的工资资情况况,如如工资资编号号、基基本工工资、、岗位位工资资、出出勤费费等,,其中中工资资编号号作为为员工工工资资信息息表的的主码码。而而其中中的员员工编编号是是外码码,它它的取取值参参照于于员工工基本本信息息表的的主码码取值值。同同时,,每名名员工工均只只有一一个工工资编编号和和一个个员工工编号号,即即员工工实体体与员员工工工资实实体之之间是是一对对一的的联系系。员工请请假信信息表表员工请请假信信息表表主要要描述述每个个员工工所对对应的的请假假情况况,如如请假假总天天数、、请假假开始始时间间、请请假结结束时时间、、请假假原因因等,,其中中请假假编号号作为为员工工请假假信息息表的的主码码。而而其中中的员员工编编号是是外码码,它它参照照于员员工基基本信信息表表的主主码取取值。。同时时,每每名员员工可可以有有多次次请假假记录录,即即员工工实体体与员员工请请假实实体之之间是是一对对多的的联系系。管理员员表管理员员表主主要描描述本本系统统中的的管理理员账账户情情况,,包括括编号号、管管理员员名、、密码码,其其中编编号作作为管管理员员表的的主码码。员工基基本信信息表表(emp)字段名名称类型字段名名称类型empnum员工编号VARCHAR2(16)address地址VARCHAR2(40)empname姓名VARCHAR2(16)policy政治面貌NUMBERSex性别NUMBERphone电话VARCHAR2(16)birthday出生日期DATEdegree学历NUMBERnation民族VARCHAR2(10)college毕业院校VARCHAR2(40)nativeplace户籍VARCHAR2(40)duty职务VARCHAR2(16)Ident身份证号VARCHAR2(16)title职称VARCHAR2(16)department所属部门VARCHAR2(16)sort在职类别NUMBERmarriage婚姻状况NUMBERremark备注VARCHAR2(400)员工工工资信信息表表(pay)字段名名称类型字段名名称类型Id工资编号NUMBERtax个人所得税NUMBERempnum员工编号VARCHAR2(16)insure_shiye失业保险NUMBERbasepay基本工资NUMBERinsure_yanglao养老保险NUMBERPost岗位工资NUMBERinsure_yiliao医疗保险NUMBERworkprice出勤费NUMBERshouldpay应发工资NUMBERMess伙食补贴NUMBERshoulddeduct应扣工资NUMBERtraffic交通补贴NUMBERpay实发工资NUMBERPrice物价补贴NUMBER员工请假信信息表leave)字段名名称类型字段名名称类型Id请假编号NUMBERleavepass请假批准人VARCHAR2(16)empnum员工编号CHAR(16)reason请假原因V

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论