转自:http://blog.sina.com.cn/s/blog_515015800100evtc.html
按照SQL标准的解释,在SQL环境下Catalog和Schema都属于抽象概念,可以把它们理解为一个容器或者数据库对象命名空间中的一个层次,主要用来解决命名冲突问题。从概念上说,一个数据库系统包含多个Catalog,每个Catalog又包含多个Schema,而每个Schema又包含多个数据库对象(表、视图、字段等),反过来讲一个数据库对象必然属于一个Schema,而该Schema又必然属于一个Catalog,这样我们就可以得到该数据库对象的完全限定名称从而解决命名冲突的问题了;例如数据库对象表的完全限定名称就可以表示为: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 |
不支持 |
数据库名 |
最后一点需要注意的是Schema这个单词,它在SQL环境下的含义与其在数据建模领域中的含义是完全不同的。在SQL环境下,Schema是一组相关的数据库对象的集合,Schema的名字为该组对象定义了一个命名空间,而在数据建模领域,Schema(模式)表示的是用形式语言描述的数据库的结构;简单来说,可以这样理解,数据建模所讲的Schema<也就是元数据>保存在SQL环境下相应Catalog中一个Schema<名叫DEFINITION_SCHEMA>下的表中,同时可以通过查询该Catalog中的另一个Schema<名叫INFORMATION_SCHEMA>下的视图而获取,具体细节不再赘述。
参考资料:
1. ISO/IEC 9075-2:2003 - Database Language SQL (SQL-2003)
2. Database-specific Catalog and Schema Considerations
3. What is a Schema in SQL Server 2005?
个人想法(与上面转的无关)
如在sqlserver中有个数据库叫hibernate,其下有张表test,就可以这们select * from hibernate.dbo.test1
这里的hibernate相当于catagory,dbo就是catagory
分享到:
相关推荐
2. **语义与表现形式分离**:XML文档强调内容的含义,而不是展示方式,这意味着内容和样式可以独立处理。 3. **互联网友好**:XML旨在适应互联网环境,便于数据在网络上传输。 4. **简单性**:XML的语法简洁明了,...
- **Catalog (Product) Schemas**:特定于产品类别的架构,用于创建和更新产品列表。 - **Create Products - Product Feed Schema**:定义了创建新产品的XML数据结构。 - **Update Quantity Available - ...
- **XML**(Extensible Markup Language,可扩展标记语言)则侧重于存储和传输数据,关注的是数据的含义和结构,而不是如何显示这些数据。 #### 1.1.2 XML的特性 - **自定义性**:用户可以根据需求定义自己的标记...
- `<table />`:指定数据库中的具体表,可指定目录(catalog)、模式(schema)等。 - `<attributes>`:详细配置实体属性,如字段定义、精度、小数位数、加载策略等。 #### 实例分析 以Person实体为例,其属性如`...
4. **schema**: 指定数据库的模式(schema)名称,与根元素的`schema`属性功能相似,但优先级更高。 ##### 3.1 ID元素 `<id>` 元素用于定义主键字段的映射,其中包含的关键属性有: - **name**: 主键字段在Java类中...
- **选项A** 错误,因为该命令中的节点名称与远程系统名称不匹配,且端口号应与主机名关联。 - **选项B** 正确,这个命令创建了一个名为 `mydb2srv` 的节点条目,指定了远程系统的主机名为 `myhost`,并指明了远程...
- 实体对象代表了业务活动中具有特定含义的信息单元,如时间、地点、产品等。 通过以上各章节的详细介绍,我们不仅了解了MicroStrategy 项目设计的整体框架,还深入学习了如何构建逻辑数据模型、物理数据仓库框架...
@Table(name = "users", catalog = "mydb", schema = "public") public class User { // 实体类属性定义 } ``` ##### 4. @Column - **作用**:定义实体类属性与数据库表中列的映射关系。 - **属性说明**: - ...
以下是一些关键的配置参数及其含义: 1. **`hibernate.connection.driver_class`**:指定JDBC驱动程序的类名。例如,在PostgreSQL数据库中,这个配置项应该是`org.postgresql.Driver`。 - 示例: ```properties ...
为了正确地配置Hibernate与数据库之间的交互过程,了解Hibernate配置文件中的各项元素及其含义变得至关重要。 #### 二、核心概念 1. **元数据定义**: Hibernate通过`hibernate-mapping`文件来描述Java类与数据库表...
BI Server在前端通过ODBC技术将逻辑模型和展现模型提供给Oracle BI Presentation Server,而在后端则通过多种适配器访问与物理模型相对应的数据源。 #### 创建物理模型 1. **打开BIEE Administration Tool**:首先...
- `TABLE_CATALOG`: 表的目录(通常是NULL,因为MySQL没有目录的概念)。 - `TABLE_SCHEMA`: 数据库名称,这里是"leo_ecshop"。 - `TABLE_NAME`: 表格的名称,例如"ecs_goods"。 - `TABLE_TYPE`: 表的类型,"BASE ...
这里指定了类名、映射的表名、模式(schema)以及目录(catalog)等信息,这些信息对于Hibernate正确地将Java对象映射到数据库表非常重要。 以上就是基于提供的文件信息所总结的Hibernate配置相关知识点。希望这些详细...
- **逻辑模型**: 定义数据的业务含义和使用方式。 - **展现模型**: 控制数据展示的形式和方式。 **1.2 创建资料库步骤** - **创建资料库**: 使用 BIEE Administration Tool 创建一个新的资料库文件。例如,本例中...
本文将详细解析 `hibernate-mapping` 文件中的各种关键配置项及其含义。 #### 1. default-access (可选 - 默认为 property) 此属性用于指定 Hibernate 访问实体类属性的方式,默认为通过 getter 和 setter 方法...
4. **`hibernate.default_schema` 和 `hibernate.default_catalog`**: 默认的模式和目录名。 ```properties hibernate.default_schema=public hibernate.default_catalog=mycatalog ``` 这些配置项指定了默认的...
- **为DataSet创建XML格式的构架描述**: 使用`WriteSchema`方法创建XML Schema文档(XSD)来描述数据结构。 使用XML可以方便地将数据序列化为XML格式,便于跨平台传输和存储。 **例题解析** > 3在ADO.NET中使用XML...
如果我们想知道user_indexes表各字段名称的详细含义,可以用下面这条SQL语句: SQL>select column_name,comments from dict_columns where table_name='USER_INDEXES'; 依此类推,就可以轻松知道数据字典的详细...