
本书以网上购物系统(其应用环境适合于单一店铺的销售方式)的Oracle 11g数据库应用技术需求为驱动,并通过几位软件开发公司的技术工程师来模拟和还原Oracle数据库技术的应用情境,借助工作过程中的10个情境来实现该系统中的数据库应用需求全过程,从而通过实际动态的系统应用开发过程中的数据库操作进行Oracle 11g数据库基础技能的学习,包括Oracle 11g数据库的安装与配置、Oracle 11g基本管理操作、SQL的应用及PL/SQL的应用。 本书应用案例全部采用网上购物系统中真实有效的数据库操作技能点来实现,具有业务清晰、直观、操作简单、即用即所得的真实效果。 本书由具有多年Oracle数据库开发经验及高校Oracle数据库技术教学工作经验的老师主编,具有多年Oracle大学培训经验的OCM专家级认证专家参编,使本书具有职业教育教学和职业技能培训双特色。 读者对象:本书既可作为应用型本科、高职高专软件类相关专业的教材,也可供具有一定的数据库基础知识的Oracle数据库学习爱好者参考。
前 言 一个现代企业如何在竞争日益激烈的市场环境中保持优势,关键是对企业相关数据信息的有效收集、及时处理和准确分析,而这些都依赖于数据库技术。作为全球最大的数据库产品提供商,Oracle公司持续不断地为顺应市场发展的需要,提供了最新的数据库产品。该公司在推出基于网格计算的Oracle 10g以后,将其Oracle 11g数据库产品推向市场,该产品一经推出就受到界内人士的广泛关注,并成为数据库产品市场的又一领航产品。 近年来的高等职业教育发展实践表明:高等职业教育作为一种客观存在的教育类型,其办学思想的基本定位:以就业为导向的目标定向、校企合作的办学形式和工学结合的人才培养模式。人才培养的核心应该是课程建设,在课程设计中要实现以就业为导向的目标定向,就要进行基于工作过程的典型工作任务分析,在经过筛选、归纳、总结、抽象及提升的基础上,再结合适用的载体形成了课程中的多个学习情境,每个单元情境设计中包含了相关的知识点、技能点及职业素养的培养。 本书根据Oracle数据库技术学习特点,结合基于工作过程系统化的课程模式改革,由具有多年企业工作背景、多年高职Oracle数据库技术教学经验的高级工程师和Oracle大学培训学院具有OCM认证的资深培训专家共同设计,开发了一套基于网上购物系统载体的10个情境,并通过软件开发公司的技术工程师来模拟和还原Oracle数据库技术的应用情景,借助开发部项目经理Smith和开发部数据库应用工程师Jack两人的工作过程来实现该系统中的数据库应用需求全过程,从而通过实际动态的系统应用开发过程中的数据库操作进行Oracle 11g数据库基础技能的学习和训练,包括Oracle 11g数据库的安装与配置、Oracle 11g基本管理操作、SQL的应用及PL/SQL的应用等。 情境1从企业应用数据库技术的常见问题开始,分析了选择数据库产品的要素,并简单介绍目前市场主流的各大数据库产品的特点。读者通过本情境的学习,对于如何为企业选择合适的数据库产品获得了客观的参考标准。 情境2和情境3为读者提供了为企业搭建合适的Oracle数据库应用环境的操作过程,并且通过这些操作过程了解Oracle数据库的体系结构,为全面开始Oracle数据库技术的应用做好了铺垫。 情境4通过为网上购物系统提供一个完整而全面的用户权限管理方案来学习Oracle数据库安全管理中的用户管理、权限管理,这是数据库管理员必须具有的基本管理技能。 情境5、6、7、8通过网上购物系统的数据库系统实施为读者提供了如何在Oracle数据库中管理表对象、管理表中数据及根据系统业务规则处理表中的数据,这4个情境为读者的SQL应用和PL/SQL应用技能进行了系统的学习与实践。 情境9和情境10根据网上购物系统中的数据导入导出、备份与恢复的需求,进行了一个应用系统中最重要也是最常见的数据库管理技能的学习与实践。 在情境设计中,根据基于工作过程系统化的模式,将Oracle数据库应用技术分解到典型的工作任务中,每个情境根据具体的任务清单完成操作,操作过程通过分析设计、实现、总结、提高、实训等环节完成对技能的全面学习与实践,使读者学习时感觉到亲临其境,所学即所用,提高学习的主动性。 由于Oracle数据库系统是一个庞大而复杂的大型数据库系统,它的实现技术要比一般的关系型数据库系统复杂很多,因此,为了在有限的篇幅和时间内更好地掌握Oracle数据库的各种专业技能,本书要求读者具有基本的数据库基础。 本书由南海东软信息技术职业学院组织设计、开发与编写,由李强担任主编,负责情境1、情境6~8的编写;由罗先录担任副主编,负责情境3、4的编写;由通过OCM认证的Oracle培训学院韩思捷担任副主编,负责情境2、情境9、情境10的编写;由孔宇彦担任副主编并负责情境5的编写。郑若忠教授和曹承志教授对全书进行了审稿,并提出了宝贵的修改意见。同时,在本书编写过程中不仅参考了Oracle数据库官方文档及一些相关书籍,而且也参考了网上论坛的一些未留名的高手手记,在此一并表示衷心的感谢。 为了方便教师教学,本书配有电子教学课件及案例源代码,请有此需要的教师登录华信教育资源网(www.hxedu.com.cn)免费注册后进行下载,有问题时请在网站留言板留言或与电子工业出版社联系(E-mail:hxedu@phei.com.cn),也可与作者联系(E-mail:li.qiang@neusoft.com)。 由于对项目式教学法正处于经验积累和改进过程中,同时,由于编者水平有限和时间仓促,书中难免存在疏漏和不足,希望同行专家和读者能给予批评和指正。 编 者
目 录 情境1 如何选择数据库产品 (1) 1.1 主流的数据库产品介绍 (1) 1.1.1 Oracle (1) 1.1.2 Sybase (1) 1.1.3 SQL Server (1) 1.1.4 DB2 (2) 1.1.5 MySQL (2) 1.1.6 国产数据库 (2) 1.2 选择数据库软件产品的要素 (3) 1.2.1 性能 (3) 1.2.2 平台 (3) 1.2.3 价格 (3) 1.2.4 可用资源 (3) 1.2.5 建议方案 (4) 1.3 Oracle 11g数据库产品介绍 (4) 1.3.1 Oracle公司介绍 (4) 1.3.2 Oracle数据库产品发展阶段 (4) 1.3.3 Oracle认证体系 (5) 情境2 Oracle 11g数据库软件的安装与配置 (7) 2.1 任务分解 (7) 2.1.1 任务清单 (7) 2.1.2 任务分解 (7) 2.2 知识预备:Oracle 11g/10g版本介绍 (7) 2.2.1 Oracle 11g/10g网格计算简介 (7) 2.2.2 Oracle体系结构简介 (9) 2.2.3 Oracle数据库存储简介 (12) 2.3 任务1:如何在Windows操作系统下安装与 配置Oracle 11g服务器软件 (14) 2.3.1 安装之前的准备 (14) 2.3.2 开始安装Oracle数据库软件 (15) 2.3.3 思考与提高 (21) 2.3.4 实训练习 (21) 2.4 任务2:如何安装与配置Oracle 11g/10g客户端软件 (22) 2.5 任务3:如何访问远程服务器 (25) 2.5.1 Oracle 11g/10g网络配置概述 (25) 2.5.2 配置监听器 (26) 2.5.3 思考与提高 (27) 2.5.4 配置客户端 (29) 2.5.5 思考与提高 (31) 2.5.6 实训练习 (31) 2.6 技能拓展:在Linux下安装Oracle 11g服务器软件 (31) 2.6.1 在Linux下安装Oracle 11g服务器软件 (31) 2.6.2 思考与提高 (35) 情境3 网上购物系统的数据库环境设置 (37) 3.1 任务分解 (37) 3.1.1 任务清单 (37) 3.1.2 任务分解 (37) 3.2 任务1:创建网上购物系统的数据库 (37) 3.2.1 以DBCA方式创建数据库 (37) 3.2.2 数据库的启动与关闭 (47) 3.2.3 技能拓展:使用命令创建数据库 (50) 3.3 任务2:常用工具的使用 (52) 3.3.1 SQL*Plus的使用 (52) 3.3.2 企业管理中心的基本操作 (53) 3.3.3 SQL Developer的使用 (56) 3.4 任务3:创建网上购物系统所需的表空间 (56) 3.4.1 Oracle数据库体系结构 (56) 3.4.2 配置用于该系统的表空间 (57) 3.4.3 技能拓展:表空间的其他操作 (59) 3.5 实训练习 (61) 3.6 思考与提高 (61) 情境4 网上购物系统的用户权限管理 (63) 4.1 任务分解 (63) 4.1.1 任务清单 (63) 4.1.2 任务分解 (63) 4.2 Oracle的安全机制 (63) 4.3 任务1:设置购物系统的管理员 (64) 4.3.1 子任务1:创建概要文件 (64) 4.3.2 子任务2:创建用户 (66) 4.3.3 子任务3:系统权限管理 (67) 4.4 任务2:设置基础数据维护员 (69) 4.4.1 子任务1:创建用户 (69) 4.4.2 子任务2:设置系统权限 (70) 4.4.3 子任务3:设置对象权限 (71) 4.5 管理用户 (73) 4.5.1 修改用户 (73) 4.5.2 删除用户 (75) 4.6 角色管理 (76) 4.7 回收权限或角色 (77) 4.8 实训练习 (78) 4.9 技能拓展:查询用户、角色及所具有的权限 (78) 情境5 网上购物系统的数据库表的管理 (80) 5.1 任务分解 (80) 5.1.1 任务清单 (80) 5.1.2 任务分解 (80) 5.2 Oracle数据类型的介绍 (80) 5.2.1 Character 数据类型 (81) 5.2.2 Number数据类型 (82) 5.2.3 DATE 数据类型 (82) 5.2.4 其他数据类型 (83) 5.3 Oracle建表时的常见约束条件 (83) 5.3.1 PRIMARY KEY(主键) (83) 5.3.2 NOT NULL(非空) (85) 5.3.3 CHECK(检查约束) (85) 5.3.4 UNIQUE(唯一值) (87) 5.3.5 FOREIGN KEY(外键) (88) 5.3.6 技能拓展 (89) 5.4 创建表格 (90) 5.4.1 系统表格逻辑设计结构 (90) 5.4.2 任务1:基本表格的创建 (92) 5.4.3 任务2:大表格分区 (95) 5.4.4 复制表格 (96) 5.4.5 实训练习 (98) 5.5 表格的管理 (98) 5.5.1 任务3:增加用户表列 (98) 5.5.2 任务4:修改商品表列 (99) 5.5.3 任务5:删除采购金额列 (100) 5.5.4 管理表中的约束 (101) 5.5.5 表格的重命名和删除 (102) 5.5.6 技能拓展 (102) 5.5.7 实训练习 (102) 5.6 技能拓展:查看表格信息 (102) 5.7 附更改表结构SQL参考 (104) 情境6 网上购物系统数据的管理维护 (105) 6.1 任务分解 (105) 6.1.1 任务清单 (105) 6.1.2 任务分解 (106) 6.2 添加简单数据 (106) 6.2.1 任务1:商品类型数据的添加 (107) 6.2.2 任务2:用户数据的添加 (108) 6.2.3 任务3:商品数据的添加 (110) 6.2.4 实训练习 (111) 6.3 在添加数据中使用序列 (111) 6.3.1 序列的基本概念 (111) 6.3.2 任务4:供应商数据的添加 (112) 6.3.3 实训练习 (114) 6.4 在添加数据中使用子查询 (114) 6.4.1 任务5:采购数据的添加 (114) 6.4.2 任务6:订单数据的添加 (117) 6.4.3 技能拓展 (118) 6.4.4 实训练习 (119) 6.5 修改简单数据 (119) 6.5.1 任务7:修改商品信息 (120) 6.5.2 任务8:修改用户信息 (120) 6.5.3 任务9:修改商品单价 (121) 6.5.4 实训练习 (121) 6.6 在修改语句中使用子查询 (121) 6.6.1 任务10:修改采购单金额 (121) 6.6.2 任务11:修改供应商备注 (122) 6.6.3 实训练习 (122) 6.7 删除数据 (122) 6.7.1 任务12:删除商品数据 (123) 6.7.2 任务13:清空系统数据 (123) 6.7.3 任务14:truncate删除数据 (124) 6.8 事务处理commit和rollback (125) 情境7 网上购物系统的数据的查询 (129) 7.1 任务分解 (129) 7.1.1 任务清单 (129) 7.1.2 任务分解 (130) 7.2 查询简单数据 (130) 7.2.1 dual表的使用 (131) 7.2.2 任务1:查询商品类型 (132) 7.2.3 任务2:查询商品信息 (132) 7.2.4 任务3~7:带条件的数据查询 (133) 7.2.5 实训练习 (136) 7.3 常用函数的使用 (136) 7.3.1 任务8、9:常用字符串函数 (136) 7.3.2 任务10:常用数值函数 (139) 7.3.3 任务11~13:常用日期函数 (140) 7.3.4 常用转换函数 (142) 7.3.5 多行统计函数 (144) 7.3.6 实训练习 (145) 7.4 分组计算 (145) 7.4.1 任务14:分组汇总计算 (145) 7.4.2 任务15:分组汇总条件 (146) 7.4.3 实训练习 (147) 7.5 排序 (147) 7.6 多表连接 (148) 7.6.1 任务16、17:内连接 (149) 7.6.2 任务18:左外连接 (151) 7.6.3 补充任务:右外连接 (153) 7.6.4 实训练习 (154) 7.7 子查询 (155) 7.7.1 任务19:查询年龄最小的用户 (155) 7.7.2 任务20:当月有采购来往的供应商 (156) 7.7.3 任务21:将多表连接使用子查询实现 (157) 7.7.4 任务22:用户基本信息与统计信息 (157) 7.7.5 实训练习 (158) 7.8 集合查询 (158) 7.8.1 基本集合查询 (158) 7.8.2 任务23:集合采购单和订单 (160) 7.8.3 实训练习 (161) 7.9 视图和同义词的使用 (161) 7.9.1 视图的概念 (161) 7.9.2 任务24、25:视图的应用 (162) 7.9.3 同义词的使用 (163) 7.9.4 实训练习 (164) 7.10 技能拓展:正则表达式 (164) 情境8 网上购物系统的业务数据处理 (167) 8.1 任务分解 (167) 8.1.1 任务清单 (167) 8.1.2 任务分解 (168) 8.2 PL/SQL的基本应用 (168) 8.2.1 PL/SQL概念 (168) 8.2.2 任务1:调整商品折扣 (169) 8.2.3 任务2:输出采购单 (172) 8.2.4 PL/SQL基本结构总结 (175) 8.2.5 实训练习 (176) 8.3 函数在系统业务中的应用 (176) 8.3.1 任务3:订单金额的函数实现 (176) 8.3.2 任务4:商品单价的函数实现 (179) 8.3.3 任务5:单号构造函数实现 (180) 8.3.4 常见的函数运行错误 (182) 8.3.5 实训练习 (183) 8.4 过程在系统业务中的应用 (184) 8.4.1 任务6:新增采购单数据 (184) 8.4.2 任务7:修改采购单数据 (187) 8.4.3 任务8:审核采购单 (190) 8.4.4 任务9:审核采购单中的商品入库 (192) 8.4.5 任务10:订单审核 (197) 8.4.6 实训练习 (201) 8.5 触发器在系统业务中的应用 (202) 8.5.1 任务11:更新采购单据总金额 (202) 8.5.2 任务12:检验要删除的采购单 (207) 8.5.3 任务13:视图添加数据 (208) 8.5.4 实训练习 (210) 8.5.5 技能拓展 (210) 8.6 查看用户程序对象 (210) 情境9 网上购物系统的数据导入/导出 (213) 9.1 任务分解 (213) 9.1.1 任务清单 (213) 9.1.2 任务分解 (213) 9.2 知识预备:目录对象介绍 (213) 9.3 任务1:导出/导入dump文件数据 (215) 9.3.1 导出数据泵(expdp) (216) 9.3.2 导入数据泵(impdp) (220) 9.3.3 思考与提高 (222) 9.3.4 实训练习 (224) 9.4 任务2:导入/导出其他类型的文件数据 (225) 9.4.1 SQL*Loader原理 (225) 9.4.2 SQL*Loader使用举例 (227) 9.4.3 思考与提高 (234) 9.4.4 实训练习 (235) 情境10 网上购物系统的数据备份与恢复 (236) 10.1 任务分解 (236) 10.1.1 任务清单 (236) 10.1.2 任务分解 (236) 10.2 知识预备:RMAN工具介绍 (237) 10.2.1 归档模式 (237) 10.2.2 RMAN体系架构 (239) 10.3 任务1:使用RMAN备份数据 (242) 10.4 任务2:使用RMAN恢复数据 (251) 10.5 任务3:使用闪回功能 (255) 10.5.1 闪回数据库(Flashback Database) (256) 10.5.2 闪回删除(Flashback Drop) (258) 10.5.3 闪回表(Flashback Table) (261) 10.5.4 闪回版本查询(Flashback Version Query) (262) 10.5.5 闪回事务查询(Flashback Transaction Query) (263) 10.5.6 闪回查询(Flashback Query) (264) 10.6 思考与提高 (264) 10.7 实训练习 (265) 10.7.1 备份练习 (265) 10.7.2 恢复练习 (266) 10.7.3 闪回练习 (266) 附录A 正则表达式 (267) 附录B SQL*Plus命令的使用大全 (269) 附录C Oracle内置函数大全 (280) 附录D Oracle权限表 (293) 附录E Oracle标识符命名规则 (300) 参考文献 (301)
http://www.hxedu.com.cn/hxedu/fg/book/bookinfo.html?code=G0121620