db2 目录、方案、用户和数据库示例之间的关系

bybem2ql  于 2022-11-07  发布在  DB2
关注(0)|答案(3)|浏览(145)

为了比较不同供应商的数据库(Oracle、SQL Server、DB2、MySQL和PostgreSQL),我如何唯一地标识任何对象,我需要目录吗?例如,在Java的DatabaseMetadata中,我至少应该指定目录和模式fooPattern。
目录只是数据存储的一个抽象概念,这是真的吗?

zysjyyx4

zysjyyx41#

在Oracle中:

  • 服务器示例==数据库==目录==由同一执行引擎管理的所有数据
  • schema ==数据库中的命名空间,与用户帐户相同
  • user == schema owner ==命名帐户,与schema相同,可以连接到数据库,拥有该schema并使用可能在其他schema中的对象
  • 要标识正在运行的服务器中的任何对象,您需要(架构名称+对象名称)
    在PostgreSQL中:
  • 服务器示例==数据库群集==所有数据由同一执行引擎管理
  • 数据库==目录==数据库集群中的单个数据库,与同一数据库集群中的其他数据库隔离
  • schema ==数据库中的命名空间,默认情况下使用public
  • user ==指定帐户,可以连接到数据库,分别拥有和使用每个允许的数据库中的对象
  • 要标识正在运行的服务器中的任何对象,您需要(数据库名+模式名+对象名)
    在MySQL中:
  • 服务器示例==未使用目录标识,仅使用一组数据库
  • 数据库==架构==目录==服务器内的命名空间。
  • user ==指定帐户,可以连接到服务器并使用(但不能 * 拥有 * -没有所有权的概念)一个或多个数据库中的对象
  • 要识别正在运行的服务器中的任何对象,您需要(数据库名+对象名)
    在Microsoft SQL服务器中:
  • 服务器示例==托管数据库集
  • database ==服务器内的命名空间限定符,很少称为目录
  • schema == owner ==数据库中的命名空间,绑定到数据库角色,默认情况下使用dbo
  • user ==命名帐户,可以连接到服务器并使用(但不能 * 拥有 * - schema作为所有者)一个或多个数据库中的对象
  • 要识别正在运行的服务器中的任何对象,您需要(数据库名+所有者+对象名)

所以我想对你们问题的回答是:
1.这取决于实现,即是否需要目录名称来标识对象。catalogschemadatabase 的含义随实现的不同而不同。
1.是的,目录是数据存储的一个抽象。我认为它也应该被定义为一个独立的命名空间,但不是所有的SQL引擎都这样做。
1.Databaseschema 被所有供应商定义得相当好。Catalog 有时与“database”同义(至少在Oracle和Postgres中是这样),有时与“schema”同义,有时两者都是同义。术语 Catalog 还经常表示元数据集合(又称系统表)。
1.Schema 是程序员在SQL数据库中组织工件时应该使用的,因为它表示具有访问控制层的逻辑命名空间。

vxf3dgd4

vxf3dgd42#

对于DB2,模式被用作名称空间。因此,如果您想唯一地标识数据库中的对象,您可以说 schema.object_name。这是实现多租户的一种非常方便的方法。您可以为数据库中的每个承租者使用一个单独的模式。这可以很好地将安全性和管理方面的问题分离开来。在一个DB2数据库中可以有32K个模式。
DB2中的目录只是一个系统表的集合,其中包含有关数据库的元数据。通常,直接访问目录对象被认为是一种不好的做法。最好使用API提供的工具(例如JDBC)来浏览目录及其包含的元数据。
DB2还有其他的抽象层,您可以在同一台机器上运行多个DB2示例,每个示例可以管理256个独立的数据库服务器上DB2示例的数量只受可用内存量的限制。(每个DB2都有一个数据库和10个连接)。您还可以在一台服务器上安装多个DB2。在测试您计划迁移到的新版本时,这很有用。我确实觉得这很混乱,尽管经常忘记切换到正确的安装。

acruukt9

acruukt93#

filiprem在这里提到的mysql似乎是不正确的。根据下面的链接,在mysql中jdbc目录对应于数据库。jdbc模式不受支持。

  • http://forums.mysql.com/read.php?39,137564,137629#msg-137629
  • http://bugs.mysql.com/bug.php?id=23304
  • http://books.google.com/books?id=a8W8fKQYiogC&pg=PA25&lpg=PA25&dq=jdbc+catalog+schema&source=bl&ots=oj0HAA91zL&sig=vRjgPLV_3J6o2kqh6epwvZNZgcM&hl=en&sa=X&ei=3k7zT-_qBueW2AXSjdDkAw&ved=0CFYQ6AEwAg#v=onepage&q=jdbc%20catalog%20schema&f=false

相关问题