• Welcome to the Lightroom Queen Forums! We're a friendly bunch, so please feel free to register and join in the conversation. If you're not familiar with forums, you'll find step by step instructions on how to post your first thread under Help at the bottom of the page. You're also welcome to download our free Lightroom Quick Start eBooks and explore our other FAQ resources.
  • Stop struggling with Lightroom! There's no need to spend hours hunting for the answers to your Lightroom 6 questions. All the information you need is in Adobe Lightroom 6 - The Missing FAQ!

    To help you get started, there's a series of easy tutorials to guide you through a simple workflow. As you grow in confidence, the book switches to a conversational FAQ format, so you can quickly find answers to advanced questions. When you upgrade to subscription, there's also a Lightroom Classic version available.

Lightroom And Its Database

Status
Not open for further replies.

Ian Farlow

Founder of Lightroom Forums
Premium Classic Member
Joined
Sep 29, 2007
Messages
1,358
Location
Hull, GA
Lightroom Experience
Advanced
Lightroom Version
Classic
For those that are interested, here is a detailed explanation of the database that Lightroom uses: SQLite. This text is taken from Wikipedia.

SQLite is an ACID-compliant relational database management system contained in a relatively small C programming library. Unlike client-server database management systems, the SQLite engine is not a standalone process with which the program communicates. Instead, the SQLite library is linked in and thus becomes an integral part of the program. The program uses SQLite's functionality through simple function calls. This reduces latency in database access because function calls are more efficient than inter-process communication. The entire database (definitions, tables, indices, and the data itself) is stored as a single cross-platform file on a host machine. This simple design is achieved by locking the entire database file at the beginning of a transaction.

SQLite was created by D. Richard Hipp, who sells training, direct technical support contracts and add-ons such as compression and encryption. The source code for SQLite is in the public domain.

FEATURES

SQLite implements most of the SQL-92 standard, including database transactions that are atomic, consistent, isolated, and durable (ACID). SQLite supports triggers and most complex queries.
SQLite uses an unusual type system. Instead of assigning a type to a column as in most SQL database systems, types are assigned to individual values. For example, one can insert a string into an integer column (although SQLite will try to convert the string to an integer first, if the column's preferred type is integer). This adds flexibility to columns, especially when bound to a dynamically typed scripting language. However, the technique is not portable to other SQL databases. The inability to have strictly typed columns, as in typical databases, is a common criticism. The SQLite web site describes a "strict affinity" mode, but this feature has not yet been added.

Several computer processes or threads may access the same database without problems. Several read accesses can be satisfied in parallel. A write access can only be satisfied if no other accesses are currently being serviced, otherwise the write access fails with an error code (or can automatically be retried until a configurable timeout expires). This concurrent access situation would change when dealing with temporary tables.

A standalone program called sqlite3 is provided which can be used to create a database, define tables within it, insert and change rows, run queries and manage an SQLite database file. This program is a single executable file on the host machine. It also serves as an example for writing applications that use the SQLite library.

SQLite also has bindings for a large number of programming languages, including BASIC, C, C++, Java, Delphi, Tcl, R, PHP, Perl, Ruby, Objective-C (on Mac OS X), Python, newLisp and Smalltalk.

WHAT THIS MEANS

For Lightroom, this means that the database is effectively local use only. Multiple computers may access the same database, but only one may access the database at a time as the database is locked once it is opened.
 
Status
Not open for further replies.
Top