oracle中的schema和表空间

我一直搞不清oracle里面的schema和表空间。尤其是不知道这个schema是个啥。一般,我们创建表空间,将数据表建在其中,然后导出导入,好像指定的也是这个同名的schema:

--创建一个表空间work
create tablespace work datafile 'D:\YbjzCheck\db\work.ora' size 500m autoextend on;
--创建数据库用户work
CREATE USER work identified by work DEFAULT TABLESPACE work;
grant connect, resource to work;
--导出schema=work的数据
expdp 'sys/password@PDBYbjzCheck as sysdba' directory=dbbak dumpfile=PDBYbjzCheck.expdp logfile=PDBYbjzCheck.log schemas=work

难道 schema 就是 表空间?

现在看起来应该不是。我还没有找到确切的答案,只能按照个人的理解来回答:

表空间是一个存储概念,而schema是一个数据结构定义的概念。表空间负责存储,schema定义的是表的字段、字段类型,等等。

如果我没有理解错,则一个schema可以对应多个表空间。而表空间也可以存放来自多个schema的表、视图等数据库对象。

注意到,使用表空间work的数据库用户也名叫work,由于我们在创建表空间过程中,并没有一个语句创建所谓的schema,难道数据库用户就是schema?

也不是。但是,schema的确跟用户是一对一的关系,系统应当是在创建用户的时候,自动创建的schema。

用户是用来连接数据库对象。而模式是用来创建管理对象的。模式跟用户在oracle 是一对一的关系。

至于为啥是这样的设计,不晓得。

不用猜,看看下面材料就清楚:
2019-04-19 schema vs tablespace vs user 模式、表空间、用户的联系与区别

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值