All systems

Pick / MultiValue

MultiValue (D3, UniVerse, UniData)
Supported

Prepare

  1. Upload Pick/MultiValue data
Guide

Pick (also known as MultiValue or PICK) is a unique database management system with a multi-valued data model that allows multiple values in a single field. Variants include D3, UniVerse, UniData, jBASE, and OpenQM.

What You Can Upload

  • Dictionary and data files exported from Pick system
  • T-DUMP or ACCOUNT-SAVE exports
  • CSV exports from Pick environment
  • ZIP archive with complete file sets

What You Get Out

DataMeans extracts your data into multiple modern formats:

OutputDescription
csv/{TableName}.csvOne CSV file per table with all row data
xlsx/{TableName}.xlsxExcel workbook per table
xls/{TableName}.xlsLegacy Excel format per table
json/{TableName}.jsonJSON array of records per table
json/{TableName}.jsonlNewline-delimited JSON (streaming-friendly)
postgres.sqlPostgreSQL CREATE TABLE + INSERT statements
schema/schema-graph.jsonRelationship graph for visualization
schema/er-model.jsonER model for diagram tools
report.jsonStructured extraction report
report.mdHuman-readable extraction summary

How to Export / Obtain Files

  1. Use T-DUMP to export files:
    T-DUMP filename
    
  2. Or use ACCOUNT-SAVE for full account backup
  3. Export dictionary items for schema definitions
  4. Transfer files to local system via FTP
  5. Create a ZIP with all exported files
  6. Upload the ZIP to DataMeans

Supported Features

  • Multi-value field handling and normalization
  • Multi-sub-value field support
  • Dictionary item extraction for field definitions
  • Automatic conversion to relational schemas
  • Proper foreign key generation
  • Controlling/dependent file relationship mapping

Known Limitations

  • Normalized output creates multiple tables from single Pick file
  • Correlative and conversion codes documented but not executed
  • Some Pick BASIC logic may need manual migration

Troubleshooting

IssueSolution
Field names missingInclude dictionary exports
Multi-value confusionReview normalized table structure
Date conversion errorsSpecify internal date format

Last updated: January 2026

Technical reference

Overview

Pick (also known as MultiValue) is a post-relational database model that predates SQL and relational databases. It uses a hierarchical, multi-valued data structure where each field can contain multiple values, reducing the need for complex joins. The Pick system includes both an operating system and database, with implementations from various vendors using hash-based file storage.

History and Background

  • 1965: Don Nelson and Dick Pick develop GIRLS (Generalized Information Retrieval Language System) at TRW for U.S. Army helicopter parts tracking.
  • 1973: Microdata releases Reality, the first commercial implementation of the Pick system.
  • Mid-1970s: Ken Simms creates Data/BASIC, the procedural programming language of Pick systems.
  • c. 1978: The Ultimate Corp develops the second Pick implementation, delivered as firmware on a Honeywell Level 6 machine.
  • 1979: Devcom, a Microdata reseller, writes INFORMATION in FORTRAN and assembler for Prime Computer 50-series systems; sold to Prime Computer, it becomes Prime INFORMATION.
  • 1980s: Popular in business applications, especially in vertical markets.
  • 1981: McDonnell Douglas buys Microdata.
  • 1990s: New Pick-compatible implementations appear, including jBASE (1991) and D3 (1997).
  • 2001: IBM acquires the database division of Informix, including the UniVerse and UniData (U2) products.
  • 2005: InterSystems announces MultiValue extensions for its Caché database.
  • 2010s: Rocket Software acquires the U2 family from IBM and the D3 and mvBase products from TigerLogic (2014).
  • 2021: Rocket Software acquires the OpenQM and jBASE products.

File Format Specifications

Hash File System:

  • Files stored as hash tables with fixed-size buckets
  • Primary keys hashed to determine storage location
  • Group assignment by remainder: the hashed key is divided by the modulo (group count) and the remainder selects the group
  • Modulo values chosen as prime numbers for even record distribution; D3 additionally avoids multiples of 2 and 5
  • Bucket sizing is vendor-specific: UniVerse separation sets group buffers in 512-byte units, while D3 uses uniform 4096-byte frames
  • Collision resolution through overflow chains
  • File extension typically none (files named by application)

MultiValue Structure:

  • Records contain fields (attributes) with multiple values
  • Item marks (ASCII 255) delimit complete records (items)
  • Attributes separated by attribute marks (ASCII 254)
  • Values separated by value marks (ASCII 253)
  • Subvalues within values separated by subvalue marks (ASCII 252)
  • Text marks (ASCII 251) for formatting
  • No fixed record length - dynamic sizing

File Types:

  • Data files: Primary storage for records
  • Dictionary files: Metadata and field definitions
  • Overflow areas: Handle hash collisions and oversized records
  • Transaction logs: For recovery and replication
  • UniVerse numbered file types: nonhashed (1, 19), static hashed (2-18, each tuned to different record-ID patterns), B-tree (25), dynamic (30)
  • Dynamic (type 30) files resize automatically, splitting groups above a default 80% load and merging below 50%

Data Types and Structures

Pick treats all data as character strings, with no explicit data typing:

ConceptDescriptionStorage
AccountSchema-level grouping of related filesCollection of files
FileTable equivalent; data portion pairs with a dictionaryHashed groups
ItemComplete recordVariable length string
Item-IDUnique key naming an itemHashed to select the storage group
AttributeField within itemMulti-valued
ValueIndividual data elementSub-valued
SubvalueComponent of valueAtomic level

MultiValue Characteristics:

  • One-to-many relationships stored within a single record
  • Fewer join operations than normalized relational schemas
  • Sparse data stored without placeholder fields
  • Records are not constrained by a fixed schema
  • Sorting and selection handled by the query language

Query Language:

  • English-like syntax (LIST, SORT, SELECT), originally named ENGLISH and later ACCESS
  • Retrieval and reporting without SQL
  • Dictionary-driven reporting
  • Procedural programming in Pick BASIC

Version Differences

ImplementationYearKey FeaturesCompatibility
Original Pick (Reality)1973Hash files, MultiValueBaseline for later systems
Ultimatec. 1978Firmware implementation on Honeywell Level 6Second Pick implementation
Prime INFORMATION1979FORTRAN/assembler system for Prime 50-seriesPick-style; later emulated by UniVerse
jBASE1991Unix/Windows portsPick compatible
OpenQM2001GPL-licensed open-source edition offeredPick-style
D31997Pick OS hosted on Unix/Linux/WindowsCompatible with Advanced Pick and R83
UniVerse1980sReality and Prime INFORMATION emulation modesPick compatible
Revelation1983Pick-style database for MS-DOSPick-style variant
InterSystems Caché2005MultiValue extensions on the Caché engineSupports MultiValue Basic dynamic arrays

Compatibility Notes:

  • All implementations share core MultiValue concepts
  • Delimiter conventions are shared, but on-disk file formats are vendor-specific
  • Item size handling varies: D3 moves items larger than 1720 bytes entirely into overflow frames via pointer items, while UniVerse documentation recommends nonhashed files for records over 2000 bytes
  • UniVerse BASIC exposes the delimiters as the system variables @FM, @VM, and @SM
  • Some extensions are vendor-specific
  • Migration tools available between implementations
  • Later versions add SQL interfaces and web services support

Technical References


To learn how to use this format with DataMeans, see the User Guide.