预订演示
前页 后页

数据库索引

将数据库索引应用于表以提高数据检索和排序操作的性能。一个库表可以定义多个索引;但是,每个索引都会在数据库服务器上增加开销(以处理时间和存储的形式)来维护它们,因为在库表中添加和删除信息

在Enterprise Architect中,索引被建模为原型操作。

一些 DBMS 支持特殊类型的索引; Enterprise Architect使用其他属性来定义这些,例如基于函数的、集群的和填充因子。

访问

功能区

开发 >数据建模>数据库构建器 > 点击库表名称 >约束/索引

上下文菜单

图中 |右键单击库表|特征|约束/索引

键盘快捷键

点击库表:F9 >约束/索引

处理索引

Working on an index in Sparx Systems Enterprise Architect.

行动

也见

1

在库表的“约束/索引”选项卡上,右键单击并选择“添加新约束”。

使用默认名称“constraint1”和“index”类型添加新约束。

用您喜欢的索引名称改写名称。

2

将适当的列分配给索引。

'Assigned Columns' 列表有一个附加的 'Order' 字段,用于指定每个已分配列存储在索引中的顺序(升序或降序)。您可以根据需要切换每列的顺序。

此外,对于MySQL索引,“Len”字段将可见,您可以在其中定义部分索引;即,使用基于文本的字段的前导“n”个字符的索引。 “Len”字段仅采用介于 0 和列的定义长度之间的整数数值。 A 0(这是默认值)表示要索引整个列。

数据库约束库表/索引

3

在“属性”面板中,审阅为当前 DBMS 定义的扩展属性的设置。

附加属性

属性

描述

也见

是独特的

( True / False ) 指示当前索引是否为“唯一索引”。唯一索引确保索引A (或列)不包含重复值,从而确保每一行具有唯一值(或索引由多列组成时的值组合)。

是集群的

( True / False ) 指示当前索引是否为“聚集索引”。使用聚集索引,表的行在物理上以与索引中相同的顺序存储,因此每个表只能有一个聚集索引。默认情况下,一个表的主键是集群的。

并非所有 DBMS 都支持聚集索引,因此“Is Clustered”索引属性仅对支持它的 DBMS 可见。

是位图

( True / False ) 指示当前索引是否为“位图”索引。位图索引旨在用于具有相对较少唯一值的列(称为“低基数”列)并且物理上由每个唯一值的位数组(通常称为位图)组成。对于表中的每一行,每个数组都有一个位。

考虑这个示例:在名为“性别”的列上创建位图索引,该列具有“男性”或“女性”选项。物理上,索引将由两个位数组组成,一个用于“男性”,一个用于“女性”。女性位数组在匹配行的值为“女性”的每个位中都有一个1 。

Is Bitmap 和 Is Unique属性是互斥的,所以当 Is Bitmap属性为True时,DDL 生成将忽略 Is属性。

位图索引仅受 Oracle 支持;因此,此属性仅在对 Oracle 索引建模时可见。

填充系数

A介于 0 和 100 之间的数值,用于定义应用于数据的可用空间百分比。

并非所有 DBMS 都支持填充因子,因此“填充因子”索引属性仅对支持它的 DBMS 可见。

基于功能

A #

定义将被评估的函数/语句和索引结果的语句;例如:

降低(“字段”)

并非所有 DBMS 都支持基于功能的索引,因此“基于功能的”索引属性仅对支持它们的 DBMS 可见,例如 PostgreSQL 和 Oracle。

包括

从当前表中标识非键列的逗号分隔列表 (CSV)。

并非所有 DBMS 都支持索引的“包含”属性,因此该属性仅对支持它的 DBMS 可见。

注记

  • 警告: Enterprise Architect假定索引至少有一列分配给它们;但是, Enterprise Architect在建模期间不强制执行此规则
    如果为定义了未分配列的索引的库表生成 DDL,则该 DDL 将无效,除非该索引是基于功能的
  • 分配给基于功能的索引的任何列都将被忽略

了解更多