分享

从TalendDataQuality的角度说说数据库结构#talend#

 醉三郎 2014-10-09
DQ这样设计,是从各个厂商数据库结构差异性出发,TDQ 提供一个统一的三层架构来处理所有数据库,即:
CONNECTION
  ---CATALOG
    ---SCHEMA
      ---Table,View等。
对于有些数据库,比如MYSQL是没有SCHEMA层级的,ORACLE没有CATALOG层级,所以对于各自的catalog analysis和schema analysis分析是相同的结果,但是对于MSSQL,DB2等包含三层结构的数据库,他们分析的结果是不相同的。
From zqin @Talend中文论坛 http://www./forum.php?mod=viewthread&tid=311&extra=page=1

由此而来的呢,就是对于数据库中这种设计的说明:

Catalog和Schema都属于抽象概念,作为数据库对象命名空间中的一个层次,他们的存在主要是解决命名冲突的问题。这么说,一个DB Connectiong就可以确定一个DB,一个DB包含多个Catalog,每个Catalog又包含多个Schema,而每个Schema又包含多个数据库对象(表、视图、字段等)。这样我们就可以通过限定Catalog和Schema的名称从而解决命名冲突的问题了。数据库对象表的完全限定名称就可以表示为:Catalog名称.Schema名称.表名称。

各种数据库系统对Catalog和Schema的支持和实现方式是不同的,比较简单而常用的实现方式是使用数据库名作为Catalog名,使用用户名作为Schema名,具体可参见下表:

 供应商

 Catalog支持

 Schema支持

 Oracle  不支持  Oracle User ID
 MySQL  不支持  数据库名
 MS SQL Server  数据库名  对象属主名,2005版开始有变
 DB2 指定数据库对象时,Catalog部分省略  Catalog属主名
 Sybase  数据库名  数据库属主名
 Informix  不支持  不需要
 PointBase  不支持  数据库名

最后来澄清下Schema。在数据库建模中,它的概念是用来描述数据库结构的语言。而在命名空间中,Schema则是一组数据库对象的集合。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多