Oracle的主要组件和基本概念

oracle

简介

oracle(甲骨文)公司

1977年,三人合伙创办(Software Development Laboratories,SDL)

1979年,更名为Relational Software Inc.,RSI

1983年,为了突出核心产品 ,RSI更名为Oracle

2002年04月26日,启用“甲骨文”作为中文注册商标

oracle 主要组件

Oracle的主要组件和基本概念_第1张图片

  1. 数据库

    • 数据库就是存储数据的一种媒介,即磁盘上存储的数据的集合。
    • 在物理上表现为数据文件,日志文件,和控制文件等。
    • 在逻辑上以表空间形成存在。
    • 首先必须创建数据库,才能使用oracle。
    • 数据库包含的文件有:
      • 数据文件,扩展名是.DBF,用于存储数据库数据的文件,数据库和数据文件不存在一对一对应关系。一个数据库,可以拥有多个数据文件,但一个数据文件只能对应一个数据库。
      • 控制文件,扩展名是.CTL,是数据库启动以及运行所必须要的文件,默认包含三个控制文件,各个控制文件内容相同。
      • 日志文件,扩展名是.LOG,它记录了对数据的所有更改信息,多个日志文件组之间循坏使用。
      • Oracle数据库还包含如参数文件,网络文件,备份文件,以及用于备份和恢复的归档重做日志文件等重要文件。
  2. 数据库实例

    • 实例的概念是指oracle系统中一系列进程,以及为这进程所分配的内存块。每个启动的数据库,都对应一个数据库实例,由这个实例,来访问和控制数据库。

      • 在oracle中,我们可以新建一个Oracle实例,这个时候虽然有了SGA等一些列内存块,但是这个时候并没有把数据库文件读取进来。所以只是一个实例,再后来,你可以通过,命令手段,或者自动的把数据库文件加载进我们这个实例中。这个时候的数据库才可以真正让我们访问和操作。所以说,数据库的应用如果想实现,数据库,和数据库实例是缺一不可的。如果只有数据那些文件,那么,只能代表这些数据在这个文件中,但是我们无法进行操作,而如果只有数据库实例,那么我虽然可以操作数据,但是不知道操作哪些数据。操作生产的数据也无法保存等。所以,当一个Oracle实例真正加载一个Oracle Datebase了以后,数据库才可以被我们使用。

      • 当一个实例启动时,Oracle数据库分配一个称为系统全局区(SGA)的内存区域,并启动一个或者多个后台进程。

        • 系统全局区(SGA)的内存区域作用包括:

          • 维护多个进程和线程并发访问的内部数据结构
          • 缓存从磁盘读取的数据块
          • 在写入在线重做日志文件之前缓冲重做数据
          • 存储 SQL 执行计划
        • 系统全局区SGA内存结构包括:

          1 共享池 2 数据缓冲区 3 日志缓冲区

          1. 共享池是对SQL、PL/SQL程序进行语法分析、编译、执行的内存区域。共享池由库缓存和数据字典缓存组成。共享池的大小直接影响数据库的性能
          2. 数据缓冲区用于存储从磁盘数据文件中读入的数据,所有用户共享。服务器进程将读入的数据保存在数据缓冲区中,当后续的请求需要这些数据时可以在内存中找到,不需要再从磁盘读取,提高了读取速度。数据缓冲区的大小对数据库的读取速度有直接的影响
          3. a.日志记录数据库的所有修改信息,日志信息首先产生于日志缓冲区。当日志缓冲区的日志数据达到一定数量时,由后台进程将日志数据写入日志文件中。相对来说,日志缓冲区对数据库的性能影响较小

Oracle基本概念

  1. 表空间

    • 表空间是Oracle数据库中最大的逻辑结构。它提供了一套有效组织数据的方法,是组织数据和进行空间分配的逻辑结构,可以将表空间看作是数据库对象的容器。简单地说,表空间就是一一个或多个数据文件(物理文件)的集合(逻辑文件),所有的数据对象都被逻辑地存放在指定的表空间中。
    • 每个Oracle数据库都是由若干个表空间构成
    • 用户在数据库中建立的所有内容都被存储到表空间
    • 创建数据库时会自动创建若干表空间
    • Oracle数据库是通过表空间来存储物理表的,一个数据库实例可以有N个表空间,一个表空间下可以有N张表。
    • 表空间(tablespace)是数据库的逻辑划分,每个数据库至少有一个表空间(称作SYSTEM表空间)。为了便于管理和提高运行效率,可以使用一些附加表空间来划分用户和应用程序。例如:USER表空间供一般用户使用,RBS表空间供回滚段使用。一个表空间只能属于一个数据库。
  2. 全局数据库名

    • 用于区分一个数据库的内部标识
    • 全局数据库名=数据库名+域名
    • 使数据库的取名在整个网络环境中唯一
  3. 模式和模式对象

    • 模式为模式对象的集合,模式是一个逻辑容器,你可以把模式理解为文件夹,方便我们对一组数据库对象进行管理。通常,一个大的系统由许多小的系统组成,我们可以给每个小的系统创建一个模式,把该系统中用到的数据库对象都创建在这个模式中。例如,每个公司都会有员工,我们可以创建一个模式 HR,然后在 HR 中创建一个表 EMPLOYEES 来维护员工信息,如果需要在其他模式中访问 EMPLOYEES 表,我们需要指定它的全名 HR.EMPLOYEES。

    • 每一个用户对应一个模式,模式隶属于某个数据库用户,模式名和数据库用户是相同的,那如何创建模式呢?很简单,其实就是创建数据库用户就创建了同名的模式

    • 模式对象是用户拥有的对象,我们可以在模式中创建表(Table), 分区(Partition), 视图(View), 索引(Indexe), 包(Package),存储过程(Procedure),函数(Function),触发起(Trigger),类型(Type), 序列(Sequence), 同义(Synonym)等数据库对象。

    • 非模式对象与用户无关,如上下文(Contexts) 目录(Directory) 概要文件(Profile) 角色(Role) 表空间(Tablespaces) 用户(User)

    • SYS 和 SYSTEM 模式

      • 当我们安装 Oracle 的时候,系统自动帮我们创建了 SYS 和 SYSTEM 模式,它们拥有最高权限,用来管理数据库

      • sys用户是超级用户,具有最高权限即sysdba角色,有create database的权限,所有oracle的数据字典的基表和视图都存放在sys用户中,这些基表和视图对于oracle的运行是至关重要的,由数据库自己维护,任何用户都不能手动更改。

      • system是数据库内置的一个普通管理员,你手工创建的任何用户在被授予dba角色后都跟这个用户差不多。 system用户as sysdba登录时和sys一样,可以用show user查看当前用户进行验证。system用户不能以 as sysoper角色登录,只能以normal角色登录。即conn system/pwd。

你可能感兴趣的:(Oracle的主要组件和基本概念)