预订演示

请注意 : 本帮助页面不适用于最新版本的Enterprise Architect. 最新的帮助文档在这里.

前页 后页

数据库索引

数据库索引应用于表,以提高数据检索和排序操作的性能。可以针对一个表定义多个索引。但是,每个索引都会在数据库服务器上施加开销(以处理时间和存储的形式),以便在将信息添加到表或从表中删除信息时对其进行维护。

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

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

访问

色带

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

上下文菜单

在图中右键单击Table |特色|约束/索引

键盘快捷键

单击表:F9>约束/索引

处理索引

Working on an index in Sparx Systems Enterprise Architect.

行动

也可以看看

1个

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

新约束将添加为默认名称“ constraint1”和“索引”类型。

用您的首选索引名称改写名称。

2

将适当的列分配给索引。

“分配的列”列表还有一个附加的“订单”字段,用于指定索引中每个分配的列的存储顺序(升序或降序)。您可以根据需要切换每列的顺序。

另外,对于MySQL索引,将显示一个“ Len”字段,您可以在其中定义部分索引。也就是说,该索引使用基于文本的字段的前导n个字符。 “长度”字段仅接受介于0和列的定义长度之间的整数数值。值0(这是默认值)指示将对整个列进行索引。

数据库表约束/索引

3

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

其他特性

属性

描述

也可以看看

是独特的

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

聚集

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

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

是位图

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

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

“ Is Bitmap”和“ Is Unique”属性是互斥的,因此,当“ Is Bitmap”属性为True时,DDL生成将忽略“ Is Unique”属性。

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

填充系数

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

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

基于功能

一个SQL语句,它定义将要评估的功能/语句并为结果建立索引;例如:

LOWER(“ field”)

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

包括

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

并非所有的DBMS都支持索引的'include'属性,因此该属性仅对支持该属性的DBMS可见。

笔记

  • 警告: Enterprise Architect假定索引至少分配有一个列;但是, Enterprise Architect在建模过程中不会强制执行此规则
    如果为具有已定义索引但未分配列的表生成DDL,则该DDL将无效,除非该索引基于功能。
  • 分配给基于功能的索引的所有列都将被忽略

学到更多