ABAP数据字典

    数据字典是一个集中的存储区,它存放关于数据库中数据的信息,这些信息被称为“metadata”(data about data)。

    数据字典提供了对一下问题的解答:

1.数据库中存放了什么数据。

2.数据的属性:名称、长度、类型等。

3.数据对象之间的关系。

    SAP的数据字典被称为ABAP字典,其功能如下:

1.保证数据完整性。

2.无冗余地定义数据。

3.与ABAP工作台紧密结合。

    保证数据完整性即保证系统的数据是完整的、一致的,并具有逻辑性。系统会自动阻止非法数据的输入,以下为数据缺乏完整性的例子:

1.某域的月份值为13。

2.将某个订单指定给一个并不存在的客户。

3.未指定给客户的订单。

    无冗余地定义数据也就是将相似的信息与同一个数据定义相连。比如,有多个表包括顾客的ID,可以在字典的某个地方定义ID属性,这样就能在每个顾客ID的实例中使用该属性。

    ABAP字典和开发环境的紧密结合使得ABAP程序能自动识别字典对象的名称和属性。你可以双击代码中的对象名称,系统会自动跳转到ABAP字典中该对象的定义。当数据对象发生改变时,使用该对象的程序会在下次运行时自动参考更新后的值。

    ABAP字典中的基本对象为表(Table)、数据元素(Data Elements)和域(Domains),包括R/3系统中所有的域和相关的metadata。

    开发者可以在ABAP字典中定义并管理数据,以及使用这些数据定义和创建各种对象,例如表和视图。一旦你定义了某项数据,则该数据在系统中任何时刻都可用;新创建和修改的数据将自动反映在系统中,从而保证了数据的完整性与一致性。

    ABAP字典事务代码为SE11。初始画面如下所示:


ABAP数据字典_第1张图片

    ABAP字典中应该注意以下事项

1.单选框-视图 处可以定义以下类型:数据库视图、映射视图、维护视图、帮助视图。

2.单选框-数据类型 处可定义以下类型:数据元素Data Element、结构体Structure、表类型TableType(此种类型在实际应用使用较少,这里不再赘述)。

3.单选框-搜索帮助 处可以定义以下类型:基本索引帮助、集合搜索帮助。

4.单选框-类型组 处用于定义类型组 在开发中很少作为类型组去开发,在一些特殊技术中,使用SAP标准类型组的比较多,这里也不做阐述。


    表是ABAP字典的核心,在表中要定义其数据字段,以及表的大小、属性、缓冲、索引等属性。它是数据库长久存储数据的元素。

    表是数据库中实际存放数据的结构,由行和列组成。字段列并不是一个字典中的对象,它是表的一部分,不能脱离表而存在。

    能唯一确定表中一行的列或列的组合被称为主键。

结构体

    结构体,就像一个表一样,定义了数据字段、属性等,但并不保存数据。要指出的是,结构体常用在定义模块池DYNPRO画面数据、接口数据和函数参数等。

视图

我们可以使用视图来执行以下关系操作:

1.连接(Join)多个表。

2.从一个或多个表中选择特定字段。

3.从一个或多个表中选择特定记录。

    连接操作可以将多个表的信息组成一个视图。使用连接操作,你必须确定表之间存在关联。

    数据库设计原则经常需要相关数据存放在不同的表中,这就需要提供一个到多和多关系的灵活性,同时防止数据冗余。视图类型如下:

1.数据库视图(Database View)

它是SAP中仅有的一种创建在数据库级别的视图类型。也就是说,除了SAP,底层的数据库也能识别该视图。因此,数据库视图必须创建在透明表上。在该视图中,可以进行投影、选择和连接操作。数据库视图也能和透明表一样调入缓冲区,你可以在技术设置中关闭或打开缓冲调用。

2.投影视图(Projection View)

存在ABAP字典中,但不能被底层数据库识别。该视图必须定义在单个透明表上,且唯一有效的操作为投影操作。

3.帮助视图(Help View)

如果开发者要完成一个外部连接,则必须创建帮助视图。

4.维护视图(Maintenance View)

允许对基本数据的维护,事务SM30、SE54。

数据元素 Data Element

    数据元素是用于声明表、结构体、视图的字段的类型、文本等。数据元素和字段之间的关系并非需要一一对应,如果字段具有相同的意义,则一个数据元素可以对应多个字段。

    在SAP R/3系统中,表中的域(Domain)通过数据元素定义,而数据元素则通过Domain来定义,这种方法被称为”两级域结构“(Two-level Domain Concept)。SAP R/3中有许多预先定义的数据元素,不过,在使用这些数据元素时,你必须使用系统提供的域。如果你希望使用不同的域,则需要自己创建数据元素。

域Domain    

    域用于定义数据类型、字段长度、并定义域的可接受值。域(Domain)与数据元素(Data Element)间的关系并非需要一一对应,如果是具有相同属性的数据元素,则一个域可以对应多个数据元素。

    域可以独立地存在于ABAP字典中,多个数据元素可以赋给同一个域;与数据元素相似,系统也提供了预定义的域供用户使用。在域中,可以指定域的输出属性,例如输出长度、是否允许小写字符等。创建域的步骤和创建数据元素类似。

    数据元素和域是字典里的对象,他们定义了域的属性并被多个表或结构体使用。多个表可以被视图使用。

    表中的域通过数据元素和域来定义,这是SAP和其他系统的重要区别;在其他系统中,域仅通过其类型(比如字符和数字)和长度来定义。在SAP中,域通过一个数据元素来定义,而每个数据元素又通过一个域来定义。

    一个域指定域的属性以及允许的值,域通过数据元素和域相联系,你不能直接把域赋给域。域属性通常是该域的类型和长度,允许的域值定义了该域可以接受的输入值,既可以直接列出域值范围,也可以通过值表(Value Table)指定。

    ABAP数据字典的特有结构使得各元素可以重复使用。

锁对象

    多个用户可能并发访问同一数据,这样就会用到SAP锁机制。锁对象要定义锁定的表、锁的模式。此外,如果将锁对象有效化,则加锁与解锁的两个函数会被自动生成。程序在需要的时候通过调用这两个函数进行加锁、解锁操作。

    注:SAP锁机制如下:

     通常来讲,SAP锁机制有两种:物理锁和逻辑锁,ABAP字典中的锁对象是逻辑锁的概念,SAP物理所(数据库事务LUW)在本章将会又详细阐述。

搜索帮助

    搜索帮助是SAP用于寻找有用的数据工具。它定义了一个表和需要搜索显示的字段,多用于DYNPRO和选择画面。

    基本概念就介绍到这里。欢迎大家评论......

你可能感兴趣的:(ABAP数据字典)