Package weka.clusterers.forOPTICSAndDBScan.Databases

# Interface Database

All Known Implementing Classes:
  `SequentialDatabase`

public interface Database

Database.java
Authors: Rainer Holzmann, Zhanna Melnikova-Albrecht, Matthias Schubert
Date: Aug 20, 2004
Time: 1:03:43 PM
$ Revision 1.4 $

Version:
  $Revision: 1.2 $
Author:
  Matthias Schubert (schubert@dbs.ifi.lmu.de), Zhanna Melnikova-Albrecht (melnikov@cip.ifi.lmu.de), Rainer Holzmann (holzmann@cip.ifi.lmu.de)

## Method Summary

Modifier and Type
Method
Description
`boolean`
`contains(DataObject dataObject_Query)`
Tests if the database contains the dataObject_Query
`List`
`coreDistance(int minPoints, double epsilon, DataObject dataObject)`
Calculates the coreDistance for the specified DataObject.
`Iterator`
`dataObjectIterator()`
Returns an iterator over all the dataObjects in the database
`List`
`epsilonRangeQuery(double epsilon, DataObject queryDataObject)`
Performs an epsilon range query for this dataObject
`double[]`
`getAttributeMaxValues()`
Returns the array of maximum-values for each attribute
`double[]`
`getAttributeMinValues()`
Returns the array of minimum-values for each attribute
`DataObject`
`getDataObject(String key)`
Select a dataObject from the database
`Instances`
`getInstances()`
Returns the original instances delivered from WEKA
`void`
`insert(DataObject dataObject)`
Inserts a new dataObject into the database
`List`
`k_nextNeighbourQuery(int k, double epsilon, DataObject dataObject)`
Emits the k next-neighbours and performs an epsilon-range-query at the parallel.
`Iterator`
`keyIterator()`
Returns an iterator over all the keys
`void`
`setMinMaxValues()`
Sets the minimum and maximum values for each attribute in different arrays by walking through every DataObject of the database
`int`
`size()`
Returns the size of the database (the number of dataObjects in the database)

## Method Details

### getDataObject

DataObject getDataObject(String key)
Select a dataObject from the database

Parameters:
  `key` - The key that is associated with the dataObject
Returns:
  dataObject

### size

int size()
Returns the size of the database (the number of dataObjects in the database)

Returns:
  size

### keyIterator

Iterator keyIterator()
Returns an iterator over all the keys

Returns:
  iterator

### dataObjectIterator

Iterator dataObjectIterator()
Returns an iterator over all the dataObjects in the database

Returns:
  iterator

### contains

boolean contains(DataObject dataObject_Query)
Tests if the database contains the dataObject_Query

Parameters:
  `dataObject_Query` - The query-object
Returns:
  true if the database contains dataObject_Query, else false

### insert

void insert(DataObject dataObject)
Inserts a new dataObject into the database

Parameters:
  `dataObject` -

### getInstances

Instances getInstances()
Returns the original instances delivered from WEKA

Returns:
  instances

### setMinMaxValues

void setMinMaxValues()
Sets the minimum and maximum values for each attribute in different arrays by walking through every DataObject of the database

### getAttributeMinValues

double[] getAttributeMinValues()
Returns the array of minimum-values for each attribute

Returns:
  attributeMinValues

### getAttributeMaxValues

double[] getAttributeMaxValues()
Returns the array of maximum-values for each attribute

Returns:
  attributeMaxValues

### epsilonRangeQuery

List epsilonRangeQuery(double epsilon, DataObject queryDataObject)
Performs an epsilon range query for this dataObject

Parameters:
  `epsilon` - Specifies the range for the query
  `queryDataObject` - The dataObject that is used as query-object for epsilon range query
Returns:
  List with all the DataObjects that are within the specified range

### k_nextNeighbourQuery

List k_nextNeighbourQuery(int k, double epsilon, DataObject dataObject)
Emits the k next-neighbours and performs an epsilon-range-query at the parallel. The returned list contains two elements: At index=0 --> list with all k next-neighbours; At index=1 --> list with all dataObjects within epsilon;

Parameters:
  `k` - number of next neighbours
  `epsilon` - Specifies the range for the query
  `dataObject` - the start object
Returns:
  list with the k-next neighbours (PriorityQueueElements) and a list with candidates from the epsilon-range-query (EpsilonRange_ListElements)

### coreDistance

List coreDistance(int minPoints, double epsilon, DataObject dataObject)
Calculates the coreDistance for the specified DataObject. The returned list contains three elements: At index=0 --> list with all k next-neighbours; At index=1 --> list with all dataObjects within epsilon; At index=2 --> coreDistance as Double-value

Parameters:
  `minPoints` - minPoints-many neighbours within epsilon must be found to have a non-undefined coreDistance
  `epsilon` - Specifies the range for the query
  `dataObject` - Calculate coreDistance for this dataObject
Returns:
  list with the k-next neighbours (PriorityQueueElements) and a list with candidates from the epsilon-range-query (EpsilonRange_ListElements) and the double-value for the calculated coreDistance