美文网首页
有关Oracle数据库、表空间、schema概念的一些总结思考

有关Oracle数据库、表空间、schema概念的一些总结思考

作者: moutory | 来源:发表于2021-03-12 13:14 被阅读0次

之前学习Oracle数据库之后,对于表空间、用户、schema等概念一直有些模糊,也没有理清楚他们之间的关系,最近回过头重新看了这部分的知识后,将自己对这方面的知识点做一下小结,本篇文章并不是常规的技术文章,只作为个人的小结分享。

先说说什么是Oracle数据库

Oracle数据库是能满足我们存取数据需要的数据管理系统。完整的Oracle数据库通常由两部分组成:物理数据库和数据库实例。也就是说,Oracle数据库是物理存储和内存进程的集合。

  1. 数据库是一系列物理文件的集合(数据文件,控制文件,联机日志,参数文件等);
  2. Oracle数据库实例则是一组Oracle后台进程/线程以及在服务器分配的共享内存区。

什么是数据库实例

当我们启动数据库服务时,就会在内存中创建一个数据库实例出来,由这个Oracle数据库实例来访问和控制磁盘中的数据文件,常见的数据库实例有ORCL这个过程可以想象成是JAVA中根据classnew出了一个对象出来,我们可以根据这个对象调用具体的数据库方法。一个数据库可以有多个实例,在作数据库服务集群的时候可以用到。
正如上面介绍的一样,数据库实例是Oracle数据库的组成部分,是在内存中运行,为用户提供访问和操作数据库的后台进程。

什么是表空间(Table Space)?

Oracle数据库是通过表空间来存储物理表的,一个数据库可以划分为多个表空间,每个表空间可以存储多张表。表空间是数据库的逻辑划分,每个数据库至少有一个表空间(称作SYSTEM表空间)。把数据库当做一个大仓库,为了管理方便,我们可以人工将这一片大的空间分为A、B、C等区间,这样的A/B/C区间就相当于是表空间。(也可以理解为是去餐厅吃饭,每张桌子上面都有一个桌号,方便服务员上菜)。

关于用户

有了表空间,下一步自然是建表。但是在建表之前还有一步,就是要先创建用户,只有用户才能建表。用户是独立于表空间的存在,我们可以从上面的介绍中知道表空间其实也是数据存储的容器,但用户可以理解为是数据的归属者。还是举仓库的例子,仓库提供的只是存放物料的空间,但物料的管理人还是具体的一个个的仓管,也就是用户。当然了,仓管应该有属于自己的管辖范围和权限,所以需要为仓管定义好货物具体存放的位置。所以对于用户来说,我们也需要为其指定好对应的表空间。

什么是Schema(方案)?

方案(schema)又叫模式,是比表空间小一级的逻辑概念,它也是一个逻辑容器。Schema为数据库对象的集合,为了区分各个集合,我们需要给这个集合起个名字。schema里面包含了各种对象如tables, views, sequences, stored procedures, synonyms, indexes, clusters, 和 database links
我们知道一共表空间可以被多个用户共用,那如何区分开每一个用户?那么在表空间中对每个用户都有一个对应的方案,用于保存单个用户的信息。举仓库的例子来说,我们现在把仓库的A区进一步分为N个房间,每个房间是属于特定的仓管的,这一个个的能够存储货物的房间就相当于是schema,一个房间由一个仓管负责。

关于数据文件(dbf、ora):

数据文件是数据库的物理存储单位。数据库的数据是存储在表空间中的,真 正是在某一个或者多个数据文件中。而一个表空间可以由一个或多个数据文件组成,一个数据文件只能属于一个表空间。一旦数据文件被加入到某个表空间后,就不能删除这个文件,如果要删除某个数据文件,只能删除其所属于的表空间才行。

关于表数据和用户的关系

表的数据,是有用户放入某一个表空间的,而这个表空间会随机把这些表数据放到一个或者多个数据文件中。由于oracle的数据库不是普通的概念,oracle是有用户和表空间对数据进行管理和存放的。但是表不是有表空间去查询的,而是由用户去查的。因为不同用户可以在同一个表空间建立同一个名字的表!这里区分就是用户了!


Oracle运作图

参考资料:
Oracle数据库、实例、用户、表空间、表之间的关系 https://blog.csdn.net/NRlovestudy/article/details/49684571
表空间与用户的关系 表空间和数据文件的关系 https://www.cnblogs.com/lion88/p/4343890.html

相关文章

  • 有关Oracle数据库、表空间、schema概念的一些总结思考

    之前学习Oracle数据库之后,对于表空间、用户、schema等概念一直有些模糊,也没有理清楚他们之间的关系,最近...

  • Oracle Database(1) 名词

    本文摘抄自Oracle官方手册,Oracle数据库的一些概念。 About Schema Oracle Datab...

  • Oracle数据库临时修改当前Session的Schema

    打开这篇文章,默认你已了解Oracle数据库的下述特性: Oracle数据库中的表都是从属于Schema的,在我们...

  • 表空间

    一、表空间概念 oracle 表空间是一个逻辑概念,创建时需要指定物理文件,及实际数据分配磁盘空间,一个数据库由多...

  • 表空间详解

    表空间(TABLESPACE)是ORACLE数据库中最大的逻辑结构。ORACLE数据库是由一个或多个表空间组成的。...

  • Oracle 表空间

    Oracle表空间是Oracle数据库的一个逻辑划分 表空间是数据库中最大的逻辑单位 一个数据库可以有一个或多个表...

  • oracle:tablespace schema block e

    oracle中存储的层次结构总结如下:数据库由一个或多个表空间组成 表空间由一个或多个数据文件组成,一个表空间包含...

  • postgres drop schema 删除表空间

    DESCRIPTION 描述 DROP SCHEMA 从数据库中删除表空间 表空间只能被它的所有者或者超级用户删除...

  • Oracle数据库用法汇总

    一些Oracle数据库用法的小总结 1.使用insert into创建新表 insert into destdb....

  • Oracle 表空间、用户、角色和权限基本操作

    表空间 表空间是对Oracle数据库的逻辑划分,一个数据库有一个或多个表空间,一个表空间对应着一个或多个的物理数据...

网友评论

      本文标题:有关Oracle数据库、表空间、schema概念的一些总结思考

      本文链接:https://www.haomeiwen.com/subject/rviaqltx.html