com.ibm.db.models.db2.luw
Interface LUWPartitionKey

All Superinterfaces:
commonj.sdo.DataObject, org.eclipse.emf.ecore.sdo.EDataObject, org.eclipse.emf.ecore.EModelElement, org.eclipse.emf.ecore.ENamedElement, org.eclipse.emf.ecore.EObject, org.eclipse.emf.common.notify.Notifier, java.io.Serializable, org.eclipse.wst.rdb.internal.models.sql.schema.SQLObject
All Known Implementing Classes:
LUWPartitionKeyImpl

public interface LUWPartitionKey
extends org.eclipse.wst.rdb.internal.models.sql.schema.SQLObject

A representation of the model object 'Partition Key'. Data partitioning across multiple partitions DB2 allows great flexibility in spreading data across multiple partitions (nodes) of a partitioned database. Users can choose how to partition their data by declaring partitioning keys, and can determine which and how many partitions their table data can be spread across by selecting the database partition group and table space in which the data should be stored. In addition, a partitioning map (which is updatable) specifies the mapping of partitioning key values to partitions. This makes it possible for flexible workload parallelization across a partitioned database for large tables, while allowing smaller tables to be stored on one or a small number of partitions if the application designer so chooses. Each local partition may have local indexes on the data it stores to provide high performance local data access. A partitioned database supports a partitioned storage model, in which the partitioning key is used to partition table data across a set of database partitions. Index data is also partitioned with its corresponding tables, and stored locally at each partition. Before partitions can be used to store database data, they must be defined to the database manager. Partitions are defined in a file called db2nodes.cfg. The partitioning key for a table in a table space on a partitioned database partition group is specified in the CREATE TABLE statement or the ALTER TABLE statement. If not specified, a partitioning key for a table is created by default from the first column of the primary key. If no primary key is defined, the default partitioning key is the first column defined in that table that has a data type other than a long or a LOB data type. Partitioned tables must have at least one column that is neither a long nor a LOB data type. A table in a table space that is in a single partition database partition group will have a partitioning key only if it is explicitly specified. Hash partitioning is used to place a row in a partition as follows: 1. A hashing algorithm (partitioning function) is applied to all of the columns of the partitioning key, which results in the generation of a partitioning map index value. 2. The partition number at that index value in the partitioning map identifies the partition in which the row is to be stored. DB2 supports partial declustering, which means that a table can be partitioned across a subset of partitions in the system (that is, a database partition group). Tables do not have to be partitioned across all of the partitions in the system. DB2 has the capability of recognizing when data being accessed for a join or a subquery is located at the same partition in the same database partition group. This is known as table collocation. Rows in collocated tables with the same partitioning key values are located on the same partition. DB2 can choose to perform join or subquery processing at the partition in which the data is stored. This can have significant performance advantages. Collocated tables must: - Be in the same database partition group, one that is not being redistributed. (During redistribution, tables in the database partition group may be using different partitioning maps - they are not collocated.) - Have partitioning keys with the same number of columns. - Have the corresponding columns of the partitioning key be partition compatible. - Be in a single partition database partition group defined on the same partition.

The following features are supported:

See Also:
LUWPackage.getLUWPartitionKey()

Method Summary
 org.eclipse.emf.common.util.EList getColumns()
          Returns the value of the 'Columns' reference list.
 PartitionMethod getPartitionMethod()
          Returns the value of the 'Partition Method' attribute.
 LUWStorageTable getTable()
          Returns the value of the 'Table' container reference.
 void setPartitionMethod(PartitionMethod value)
          Sets the value of the 'Partition Method' attribute.
 void setTable(LUWStorageTable value)
          Sets the value of the 'Table' container reference.
 
Methods inherited from interface org.eclipse.wst.rdb.internal.models.sql.schema.SQLObject
addEAnnotation, addEAnnotationDetail, getComments, getDependencies, getDescription, getEAnnotation, getEAnnotationDetail, getLabel, getPrivileges, removeEAnnotationDetail, setAnnotationDetail, setDescription, setLabel
 
Methods inherited from interface org.eclipse.emf.ecore.sdo.EDataObject
getInstanceProperties
 
Methods inherited from interface commonj.sdo.DataObject
createDataObject, createDataObject, createDataObject, createDataObject, createDataObject, createDataObject, delete, get, get, get, getBigDecimal, getBigDecimal, getBigDecimal, getBigInteger, getBigInteger, getBigInteger, getBoolean, getBoolean, getBoolean, getByte, getByte, getByte, getBytes, getBytes, getBytes, getChar, getChar, getChar, getContainer, getContainmentProperty, getDataGraph, getDataObject, getDataObject, getDataObject, getDate, getDate, getDate, getDouble, getDouble, getDouble, getFloat, getFloat, getFloat, getInt, getInt, getInt, getList, getList, getList, getLong, getLong, getLong, getSequence, getSequence, getSequence, getShort, getShort, getShort, getString, getString, getString, getType, isSet, isSet, isSet, set, set, set, setBigDecimal, setBigDecimal, setBigDecimal, setBigInteger, setBigInteger, setBigInteger, setBoolean, setBoolean, setBoolean, setByte, setByte, setByte, setBytes, setBytes, setBytes, setChar, setChar, setChar, setDataObject, setDataObject, setDataObject, setDate, setDate, setDate, setDouble, setDouble, setDouble, setFloat, setFloat, setFloat, setInt, setInt, setInt, setList, setList, setList, setLong, setLong, setLong, setShort, setShort, setShort, setString, setString, setString, unset, unset, unset
 
Methods inherited from interface org.eclipse.emf.ecore.ENamedElement
getName, setName
 
Methods inherited from interface org.eclipse.emf.ecore.EModelElement
getEAnnotations
 

Method Detail

getPartitionMethod

PartitionMethod getPartitionMethod()
Returns the value of the 'Partition Method' attribute. The literals are from the enumeration PartitionMethod.

If the meaning of the 'Partition Method' attribute isn't clear, there really should be more of a description here...

Returns:
the value of the 'Partition Method' attribute.
See Also:
PartitionMethod, setPartitionMethod(PartitionMethod), LUWPackage.getLUWPartitionKey_PartitionMethod()

setPartitionMethod

void setPartitionMethod(PartitionMethod value)
Sets the value of the 'Partition Method' attribute.

Parameters:
value - the new value of the 'Partition Method' attribute.
See Also:
PartitionMethod, getPartitionMethod()

getTable

LUWStorageTable getTable()
Returns the value of the 'Table' container reference. It is bidirectional and its opposite is 'Partition Key'.

If the meaning of the 'Table' container reference isn't clear, there really should be more of a description here...

Returns:
the value of the 'Table' container reference.
See Also:
setTable(LUWStorageTable), LUWPackage.getLUWPartitionKey_Table(), LUWStorageTable.getPartitionKey()

setTable

void setTable(LUWStorageTable value)
Sets the value of the 'Table' container reference.

Parameters:
value - the new value of the 'Table' container reference.
See Also:
getTable()

getColumns

org.eclipse.emf.common.util.EList getColumns()
Returns the value of the 'Columns' reference list. The list contents are of type Column.

If the meaning of the 'Columns' reference list isn't clear, there really should be more of a description here...

Returns:
the value of the 'Columns' reference list.
See Also:
LUWPackage.getLUWPartitionKey_Columns()