前页 | 后页 |
数据库索引
数据库索引应用于表,以提高数据检索和排序操作的性能。可以针对一个表定义多个索引。但是,每个索引都会在数据库服务器上施加开销(以处理时间和存储的形式),以便在将信息添加到表或从表中删除信息时对其进行维护。
在Enterprise Architect ,索引被建模为Enterprise Architect型操作。
一些DBMS支持特殊类型的索引。 Enterprise Architect使用其他属性(例如基于函数,群集和填充因子)定义了这些属性。
访问
色带 |
开发>数据建模>数据库构建器>单击表名>约束/索引 |
上下文菜单 |
在图中右键单击Table |特色|约束/索引 |
键盘快捷键 |
单击表:F9>约束/索引 |
处理索引
步 |
行动 |
也可以看看 |
---|---|---|
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将无效,除非该索引基于功能。
- 分配给基于功能的索引的所有列都将被忽略