Table of Contents#
-
Overview of UniData and UniVerse
- History & Vendor Background
- Data Model: MultiValue Architecture
- Key Features
- Common Use Cases
- Example Usage
-
Overview of WakandaDB
- History & Architecture
- Data Model: JavaScript/Object-Based
- Key Features
- Common Use Cases
- Example Usage
-
Critical Differences Compared
- Data Modeling Paradigms
- Query Languages
- Concurrency & Transactions
- Scalability Approaches
- Ecosystem Integration
-
Best Practices
- UniData/UniVerse Best Practices
- WakandaDB Best Practices
-
When to Choose Which Database
-
References
1. Overview of UniData and UniVerse#
History & Vendor Background#
- UniData & UniVerse are proprietary MultiValue databases owned by Rocket Software (originally developed in the 1980s).
- Target Market: Legacy enterprise systems (banking, healthcare, logistics) requiring high-reliability transaction processing.
Data Model: MultiValue Architecture#
- Multi-Dimensional Data: Stores data as dynamic arrays ("multi-values"), allowing nested attributes within a single field.
- Schema Flexibility: No fixed schema; attributes can be added dynamically.
- File Types: Data stored in "files" (analogous to tables), each containing records with variable-length fields.
Key Features#
- ACID Compliance: Full transactional support with rollback capabilities.
- U2 BASIC: Proprietary language for server-side logic and querying.
- MultiValue Query Language (MVQL): SQL-like syntax for complex joins and aggregations.
- High Availability: Built-in replication and failover mechanisms.
Common Use Cases#
- Core banking transaction systems
- Inventory management in manufacturing
- Legacy ERP/CRM migrations
Example Usage (U2 BASIC)#
OPEN "CUSTOMERS" TO CUST.FILE ELSE STOP "File error"
READ CUST.REC FROM CUST.FILE, "12345" ELSE RETURN
NAME = CUST.REC<1> ;* Access 1st field (multi-value delimiter-aware)
PRINT "Customer: ":NAME2. Overview of WakandaDB#
History & Architecture#
- Open-Source JavaScript database (AGPL v3) developed by Wakanda SAS (2010s).
- Full-Stack Integration: Bundles frontend (Widgets), backend (JavaScript REST API), and embedded NoSQL database.
- Embedded Architecture: Runs as part of the Wakanda Server (V8-based standalone server).
Data Model: JavaScript/Object-Based#
- Persistent JavaScript Objects: Data stored as JavaScript class instances.
- Schema via Classes: Define data models as JavaScript classes with attributes and methods.
- Relations: Direct object references (e.g.,
employee.company).
Key Features#
- End-to-End JavaScript: Use JavaScript for queries, validations, and APIs.
- REST API Generator: Auto-generates REST endpoints for data models.
- Real-Time Capabilities: WebSocket support for live updates.
- Built-in Admin UI: Wakanda Studio IDE for model management.
Common Use Cases#
- Rapid prototyping for web/mobile apps
- Single-page applications (SPAs) with real-time sync
- Internal tools requiring minimal backend code
Example Usage (JavaScript)#
// Define a model
const Employee = waServer.DS.Model.extend({
name: { type: 'string' },
hireDate: { type: 'date' },
company: { belongsTo: 'Company' }
});
// Query using Wakanda Query Language (WQL)
Employee.query({
where: 'hireDate > :1',
params: [new Date(2020, 1, 1)],
orderBy: 'name'
}).then(employees => {
console.log(employees.map(e => e.name));
});3. Critical Differences Compared#
| Criteria | UniData/UniVerse | WakandaDB |
|---|---|---|
| Data Model | MultiValue (dynamic arrays) | JavaScript Objects |
| Query Language | U2 BASIC, MVQL | JavaScript/WQL |
| Transactions | ACID-compliant, row-level locking | Supports transactions with optimistic locking |
| Concurrency | Multi-threaded server | Single-threaded (Node.js event loop) |
| Scalability | Vertical scaling + sharding | Horizontal scaling via clustering |
| Ecosystem | Legacy systems (COBOL, Java) | Modern web stack (Angular, React) |
| Deployment | On-premise, VMs, Rocket clusters | Cloud-native (Docker/Kubernetes) |
| License | Proprietary ($$$) | Open-Source (AGPL v3) |
4. Best Practices#
UniData/UniVerse#
- Dynamic Field Optimization: Use MultiValue attributes for sparse data (avoid over-normalization).
- Indexing: Create dictionaries for frequently queried fields to avoid full scans.
- U2 BASIC Modularization: Encapsulate business logic in reusable subroutines.
- Legacy Integration: Expose data via REST APIs using Rocket’s U2 REST Services.
WakandaDB#
- Model Validation: Implement
validate()methods in model classes. - Avoid Heavy Computations: Offload CPU-intensive tasks to worker threads.
- Real-Time Updates: Use
on('change')events for WebSocket push notifications. - Frontend Syncing: Use Angular/React bindings for auto-updating UIs.
5. When to Choose Which Database#
-
Choose UniData/UniVerse If:
- Migrating or maintaining a legacy MultiValue application
- Require robust ACID compliance for financial transactions
- Integrating with IBM Mainframes or AS/400 systems
-
Choose WakandaDB If:
- Building a new JS/TypeScript web/mobile app
- Need rapid prototyping with integrated backend-frontend
- Prioritize developer speed over transactions/scale
-
Avoid UniData/UniVerse for cloud-native microservices.
-
Avoid WakandaDB for high-frequency transactional systems (>10K TPS).
References#
- Rocket UniData Documentation
- WakandaDB GitHub Repository
- Crasta, R. (2020). MultiValue Database Systems. Wiley.
- MultiValue Database Benchmarking Study
- WakandaDB vs. MongoDB: Performance Comparison