# Draco SQL File Format Summary

Description | Data | Analyses | Plots | Text Windows | See Also

## Description

The native Draco format saves all worksheet data in an SQLite 3-compatible database file. The data is arranged in tables within the SQLite file, and the extension is ".sql-draco". This format offers significant advantages over the ODS format Draco also uses. Data access is significantly faster and memory usage is lower because no XML parsing is necessary.

## Data

The references to all variables are stored within the Variables table. The Variables table contains the following columns:

- name
- description
- type
- unit (only for DateObjects)
- base (only for DateObjects)
- format

The data associated with each variable is stored in the Data table. One column per variable appears in the Data table, each named after its corresponding variable. The data is stored as strings, and entries can be null if values are missing in the worksheet.

## Analyses

Draco analyses are divided into two tables. Regressions are stored in the Regression table, and general analyses, like ANOVA, are stored in the Analysis table. Draco only saves analyses that were successfully completed; failed or incomplete regressions and analyses will not be saved to the file. The Regression table contains the following columns:

- key
- name
- type
- results
- equation
- subtype

The key is a unique integer identifying the regression. The name, type, and results contain the analysis name from the worksheet, the type of regression, and the text representation of the results respectively. The equation field stores any equations necessary for the regression; for example it will contain the equation to fit for Nonlinear Least Squares regressions. The subtype column stores any additional regression type information, such as the likelihood function used in a Maximum Likelihood Estimator analysis.
The key is used to reference data associated with the analysis. Independent, dependent, and instrumental variables along with resulting estimates are stored in the Parameters table. The Parameters table contains 3 columns:

- name
- owner
- type
- value

The owner column contains the key of the corresponding regression. The covariance matrices from regressions are stored in the MatrixData table, which contains the following columns:

- owner
- value
- position_x
- position_y
- type

General analyses are stored in the Analysis table with the following columns:

- key
- name
- type
- results

These columns are equivalent to those found in the Regression table. The variables used in the analysis are stored in the Parameters table.

## Plugins

Draco stores information about successfully completed plugin analyses in the Plugin table. The table contains the following columns:

- key
- class
- name
- data
- type
- version
- origin

The key is used to reference analyses pertaining to the specified plugin. Class represents the Ruby class name of the plugin, while name represents the human-readable name. The data column is currently empty, but would, in theory, store data concerning the particular plugin instance. The type refers to the plugin type and should be either regression or analysis. Version and origin are meant to contain the unique plugin version as an integer and the author of the plugin respectively; these fields are currently not used and may be null.
Regression plugins are cross-referenced to entries in the Regression table via the RegressionPlugin table. The RegressionPlugin table contains the following columns:

- owner
- plugin

The owner column contains the regression key, while the plugin column contains the plugin key. Analyses are handled similarly via the AnalysisPlugin table, which contains the following columns:

- owner
- plugin

The owner column contains the Analysis key referencing an entry in the Analysis table, while the plugin column contains the corresponding plugin key.
Currently plugins, unlike normal regressions and analyses, do not populate any other tables. For example, a regression containing independent and dependent variables generated by a plugin will not generate entries in the Parameters table. At this time, plugins nominally store results only.

## Plots

Plots are stored in the Plot table. This table contains the following columns:

- key
- name
- title
- type

The axes of each plot are stored in the PlotAxisData table. The axis table contains the following columns:

- owner
- type
- label
- scale_type
- scale_mode
- scale_min
- scale_max
- grid

The type column specifies either x or y axis type. The scale_type column stores the type of axes scaling (i.e. linear). The scale_mode column stores whether the axis is scaled automatically, manually, or not specified. The min and max columns specify the axis bounds. The final column, grid, specifies whether the axis will include a grid on the major axis tics.
The series information is stored in the PlotSeries table. This table contains the following columns:

- owner
- name
- x_data
- y_data
- color
- marker
- line

The x_data and y_data columns contain unique keys referencing the actual plot data stored in the PlotData table. The color column contains a 24-bit RGB representation of the series color. The marker and line columns contain flags, if applicable, indicating whether the series should draw markers and lines respectively.
The PlotData table contains the data for plotting. This table contains the following columns:

- owner
- position
- value

The owner column contains the unique key corresponding to the x_data or y_data keys from the PlotSeries table. The position column contains the indexed location of the value in the plot series.

## Text Windows

The text windows from within the worksheet are stored in the Text table. The Text table contains the following columns:

- name
- content
- editable
- type

The editable column indicates if the text window can be edited by the user. The type column contains the MIME type of the content.

## See Also

Draco ODS File Format

Copyright © 2008 Approximatrix, LLC
Text licensed under the Creative Commons Attribution-Share Alike 3.0 License
DracoTM and the Approximatrix logo are trademarks of Approximatrix, LLC
Other trademarks are property of their respective owners