数据字典是一个集中的存储区,它存放关于数据库中数据的信息,这些信息被称为“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.单选框-视图 处可以定义以下类型:数据库视图、映射视图、维护视图、帮助视图。
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和选择画面。
基本概念就介绍到这里。欢迎大家评论......