`

数据库schema与catalog简介

    博客分类:
  • SQL
 
阅读更多

 

转自:http://blog.sina.com.cn/s/blog_515015800100evtc.html

转自:http://smiky.iteye.com/blog/624745

按照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

分享到:
评论

相关推荐

    数据库的catalog与schema

    当我们谈论数据库的Catalog与Schema时,源码和工具的角色也很重要。数据库系统的源码中,会包含处理Catalog和Schema的模块,这些模块负责读取、更新和维护Catalog中的信息。开发者可以通过阅读这些源码来了解数据库...

    Oracle数据库备份与恢复专题.pdf

    备份与恢复是数据库管理中的核心环节,确保在系统故障、数据丢失或损坏时能够迅速恢复服务,保证业务连续性。以下是对Oracle数据库备份与恢复专题的详细解读: ### 第1章:使用exp&imp工具进行数据库备份及恢复 **...

    DB2数据库学习资料

    - `db2 catalog tcpip node remote server ostype` 编目一个TCP/IP节点,允许连接到远程数据库服务器。 - `db2 uncatalog node` 取消节点编目,移除不再需要的节点信息。 2. **数据库目录**: - `db2 list ...

    db2导出数据库

    为了执行数据导出等操作,还需要建立与数据库的连接: - **db2 connect to**:用于建立到数据库的连接。 - 命令格式:`db2 connect to db_name user user_name using password` - 其中`db_name` 是数据库名字;`...

    GreenPlum常用数据库命令

    - `-m`: 只停止master实例,与 `gpstart -m` 对应使用。 - `-f`: 强制停止数据库,中断所有数据库连接并回滚正在运行的事务。适用于紧急情况下的安全关闭。 - `-u`: 不停止数据库,仅加载 `pg_hba.conf` 和 `...

    SSH项目原本使用的sqlserver2005数据库现在改用MySql配置问题修改

    1. **数据库模式(Schema)和数据库名称(Catalog)**:SQL Server中,`schema`和`catalog`的概念与MySQL中的数据库概念不同。在MySQL中,一个数据库就是一个包含多个表的集合,而在SQL Server中,`schema`可以理解...

    Java获取数据库属性信息.rar

    - `getIndexInfo(String catalog, String schema, String table, boolean unique, boolean approximate)`:返回表的索引信息,包括索引名、是否唯一、索引类型等。 4. **获取存储过程信息**: - `getProcedures...

    DatabaseMetaData生成数据库DLL

    在Java编程环境下,开发人员经常需要与数据库进行交互,以便实现各种业务逻辑。`DatabaseMetaData` 是Java数据库连接(JDBC)API的一部分,它提供了关于数据库模式、特性以及元数据的详细信息。本篇文章将深入探讨...

    c# 动态获得数据库中所有查询和视图

    在C#中,ADO.NET库提供了一种标准的方式与各种数据库系统进行交互,例如SQL Server、MySQL等。我们可以通过SqlConnection类建立到SQL Server的连接。以下是一个基本的示例: ```csharp using System.Data.SqlClient...

    MonetDB的SQL引擎catalog分析.docx

    首先,Catalog在MonetDB中扮演着至关重要的角色,它是数据库对象的元数据仓库,包含了关于数据库模式(schema)、表、列、索引、约束、函数以及事务等所有信息。`sql_catalog.h`文件中定义了各种数据结构,用于表示...

    c#_获取数据库中所有表名称的方法

    c#获取数据库中所有表名称的方法 在软件开发过程中,经常需要获取数据库中的所有表名称,以下总结了六种使用c#实现获取数据库中所有表名称的方法。 一、使用SQLDMO SQLDMO是操作SQL Server的理想方式,如果数据库...

    IBM DB2 数据库使用小技巧

    查询数据库输入涉及到数据库的接口和API,这通常是指数据库管理系统提供的编程接口,允许应用程序与数据库交互,执行数据操作和管理任务。 #### 21. 查询约束? 查询约束可以帮助理解数据库中数据的完整性和一致性...

    Hibernate注释方法描述数据库映射

    `@Table` 注解中可以包含 `schema` 和 `catalog` 属性来指定表所在的 schema 和 catalog。此外,还可以使用 `@UniqueConstraints` 来定义表的唯一约束。例如: ```java @Entity @Table(name="tbl_sky", ...

    C#数据库访问模式

    与有连接模式类似,首先需要创建数据库连接对象。 **2. 通过DataAdapter填充DataSet** `SqlDataAdapter`是一个桥接器,用于在数据库和DataSet之间传输数据。例如: ```csharp string selectCommand = "SELECT...

    修改数据库表名的命令

    cursor.execute("SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'database_name'") tables = cursor.fetchall() for table in tables: old_name = table[0] new_name = old_name....

    Oracle10g 11g备份与恢复

    - **恢复目录(catalog)数据库**:这是一个独立的数据库Schema,用于记录一个或多个目标数据库的RMAN活动。 ### 确定是否使用闪回恢复区(FRA) FRA是Oracle数据库备份和恢复中的一个关键特性,它具备许多优点。...

    轻松上手openGauss第4期:openGauss基本管理(上).pdf

    openGauss基本管理 ...每个数据库都有pg_catalog schema,它包含系统表、内置数据类型、函数、操作符。搜索路径(search_path)始终以pg_temp和pg_catalog这两个schema作为搜索路径顺序中的前两位。

    c#数据库操作读取数据库表结构源码.rar

    例如,我们可以使用`sys.objects`(SQL Server)或`information_schema.tables`(大多数关系型数据库)来获取表的元数据。 ```csharp string query = "SELECT * FROM sys.objects WHERE type = 'U'"; SqlCommand ...

    国产数据库达梦 神通 金仓安装使用教

    ### 国产数据库达梦、神通与金仓的安装与使用教程 #### 概述 随着信息安全和国产化的推进,越来越多的企业开始采用国产数据库产品。本文档旨在介绍如何快速部署和使用三种主流的国产数据库——达梦、神通与金仓。...

Global site tag (gtag.js) - Google Analytics