oracle

简介

oracle(甲骨文)公司

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

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

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

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

oracle 主要组件

  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的主要组件和基本概念的更多相关文章

  1. Oracle数据访问组件ODAC的安装方法

    Oracle数据访问组件ODAC(Oracle Data Access Components)顾名思义就是用来访问Oracle数据库的小程序.我们可以编程调用这些组件来实现在没有安装Oracle数据库 ...

  2. Oracle数据访问组件ODAC的安装方法:

    Oracle数据访问组件ODAC(Oracle Data Access Components)顾名思义就是用来访问Oracle数据库的小程序.我们可以编程调用这些组件来实现在没有安装Oracle数据库 ...

  3. 安装oracle XML Database 组件

    近期部署项目数据库,编译包时遇到错误:   PACKAGE CTG.CTG_CSB_COMMON 编译错误  错误:PLS-00201: identifier 'XMLDOM' must be dec ...

  4. SSIS利用Microsoft Connector for Oracle by Attunity组件进行ETL!

    对于BI项目,在数据仓库方面的技术实现主要是进行数据集成的工作,源数据可能来自不同的业务数据库(如Sql Server.ORACLE.My sql.EXCEL等),通过SSIS的数据流组件很容易进行各 ...

  5. 极客时间_Vue开发实战_05.Vue组件的核心概念(1):属性

    05.Vue组件的核心概念(1):属性 代码地址: https://github.com/tangjinzhou/geektime-vue-1/blob/master/%E6%BC%94%E7%A4% ...

  6. 极客时间_Vue开发实战_06.Vue组件的核心概念(2):事件

    06.Vue组件的核心概念(2):事件 通过emit传递给父组件 我们点击了重置失败,上层的div的click=handleDivClick是接收不到.重置失败的点击的行为的 通常情况下,你不用.st ...

  7. 极客时间_Vue开发实战_07.Vue组件的核心概念(3):插槽

    07.Vue组件的核心概念(3):插槽 严格来的说在2.0之后已经不分区这两种插槽的概念了. 因为它底层的实现已经趋向于相同了. 2.6为了兼容2.5的版本,现在依然可以用这两种写法 作用域插槽就是多 ...

  8. oracle 11g RAC 的一些基本概念(三)

    Grid Infrastructure共享组件   Grid Infrastructure使用两种类型的共享设备来管理集群资源和节点:OCR(Oracle Cluster Registry)和表决磁盘 ...

  9. Oracle实例名,服务名等概念区别与联系

    数据库名.实例名.数据库域名.全局数据库名.服务名 , 这是几个令很多初学者容易混淆的概念.相信很多初学者都与我一样被标题上这些个概念搞得一头雾水.我们现在就来把它们弄个明白. 一.数据库名 什么是数 ...

随机推荐

  1. chrome 的手机调试工具 toggle device toolbar

    chrome 的手机调试工具 toggle device toolbar 是否可以模拟到不同系统,如苹果系统和安卓系统.

  2. springboot 运行出现错误 Unable to start ServletWebServerApplicationContext due to missing ServletWebServerFactory bean.

    原因是我将springboot启动类换到了另外一个方法中 出现了一个异常 后来发现因为我换了类但是忘记了换类名所以才报错 @ComponentScan @EnableAutoConfiguration ...

  3. kibana操作

    一些KIBANA的操作,记录下,免下次重复写 #创建索引名为kb_question的索引,并添加mapping,即各字段属性 PUT kb_question { "mappings" ...

  4. Python语句,表达式的区别?

    参考了网上的文章,说 表达式的结果是值,对象 比如1+2, 是表达式 具体根据运算符不同有算术,逻辑,比较等等类型的表达式 语句是控制程序走向,不产生值 例如if/else等 参考: https:// ...

  5. CF204E-Little Elephant and Strings【广义SAM,线段树合并】

    正题 题目链接:https://www.luogu.com.cn/problem/CF204E 题目大意 \(n\)个字符串的一个字符串集合,对于每个字符串求有多少个子串是这个字符串集合中至少\(k\ ...

  6. Oracle实时数据抽取项目问题总结

    Oracle实时数据抽取项目问题总结 项目背景介绍 项目主要是将Oracle.MySQL.SQLServer.Db2等其他数据库的实时变更数据同步到其他异构数据库中.本篇文章主要是讨论oracle的实 ...

  7. C语言日记② 初识 C的内存

    第一节: 上一个笔记 有趣的恶搞小程序 定时关机 #define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> #include <str ...

  8. 解决VSCODE"因为在此系统上禁止运行脚本"报错

    在VSCODE中使用yarn,结果报错: 找了下原因,是因为PowerShell执行策略的问题. 解决方法:   以管理员身份运行vscode;  执行:get-ExecutionPolicy,显示R ...

  9. MySQL灵魂拷问:36题带你面试通关!

    大家好,我是大彬~ 今天给大家分享MySQL常考的面试题,看看你们能答对多少. 本期MySQL面试题的目录如下: 事务的四大特性? 事务隔离级别有哪些? 索引 什么是索引? 索引的优缺点? 索引的作用 ...

  10. 实用 | 利用 aardio 配合 Python 快速开发桌面应用

    1. 前言 大家好,我是安果! 我们都知道 Python 可以用来开发桌面应用,一旦功能开发完成,最后打包的可执行文件体积大,并且使用 Python 开发桌面应用周期相对较长 假如想快速开发一款 PC ...