Loading…

Using Relational Databases as Document Stores

(this is a work-in-progress landing page for libraries that allow PostgreSQL and SQLite to be treated as document databases; it will eventually explain the concepts behind this, allowing the documentation for each library to focus more on “how” and less on “why”)

Libraries

These libraries provide a convenient API to treat PostgreSQL or SQLite as document stores.

BitBadger.Documents ~ Documentation ~ Git
Use for .NET applications (C#, F#)

PDODocument ~ Documentation ~ Git
Use for PHP applications (8.2+)

solutions.bitbadger.documents ~ Documentation (soon) ~ Git (soon)
Use for JVM applications (Java, Kotlin, Groovy, Scala)

Learning

When we use the term “documents” in the context of databases, we are referring to a database that stores its entries in a data format (usually a form of JavaScript Object Notation, or JSON). Unlike relational databases, document databases tend to have a relaxed schema; often, document collections or tables are the only definition required - and some even create those on-the-fly the first time one is accessed!

Documents marked as “wip” are works in progress (i.e., not complete). All of these pages should be considered draft quality; if you are reading this, welcome to the early access program!

A Brief History of Relational Data
Before we dig in on documents, we'll take a look at some relational database concepts

What Are Documents?
How documents can represent flexible data structures

Relational / Document Trade-Offs
Considering the practical pros and cons of different data storage paradigms

Application Trade-Offs
Options for applications utilizing relational or document data

Hybrid Data Stores
Combining document and relational data paradigms (wip)


« Home