SlicingDice Documentation

SlicingDice - The All-in-One Solution Documentation

Welcome to the SlicingDice documentation. You'll find comprehensive guides and documentation to help you start working with SlicingDice as quickly as possible, as well as support if you get stuck. Let's jump right in!

Get Started    Guides

5. Database Schema Modeling

SlicingDice database is very powerful and flexible, allowing you to model your database in two completely different ways:

Both methods will work fine on the database, without any performance or cost penalties.

Schema modeling overview

There is a lot of amazing content on the Internet describing the difference between normalization and denormalization of databases, so we will not be covering this subject in-depth here.

Anyway, it's sufficient to say the following:

  • A database with a normalized (relational) schema implies on you creating multiple tables (that at SlicingDice we call dimension - dimension - Dimension is a concept used in SlicingDice to describe a way to group columns for a database. Each database can contain multiple dimensions and each dimension can contain multiple columns. On SlicingDice every database has at least one dimension (created by default), that is similar to the concept of a table, on relational databases. Dimensions are normally used to insert the same kind of data you inserted on another dimension, but associating it for a different type of entity. But it's also possible to use a dimension like a table on a relational database, where you normally create tables and build relations between them. ) and splitting/ or organizing your data among these tables. Then, build a relationship between them through the use of foreign keys. This database modeling strategy reduces the data duplication, as you normally store some data just once, but depending on your query, it may require the usage of JOINs, that are normally slow.

  • A database with a denormalized (non-relational) schema implies on you creating a single table (again, that we call dimension - dimension - Dimension is a concept used in SlicingDice to describe a way to group columns for a database. Each database can contain multiple dimensions and each dimension can contain multiple columns. On SlicingDice every database has at least one dimension (created by default), that is similar to the concept of a table, on relational databases. Dimensions are normally used to insert the same kind of data you inserted on another dimension, but associating it for a different type of entity. But it's also possible to use a dimension like a table on a relational database, where you normally create tables and build relations between them. ) and storing all your columns and data there. In some cases, this data model will use more columns and will duplicate your data in order to have better query performance. Normally this database modeling strategy is used to improve query speed, at the cost of more storage usage.

When adding a dimension for a database on SlicingDice, you have the option to select if you want the dimension to have a relational (normalized) model or a non-relational (denormalized) model. By default, all dimensions on our database are non-relational (denormalized).

As the database supports storing non-time-series (attribute columns) and time-series data (event columns) in the same dimension - dimension - Dimension is a concept used in SlicingDice to describe a way to group columns for a database. Each database can contain multiple dimensions and each dimension can contain multiple columns. On SlicingDice every database has at least one dimension (created by default), that is similar to the concept of a table, on relational databases. Dimensions are normally used to insert the same kind of data you inserted on another dimension, but associating it for a different type of entity. But it's also possible to use a dimension like a table on a relational database, where you normally create tables and build relations between them. , without affecting the query performance or database storage size, there is no need to split or normalize the data into multiple tables ( dimensions - dimensions - Dimension is a concept used in SlicingDice to describe a way to group columns for a database. Each database can contain multiple dimensions and each dimension can contain multiple columns. On SlicingDice every database has at least one dimension (created by default), that is similar to the concept of a table, on relational databases. Dimensions are normally used to insert the same kind of data you inserted on another dimension, but associating it for a different type of entity. But it's also possible to use a dimension like a table on a relational database, where you normally create tables and build relations between them. ), as it's commonly done in other databases.


Overview of the Schema Modeling possibilities

Watch this quick video below to learn more about schema modeling possibilities in SlicingDice database.