数据库schema、catalog介绍

介绍

按照SQL标准的解释,在SQL环境下 CatalogSchema 都属于 抽象概念,可以把它们理解为一个 容器 或者 数据库对象命名空间 中的一个层次

主要用来 解决命名冲突 问题。

从概念上说,一个数据库系统包含多个 Catalog ,每个 Catalog 又包含多个 Schema ,而每个 Schema 又包含多个数据库对象(表、视图、字段等)。
反过来讲一个数据库对象必然属于一个 Schema,而该 Schema 又必然属于一个 Catalog ,这样我们就可以得到该数据库对象的 完全限定名称,解决命名冲突的问题

例如:数据库对象表的完全限定名称就可以表示为:Catalog名称.Schema名称.表名称

提示

好多时候,Schema 表示 表结构

数据库支持

各数据库系统对 CatalogSchema 的支持和实现,并不相同。

常用的方式:

  • 使用 数据库名 作为 Catalog
  • 使用 用户名 作为 Schema

具体可参见下表:

供应商 Catalog支持 Schema支持
Oracle 不支持 Oracle User ID
MySQL 不支持 数据库名
MS SQL Server 数据库名 对象属主名,2005版开始有变
DB2 指定数据库对象时,Catalog部分省略 Catalog属主名

参考:
http://t.zoukankan.com/ECNB-p-4611309.html


原文出处:https://malaoshi.top/show_1IX4E08CB0yC.html