DWS的SCHEMA介绍
【摘要】 1 数据库主要对象的理解1.1 数据库对象TABLESPACE:操作系统文件结构中的具体文件空间在集群内的定义。说白点就是集群要占用哪些操作系统文件系统空间。DATABASE:数据库物理隔离单位,一个集群内可以有多个DATABASE,多个DATABASE在数据库概念上是物理隔离的。用户一次只能登陆一个DATABASE,防问其中的数据。定义DATABASE时,即创建了从数据...
1 数据库主要对象的理解
1.1 数据库对象
TABLESPACE:操作系统文件结构中的具体文件空间在集群内的定义。说白点就是集群要占用哪些操作系统文件系统空间。
DATABASE:数据库物理隔离单位,一个集群内可以有多个DATABASE,多个DATABASE在数据库概念上是物理隔离的。用户一次只能登陆一个DATABASE,防问其中的数据。定义DATABASE时,即创建了从数据库逻辑到操作系统文件空间的对应关系。
SCHEMA:DATABASE内进行逻辑隔离的作用。这样不同用户和应用可以重用表名空间。数据库管理时使用schemaname.tablename则可以唯一操作具体的表。
TABLE:这个就是用户具本存数据的最小单元了,大家都理解。
2 ORACLE/PG/DWS的SCHEMA设计比较
2.1 差异总结
PG和DWS的模式(SCHEMA)是DATABASE内的概念,为了提供用户在DATABASE内再进行逻辑划分用的。
ORACLE的DATABASE是用户层面的概念,即一个用户在新DATABASE内创建对象时,固定要创建一个同名SCHEMA,并将对像创建在SCHEMA下。
2.2 实现差异
自动创建同名SCHEMA |
可独立创建SCHEMA |
不同DATABASE处理 |
|
Oracle |
是 |
否 |
一致 |
PG |
否 |
是 |
一致 |
DWS |
是 |
是 |
不一致,创建用户的库有同名SCHEMA,其它库需手动创建 |
2.3 优缺点
自动创建同名SCHEMA:
优点:不同用户默认创建表时,不会发生表名冲突的情况。因为默认都创建在各自的同名SCHEMA下。
缺点:用户名与SCHEMA间存在了约束关系。例如user1,如创建了user2的schema,刚无法创建名为user2的用户,因为schema名冲突。
可新增普通SCHEMA:
优点:用户内可对数据库对象分组,按组赋权给其它用户
缺点:USER和SCHEMA共用名空间,一个是管理员行为一个是一般用户行为,会出现行为冲突。
3 DWS与PG对比测试情况
3.1 PG不会因为其它用户存在A 模式而不能创建A用户
3.2 DWS因为其它用户存在A模式,而不能创建A用户
dws=# create user u1 password 'Gauss_234';
CREATE ROLE
dws=# create schema schema2 authorization u1;
CREATE SCHEMA
dws=# create user schema2 password 'Gauss_234';
ERROR: schema "schema2" already exists
3.2.1 DWS不同库可以有同名模式
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
作者其他文章
彩虹上的水瓶座2020/06/10 02:46:261楼编辑删除举报
倚天剑2020/06/10 02:51:272楼编辑删除举报
屠龙刀2020/06/10 02:55:033楼编辑删除举报
wanggang2692020/06/10 02:55:234楼编辑删除举报
数据风清扬2020/06/10 02:56:345楼编辑删除举报
油焖大猪蹄2020/06/10 03:05:306楼编辑删除举报
半脸人2020/06/10 03:06:147楼编辑删除举报
四叶草2020/06/10 06:06:088楼编辑删除举报
bigmountain2020/06/10 08:39:529楼编辑删除举报
不愧是你呀2020/06/10 10:40:4510楼编辑删除举报