Oracle实用教程(第4版)(Oracle 11g版)pdf/doc/txt格式电子书下载
本站仅展示书籍部分内容
如有任何咨询
请加微信10090337咨询
书名:Oracle实用教程(第4版)(Oracle 11g版)pdf/doc/txt格式电子书下载
推荐语:
作者:郑阿奇编
出版社:电子工业出版社
出版时间:2015-12-01
书籍编号:30468271
ISBN:9787121275722
正文语种:中文
字数:175675
版次:4
所属分类:教材教辅-大学
版权信息
书名:Oracle实用教程(第4版)(Oracle 11g版)
作者:郑阿奇
ISBN:9787121275722
版权所有 · 侵权必究
前言
Oracle是目前最流行的关系型数据库管理系统之一,广泛应用于信息系统管理、企业数据处理、Internet、电子商务网站等领域。
本书以Oracle 11g(中文版)为平台,分别介绍Oracle基础和在流行平台上开发Oracle数据库应用系统。Oracle基础部分比较系统地介绍了Oracle 11g的主要功能。首先介绍数据库基础、Oracle 11g数据库;然后介绍数据库的创建和操作,数据库的查询和视图,索引与数据完整性,PL/SQL语言,存储过程和触发器,系统安全管理,表空间、备份和恢复,事务、锁、闪回和Undo表空间,其他概念。流行平台分为3种,开发的Oracle数据库应用系统均为学生成绩管理系统。
本书主要特点如下。
(1)介绍数据库最基本的原理、驱动、接口,从总体上理清思路,便于学生理解。
(2)Oracle基础部分采用中文命令格式,从而使语法描述变得简洁,更容易掌握。实例数据库表字段名为汉字,方便教学。
(3)运行结果屏幕化,一般不会出现命令错误。书中的内容层次更加清楚,由浅及深,易于掌握。
(4)包含目前最流行的PHP 5、JavaEE 7和ASP.NET 4等平台操作Oracle 11g数据库。每个平台都介绍了连接数据库的基本知识、操作Oracle数据库的主要方法,并且构成了一个小的应用系统,网上提供源代码和数据库免费下载,很容易让读者模仿和掌握开发Oracle数据库应用系统。
本教程不仅适合教学,也适合Oracle的各类培训和用Oracle编程开发应用程序的用户学习和参考。
本书由南京师范大学郑阿奇主编,周敏、张洁编著。参加本书编写的还有梁敬东、丁有和、曹弋、陈瀚、徐文胜、殷红先、张为民、姜乃松、钱晓军、彭作民、高茜、陈冬霞、徐斌、王志瑞、孙德荣、周怡明、刘博宇、郑进、周何骏、陶卫冬、严大牛、邓拼搏、俞琰、吴明祥、于金彬、马骏等。此外,还有许多同志对本书提供了很多帮助,在此一并表示感谢!
由于作者水平有限,不当之处在所难免,恳请读者批评指正。
意见建议邮箱:easybooks@163.com
作者
2015年9月
第1部分 实用教程
第1章 数据库基础
Oracle是甲骨文公司开发的数据库管理系统,Oracle 11g仍然是目前最流行的Oracle数据库管理系统版本。在介绍Oracle数据库之前,首先介绍数据库的基本概念。
1.1 数据库基本概念
1.1.1 数据库系统
1.数据库
数据库(DB)是存放数据的仓库,而且这些数据存在一定的关联,并按一定的格式存放在计算机内。例如,把一个学校的学生、课程、成绩等数据有序地组织并存放在计算机内,就可以构成一个数据库。
2.数据库管理系统
数据库管理系统(DBMS)按一定的数据模型组织数据形成数据库,并对数据库进行管理。简单地说,DBMS 就是管理数据库的系统(软件)。数据库系统管理员(DataBase Administrator,DBA)通过DBMS对数据库进行管理。
目前,比较流行的DBMS有:Oracle、SQL Server、MySQL、Sybase、DB2、Access、Visual FoxPro等。其中,Oracle是目前最流行的大型关系数据库管理系统。本书介绍的是最新的Oracle 11g版。
3.数据库系统
数据、数据库、数据库管理系统与操作数据库的应用程序,加上支撑它们的硬件平台、软件平台和与数据库有关的人员一起构成了一个完整的数据库系统。如图1.1所示描述了数据库系统的构成。
图1.1 数据库系统的构成
1.1.2 数据模型
数据库管理系统根据数据模型对数据进行存储和管理,数据库管理系统采用的数据模型主要有层次模型、网状模型和关系模型。
1.层次模型
层次模型将数据组织成一对多关系的结构,采用关键字来访问其中每一层次的每一部分。它存取方便且速度快;结构清晰,容易理解;数据修改和数据库扩展容易实现;检索关键属性十分方便。但结构不够灵活;同一属性数据要存储多次,数据冗余大;不适合于拓扑空间数据的组织。
如图1.2所示为按层次模型组织的数据示例。
图1.2 按层次模型组织的数据示例
2.网状模型
网状模型具有多对多类型的数据组织方式。它能明确而方便地表示数据间的复杂关系;数据冗余小。但网状结构的复杂增加了用户查询和定位的困难;需要存储数据间联系的指针,使得数据量增大;数据的修改不方便。
如图1.3所示为按网状模型组织的数据示例。
图1.3 按网状模型组织的数据示例
3.关系模型
关系模型以记录组或二维数据表的形式组织数据,以便于利用各种实体与属性之间的关系进行存储和变换,不分层也无指针,是建立空间数据和属性数据之间关系的一种非常有效的数据组织方法。它的结构特别灵活,概念单一,满足所有布尔逻辑运算和数学运算规则形成的查询要求;能搜索、组合和比较不同类型的数据;增加和删除数据非常方便;具有更高的数据独立性、更好的安全保密性。但数据库大时,查找满足特定关系的数据费时;而且无法表达空间关系。
例如,在学生成绩管理系统所涉及的“学生”、“课程”和“成绩”三个表中,“学生”表涉及的主要信息有学号、姓名、性别、出生时间、专业、总学分、备注;“课程”表涉及的主要信息有课程号、课程名、开课学期、学时和学分;“成绩”表涉及的主要信息有学号、课程号和成绩。如表1.1、表1.2和表1.3所示分别描述了学生成绩管理系统中“学生”、“课程”和“成绩”三个表的部分数据。
表1.1“学生”表

表1.2“课程”表

表1.3“成绩”表

表格中的一行称为一个记录,一列称为一个字段,每列的标题称为字段名。如果给每个关系表取一个名字,则有n个字段的关系表的结构可表示为:关系表名(字段名1,…,字段名n),通常把关系表的结构称为关系模式。
在关系表中,如果一个字段或几个字段组合的值可唯一标识其对应记录,则称该字段或字段组合为码。
例如,表1.1中的“学号”可唯一标识每一个学生,表1.2中的“课程号”可唯一标识每一门课。表1.3中的“学号”和“课程号”可唯一标识每一个学生一门课程的成绩。
有时,一个表可能有多个码,比如表1.1中,姓名不允许重名,则“学号”、“姓名”均是学生信息表码。对于每一个关系表,通常可指定一个码为“主码”,在关系模式中,一般用下画线标出主码。
设表1.1的名字为xsb,关系模式可分别表示为:xsb(学号,姓名,性别,出生时间,专业,总学分,备注)。
设表1.2的名字为kcb,关系模式可分别表示为:kcb(课程号,课程名,开课学期,学时,学分)。
设表1.3的名字为cjb,关系模式可分别表示为:cjb(学号,课程号,成绩,学分)。
通过上面分析可以看出,关系模型更适合组织数据,所以使用最广泛。Oracle是目前最流行的大型关系数据库管理系统。
1.1.3 关系型数据库语言
SQL(Structured Query Language,结构化查询语言)是用于关系数据库查询的结构化语言。SQL的功能包括数据定义语言(DDL)、数据操纵语言(DML)、数据控制语言(DCL)和数据查询语言(DQL)。
(1)数据定义语言(DDL)。DDL用于执行数据库的任务,对数据库以及数据库中的各种对象进行创建、删除、修改等操作。如前所述,数据库对象主要包括表、默认约束、规则、视图、触发器、存储过程。DDL包括的主要语句及功能如表1.4所示。
表1.4 DDL包括的主要语句及功能

(2)数据操纵语言(DML)。DML用于操纵数据库中的各种对象,检索和修改数据。DML包括的主要语句及功能如表1.5所示。
表1.5 DML包括的主要语句及功能

(3)数据控制语言(DCL)。DCL用于安全管理,确定哪些用户可以查看或修改数据库中的数据。DCL包括的主要语句及功能如表1.6所示。
表1.6 DCL包括的主要语句及功能

(4)数据查询语言(DQL)。主要通过SELECT语言实现各种查询功能。
目前,许多关系型数据库管理系统均支持SQL语言,如Oracle、SQL Server、MySQL等。但不同数据库管理系统之间的SQL语言不能完全通用。例如,甲骨文公司的Oracle 数据库所使用的SQL语言是 Procedural Language/SQL(简称 PL/SQL),而微软公司的 SQL Server 数据库系统支持的则是Transact-SQL(简称T-SQL)。PL/SQL是ANSI SQL的扩展加强版SQL语言,除了提供标准的SQL命令之外,还对SQL做了许多补充。
1.2 数据库设计
数据模型按不同的应用层次分成三种类型:概念数据模型、逻辑数据模型、物理数据模型。
1.2.1 概念数据模型
概念数据模型(Conceptual Data Model)是面向数据库用户的实现世界的模型,主要用来描述世界的概念化结构,它使数据库的设计人员在设计的初始阶段,摆脱计算机系统及DBMS的具体技术问题,集中精力分析数据以及数据之间的联系等,与具体的数据管理系统无关。概念数据模型必须换成逻辑数据模型,才能在DBMS中实现。
概念数据模型用于信息世界的建模:一方面,应该具有较强的语义表达能力,能够方便直接表达应用中的各种语义知识;另一方面,它还应该简单、清晰、易于用户理解。在概念数据模型中最常用的是E-R模型、扩充的E-R模型、面向对象模型及谓词模型。
通常,E-R模型把每一类数据对象的个体称为“实体”,而每一类对象个体的集合称为“实体集”,例如,在学生成绩管理系统中主要涉及“学生”和“课程”两个实体集。其他非主要的实体可以很多,如班级、班长、任课教师、辅导员等实体。
把每个实体集涉及的信息项称为属性。就“学生”实体集而言,它的属性有:学号、姓名、性别、出生时间、专业、总学分和备注。“课程”实体集属性有:课程号、课程名、开课学期、学时和学分。
实体集中的实体彼此是可区别的。如果实体集中的属性或最小属性组合的值能唯一标识其对应实体,则将该属性或属性组合称为码。码可能有多个,对于每一个实体集,可指定一个码为主码。
如果用矩形框表示实体集,用带半圆的矩形框表示属性,用线段连接实体集与属性,当一个属性或属性组合指定为主码时,在实体集与属性的连接线上标记一斜线,则可以用如图 1.4 所示的形式描述学生成绩管理系统中的实体集及每个实体集涉及的属性。
实体集A和实体集B之间存在各种关系,通常把这些关系称为“联系”。通常,将实体集及实体集联系的图表示称为实体(Entity)-联系(Relationship)模型。
E-R图就是E-R模型的描述方法,即实体-联系图。通常,关系数据库的设计者使用E-R图来对信息世界建模。在E-R图中,使用矩形表示实体型,使用椭圆表示属性,使用菱形表示联系。从分析用户项目涉及的数据对象及数据对象之间的联系出发,到获取E-R图的这一过程称为概念结构设计。
两个实体集A和B之间的联系可能是以下三种情况之一。
1.一对一的联系(1∶1)
A中的一个实体至多与B中的一个实体相联系,B中的一个实体也至多与A中的一个实体相联系。例如,“班级”与“班长”这两个实体集之间的联系是一对一的联系,因为一个班级只有一个班长,反过来,一个班长只属于一个班级。“班级”与“班长”两个实体集的E-R模型如图1.5所示。
2.一对多的联系(1∶n)
A中的一个实体可以与B中的多个实体相联系,而B中的一个实体至多与A中的一个实体相联系。例如,“班级”与“学生”这两个实体集之间的联系是一对多的联系,因为一个班级可有若干学生,反过来,一个学生只能属于一个班级。“班级”与“学生”两个实体集的E-R模型如图1.6所示。
3.多对多的联系(m∶n)
A中的一个实体可以与B中的多个实体相联系,而B中的一个实体也可与A中的多个实体相联系。例如,“学生”与“课程”这两个实体集之间的联系是多对多的联系,因为一个学生可选多门课程,反过来,一门课程可被多个学生选修。“学生”与“课程”两个实体集的E-R模型如图1.7所示。
图1.4 学生和课程实体集属性的描述
图1.5“班级”与“班长”两个实体集的E-R模型
图1.6“班级”与“学生”两个实体集的E-R模型
图1.7“学生”与“课程”两个实体集的E-R模型
1.2.2 逻辑数据模型
逻辑数据模型(Logical Data Model)是用户从数据库所看到的模型,是具体的DBMS所支持的数据模型。此模型既要面向用户,又要面向系统,主要用于数据库管理系统(DBMS)的实现。
前面用E-R图描述学生成绩管理系统中实体集与实体集之间的联系,为了设计关系型的学生成绩管理数据库,需要确定包含哪些表?每个表的结构是怎样的?
前面已介绍了实体集之间的联系,下面将根据三种联系从E-R图获得关系模式的方法。
1.(1∶1)联系的E-R图到关系模式的转换
对于(1∶1)的联系,既可单独对应一个关系模式,也可以不单独对应一个关系模式。
(1)联系单独对应一个关系模式,则由联系属性、参与联系的各实体集的主码属性构成关系模式,其主码可选参与联系的实体集的任一方的主码。
例如,考虑图1.5描述的“班级(bjb)”与“班长(bzb)”实体集通过属于(syb)联系E-R模型,可设计如下关系模式(下画线表示该字段为主码):
bjb(班级编号,院系,专业,人数)
bzb(学号,姓名)
syb(学号,班级编号)
(2)联系不单独对应一个关系模式,联系的属性及一方的主码加入另一方实体集对应的关系模式中。
例如,考虑图1.5描述的“班级(bjb)”与“班长(bzb)”实体集通过属于(syb)联系E-R模型,可设计如下关系模式:
bjb(班级编号,院系,专业,人数)
bzb(学号,姓名,班级编号)
或者:
bjb(班级编号,院系,专业,人数,学号)
bzb(学号,姓名)
2.(1∶n)联系的E-R图到关系模式的转换
对于(1∶n)的联系,既可单独对应一个关系模式,也可以不单独对应一个关系模式。
(1)联系单独对应一个关系模式,则由联系的属性、参与联系的各实体集的主码属性构成关系模式,n端的主码作为该关系模式的主码。
例如,考虑图1.6描述的“班级(bjb)”与“学生(xsb)”实体集E-R模型,可设计如下关系模式:
bjb(班级编号,院系,专业,人数)
xsb(学号,姓名,性别,出生时间,专业,总学分,备注)
syb(学号,班级编号)
(2)联系不单独对应一个关系模式,则将联系的属性及1端的主码加入n端实体集对应的关系模式中,主码仍为n端的主码。
例如,图1.6描述的“班级(bjb)”与“学生(xsb)”实体集E-R模型可设计如下关系模式:
bjb(班级编号,院系,专业,人数)
xsb(学号,姓名,性别,出生时间,专业,总学分,备注,班级编号)
3.(m∶n)联系的E-R图到关系模式的转换
对于(m∶n)的联系,单独对应一个关系模式,该关系模式包括联系的属性、参与联系的各实体集的主码属性,该关系模式的主码由各实体集的主码属性共同组成。
例如,图1.7描述的“学生(xsb)”与“课程(kcb)”实体集之间的联系可设计如下关系模式:
xsb(学号,姓名,性别,出生时间,专业,总学分,备注)
kcb(课程号,课程名称,开课学期,学时,学分)
cjb(学号,课程号,成绩)
关系模式cjb 的主码是由“学号”和“课程号”两个属性组合起来构成的一个主码,一个关系模式只能有一个主码。
至此,已介绍了根据E-R图设计关系模式的方法。通常,这一设计过程称为逻辑结构设计。
在设计好一个项目的关系模式后,就可以在数据库管理系统环境下,创建数据库、关系表及其他数据库对象,输入相应数据,并根据需要对数据库中的数据进行各种操作。
1.2.3 物理数据模型
物理数据模型(Physical Data Model)是面向计算机物理表示的模型,描述了数据在储存介质上的组织结构,它不但与具体的DBMS有关,而且还与操作系统和硬件有关。每一种逻辑数据模型在实现时都有其对应的物理数据模型。DBMS为了保证其独立性与可移植性,大部分物理数据模型的实现工作由系统自动完成,而设计者只设计索引、聚集等特殊结构。
1.3 数据库应用系统
1.3.1 应用系统的数据接口
客户端应用程序或应用服务器向数据库服务器请求服务时,首先必须和数据库建立连接。虽然现有DBMS几乎都遵循SQL标准,但不同厂家开发的DBMS有差异,存在适应性和可移植性等方面的问题,为此,人们研究和开发了连接不同DBMS的通用方法、技术和软件接口。
需要注意的是,同一DBMS,不同平台开发操作DBMS需要对应的驱动程序。例如,在用PHP、JavaEE、ASP.NET开发操作Oracle数据库时,需要分别安装对应版本的驱动程序。驱动程序可以通过DBMS对应的官方网站进行下载。另外,有些ASP.NET开发平台已经包含了该平台操作有关DBMS版本的驱动程序,这时,针对该平台的DBMS版本的驱动程序可以不需要另外安装。本书实习部分将详细介绍在PHP、JavaEE、ASP.NET平台操作Oracle 11g的驱动程序的安装和使用。
1.3.2 C/S架构的应用系统
DBMS通过命令和适合专业人员的界面操作数据库。对于一般的数据库应用系统,除了DBMS外,还需要设计适合普通人员操作数据库的界面。目前,开发数据库界面的工具有Visual Basic、Visual C、Visual C#、QT、PowerBuilder、Deiphi等。应用程序与数据库、数据库管理系统之间的关系如图1.8所示。
图1.8 三个关系
从图1.8中可看出,当应用程序需要处理数据库中的数据时,首先向数据库管理系统发送一个数据请求,数据库管理系统接收到这一请求后,对其进行分析;然后执行数据库操作,并把处理结果返回给应用程序。由于应用程序直接与用户交互,而数据库管理系统不直接与用户打交道,所以应用程序被称为“前台”,而数据库管理系统被称为“后台”。由于应用程序是向数据库管理系统提出服务请求的,通常称为客户程序(Client);而数据库管理系统是为应用程序提供服务的,通常称为服务器程序(Server),所以又将这一操作数据库的模式称为C/S(客户/服务器)架构。
应用程序和数据库管理系统可以运行在同一台计算机上(单机方式),也可以运行在网络环境下。在网络环境下,数据库管理系统在网络中的一台主机(一般是服务器)上运行,应用程序可以在网络上的多台主机上运行,即一对多的方式。
例如,用Visual C#2013开发的客户-服务器(C/S)模式的学生成绩管理系统界面如图1.9所示。
图1.9 C/S模式的学生成绩管理系统界面
1.3.3 B/S架构的应用系统
基于Web的数据库应用采用三层(浏览器/Web服务器/数据库服务器)模式,也称B/S架构,如图1.10所示。其中,浏览器(Browser)是用户输入数据和显示结果的交互界面,用户在浏览器表单中输入数据,然后将表单中的数据提交并发送到Web服务器,Web服务器接收并处理用户的数据,通过数据库服务器,从数据库中查询需要的数据(或把数据录入数据库)后将这些数据回送到Web服务器,Web服务器把返回的结果插入HTML页面,传送给客户端,在浏览器中显示出来。
图1.10 三层B/S架构
目前,流行的开发数据库Web界面的工具主要有ASP.NET(C#)、PHP、JavaEE等。例如,用JavaEE开发的B/S架构的学生成绩管理系统,其学生信息录入界面如图1.11所示。
图1.11 B/S架构的学生成绩管理系统界面
第2章 Oracle 11g数据库介绍
Oracle是目前世界上使用最为广泛的关系型数据库管理系统,在数据库领域一直处于领先地位,多被用在信息系统管理、企业数据处理、Internet 和电子商务网站等领域作为应用数据的后台处理系统,当前最主流的版本为Oracle 11g。
2.1 Oracle 11g简介与安装
2.1.1 Oracle 11g数据库简介
1979年,甲骨文公司推出当时世界上第一个基于SQL标准的关系数据库产品Oracle 1,之后不断完善,2001年发布Oracle 9i,Oracle数据库已经被广泛移植到各类大、中、小、微机环境和平台上。接着推出的Oracle 10g,在数据库性能、可用性和管理能力上都有了极大的增强。随着互联网普及,甲骨文公司的产品发展战略也转而针对网络和云,进行了全面的升级。2007年7月,甲骨文发布了Oracle 11g,它是数据库领域最优秀的产品之一,经过1500万个小时的测试,开发工作量达到了3.6万人/月。Oracle 11g能更方便地在由低成本服务器和存储设备组成的网格上运行,它在继承了前版Oracle 10g的基础上又增加了400多项新特性,如改进本地Java和PL/SQL编译器、数据库修复向导等。目前最新的Oracle版本是于2013年6月发布的Oracle 12c,但它是面向云平台的产品,实际工作中用得最多的仍然是Oracle 11g,它是当前的主流。
2.1.2 Oracle 11g的安装
1.安装前的准备
登录(需要先注册)甲骨文官方网站:http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html,免费下载Oracle 11g的安装包(共两个文件,大小约合2.1GB),如图2.1所示。下载得到的两个压缩包文件名为:win32_11gR2_database_1of2.zip 和 win32_11gR2_database_2of2.zip,将它们解压到同一个目录(database)下,然后双击解压目录中的setup.exe,软件会加载并初步校验系统是否达到Oracle 11g安装的最低要求,只有达到要求,才会继续加载程序并开始安装。安装时,计算机要始终保持连接互联网。
图2.1 下载Oracle 11g的安装包
2.安装过程
(1)开始安装后,首先出现如图2.2所示的“配置安全更新”窗口,取消勾选“我希望通过My Oracle Support接收安全更新”,在“电子邮件”栏中填写邮件地址(登录甲骨文官网时注册的),单击“下一步”按钮。
图2.2“配置安全更新”窗口
(2)在“选择安装选项”窗口中选择“创建和配置数据库”,如图2.3所示,单击“下一步”按钮。
图2.3“选择安装选项”窗口
(3)在“系统类”窗口中根据介绍选择软件安装的类型,如图2.4所示。因本书安装Oracle不是用于生产而是仅用于教学,故这里选择“桌面类”,单击“下一步”按钮。
(4)在“典型安装配置”窗口中,选择Oracle的基目录、软件安装路径和数据库文件的存放路径,并选择要安装的数据库版本和字符集(一般都采取默认选项,但须记下以便日后使用),如图2.5所示。稍后安装时,系统会创建一个名为orcl的默认数据库,这里为它设置管理口令为Mm123456,单击“下一步”按钮。
图2.4“系统类”窗口
图2.5“典型安装配置”窗口
注意:
Oracle 11g 对用户的口令强度有着严格要求,规范的标准口令组合为:小写字母+数字+大写字母(顺序不限),且字符长度还必须保持在Oracle数据库要求的范围之内。系统对此强制检查,用户只有输入了符合规范的口令字符串才被允许继续下面的操作。
设置好后将进行检查,在“执行先决条件检查”窗口中,单击“下一步”按钮。
(5)若上一步检查没有问题,就会生成安装设置概要信息,如图2.6所示,可保存这些信息到本地,方便以后查阅。在这步确认后,单击“完成”按钮,系统将依据这些配置开始执行整个安装进程。
图2.6“概要”窗口
(6)安装完成后,会弹出如图2.7所示的对话框。
图2.7 修改管理口令
单击“口令管理”按钮,在弹出的窗口中解锁以下用户账户并修改其口令。
① SYS(超级管理员),口令改为:Change_on_install123。
② SYSTEM(普通管理员),口令改为:Manager123。
③ SCOTT(普通用户),口令改为:Mm123456。
这里的口令也是需要符合oracle口令规范的,请参考前面设置默认数据库管理口令的方式。修改完成,单击“确定”按钮。
(7)若安装成功,会出现如图2.8所示的界面,单击“关闭”按钮即可。
图2.8
....
本站仅展示书籍部分内容
如有任何咨询
请加微信10090337咨询