# The Usergrid Data Store The Usergrid data store is backed by Cassandra, an open source distributed DBMS. Cassandra isn’t a relational database system (RDBMS), and is sometimes placed in the category of “NoSQL” or “schema-less” databases.
Note
Usergrid is not a relational database. Optimizing for performance on a non-relational database like Cassandra differs a bit from relational databases. For more information, see Optimizing access to your Usergrid data store.
RDBMS | Cassandra | Usergrid | |
Each tuple is modeled as | A row. | A row. | An entity. Written and retrieved as JSON, an entity contains values for all of its properties in the way a row has values for columns. |
Each data attribute is modeled as | A column. | A column. Many thousands of columns are supported. | A entity property. An entity has a default set of properties, including the entity’s UUID. You can add many more to support your application. |
Each group of attributes is modeled as | A table. | A column family. Unlike rows in tables, rows in a column family can have differing numbers of columns. Because you’re not using a schema to define the model, you can update the column list for a row at any time. | An entity collection. As with its underlying Cassandra column family, a collection can have entities with differing numbers of properties. In other words, just because one entity has an authorId property doesn’t mean that other entities in its collection need to. |