赞
踩
写本篇主要是在看源码的时候看到catalog,schema,不理解,所以一查究竟
按照SQL标准的解释
在SQL环境下Catalog和Schema都属于抽象概念,可以把它们理解为一个容器或者数据库对象命名空间中的一个层次,主要 用来解决命名冲突问题。从概念上说,一个数据库系统包含多个Catalog,每个Catalog又包含多个Schema,而每个Schema又包含多个数据库对象(表、视图、字段等),反过来讲一个数据库对象必然属于一个Schema,而该Schema又必然属于一个Catalog,这样我们就可以得到该数据库对象的完全限定名称从而解决命名冲突的问题了;例如数据库对象表的完全限定名称就可以表示为:Catalog名称.Schema名称.表名称。这里 还有一点需要注意的是,SQL标准并不要求每个数据库对象的完全限定名称是唯一的,就象域名一样,如果喜欢的话,每个IP地址都可以拥有多个域名。
通俗点理解:
schema是对一个数据库的结构描述。在一个关系型数据库里面,schema定义了表、每个表的字段,还有表和字段之间的关系。
catalog是由一个数据库实例的元数据组成的,包括基本表,同义词,索引,用户等等。
或许更通俗还可以这样理解:
schema有点类似于类,catalog有点类似于对象。
1、允许多个用户使用同一个数据库而不会干扰其他用户
2、把数据库对象组织成逻辑组,便于管理
3、第三方应用可以放在不同schema中,不会和其他对象的名字冲突。
Peloton中的catalog、schema
catalog:
catalog information:
database_id、table_id、tilegroup_id、tile_id
schema:一个tuple的长度、一个tuple中的所有列
其余数据库对catalog、schema的支持情况
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。