Table of Contents
Databases are usually stored on disk volumes in one of two ways:
- a database is stored as many disc files under an operating system
- a database is stored as one disc file under an operating system with a complex internal structure
Multiple Disk File Databases
The first way is a very simple implementation, because it can leverage the file system of the underlying operating system. However some problems can arise based on the limitations on the number of open files allowed under the operating system.
Single Disk File Databases
Using a single disk file requires a specialized file system within the database: a file system within the file system of an operating system. This storage method is used by practically all major DBMS available.
Valentina Database File System
Valentina implements the Single Disk File system, just like all the other major DBMS. Valentina has its own file system and can store many logical files within a single disk file.
However, Valentina can create a database as one, two, three or four separate disk files. In content of Valentina, we refer to these as a Volume or Database Volume.
|1. Volume of the database structure.||The extension is “.vdb”|
|2. Volume of custom data.||The extension is “.dat”|
|3. Volume of binary data.||The extension is “.blb”|
|4. Volume of secondary data.||The extension is “.ind”|
|5. Volume of temporary data.||The extension is “.tmp”|
Contains the description of the structure of the whole database: tables, fields, constraints, relations, layouts, passwords and so on. This file usually has not large size.
On MacOS the .vdb extension is optional. If you develop a cross-platform database, then specify this extension explicitly.
Contains the custom data of this database.
Contains binary objects such as BLOB, Text, Picture.
Contains indexes of database.
Contains all temporary data and structures such as:
- temporary tables;
- record locks information;
- join tables;
Valentina always creates this file opening a database and removes it after closing. In case of a system failure a new temporary file will be created on the next opening of a database. The advantage to have such separate .tmp volume is that we need zero time to erase any temporary files left from previous session (in case of failure).