SAP ABAP 字典(Dictionary)
正如您所知,SQL 可以分为两部分:
- DML (数据操作语言)
- DDL (数据定义语言)
DML 部分由查询和更新命令组成,如 SELECT、INSERT、update、DELETE 等。由 ABAP 程序处理 SQL 的 DML 部分。DDL 部分由 CREATE TABLE、CREATE INDEX、DROP TABLE、ALTER TABLE 等命令组成,由 ABAP 字典处理 SQL 的 DDL 部分。
ABAP 字典(Dictionary)可以视为驻留在 SAP 数据库中的元数据(即关于数据的数据)以及数据库维护的元数据。
字典(Dictionary)用于创建和管理数据定义,以及创建表(Table)、数据元素(Data Elements)、域(Domain)、视图(View)和类型(Type)。
ABAP 字典中的基本类型
ABAP 字典中的基本类型如下:
- 数据元素(Data elements),通过定义数据类型、长度和可能的小数位数来描述基本类型。
- 可以具有任何类型的结构(Structures)组件。
- 表类型(Table types),描述内部表的结构。
字典环境中的各种对象可以在 ABAP 程序中引用。这种字典被称为全局词典。字典中的对象是所有 ABAP 程序的全局对象,ABAP 程序中的数据可以通过引用这些字典全局对象来声明。
字典支持用户定义类型的定义,这些类型在 ABAP 程序中使用。它们还定义了数据库对象(如表、视图和索引)的结构。激活这些对象时,会在其字典定义的基础数据库中自动创建这些对象。字典还提供编辑工具(如搜索帮助)和锁定工具(如锁定对象)。
字典任务
ABAP 字典实现了以下功能:
- 强制数据完整性。
- 无冗余地管理数据定义。
- 与 ABAP 开发工作台的其余部分紧密集成。
实例
任何复杂的用户定义类型都可以从字典中的 3 个基本类型构建。客户数据存储在 'Customer' 结构中,其组件名称、地址和电话如下图所示。名称也是一个包含组件、名字和姓氏的结构。这两个组件都是基本的,因为它们的类型是由数据元素定义的。
组件地址的类型由其组件也是结构的结构定义,电话组件由表类型定义,因为客户可以有多个电话号码。类型用于 ABAP 程序,也用于定义功能模块的接口参数类型。