在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
不支持
数据库名
本文原创发布php中文网,转载请注明出处,感谢您的尊重!