代码改变世界

oracle数据库基本概念

2013-06-17 20:51  sbb1124  阅读(306)  评论(0)    收藏  举报

第一章 介绍oracle数据库

一.数据库管理系统(DBMS):是一个控制存储,组织以及获得数据的管理系统。一个数据库管理系统有以下元素:

1.核心代码(用来管理内存和存储)

2.元数据仓库(该仓库通常被称为数据库字典)

3.查询语言(查询语言使得应用能够与数据进行交互)

二.数据库应用:是一个与数据库进行连接访问数据和操作数据的一个程序。第一代数据库有两种类型:分层和网络,分层与网络的区别在于,分层只是one-to-many,而网络支持many-to-many的数据结构。

三.关系模型

关系数据库(relational database):关系型数据库基于关系型数据模型。关系型数据库模型有以下的主要的几个方面:

1.结构

2.操作

3.完整性规则

关系型数据库以一种简单的集合的形式存储数据。一个关系(relation)是元组(tuple)的集合,元组(tuple)是无序属性值(attribute value)的集合。

Relation以及tuple以及attribute value的释义:relation对应数据库中的table,元组(tuple)是该表的某一行row,attribute value对应的是table中的column

 

四.关系型数据库管理系统

关系型数据库管理系统(RDBMS):是基于关系型模型的数据库,本质上,一个关系型数据库管理系统可以移动数据,存储数据,通过应用操作并获取数据。RDBMS可以分为两种操作:

1、逻辑操作(应用指明什么(what)内容是需要的 比如,一个应用查询一个雇员名或者添加一个雇员的记录)

2、物理操作(RDBMS指定怎样(how)去完成一个操作,比如,通过应用查询一张表,数据库在将查询的结果返回给用户之前要通过一个索引找到需要查询的列,将数据读入内存,然后执行一系列别的步骤。对于数据库应用来说,物理操作是透明的为了方便RDBMS对数据库进行存储和取数据)

五.Schema object

对于RDBMS,物理数据存储和逻辑数据结构是独立的。在ORACLE数据库中,数据库schema是逻辑数据或者schema object的集合.一个数据库的schema隶属于数据库用户,并与数据库用户名相同。

Schema objects是用户直接在数据库数据上创造的结构,数据库支持很多数据结构,例如:表,索引。

1.表TABLES:描述一个实体

2.索引:逻辑和物理上都独立于数据,所以建立索引和删除索引对表与其他索引都没有任何影响。

3.事务: The basic principle of a transaction is "all or nothing": an atomic operation succeeds or fails as a whole

六.数据库结构

数据库服务:数据库服务包括数据库和至少一个数据库instance。

数据库(database):数据库是一系列存储在磁盘上的文件,这些文件是独立于数据库instance的。

数据库实例(database instance):数据库实例是一系列管理数据库文件的内存结构。数据库实例包含一个共享内存区,称为system global area(SGA),一系列后台进程(background processes)

Figure 1-1 Oracle Instance and Database

 


数据库可以从物理和逻辑上两个方面来看,物理数据是以操作系统的视点来看的。对于Linux操作系统,可以通过ls,ps命令来列出数据库文件以及一些进程。逻辑数据例如一个表,而表只对于数据库来说才有意义。一个具体的sql语句可以列出数据库中的表,但操作系统并不能做到。数据库在逻辑以及物理上是独立的。比如重命名物理文件的名称,并不需要改变表名或者其他的名称。

 

6.1物理存储结构:

数据文件(data files)数据库中的逻辑结构例如表索引都存储于数据文件中。

控制文件(control files)控制文件里元数据结构,包括数据库名以及数据库文件的位置。

重做日志文件(online redo log files)由redo records (also called redo entries)组成,这些records记录了所有对数据的改变。

参数文件(parameter files)

诊断文件(diagnostic files)

备份文件(backup files)

归档日志文件(archived redo log files)

 

6.2逻辑存储结构

 

数据库逻辑结构包括:

1.数据块(data blocks)block在数据库里是最小单位,oracle数据文件存储在数据块里。一个数据库对应于磁盘一个特定的bytes大小。

2.区间(Extent):一个extent是有逻辑连续的数据库组成,适用于单一的分配,常用于存储制定类型的信息。

3.段(segments):一个segment是一系列extent分配给用户对象(例如表和索引),undo数据,temporary数据。

4.表空间(tablespace):数据库分成逻辑的存储单元被称为表空间,一个表空间作为segment的容器。每个表空间至少包含一个datafile

 

6.3数据库实例结构(DATABASE INSTANCE STRUCTURES)

Oracle数据库通过使用内存结构以及进程来访问和管理数据库。所有内存结构都存在于计算机的内存里,等同于RDBMS.

当应用连接数据库时,他们先连接到数据库的实例上,数据库实例应用分配其他内存区域(除了SGA),开启其他数据库进程(除了后台进程)

 

6.4数据库进程(oracle database processes)

进程是操作系统上一种机制,可以实现一系列的操作。一些操作系统使用术语作业,任务,或者线程。数据库的实例拥有下面这些进程。

1.客户端进程

2.后台进程

3.服务器进程

 

6.5实例内存结构(instant memory structures)

数据库创建并使用内存结构的目的是为了对每一个连接上来的用户分配程序代码的内存,数据共享的内存,独立的数据区域。实例对应的内存有:

1.Sga:sga是包含了数据库以及数据库实例的控制信息的一组共享内存。

2.Pga:pga是包含了数据和服务器进程的控制信息或者后台进程控制信息的内存区域。对于每个进程都有自己的pga.

 

6.6应用结构

数据库架构类型:

client/server架构

mutitier架构

service-oriented架构

6.7网络架构

oracle数据库网络服务是帮助数据库分布式处理网络协议与数据库之间的接口。

oracle net是数据库网络服务中重要的组件,作用:维持和建立一个客户端与数据库服务器之间的会话。当会话建立连接以后,oracle net就如同客户端与服务器之间的通讯员,使客户端与服务器之间进行通讯。

oracle net listener是数据库网络服务中另一个重要的组件,listener负责监听客户端发出连接的请求。

客户端请求的两种方式:

1、dedicated server architecture(专属)

2、shared server architecture(共享)