11G Concept Oracle数据库简介(二)

2014-11-24 11:56:35 · 作者: · 浏览: 10
Internet中的各种协议以及服务端的JAVA支持.Oracle8i 是为了internet computing而设计的,使数据库能部署在多层环境中.
·Oracle Real Application Clusters(Oracle RAC)
Oracle9i数据库增加了Oracle Rac。2001发布。使得多个instance可以同时访问一个database,另外,增加了Oracle XML 数据库(Oracle XML DB),能够存储和查询XML。
·Grid computing
Oracle Database 10g 发布在2003,增加了grid computing.这个版本使的公司可以根据grid infrastructure 将一大堆低成本的服务器虚拟化成一个 计算资源(说的跟真的似的 - -切!),还有一个关键目标是使数据库能够自我管理,以及自我调整(说白了就是自动化了很多),Oracle Automatic Storage Management(Oracle ASM) 帮助完成虚拟花和简单化数据库存储的管理。
·增加了可管理型,可诊断性,以及可用性
Oracle database 11g,发布在2007年,增加了一堆新特性,使得管理员和开发能很快适应不短变化的商业需求.增加适应性的关键是,通过整合信息和尽可能的自动化,简化信息的基础架构
Schema Objects(Schema中有哪些东西)
一个RDBMS的特性就是存储数据 的物理数据存储 和逻辑数据结构是相互独立的。在Oracle Database,一个database schema 是一个容器,里面放着一堆逻辑数据结构(表什么的).一个数据库user拥有且只有一个schema,schema名字和用户名字一样。(不懂来找我)。
SchemaObjects是用户创建的结构,database中数据的具现化,数据库支持很多类型的schema objects,而其中最重要的就是表,和索引。
Tables(表)
一个表描述一个实体 比如 雇员们的信息,你可以定义一个表,表名比如叫employees,以及一堆列,一般情况下,你得给每个列一个列名,一个数据类型(char什么的),以及宽度(比如char(20))
一个表就是一堆行,一个列表示一个实体的属性,其中每行表示一个实体的一例(比如employees表中的一个employee)。
你可以为表的每列指定规则(可选的),这些规则被称为intergrityconstrants(完整性约束).举个例子 "NOT NULL"完整性约束.这个约束强制保证每行的这个列必须有值,不能是空的
Index(索引)
索引是一个可选的数据结构,你可以将它创建在表的一个列或者多个列上。索引可以增加数据检索的速度,当处理一个查询,数据库可以使用索引高效的去定位相关的行.索引用在当应用经常查询指定的行,或者一小部分行时。
索引的逻辑上和物理上独立的数据。因此,你drop和create索引对表和其他indexes是没有影响的.所有的应用程序在你drop索引以后依然有效(不过性能会受到影响,还有这里drop是删除的意思)。
Data Access
DBMS中一个普遍的需求就是遵循和接受行业标准的数据访问语言
Structured Query Language(SQL)
SQL是一个基于数据集的声明式语言,它被用来和RDBMS(如oracledatabase)进行交互。
C语言
是程序语言,需要描述这件事该怎样完成,而SQL不是程序语言,它只需要描述需要什么即可。用户只需要指定他们想要的结果(例如,当前公司所有员工的名称),而不是怎样一步一步获取他们,SQL是ANSI为RDBMS定义的标准语言。
在Oracle database中所有对数据的操作都是通过执行SQL来实现的。
SQL语法非常简单,但功能非常强大。
SQL语句是一串字符,例如下面的:
SELECT first_name,last_name FROM employees;
通过SQL语句你可以完成下列任务:
·查询数据
·Insert(插),update(更新)以及delete(删除)表中的行
·Create(创建),replace(替换),alter(更改)以及drop(删除)对象
·控制对数据库以及其中对象的访问(权限控制)
·保证数据库的一致性和完整性
SQL是前面这些任务整合起来的语言。Oracle SQL 是ANSI标准的落实,但Oracle SQL支持很多标准SQL不支持的特性。
PL/SQL and Java
PL/SQL是OracleSQL的程序化扩展.PL/SQL集成Oracle database中的,可以使用Oracle 数据库的 SQL、功能,和数据类型.可以使用PL/SQL来控制SQL程序流,使用变量,以及些错误处理程序
PL/SQL的一个主要好处就是编的东西可以存在数据库本身.procedure 或function是一个schema object。它包括一堆sql以及其他的PL/SQL结构,它们组合在一起,存储进数据库,然后作为一个东西来运行,用来解决指定的问题,或者相关的一些问题。
而这种数据库本身的程序有一个很重要的好处,就是可以部署你想用它的任何地方。
Oracle 数据库也可以保存由Java写的programunits .你可以从Java中调用PL/SQL程序,也可以从PL/SQL中调用Java程序。
事务管理(Transaction Management)
Oracle数据库是多用户数据库,数据库必须保证多用户并发工作,且不会造成数据的不一致损坏。
事务(Transaction)
RDBMS必须可以将一组SQL要么全部提交(committed,意思是操作应用到了数据库),或者全部回滚(rolled back,意思是这一组sql全部不生效).
事务(transaction)是一个逻辑的,原子(意味着不可分割)单元,它包含一个或者多个SQL语句.
下面这是一个需要用到事务的案例,将资金从一个储蓄账户转移到支票账户
这个转移需要分成几个操作:
1、 从储蓄账户里减去
2、 增加到支票账户
3、 记录事务到事务日志
Oracle数据库要保证这三个操作,要么同时成功,要么同时失败,
举个例子:如果一个事务在执行时出现了硬件错误,而导致没有执行完成,则这个事务中的所有语句全部都要回滚(把已经造成的影响消除掉)
事务是将Oracle数据库和文件系统区分开的特性中的一个.如果你执行一个原子操作,它更行了一些文件,因为系统错误导致只更新了一般,则这些文件将不再一致.与之对比,事务会将Oracle数据库 从一个一致性状态变成另一个一致性状态.
事务最基本也是最重要的特性就是"all or nothing(要不就全部搞定,要不就全部搞不定)"
数据并发(Data concurrency)
多用户RDBMS的一个需求就是如何控制并发, 并发指的是多个用