Data Structures
Each solution has its own way of defining data structures. This section outlines each. Note that this is not an exhaustive list of features from each database vendor. Instead, this is a list of the features we use and are required to meet our business needs.
RDBMS, General
The following structures of interest are common in all RDBMS vendors reviewed for this document:
- TABLE
- VIEW
- PRIMARY KEY / FOREIGN KEY
In general the following features are useful in an RDBMS system and are noted for each of the vendors:
- Paging - limit the result set returned by a minimum and maximum index
- Key Generation - used often for primary key generation, typically generates an integer in RDBMS vendors
- Procedural Language - supported by some vendors, each one is different
RDBMS, Oracle 11g
- Paging - using the ROWNUM pseudocolumn
- Key Generation - Oracle Sequences
- Procedural Language - Oracle PL/SQL
- Function
- Procedure
- Package
RDBMS, MySQL 5.5
- Paging - use LIMIT in select statements
- Key Generation - AUTO_INCREMENT
- Procedural Language - supported but we do not use it
RDBMS, MariaDB 10
- Paging - use LIMIT in select statements
- Key Generation - Storage engine for Sequences
- Procedural Language `- supported but no plans to use it
lightblue 1.0
- JSON document with
- sub-documents
- arrays containing simple data types
- arrays containing sub-documents
- Paging - supported with range in query language
- must be mapped to how the backend implements paging
- Key Generation - uid support
- uid is a string