第1章Oracle11g数据库系统
- 格式:doc
- 大小:1.45 MB
- 文档页数:20
目录第一章Oracle 11g简介_安装_sqlplus应用 (1)1.1网格计算: (1)1.2安装 (1)1.3 sqlplus (1)1.3.1 更新内容 (1)1.3.2 sqlplus与sqlplusw操作方面的区别 (2)1.4 DBCA (2)2.0数据库的使用层次 (2)第一章Oracle 11g简介_安装_sqlplus应用Oracle数据库是Oracle公司出品的十分优秀的DBMS,当前Oracle DBMS以及相关的产品几乎在全世界各个工业领域中都有应用。
无论是大型企业中的数据仓库应用,还是中小型的联机事务处理业务,都可以找到成功使用Oracle数据库系统的典范。
到目前为止,11g 是Oracle数据库的最新版本,它是在10g的基础上对企业级网格计算进行了扩展,提供了众多特性支持企业网格计算。
1.1网格计算:Oracle 10g/11g中的g代表网格计算,Oracle数据库作为第一个为企业级网格计算而设计的数据库,为管理信息和应用提供了最灵活的、成本最低的方式。
例如,通过Oracle网格计算,可以在几个互联的数据库服务器网格上运行不同的应用。
当应用需求增加时,数据库管理员能够自动为应用提供更多的服务器支持。
网格计算使用最高端的负载管理机制,使得应用能够共享多个服务器上的资源,从而提高数据处理能力,减少对硬件资源的需求,节省企业成本。
1.2安装在成功安装完Oracle后,OEM也就被安装完毕,使用Oracle 11g OEM时只需要通过启动浏览器,输入OEM的URL地址(如https://atg:1158/em),或者直接在“开始”菜单的Oracle程序组中选择“Database Control –orcl”命令即可。
1.3 sqlplus在Oracle数据库系统中,用户对数据库的操作主要是通过SQL*Plus工具来实现的,因此,本节首先介绍如何使用SQL*Plus连接到Oracle数据库。
OracleDatabase11g应用与开发教程课程设计课程简介本课程旨在向学生介绍Oracle Database 11g的应用与开发。
课程内容包含Oracle Database 11g的基础知识、SQL语言、PL/SQL编程、数据库管理员的相关技能等方面的知识点。
学生将会在实践中掌握Oracle Database 11g的开发和应用技能。
本课程将会通过授课、讨论、编程实践等方式进行。
教学目标1.理解Oracle Database 11g的基础知识和架构2.掌握SQL语言和PL/SQL编程3.熟悉Oracle Database 11g的开发和应用技能4.学习并掌握数据库管理员的相关技能教学大纲第一章:Oracle Database 11g概述•Oracle数据库简介•Oracle Database 11g的体系架构•Oracle Database 11g的安装与配置第二章:SQL语言•SQL语言基础•SQL语言高级应用•表达式和谓词第三章:PL/SQL编程•PL/SQL程序设计•异常处理•游标和函数第四章:Oracle Database开发和应用技能•Oracle Database编程接口•JDBC编程•使用PL/SQL Web Toolkit第五章:数据库管理员的相关技能•数据库备份和恢复•数据库性能调优•数据库安全与维护课程设计实验设计实验1:Oracle Database 11g基础知识和安装•实验目的:了解Oracle Database的基础知识和安装方法•实验内容:安装Oracle Database 11g,理解数据库概念,熟悉Oracle Database 11g的体系架构•实验要求:完成Oracle Database 11g的安装和配置,并理解数据库概念和体系架构实验2:SQL语言•实验目的:掌握SQL语言的基本语法和应用•实验内容:使用SQL语言创建表、插入数据、更新和删除数据,学习SQL语言高级应用•实验要求:使用SQL语言完成实验内容,掌握SQL语言基本语法和应用实验3:PL/SQL编程•实验目的:掌握PL/SQL编程基础•实验内容:使用PL/SQL编程实现简单的程序,如计算器、图书管理系统等•实验要求:使用PL/SQL编程完成实验内容,熟悉PL/SQL程序设计实验4:Oracle Database 11g开发和应用技能•实验目的:学习Oracle Database编程接口和应用•实验内容:使用JDBC编程实现对Oracle Database的连接,使用PL/SQL Web Toolkit开发Web应用程序•实验要求:掌握Oracle Database编程接口和应用技能,熟悉JDBC 编程和PL/SQL Web Toolkit开发实验5:数据库管理员的相关技能•实验目的:学习和掌握数据库管理员的技能•实验内容:实验体验数据库备份和恢复操作,进行数据库性能调优和数据库安全维护•实验要求:了解数据库管理员的技能,熟悉数据库备份和恢复操作,掌握数据库性能调优和数据库安全维护技能课程作业•作业1:根据实验3中的图书管理系统,实现增加图书、删除图书、查询图书、修改图书等功能•作业2:使用PL/SQL Web Toolkit开发Web应用程序,具体内容和功能根据实际需求设计总结通过本课程的学习,学生将会了解Oracle Database 11g的基础知识和架构,掌握SQL语言和PL/SQL编程,熟悉Oracle Database 11g的开发和应用技能,学习并掌握数据库管理员的相关技能。
Previous NextView PDF 1 Introduction to Oracle DatabasePrevious NextView PDF 第1章 Oracle数据库简介This chapter provides an overview of Oracle Database and contains thefollowing sections:本章提供了Oracle数据库的概述,并包含以下各节:∙About Relational Databaseso Database Management System (DBMS)o Relational Modelo Relational Database Management System (RDBMS)o Brief History of Oracle Database∙Schema Objectso Tableso Indexes∙Data Accesso Structured Query Language (SQL)o PL/SQL and Java∙Transaction Managemento Transactionso Data Concurrencyo Data Consistency∙Oracle Database Architectureo Database and Instanceo Database Storage Structureso Database Instance Structureso Application and Networking Architecture∙Oracle Database Documentation Roadmapo Basic Groupo Intermediate Groupo Advanced Group ∙关于关系数据库o数据库管理系统(DBMS)o关系模型o关系数据库管理系统(RDBMS)o Oracle数据库发展简史∙模式对象o表o索引∙数据访问o结构化查询语言(SQL)o PL/SQL和Java∙事务管理o事务o数据并发性o数据一致性∙Oracle数据库体系结构o数据库和实例o数据库存储结构o数据库实例结构o应用程序和网络体系结构∙Oracle数据库文档路线图o基本组o中级组o高级组About Relational Databases 关于关系数据库Every organization has information that it must store and manage to meet its requirements. For example, a corporation must collect and maintain human resources records for its employees. This information must be available to those who need it. An information system is a formalsystem for storing and processing information. 每个组织都有其必须存储和管理的信息,以满足其需求。
第1章Oracle11g简介一、选择题1.D2.D3.C4.A5.D6.D7.B二、填空题1.视图2.索引3.簇4.DB_BLOCK_SIZE 5.SYSTEM6.数据文件7.日志文件8.控制文件9.系统全局区(System Global Area,SGA)10.程序全局区(Program Global Area,PGA)11.数据库管理员12.安全官员13.网络管理员14.应用程序开发员15.应用程序管理员16.数据库用户。
三、简答题1.答:数据库由若干个表空间组成,表空间由表、索引、视图等逻辑对象组成,表由段组成,段由区组成,区则由数据块组成。
2.答:物理结构由构成数据库的操作系统文件所决定。
每个Oracle数据库都由3种类型的文件组成:数据文件、日志文件和控制文件。
Oracle数据库有一个或多个物理的数据文件。
数据库的数据文件包含全部数据库数据。
逻辑数据物理地存储在数据文件中。
每个数据库有两个或多个日志文件组,日志文件组用于收集数据库日志。
日志的主要功能是记录对数据所作的修改,所以对数据库作的全部修改记录在日志中。
在出现故障时,如果不能将修改数据永久地写入数据文件,则可利用日志得到修改记录,从而保证已经发生的操作成果不会丢失。
每个Oracle数据库有一个控制文件,记录数据库的物理结构。
控制文件包含数据库名、数据库数据文件和日志文件的名字、位置和数据库建立日期等信息。
3.答:SGA是一组共享内存结构,其中包含一个Oracle数据库例程数据及控制信息。
如果有多个用户同时连接到同一个例程,则此例程的SGA数据由这些用户共享。
因此,SGA也称为共享全局区(Shared Global Area)。
SGA包含以下数据结构。
∙数据库缓冲区:SGA用来保存从数据文件中读取的数据块。
∙重做日志缓冲区:SGA中的循环缓冲区,用于记录数据库发生改变的信息。
∙共享池:用于保存用户程序。
∙Java池:为Java命令提供语法分析。
第1章Oracle 11g数据库系统Oracle数据库系统是世界领先的数据库管理系统,Oracle数据库以其功能强大和配置灵活而著称,同时也因有一定的操作难度,让很多初学者望而却步。
本书将由浅入深,以简单易懂的示例带领读者拨开Oracle的神秘面纱。
目前在Oracle世界主要有两类人员:一类是Oracle数据库管理人员,简称DBA;一类是Oracle开发人员。
Oracle DBA主要的工作是负责日常的数据库维护和性能优化管理。
由于Oracle系统较庞大、复杂,要成为一名合格的DBA,需要掌握的知识较多,比如要掌握Oracle体系结构和性能优化等方面的知识,相对其他数据库而言入门门槛较高,但是薪酬一般也较丰厚。
Oracle开发人员的主要工作是使用Oracle提供的SQL语言和PL/SQL 结构化程序设计语言操作数据库,主要职责是操纵Oracle数据库对象,不需要对Oracle系统结构有深入了解,入门较容易。
当Oracle开发人员积累了一定的开发知识后,可以通过学习Oracle DBA方面的知识向数据库管理员转型。
1.1 关系型数据库系统介绍1970年6月,IBM公司的研究员E.F.Codd博士(中文名:埃德加·弗兰克·科德),发表了名为“大型共享数据库的关系模型”的论文,受到了学术界和产业界的高度重视和广泛响应,使得关系型数据库系统很快成为数据库市场的主流。
E.F.Codd博士被誉为“关系数据库之父”,其照片如图1.1所示。
图1.1 关系数据库之父埃德加·弗兰克·科德第1章 Oracle 11g 数据库系统·3·1.1.1 什么是关系型数据模型关系型数据库简而言之就是使用关系或二维表存储信息。
以公司的人员信息管理为例,为了存储公司内部的员工信息,人事部门一般会建一份列表,在公司未引入信息化管理系统时,大多数人事职员会使用Excel 来保存员工信息,例如图1.2是一份简单的人员信息列表的Excel 文件。
这种Excel 存储数据的方式,将人员的所有信息都包含在一张表中,随着Excel 中的栏位和记录数越来越多,这份人员信息表会变得越来越繁杂,这种存储数据的方式称为平面文件数据模型。
为了简化修改与维护的复杂性,关系型数据库设计人员通过使用实体关系模型进行数据库建模,例如人员信息表可以分为员工表和部门表,通过部门编号进行关联,ER 模型如图1.3所示。
图1.2 Excel 人员信息列表 图1.3 人员信息表ER 关系模型 由图1.3中可以看到,通过将员工和部门分别存储在不同的二维表格中,使用主键(PK )和外键(FK )进行关联,使得获取和维护数据变得更容易,这就是关系型数据模型。
上述ER 图的3个关键组件分别如下所示。
❑ 实体:需要了解的信息,比如部门和员工信息。
❑ 属性:一般也称为列或字段,描述实体必须或可选的信息,比如员工表中的工号和姓名等。
❑ 关系:实体之间指定的关联,比如员工的部门编号关联到了部门表的编号属性。
关系型数据模型还涉及一些较复杂的组成元素,涉及较多的数学知识,有兴趣的读者可以参考一些理论性的读物。
1.1.2 数据库系统范式为了规范化关系型数据模型,关系型数据库系统在设计时必须遵循一定的规则,这种规则称为关系型数据库系统范式。
了解范式是每个数据库设计或开发人员必须具备的基本功,范式的主要目的是降低数据冗余,设计结构合理的数据库。
目前较常用的范式有如下3种。
第1篇 PL/SQL 开发入门·4·1.第一范式(1NF ):字段必须具有单一属性特性,不可再拆分如果字段中的值已经是无法再分割的值,则符合第一范式,即1NF 。
例如,在员工表中,姓名字段一般仅包含员工的正式姓名,这是符合第一范式的,但是如果要在姓名字段中包含中文名、英文名、昵称、别名等信息,就意味着姓名字段是可再拆分的。
因此员工名的设计可以如图1.4所示。
图1.4 修改后的员工表以匹配1NF 范式2.第二范式(2NF ):表要具有唯一性的主键列第二范式(2NF )要求数据库表中的每个实例或行必须可以被唯一地区分,为实现区分通常需要为表加上一个列,以存储各个实例的唯一标识。
第二范式是在第一范式的基础上的进一步增强,在数据库设计时一般使用唯一性主键来唯一地标识行。
比如在员工表中定义了以工号作为主键,因为公司员工的工号通常用来识别某个员工个体,不能进行重复;在部门表中通过部门编号作为主键,来唯一地区分一个部门。
3.第三范式(3NF ):表中的字段不能包含在其他表中已出现的非主键字段第三范式(3NF )是在前两个范式的基础上的进一步增强,主要用来降低数据的冗余。
比如,员工表中包含了部门编号,它引用到部门表中的部门编号这个主键,符合第三范式。
如果在员工表中又包含一个部门名称,那么表中的字段就包含了其他表中已出现的非主键字段,造成了数据的冗余,不符合第三范式。
范式主要用来规范数据库的设计,使得设计出来的数据库结构清晰,简洁易懂,避免了数据冗余和操作的异常。
在设计数据库模型时,灵活地应用范式是创建一个优秀的数据库系统的基石。
1.1.3 关系型数据库管理系统关系型数据库管理系统,简称DBMS ,是基于关系型数据库理论而开发的软件系统。
目前比较热门的关系型数据管理系统有:Oracle 、Microsoft SQL Server 、Access 、MySQL 及PostgreSQL 等。
数据库管理系统是用于建立、使用和维护数据库,对数据库进行统一的管理和控制,保证数据库的安全性和完整性的一套大型的电脑程序。
数据库管理系统功能第1章 Oracle 11g 数据库系统·5·结构示意图如图1.5所示。
图1.5 数据库管理系统功能结构示意图如图1.5所示,一个数据库管理系统通常要提供如下所示的几项功能。
❑ 定义数据库结构:DBMS 提供数据定义语言来定义(DDL )数据库结构,用来搭建数据库框架,并被保存在数据字典中。
❑ 存取数据库内容:DBMS 提供数据操纵语言(DML ),实现对数据库数据的基本存取操作,即检索、插入、修改和删除等。
❑ 数据库的运行管理:DBMS 提供数据控制功能,即数据的安全性、完整性和并发控制等,对数据库运行进行有效的控制和管理,以确保数据正确有效。
❑ 数据库的建立和维护:包括数据库初始数据的装入,数据库的转储、恢复、重组织,系统性能监视、分析等功能。
❑ 数据库的传输:DBMS 提供处理数据的传输,实现用户程序与DBMS 之间的通信,通常与操作系统协调完成。
有了关系型数据库管理系统,开发人员就可以在数据库中创建数据库、创建表、存取数据库内容、对数据库进行备份和管理,只需要理解常用的系统相关的操作,而不用去研究关系型数据库系统内部深奥难懂的数据方面的理论知识。
1.1.4 使用SQL 语句与数据库管理系统通信关系型数据库管理系统提供了SQL 语言,允许用户操纵数据库。
SQL 语言的全称是结构化查询语言(Structured Query Language ),它是高级的非过程化编程语言,允许用户在高层数据结构上工作。
它不要求用户指定对数据的存放方法,也不需要用户了解其具体的数据存放方式,其操作示意图如图1.6所示。
尽管SQL 语言已经被ISO 组织定义了具有国际标准的SQL 规范,但是各种数据库系统厂商在其数据库管理系统中都对SQL 规范做了某些编改和扩充。
所以,实际上不同数据库系统之间的SQL 不能完全相互通用,目前比较流行的两大类SQL 语言分别是微软的第1篇 PL/SQL 开发入门·6·T-SQL 和Oracle 的PL/SQL ,这两类SQL 既有相似之处又有不同之处。
图1.6 使用SQL 操作数据库管理系统SQL 语言主要又分为如下两大类。
❑ DML 数据操纵语言,主要是完成数据的增、删、改和查询的操作。
❑ DDL 数据定义语言,主要用来创建或修改表、视图、存储过程及用户等。
除此之外,还包含称为DCL 的数据控制语言。
数据库管理员,即DBA ,通常使用DDL 来管理数据库的对象,而数据操纵语言DML 则主要由数据库开发人员使用来操纵数据。
举个例子,如果想要在数据库中创建如图1.4所示的关系模型,可以使用代码1.1的DDL 语句来实现。
代码1.1 使用DDL 语句创建列和键 --创建员工表CREATE TABLE 员工表(--定义员工表列工号 INT NOT NULL,中文姓名 NVARCHAR2(20) NOT NULL,英文姓名 VARCHAR2(20) NULL,别名 VARCHAR2(20) NULL,年龄 INT DEFAULT 18,入职日期 DATE NULL,部门编号 INT NULL,--定义员工表主键CONSTRAINT PK_员工表 PRIMARY KEY(工号));--创建部门表CREATE TABLE 部门表(--定义部门表列部门编号 INT NOT NULL,部门名称 NVARCHAR2(50) NULL,部门经理 INT NOT NULL,部门描述 NVARCHAR2(200) NULL,工号 INT NOT NULL,--定义部门表主键CONSTRAINT PK_部门表 PRIMARY KEY(部门编号));第1章Oracle 11g数据库系统--为员工表添加外键引用ALTER TABLE 员工表 ADD (CONSTRAINT FK_部门编号FOREIGN KEY (部门编号)REFERENCES 部门表 (部门编号));--为部门表添加外键引用ALTER TABLE 部门表 ADD (CONSTRAINT FK_部门经理FOREIGN KEY (部门经理)REFERENCES 员工表 (工号));代码使用DDL语句CREATE TABLE,创建了员工表和部门表,并指定了表列及列的数据类型,同时为每个表都创建了主键。
在创建了表之后,使用ALTER TABLE语句为表指定了表间的主外键关系。
说明:--表示SQL中的注释语句。
一旦创建好了表结构,数据库开发人员就可以使用DML语句来操纵这些表数据,比如下面的代码分别向部门表和员工表插入了一些数据:--张三是理财部的经理,他不属于任何部门INSERT INTO 员工表VALUES(100,'张三','San Zhang','老三',20,date'2011-01-01', null);--李四是财务部职员INSERT INTO 员工表 VALUES(101,'李四','Li Si','老四',20,date'2011-01-01', 100);--部门表INSERT INTO 部门表 VALUES(100,'财务部',100,'理财部',0);--让张三属于财务部UPDATE 员工表 SET 部门编号=100 WHERE 工号=100;上面的代码使用DML语句INSERT向表中插入了3条记录,最后使用了UPDATE语句对员工表中的记录进行了更新。