第四十四章 命名空间和数据库
命名空间和数据库简介
在 IRIS
中,任何代码都在命名空间中运行,命名空间是一个逻辑实体。命名空间提供对数据和代码的访问,这些数据和代码(通常)存储在多个数据库中。数据库是一个文件——IRIS.DAT
文件。 IRIS
提供了一组名称空间和数据库供使用,并且可以定义其他名称空间和数据库。
在命名空间中,可以使用以下选项:
- 命名空间有一个默认数据库,用于存储代码;这是该命名空间的例程数据库。
当在命名空间中编写代码时,除非有其他注意事项,否则代码将存储在其例程数据库中。同样,当调用代码时, IRIS
会在此数据库中查找它,除非有其他注意事项。
- 命名空间还有一个默认数据库,用于包含持久类和创建的任何
Gobal
的数据;这是该名称空间的全局数据库。
因此,例如,当(以任何方式)访问数据时, IRIS
将从该数据库中检索数据,除非有其他考虑因素。
Global
数据库可以与例程数据库相同,但为了可维护性通常希望将它们分开。
- 命名空间有一个用于临时存储的默认数据库。
- 命名空间可以包括提供对存储在其他数据库中的附加数据和代码的访问的映射。具体来说,可以定义引用非默认数据库中的例程、类包、整个
Global
和特定Global
节点的映射。 (这些类型的映射分别称为例程映射、包映射、Global
映射和下标级映射。)
当通过映射提供对数据库的访问时,仅提供对该数据库的一部分的访问。命名空间无法访问该数据库的非映射部分,即使以只读方式也是如此。
此外,重要的是要了解,定义映射时,它仅影响命名空间的配置。它不会更改任何代码或数据的当前位置。因此,当定义映射时,还需要将代码或数据(如果存在)从其当前位置移动到命名空间所需的位置。
定义映射是一项数据库管理任务,不需要更改类/表定义或应用程序逻辑。
- 创建的任何命名空间都可以访问大多数
IRIS
代码库。此代码可用是因为IRIS
会自动为创建的任何名称空间建立特定映射。 - 定义命名空间时,可以使其支持互操作性。这意味着可以在此命名空间中定义产生式。
production
是使用IRIS
互操作性功能并集成多个独立软件系统的程序。
映射提供了一种方便而强大的共享数据和代码的方式。任何给定的数据库都可以被多个命名空间使用。例如,所有客户命名空间都可以访问多个系统数据库,如本页后面所述。
可以在定义命名空间后更改其配置, IRIS
提供了用于将代码和数据从一个数据库移动到另一个数据库的工具。因此,如果发现有必要,可以在开发过程中重新组织代码和数据。这样就可以轻松地重新配置 IRIS
应用程序(例如扩展)。
锁、Globals
和命名空间
由于可以从多个命名空间访问Globals
,因此 IRIS
为其锁定机制提供自动跨命名空间支持。给定Globals
上的锁会自动应用于使用存储Globals
的数据库的所有命名空间。