# Dynamic Data

Apps need data, while [static](https://docs.jigx.com/examples/readme/datasource/static) allows you to add static or testing data into a jig it is very limiting, and you will want access to a database for data. Jigx **Dynamic Data** is a built-in database used to create, read, update, and delete data in an app.

The underlying data store for Dynamic Data is a NoSQL store. This means that each record can have its own field structure, and you can add or remove any fields on a per-record basis. Only the id column is a system column and cannot be changed or removed from the record.

We can visualize how dynamic data works by following the steps below:

<figure><img src="/files/Ps4fngX6VF5OvXKLkRyX" alt="Dynamic Data Overview"><figcaption><p>Dynamic Data Overview</p></figcaption></figure>

1. Data is updated on the device (Device 1).
2. Data is immediately synced with the Dynamic Data database in the Jigx cloud.
3. These changes are immediately reflected on any other device that shares the same data (Device 2).

## Capabilities

* A Jigx cloud-hosted NoSQL database that syncs automatically with data on the device.
* A web-based [management](https://docs.jigx.com/data) interface for viewing the Dynamic data tables, browsing and editing data and setting [Data policies](/administration/solutions/row-level-security/data-policies.md) in these tables.
* Rapidly import your own data by uploading any JSON or CSV file to the [management](https://docs.jigx.com/data) interface.
* You can also export your data in JSON for reporting and other integration needs.
* Changes made on your device are stored locally and immediately reflected in the cloud-hosted database.
* Realtime data syncing between your device, Dynamic data in the cloud, and other devices.
* Devices continue to operate offline and any local changes will be synced to the database once the device established a connection.
* To understand how Dynamic Data functions when the app is offline see [Dynamic Data change tracking & queuing](/building-apps-with-jigx/data/offline-remote-data-handling.md#dynamic-data-change-tracking-and-queuing).

{% hint style="warning" %}
Jigx does not recommend storing images in Dynamic Data (via any conversion), as the max file size per record is 350K.
{% endhint %}

## How to create Dynamic Data

To create and use Dynamic data see the following:

1. [Creating tables](/building-apps-with-jigx/data/data-providers/dynamic-data/creating-tables.md)
2. [Creating columns & data records](/building-apps-with-jigx/data/data-providers/dynamic-data/creating-columns-data-records.md)
3. [Deleting tables](/building-apps-with-jigx/data/data-providers/dynamic-data/deleting-tables.md)
4. [Using Dynamic Data](/building-apps-with-jigx/data/data-providers/dynamic-data/using-dynamic-data.md)

{% columns %}
{% column %}
{% embed url="<https://vimeo.com/830296571?share=copy>" %}
{% endcolumn %}

{% column %}
{% embed url="<https://vimeo.com/829863168?share=copy>" %}
{% endcolumn %}
{% endcolumns %}

{% hint style="info" %}
**Supporting file** for the *Working with Dynamic Data* video. You can use this CSV file if you want to follow the steps in the video.
{% endhint %}

## Examples and code snippets

The following examples with code snippets are provided:

* [Creating Dynamic Data](https://docs.jigx.com/examples/readme/data-providers/dynamic-data/creating-dynamic-data)
* [Reading Dynamic Data](https://docs.jigx.com/examples/readme/data-providers/dynamic-data/reading-dynamic-data)
* [Updating Dynamic Data](https://docs.jigx.com/examples/readme/data-providers/dynamic-data/updating-dynamic-data)
* [Deleting Dynamic Data](https://docs.jigx.com/examples/readme/data-providers/dynamic-data/deleting-dynamic-data)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.jigx.com/building-apps-with-jigx/data/data-providers/dynamic-data.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
