Purchase |  Products |  Downloads |  Forums |  Blog |  Free Trial     

2.1 is no longer sold or supported - these pages are for reference purposes only. VistaDB 3.x should be used for all new development.

 

VistaDB 2.1 Database

VistaDB data is stored in single-apartment .VDB data store files. These .VDB files is a true database format that provides support for storing rich data types, data integrity and robust transaction processing support. Multiple .VDB database files may be created and managed by any VistaDB application.

Features

  • .VDB databases are single-file data stores that contain all the data for a database
  • 4TB of data per database
  • 65,535 tables per database, 65,535 columns per table and 65,535 indexes per table
  • Blowfish encryption key can be 8 to 56 characters with the VistaDB engine implementing 16 iterations of encryption using the key
  • Database, table or column level encryption
  • Compression may be applied to character and binary type columns
  • Dynamically set default values when records are added or modified with static values or V-Script function results
  • Primarky and Foreign keys
  • Indexes support case insensitivy and case sensitivity, ascending and descending flags
  • Full-Text Search indexes make finding text in Varhchar, Character and Memo fields
  • Indexes are automatically compressed
  • Default values for new records may be set using traditional static values or they may be generated dynamically using pre-defined functions such as GUID() and NOW() (See below)
  • True record deleting -- records are not marked for deletion, they are deleted and the disk space is reclaimed by the database
  • Configurable page size in the database file to optimize data access depending on type of data baing stored
  • Automatic best-fit block size allocation for BLOB and Memo type data
  • Constraints
  • Relationships (via Primary and Foreign keys)
  • Columns may be marked as read-only and hidden
  • Columns may be assigned captions and descriptions
  • Tables may be assigned descriptions

Data Types

SQL Server 2005 VistaDB 3.0 VistaDB 2.x .NET System
BigInt BigInt Int64 Int64
Bit Bit - Byte
Bit Bit Boolean Boolean
Char Char Character String
DateTime DateTime Date DateTime
DateTime DateTime DateTime DateTime
Decimal Decimal - Decimal
Float Float Double Double
Identity Fields Identity Fields AutoIncrement -
Image Image BLOB Byte[]
Image Image Picture Byte[]
Int Int Int32 Int32
Money Money Currency Decimal
NChar NChar - String
NText NText - String
NVarchar NVarchar - String
Real Real - String
SmallInt SmallInt - Int16
SmallMoney SmallMoney - Decimal
Text Text Memo String
Timestamp Timestamp VistaDBType.BigInt
TinyInt TinyInt - Byte
UniqueIdentifier UniqueIdentifier Guid Guid
VarBinary VarBinary - Byte[]
VarChar VarChar Varchar String

Specifications

Maximum Details

# of Columns in a Table

65,535**

This applies to all column types.

# of Columns in an Index Key

Depends on the Column types involved in the index key and the maximum key length allowed in the database. See: Size of Index Keys

# of Decimal Places in a BCD Field

4

# of Indexes in a Table

Primary indexes per table: 1
Secondary indexes per table: 65,535**

Increasing the number of secondary indexes may affect performance since the engine must update all indexes when row changes are applied.

# of Open Tables

65,535**

VistaDB requires 80KB of memory per opened table without indexes and 10KB additionally for each index. In reality, the limit is based on available memory constraints of the operating system or hardware.

# of Rows in a Table

4,294,967,294

VistaDB uses an unsigned 32-bit integer RowId to address physical records. When a record is deleted, the respective RowId doesn't participate in further table modifications, and the record apartment is put into re-cycling. RowId's get re-assigned to records when a database is packed.

# of Rows in a Transaction

Limited only by available memory constraints of the operating system or hardware.

Transactions use multi-versioning record schema. New record versions are allocated for every nested transaction.

# of Tables in a Database

65,535

In reality, the limit is based on available memory constraints of the operating system or hardware.

Size of BLOB, Memo, Picture and Varchar Columns

4GB per column (65,535** tested)

BLOB, Memo, Picture and Varchar Column data is not stored in the record and therefore, each of these Columns types can store the full 4GB without affecting the overall record size. A small 14 byte pointer value is stored in the record for each of these Column types.

Size of BLOB Blocks

VistaDB does not require the BLOB block size to be specified.

Size of Column Constraint

4GB (65,535** tested)

Size of Column Descriptions

4GB (65,535** tested)

Size of Column Names

64 bytes by default

This value can be changed when a database is created. It could increase up to ¼ the size of cluster length used for the database file storage.

Size of Database File

4TB per .VDB database file

Theoretical limit is 16 Exabytes.

Size of Database Names

256 bytes

Size of Database File Cluster

1024 bytes by default.

This value can be increased by 1024 byte blocks up to 8K, when a database is created.

Size of Index Names

64 bytes by default

This value can be changed when a database is created. It could increase up to ¼ of the size of the cluster length used for the database file storage.

Size of Memory Tables

Limited only by available memory constraints of the operating system or hardware.

Memory Tables and Memory Databases follow the same restrictions and constraints as physical tables and databases.

Size of Index Keys

483 bytes by default.

Index Key Length depends on the cluster length allocated for database pages. This value could be manually set when the VistaDB database file is created. The formula to calculate this value is:
MaxIndexKeyLength = (ClusterLength - 58) / 2

Size of Index Pages

1,024 bytes by default.

This value can be increased by 1024 byte blocks up to 8K, when a database is created.

Size of Records

4GB per record

BLOB, Memo, Picture and Varchar Column data is not stored in the record and therefore, each of these Columns types can store the full 4GB without affecting the overall record size. A small 14 byte pointer value is stored in the record for each of these Column types.

Size of String Fields

Maximum length of a string field is 512 bytes. This figure does not include a NULL terminator character. The NULL terminator character is handled internally.

Size of Table Descriptions

4GB

Size of Table Names

64 bytes

Imposed Limits (** where noted)

VistaDB was designed using 32-bit and 64-bit memory addressing in most situations that required large upper limits. The effect of supporting large upper limits are ranges that exceed 4 billion or 4GB for 32-bit values and provides massive Exabytes limits for 64-bit values. Because of our focus on supporting the creation of small to midsize applications, supporting such enormous upper limits is not feasible for testing. Therefore we have implemented some self-imposed limits in some places.

Setting Default Values

VistaDB allows you to dynamically set default values when new records are added, or optionally when they are modified, using pre-defined functions. With this feature, you can generate a wide range of data settings based on the existing data types. For example, you can use the GUID() function to generate unique GUID values and "version control" table records, or use the NOW() function to stamp new records with the current Date and Time.

Home |  Support |  FAQ |  Testimonials |  Site Map |  Contact Us |  News Archives |  Terms  
 © 1999-2008 VistaDB Software, Inc. All rights reserved.