当前位置:   article > 正文

数据库中 schema 与 catalog的理解_postgresql的catalog_name和schema_name关系

postgresql的catalog_name和schema_name关系

写本篇主要是在看源码的时候看到catalog,schema,不理解,所以一查究竟

一、理解

按照SQL标准的解释
在SQL环境下Catalog和Schema都属于抽象概念,可以把它们理解为一个容器或者数据库对象命名空间中的一个层次,主要 用来解决命名冲突问题。从概念上说,一个数据库系统包含多个Catalog,每个Catalog又包含多个Schema,而每个Schema又包含多个数据库对象(表、视图、字段等),反过来讲一个数据库对象必然属于一个Schema,而该Schema又必然属于一个Catalog,这样我们就可以得到该数据库对象的完全限定名称从而解决命名冲突的问题了;例如数据库对象表的完全限定名称就可以表示为:Catalog名称.Schema名称.表名称。这里 还有一点需要注意的是,SQL标准并不要求每个数据库对象的完全限定名称是唯一的,就象域名一样,如果喜欢的话,每个IP地址都可以拥有多个域名。

通俗点理解:
schema是对一个数据库的结构描述。在一个关系型数据库里面,schema定义了表、每个表的字段,还有表和字段之间的关系。
catalog是由一个数据库实例的元数据组成的,包括基本表,同义词,索引,用户等等。

或许更通俗还可以这样理解:
schema有点类似于类,catalog有点类似于对象。

二、使用schema的好处

1、允许多个用户使用同一个数据库而不会干扰其他用户
2、把数据库对象组织成逻辑组,便于管理
3、第三方应用可以放在不同schema中,不会和其他对象的名字冲突。

三、各数据库相关的catalog、schema

Peloton中的catalog、schema
catalog:
catalog information:
database_id、table_id、tilegroup_id、tile_id
在这里插入图片描述
schema:一个tuple的长度、一个tuple中的所有列
在这里插入图片描述

其余数据库对catalog、schema的支持情况

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/421965
推荐阅读
相关标签
  

闽ICP备14008679号