《Oracle第16章基于Oracle数据库的应用开发.pptx》由会员分享,可在线阅读,更多相关《Oracle第16章基于Oracle数据库的应用开发.pptx(52页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第16 基于Oracle数据库的应用开发培训专用本章内容p 图书管理系统数据库设计与开发p 基于Oracle 数据库的人事管理系统开发 培训专用本章要求p 了解基于数据库的应用系统开发过程p 了解图书管理系统开发的过程与实现p 了解人事管理系统部分核心代码的实现培训专用16.1图书管理系统数据库设计与开发p 图书管理系统需求分析p 图书管理系统数据库对象设计p 图书管理系统数据库对象创建p 图书管理系统应用开发培训专用16.1.1 图书管理系统需求分析培训专用16.1.2 图书管理系统数据库对象设计p 表设计p 序列设计p 视图设计p PL/SQL 功能模块设计培训专用表设计p BOOK_CL
2、ASS 表结构及其约束字段名 数据 类 型 长 度 约 束 说 明classid NUMBER 11 主 码 学科 类 型 编 号classname V ARCHAR2 20 NOT NULL 学科 类 型名称demo V ARCHAR2 100 说 明培训专用p BOOK_TYPE 表结构及其约束字段名 数据 类 型 长 度 约 束 说 明typeid NUMBER 11 主 码 图书类 型 编 号typename V ARCHAR2 20 NOT NULL 图书类 型名称demo V ARCHAR2 100 说 明培训专用p BOOK 表结构及其约束字段名 数据 类 型 长 度 约 束 说
3、 明bookid NUMBER 11 主 码 书 籍 编 号bookname V ARCHAR2 20 NOT NULL 书 籍名称author1 V ARCHAR2 20 NOT NULL 书 籍作者author2 V ARCHAR2 20 书 籍作者author3 V ARCHAR2 20 书 籍作者pubdate DATE 出版日期publish V ARCHAR2 30 出版社photo V ARCHAR2 100 图 片地址abstract V ARCHAR2 4000 内容 简 介price NUMBER 7,2 NOT NULL 价格ISBN V ARCHAR2 17 NOT N
4、ULL 书 籍ISBN 码bookclass NUMBER 11 外 码 学科 类 型booktype NUMBER 11 外 码 藏 书类 型培训专用p READER_TYPE 表结构及其约束字段名 数据 类 型 长 度 约 束 说 明typeid NUMBER 11 主 码图书类 型 编 号typename V ARCHAR2 20 NOT NULL 图书类 型名称demo V ARCHAR2100说 明培训专用p READER 表结构及其约束字段名 数据 类 型 长 度 约 束 说 明readerid NUMBER 11 主 码 读 者 编 号name V ARCHAR2 10 NOT
5、NULL 读 者姓名telephone V ARCHAR2 15 联 系 电话email V ARCHAR2 30 邮 箱地址dept V ARCHAR2 20 所在院系right NUMBER 1 取 值为0 或1 借 阅权 限readertype NUMBER 11 外 码 读 者 类 型demo V ARCHAR2 1000 说 明培训专用p BORROW 表结构及其约束字段名 数据 类 型 长 度 约 束 说 明readerid NUMBER 11外 码联 合主 码读 者 编 号bookid NUMBER 11外 码图书编 号borrowdate DATE 出借日期due DATE 应
6、还 日期last_due DATE 实际归还 日期培训专用p RULE 表结构及其约束字段名 数据 类 型 长 度 约 束 说 明booktype NUMBER 11 外 码联 合主 码藏 书类 型 编 号readertype NUMBER 11 外 码 读 者 类 型 编 号days NUMBER 5 NOT NULL 期限(天)num NUMBER 5 NOT NULL 册数(本)renew NUMBER 5 NOT NULL 续 借次数(次)overtime NUMBER 5,2 NOT NULL逾期 处罚(元/册/天)培训专用p ADMIN 表结构及其约束字段名 数据 类 型 长 度
7、约 束 说 明Id NUMBER 11 主 码 管理 员编 号username V ARCHAR2 10 NOT NULL 管理 员账 号password V ARCHAR2 11 NOT NULL 账 号密 码培训专用p PRECONCERT(预约表)表结构及其约束字段名 数据 类 型 长 度 约 束 说 明readerid NUMBER 11主码联 合主 码读 者 编 号bookid NUMBER 11主码图书编 号predate DATE 预约 日期培训专用p SEQ_READERS:产生读者编号,起始值为10 000。p SEQ_BOOKS:产生图书编号,起始值为100。序列设计培训专
8、用视图设计p 创建名为“READER_BOOK_VIEW”的视图,包括读者信息、所借图书信息及借阅信息。p 创建名为“BOOK_TYPE_STAT_VIEW”的视图,包括各类图书的借阅统计信息。培训专用PL/SQL功能模块设计p 创建一个计算借阅超期天数的存储过程。p 创建一个计算图书应归还日期的函数。p 创建一个计算超期罚款的存储过程。p 创建一个触发器,禁止星期六、星期日以及非工作时间借阅图书操作。培训专用16.1.3 图书管理系统数据库对象创建p 创建admin 表n CREATE TABLE admin(n id NUMBER(11)PRIMARY KEY,n username VAR
9、CHAR2(10)NOT NULL,n pASsword VARCHAR2(11)NOT NULL);p 创建reader_type 表n CREATE TABLE reader_type(n typeid NUMBER(11)PRIMARY KEY,n typename VARCHAR2(20)NOT NULL,n demo VARCHAR2(100);培训专用p 创建reader 表n CREATE TABLE reader(n readerid NUMBER(11)PRIMARY KEY,n name VARCHAR2(10)NOT NULL,n telephone VARCHAR2(1
10、5),n email VARCHAR2(30),dept VARCHAR2(20),n right NUMBER(1)CHECK(right=0 or right=1),n readertype NUMBER(11)REFERENCES reader_type(typeid),n demo VARCHAR2(1000);培训专用p 创建book_type 表n CREATE TABLE book_type(n typeid NUMBER(11)PRIMARY KEY,n typename VARCHAR2(20)NOT NULL,n demo VARCHAR2(100);p 创建book_cl
11、ass 表n CREATE TABLE book_class(n clASsid NUMBER(11)PRIMARY KEY,n clASsname VARCHAR2(20)NOT NULL,n demo VARCHAR2(100);培训专用p 创建book 表n CREATE TABLE book(n bookid NUMBER(11)PRIMARY KEY,n bookname VARCHAR2(20)NOT NULL,n author1 VARCHAR2(20)NOT NULL,n author2 VARCHAR2(20),n author3 VARCHAR2(20),n pubDATE
12、 DATE,publish VARCHAR2(30),n photo VARCHAR2(100),n abstract VARCHAR2(4000),n price NUMBER(7,2)NOT NULL,n isbn VARCHAR2(17)NOT NULL,n bookclASs NUMBER(11)REFERENCES book_clASs(clASsid),n booktype NUMBER(11)REFERENCES book_type(typeid);培训专用p 创建borrow 表n CREATE TABLE borrow(n readerid NUMBER(11)REFEREN
13、CES reader(readerid),n bookid NUMBER(11)REFERENCES book(bookid),borrowdate DATE,n due DATE,last_due DATE,n PRIMARY KEY(readerid,bookid);培训专用p 创建preconcert 表n CREATE TABLE preconcert(n readerid NUMBER(11)REFERENCES reader(readerid),n bookid NUMBER(11)REFERENCES book(bookid),n predate DATE,n PRIMARY K
14、EY(readerid,bookid);培训专用p 创建rule 表n CREATE TABLE rule(n booktype NUMBER(11)REFERENCES book_type(typeid),n readertype NUMBER(11)REFERENCES reader_type(typeid),n days NUMBER(5)NOT NULL,n num NUMBER(5)NOT NULL,n renew NUMBER(5)NOT NULL,n overtime NUMBER(5,2)NOT NULL,n PRIMARY KEY(booktype,readertype);培
15、训专用p 序列的创建n CREATE SEQUENCE seq_reader START WITH 1 INCREMENT BY 10000;n CREATE SEQUENCE seq_book START WITH 1 INCREMENT BY 100;培训专用p 创建视图reader_book_viewn CREATE OR REPLACE VIEW reader_book_viewn ASn SELECT name,bookname,borrowdate,due,last_due n FROM reader,book,borrow n WHWER reader.readid=borrow
16、.readid AND borrow.bookid=book.bookid;培训专用p 创建视图book_type_stat_viewn CREATE OR REPLACE VIEW book_type_stat_viewn ASn SELECT booktype,COUNT(booktype)n FROM(SELECT readerid,borrow.booktype,n Booktype,borrowdate,due,last_due n FROM borrow,book n WHERE book.bookid=borrow.bookid)培训专用p 计算借阅超期天数的存储过程p CREA
17、TE OR REPLACE PROCEDURE p_days_FROM_due(p v_readerid NUMBER,v_bookid NUMBER,v_days out NUMBER)p ASp BEGINp SELECT due sysdate INTO v_days FROM borrow p WHERE readerid=v_readerid AND bookid=v_bookid;p IF v_days=0 THEN p v_day:=0;p END IF;p END;培训专用p 计算图书应归还日期的函数p CREATE OR REPLACE FUNCTION f_date_is_
18、due(p v_readerid NUMBER,v_bookid NUMBER)p RETURN VARCHAR2p ASp v_booktype NUMBER;p v_readertype NUMBER;p v_date VARCHAR2(10);p BEGINp SELECT booktype INTO v_booktype FROM book WHERE bookid=v_bookid;p SELECT readertype INTO v_readertype FROM reader WHERE readerid=v_readerid;p SELECT to_char(sysdate+d
19、ays,yyyy-mm-dd)INTO v_date FROM rule p WHERE readertype=v_readertype AND booktype=v_booktype;p RETURN v_date;p END;培训专用p 计算超期罚款的存储过程p CREATE OR REPLACE PROCEDURE p_timeover_money(p v_readerid NUMBER,v_bookid NUMBER,v_money OUT NUMBER)p ASp v_days NUMBER;p v_readertype NUMBER;p v_booktype NUMBER;p BE
20、GINp p_days_from_due(v_readerid,v_bookid,v_days);p SELECT booktype INTO v_booktype FROM book WHERE bookid=v_bookid;p SELECT readertype INTO v_readertype FROM reader WHERE readerid=v_readerid;p SELECT overtime*floor(abs(v_days)INTO v_money FROM rule p WHERE readertype=v_readertype AND booktype=v_book
21、type;p END;培训专用p 判断读者可否进行借阅的存储过程p CREATE OR REPLACE PROCEDURE p_can_borrow(p v_readerid NUMBER,v_bookid NUMBER,v_num OUT NUMBER)p ASp v_right NUMBER;p v_borrowed_num NUMBER;p v_rule_num NUMBER;p BEGINp SELECT right INTO v_right FROM reader WHERE readerid=v_readerid;p v_borrowed_num:=f_borrowed_num(v
22、_readerid,v_bookid);p v_rule_num:=f_rule_num(v_readerid,v_bookid);p IF v_right=1 THEN p v_num:=0;p ELSEp v_num:=v_rule_num-v_borrowed_num;p END IF;p EXCEPTIONp WHEN OTHERS THENp v_num:=0;p END;培训专用16.2 人事管理系统开发p 人事管理 系统介绍p 数据库设计p 重要界面的设计与实现p 主要代码的实现培训专用16.2.1人事管理系统介绍p 功能:录入人事的基本资料,在操作上能够完成诸如添加、修改、删除
23、、按各种条件进行查询、新用户的设置及密码修改等方面的工作,基本满足人事日常业务的需要。p 实用的/S 结构,后台Oracle 数据库培训专用16.2.2 数据库设计员 工员 工 编 号姓名 性 别 出生日期身份 证 号员 工 请 假请 假天数员 工工 资拥 有1工 资编 号员 工 编 号基本工 资岗 位工 资出勤 费拥 有所属部 门管理 员编 号姓名 密 码。.管理管理管理11请 假 编 号q111mnp员 工 编 号培训专用p 员工基本信息表 n 员工基本信息表主要描述员工的个人情况,如姓名、性别、出生日期、身份证号、所属部门等,其中员工编号作为员工基本信息表的主码。p 员工工资信息表n 员
24、工工资信息表主要描述每个员工所对应的工资情况,如工资编号、基本工资、岗位工资、出勤费等,其中工资编号作为员工工资信息表的主码。而其中的员工编号是外码,它的取值参照于员工基本信息表的主码取值。同时,每名员工均只有一个工资编号和一个员工编号,即员工实体与员工工资实体之间是一对一的联系。培训专用p 员工请假信息表n 员工请假信息表主要描述每个员工所对应的请假情况,如请假总天数、请假开始时间、请假结束时间、请假原因等,其中请假编号作为员工请假信息表的主码。而其中的员工编号是外码,它参照于员工基本信息表的主码取值。同时,每名员工可以有多次请假记录,即员工实体与员工请假实体之间是一对多的联系。p 管理员表
25、n 管理员表主要描述本系统中的管理员账户情况,包括编号、管理员名、密码,其中编号作为管理员表的主码。培训专用p 员工基本信息表(emp)字 段 名 名 称 类 型 字 段 名 名 称 类 型empnum员 工 编 号 V ARCHAR2(16)address地址 V ARCHAR2(40)empname姓名 V ARCHAR2(16)policy政治面貌 NUMBERSex性 别 NUMBERphone电话 V ARCHAR2(16)birthday出生日期 DATEdegree学 历 NUMBERnation民族 V ARCHAR2(10)college毕业 院校 V ARCHAR2(40)
26、nativeplace户 籍 V ARCHAR2(40)duty职务 V ARCHAR2(16)Ident身份 证 号 V ARCHAR2(16)title职 称 V ARCHAR2(16)department所属部 门 V ARCHAR2(16)sort在 职类别 NUMBERmarriage婚姻状况 NUMBERremark备 注 V ARCHAR2(400)培训专用p 员工工资信息表(pay)字 段 名 名 称 类 型 字 段 名 名 称 类 型Id 工 资编 号 NUMBER tax 个人所得税 NUMBERempnum 员 工 编 号 V ARCHAR2(16)insure_shiy
27、e 失 业 保 险 NUMBERbasepay 基本工 资 NUMBER insure_yanglao 养老保 险 NUMBERPost 岗 位工 资 NUMBER insure_yiliao 医 疗 保 险 NUMBERworkprice 出勤 费 NUMBER shouldpay 应发 工 资 NUMBERMess 伙食 补贴 NUMBER shoulddeduct 应 扣工 资 NUMBERtraffic 交通 补贴 NUMBER pay 实发 工 资 NUMBERPrice 物价 补贴 NUMBER培训专用p 员工请假信息表leave)字 段 名 名 称 类 型 字 段 名 名 称 类
28、 型Id 请 假 编 号 NUMBER leavepass 请 假批准人 V ARCHAR2(16)empnum 员 工 编 号 CHAR(16)reason 请 假原因 V ARCHAR2(400)startdate 请 假开始 时间 DATE applydate 申 请 日期 DATEenddate 请 假 终 止 时间 DATE canceldate 销 假日期 DATEalldate 请 假 总 天数 NUMBER培训专用p 管理员表(admin)字 段 名 约 束 名 称 类 型id 主 码 编 号 NUMBERusername NOT NULL 管理 员 名 V ARCHAR2(16)password NOT NULL 密 码 V ARCHAR2(16)培训专用16.2.3 重要界面的设计与实现p 管理员登录界面p 增加人员基本信息p 查询人员基本信息p 员工请假信息p 员工工资信息维护与管理培训专用p 管理员登录界面 培训专用p 人员信息添加界面 培训专用p 员工信息查询界面 培训专用p 员工请假信息添加界面 培训专用p 员工工资信息管理界面 培训专用