全国高等职业教育计算机类规划教材·实例与实训教程系列

出版社:陈承欢 电子工业出版社 (2013-04出版)
ISBN:9787121200878

章节摘录

版权页:   插图:   ①DML锁(Data Locks,数据锁) DML锁用于并发访问时保护数据的完整性。在Oracle数据库中,DML锁又可以细分为TX锁和TM锁。TX锁为行级锁,也称为事务锁,当修改数据表中某行记录时,需要对将要修改的记录加行级锁,防止两个事务同时修改相同的记录,事务结束,该锁也会释放。该锁属于排他锁(X锁)。TM锁为表级锁,主要作用是防止在修改数据时,数据表结构发生变化。 在执行DML操作的时候,数据库会先申请数据对象上的共享锁,防止其他的会话对该对象执行DDL操作。一旦申请成功,则会对将要修改的记录申请排他锁,如果此时其他会话正在修改该记录,那么等待其他事务结束后再为修改的记录加上排他锁。 ②DDL锁(Dictionary Locks,字典锁) DDL锁用于保护数据库对象的结构,例如数据表、索引等的结构定义。当执行DDL操作时,首先Oracle会自动地隐式提交一次事务,然后自动地给处理对象加上锁;当DDL结束时,Oracle又会隐式地提交事务并释放DDL锁。与DML锁不同的是,用户不能显式地要求使用DDL锁。 ③内部闩锁(Internal Locks and Latches) 内部闩锁用于保护数据库的内部结构,完全自动调用。 3.锁等待与死锁 在某些情况下由于占用的资源不能及时释放,而造成锁等待,也可以称为锁冲突。锁等待会严重影响数据库性能和日常工作。例如,当一个会话修改数据表A的记录时,它会对该记录加锁,而此时如果另一个会话也来修改该记录,那么第2个会话将因得不到排他锁而一直等待,此时会出现执行SQL时数据库长时间没有响应的现象。直到第1个会话把事务提交,释放锁,第2个会话才能对数据进行操作。 死锁的发生与锁等待不同,它是锁等待的一个特例,通常发生在两个或多个会话之间。假设一个会话想要修改两个资源对象,可以是数据也可以是表列,修改这两个资源的操作在一个事务当中。当它修改第1个数据库对象时需要对其锁定,然后等待第2个对象,这时如果另外一个会话也需要修改这两个对象,并且已经获得并锁定了第2个对象,那么就会出现死锁,因为当前会话锁定了第1个对象等待第2个对象,而另一个会话却锁定了第2个对象并等待第1个对象。这样,两个会话都不能得到想要得到的对象,于是就会出现死锁。在日常工作中,如果发现日志文件中记录了ORA一00060的错误信息,则表明产生了死锁,这时需要找到对应的跟踪文件,根据跟踪文件的信息定位产生的原因。 出现锁等待和死锁现象时,应尽快地找出产生原因并对其进行处理,避免影响数据库性能。实际开发中出现此类情况一般有以下几种原因: (1)用户没有良好的编程习惯,偶尔会忘记提交事务,导致长时间占用系统资源。 (2)操作的记录过多,而且操作过程中没有很好地对其分组。 (3)逻辑错误导致两个会话都想得到已占用的资源。 如果操作的数据对象长时间没有响应,应该估计是锁阻塞的可能,此时可以利用Oracle的企业管理器OEM查看,及时终止会话。

书籍目录

单元1 安装与卸载Oraclellg数据库管理软件1 教学导航1 前导知识-心中有数1 操作演练-循序渐进3 1.1 获取Oracle11g的安装文件3 任务1—1从Oracle官方网站下载Oracle11g的安装文件3 1.2 Windows平台下安装Oracle11g5 任务1—2在Windows操作系统中安装Oracle11g5 1.3 Windows平台下卸载Oracle11g11 任务1—3在Windows操作系统中完全卸载Oracle11g12 考核实战-熟能生巧16 归纳总结16 单元习题16 单元2 试用Oracle的常用工具18 教学导航18 前导知识-心中有数18 操作演练-循序渐进23 2.1 试用SQLPlus字符界面管理工具23 任务2—1使用SQLPlus工具实现多项操作25 2.2 试用OracleEnterpriseManager企业管理器工具31 任务2—2在企业管理器OEM中查看SYSTEM方案中包含的对象32 2.3 试用OracleSQLDeveloper图形化工具33 任务2—3使用【OracleSQLDeveloper】浏览示例数据表34 考核实战-熟能生巧37 归纳总结37 单元习题38 单元3 认知Oracle数据库的体系结构39 教学导航39 前导知识-心中有数39 操作演练-循序渐进42 3.1 比较Oracle数据库与Oracle实例42 任务3—1查看当前数据库实例的信息43 3.2 认知Oracle数据库的物理结构44 任务3—2使用数据字典认知Oracle数据库的物理结构46 3.3 认知Oracle数据库的逻辑结构50 任务3—3使用数据字典认知Oracle数据库的逻辑结构52 3.4 认知Oracle的内存结构54 任务3—4使用数据字典查看数据库实例的内存结构信息55 3.5 认知Oracle的进程结构57 任务3—5使用数据字典查看Oracle系统的后台进程和数据库中的会话信息60 3.6 认知Oracle数据库的对象及其关系61 任务3—6查看Oracle数据库对象及相关信息64 考核实战-熟能生巧67 归纳总结67 单元习题68 单元4 创建与使用Oracle数据库69 教学导航69 前导知识-心中有数69 操作演练-循序渐进71 4.1 创建与配置Oracle监听器71 任务4—1使用netCA图形界面配置Oracle监听器71 4.2 创建Oracle数据库76 任务4—2使用DatabaseConfigurationAssistant工具创建数据库eCommerce76 4.3 启动与关闭Oracle数据库80 任务4—3启动与关闭数据库orcl81 考核实战-熟能生巧85 归纳总结85 单元习题85 单元5 创建与维护Oracle表空间87 教学导航87 前导知识-心中有数87 操作演练-循序渐进88 5.1 认识Oracle系统创建的表空间88 任务5—1查看Oracle数据库默认创建的表空间和Oracle的默认表空间88 5.2 创建表空间92 任务5—2使用企业管理器(OEM)创建基本表空间92 任务5—3在[SQLPlus]中使用命令方式创建表空间98 5.3 维护与删除表空间100 任务5—4使用企业管理器(OEM)维护与删除表空间100 任务5—5在【SQLPlus】中使用命令方式维护与删除表空间102 5.4 使用OracleEnterpriseManager创建用户111 任务5—6使用企业管理器(OEM)创建用户COMMERCE111 考核实战-熟能生巧113 归纳总结114 单元习题114 单元6 创建与维护Oracle数据表116 教学导航116 前导知识-心中有数116 操作演练-循序渐进118 6.1 查看Oracle数据表的结构和记录118 任务6—1使用SQLPlus查看方案SCOTT中的数据表EMP118 任务6—2使用OEM查看方案SCOTT中的数据表EMP119 6.2 使用企业管理器(OEM)创建与维护Oracle数据表120 任务6—3使用OEM创建“商品信息表”120 任务6—4使用OEM修改“商品信息表”的结构123 任务6—5使用OEM查看“商品信息表”的结构数据124 任务6—6使用OEM删除Oracle数据表125 6.3 使用OracleSQLDeveloper创建与维护Oracle数据表125 任务6—7使用【OracleSQLDeveloper】创建“客户信息表”126 任务6—8使用【OracleSQLDeveloper】查看“客户信息表”128 任务6—9使用【OracleSQLDeveloper】修改“客户信息表”的结构128 任务6—10使用【OracleSQLDeveloper】新增与修改“客户信息表”的记录129 任务6—11使用【OracleSQLDeveloper】从Excel文件中导入“客户类型表”和“商品类型表”中的数据130 任务6—12使用【OracleSQLDeveloper】删除Oracle数据表132 6.4 使用命令方式创建与维护Oracle数据表132 任务6—13在SQLPlus中使用命令方式创建“用户类型表”133 任务6—14在SQLPlus中执行sql脚本创建“用户表”134 任务6—15在【OracleSQLDeveloper】中使用命令方式创建“购物车商 品表”135 任务6—16在【OracleSQLDeveloper】中使用命令方式修改“用户表”的 结构136 任务6—17在【OracleSQLDeveloper】中使用命令方式删除Oracle数据表137 6.5 使用命令方式操纵Oracle数据表的记录138 任务6—18在【OracleSQLDeveloper】中使用命令方式新增“用户表”的 记录138 任务6—19在【OracleSQLDeveloper】中使用命令方式修改“商品信息表”和“用户表”的记录139 任务6—20在【OracleSQLDeveloper】中使用命令方式删除Oracle数据表的 记录140 6.6 创建与使用Oracle的序列140 任务6—21使用企业管理器(OEM)创建与维护“客户类型ID”序列142 任务6—22在【OracleSQLDeveloper】中使用命令方式创建与维护“用户ID”序列143 任务6—23向“用户表”添加记录时应用“用户ID”序列生成自动编号144 6.7 实施数据表的数据完整性和约束145 任务6—24使用OEM实施“订单主表”和“订单明细表”的数据完整性 和约束147 任务6—25在【OracleSQLDeveloper】图形界面中使用交互方式实施“部门信息表”的数据完整性和约束152 任务6—26在【OracleSQLDeveloper】中使用命令方式实施“员工信息表”和“购物车商品表”的数据完整性和约束155 6.8 创建与使用Oracle的同义词161 任务6—27使用企业管理器(OEM)创建与维护“用户表”的同义词161 任务6—28在【OracleSQLDeveloper】中使用命令方式创建与维护序列“userID_seq” 的同义词163 任务6—29利用同义词查询指定用户信息考核实战-熟能生巧163 归纳总结165 单元习题165 单元7 检索与操作Oracle数据表的数据166 教学导航166 前导知识-心中有数166 操作演练-循序渐进168 7.1 创建与使用基本查询168 任务7—1选择数据表所有的列168 任务7—2选择数据表指定的列169 任务7—3查询时更改列标题169 任务7—4查询时使用计算列170 任务7—5使用dual表查询系统变量或表达式值170 任务7—6使用Distinct选择不重复的行171 任务7—7使用Rownum获取数据表中前面若干行172 任务7—8使用Where子句实现条件查询172 任务7—9使用聚合函数实现查询175 任务7—10使用OrderBy子句对查询结果排序176 任务7—11查询时使用GroupBy子句进行分组177 任务7—12查询时使用Having子句进行分组统计177 7.2 创建与使用连接查询178 任务7—13创建两个数据表之间的连接查询179 任务7—14创建多表连接查询180 任务7—15创建等值内连接查询181 任务7—16创建非等值连接查询和自连接查询181 任务7—17创建左外连接查询182 任务7—18创建右外连接查询183 任务7—19创建完全外连接查询183 7.3 创建与使用子查询184 任务7—20创建与使用单值子查询184 任务7—21创建与使用多值子查询185 任务7—22创建与使用相关子查询186 7.4 创建与使用联合查询187 任务7—23创建与使用联合查询187 7.5 创建与使用视图188 任务7—24使用OEM创建与维护“商品信息_view”视图190 任务7—25创建基于多个数据表的视图“客户信息_VIEW”192 任务7—26创建包含计算列的复杂视图“商品金额_VIEW”193 任务7—27通过视图“商品金额_VIEW”获取符合指定条件的商品数据193 任务7—28通过视图“商品信息_VIEW”插入与修改商品数据194 7.6 创建与维护索引194 任务7—29使用OEM创建与维护Oracle的索引“商品名称_IX”196 任务7—30在SQLDeveloper中使用命令方式创建与维护索引“订单商品_IX”198 考核实战-熟能生巧199 归纳总结200 单元习题200 单元8编写PL/SQL程序处理Oracle数据库的数据201 教学导航201 前导知识-心中有数201 操作演练-循序渐进217 8.1应用Oracle的系统函数编写PL/SQL程序217 任务8—1编写PL/SQL程序计算商品优惠价格217 任务8—2编写PL/SQL程序限制密码长度不得少于6个字符218 任务8—3删除用户名字符串中多余的空格219 8.2创建与操作游标221 任务8—4使用游标从“员工信息表”中读取指定部门的员工信息223 任务8—5使用游标从“用户表”中读取全部用户信息224 8.3创建与使用自定义函数225 任务8—6创建且调用计算密码已使用天数的函数getGap226 任务8—7创建并调用返回登录提示信息的函数227 8.4创建与使用存储过程229 任务8—8创建通过类型名称获取商品数据的存储过程productByCategory232 任务8—9创建在购物车中更新数量或新增商品的存储过程233 任务8—10获取已有订单中最新的订单编号234 任务8—11创建计算购物车中指定客户的总金额的存储过程234 8.5创建与执行触发器235 任务8—12使用触发器自动为“用户表”主键列赋值238 任务8—13创建更新型触发器限制无效数据的更新239 任务8—14创建作用在视图上的InsteadOf触发器240 任务8—15为记录当前用户的操作情况创建语句级触发器241 任务8—16创建记录对象创建日期和操作者的DDL触发器242 任务8—17为System用户创建一个记录用户登录信息的系统事件触发器242 8.6使用事务与锁243 8.6.1事务处理243 8.6.2使用锁245 任务8—18使用事务提交订单和删除购物车中的相关数据246 任务8—19演示锁等待和死锁的发生248 8.7创建与使用程序包252 任务8—20创建程序包增加指定类型的商品信息254 考核实战-熟能生巧256 归纳总结256 单元习题256 单元9维护Oracle数据库系统和数据的安全258 教学导航258 前导知识-心中有数258 操作演练-循序渐进260 9.1用户管理260 任务9—1创建数据库用户better262 9.2角色管理与权限管理263 任务9—2创建角色green_role并授权267 任务9—3为用户“BETTER”授予新角色和系统权限270 9.3创建与分配概要文件272 任务9—4创建概要文件Green_Profile并分配给用户better272 9.4管理控制文件和日志文件274 任务9—5使用企业管理器OEM添加日志文件组和日志文件278 9.5备份与恢复数据282 任务9—6设置和验证首选身份证明和数据库首选身份证明283 任务9—7在企业管理器OEM中对orcl数据库进行定制备份286 任务9—8使用命令方式备份数据库的控制文件288 9.6导入与导出数据289 任务9—9使用企业管理器OEM导出“用户表”中的数据289 任务9—10使用【OracleSQLDeveloper】导出“用户表”295 考核实战-熟能生巧295 归纳总结296 单元习题296 单元10设计Oracle数据库及应用程序298 教学导航298 前导知识-心中有数298 操作演练-循序渐进303 10.1分析与设计数据库303 任务10—1分析与设计网上购物数据库303 10.2基于Java平台数据库应用程序设计311 10.2.1JDBC简介311 10.2.2使用JDBC访问数据库313 10.2.3JDBC的Statement对象313 10.2.4JDBC的ResultSet对象315 10.2.5JDBC的PreparedStatement对象315 10.2.6JDBC的CallableStatement对象316 任务10—2创建Oracle数据库的存储过程getUserInfo317 任务10—3Java平台中测试JDBC方式连接Oracle数据库317 任务10—4使用JDBC方式从Oracle数据库的“用户表”中获取并输出指定用户的密码319 任务10—5使用JDBC方式从“用户表”中提取用户数据319 任务10—6使用JDBC方式获取指定用户的类型名称320 任务10—7使用JDBC方式实现用户注册功能和修改密码功能321 考核实战-熟能生巧324 归纳总结324 单元习题324 参考文献326

编辑推荐

《全国高等职业教育计算机类规划教材•实例与实训教程系列:Oracle 11g数据库应用、设计与管理》可以作为普通高等院校、高等或中等职业院校和高等专科院校各专业Oracle11g数据库应用、设计与管理的教材,也可以作为Oracle的培训教材及自学参考书。


 全国高等职业教育计算机类规划教材·实例与实训教程系列下载



发布书评

 
 


 

外国儿童文学,篆刻,百科,生物科学,科普,初中通用,育儿亲子,美容护肤PDF图书下载,。 零度图书网 

零度图书网 @ 2024