时间:2021-07-01 10:21:17 帮助过:55人阅读
在SQL环境下Catalog和Schema都属于抽象概念,主要用来解决命名冲突问题 一个数据库系统包含多个Catalog,每个Catalog包含多个Schema,每个Schema包含多个数据库对象(表、视图、字段等) 如数据库对象表的全限定名可表示为:Catalog名.Schema名.表名 SQL
在SQL环境下Catalog和Schema都属于抽象概念,主要用来解决命名冲突问题
一个数据库系统包含多个Catalog,每个Catalog包含多个Schema,每个Schema包含多个数据库对象(表、视图、字段等)
如数据库对象表的全限定名可表示为:Catalog名.Schema名.表名
SQL标准并不要求每个数据库对象的完全限定名称是唯一的,就象域名一样,如果喜欢的话,每个IP地址都可以拥有多个域名
从实现的角度来看,各种数据库系统对Catalog和Schema的支持和实现方式千差万别,比较简单而常用的实现方式是使用数据库名作为Catalog名,使用用户名作为Schema名,具体可参见下表:
供应商 |
Catalog支持 |
Schema支持 |
Oracle |
不支持 |
Oracle User ID |
MySQL |
不支持 |
数据库名 |
MS SQL Server |
数据库名 |
对象属主名,2005版开始有变 |
DB2 |
指定数据库对象时,Catalog部分省略 |
Catalog属主名 |
Sybase |
数据库名 |
数据库属主名 |
Informix |
不支持 |
不需要 |
PointBase |
不支持 |
数据库名 |