{
  "format": "dataset-manifest/1",
  "slug": "graph-connections",
  "version": 4,
  "seed": "graph-connections:1",
  "engine": 1,
  "engineVersion": "1.0.0",
  "spec": {
    "format": "dataset/1",
    "slug": "graph-connections",
    "name": "Graph Connections",
    "tagline": "Modeling user interactions in a data visualization tool.",
    "description": "Organizations utilize a data visualization tool to convert raw information into interactive dashboards, revealing insights in ways that are both intuitive and engaging. Users of this platform interact with various data sources to generate visual representations of their data, enabling them to make informed decisions. The functionality of this business model revolves around key elements: users, data sources, dashboards, shared components, and uploaded files, all of which play critical roles in facilitating effective data analysis and collaboration.\n\nIn this dataset, each user represents an individual who operates within the organization, often interacting with multiple data sources to create or utilize dashboards. A data source might be a database, a cloud service, or an API that feeds information into the dashboards, which visualize the data for easier interpretation. Each dashboard is designed based on user requirements, often leveraging shared components—a library of reusable visual elements such as charts and graphs. Additionally, uploaded files serve as unique data sets that can be integrated into dashboards, enhancing the overall analysis provided by the tool.\n\nRows in the users table connect with those in the dashboards table, indicating which user has created or has access to specific dashboards. Meanwhile, the data_sources table links to these dashboards, showing the origin of the data used in each one. Shared components provide a connection between the dashboards and the collaborative efforts of the users, while uploaded_files can enrich the visualizations by providing custom data inputs.\n\nThe questions this data answers revolve around user engagement, the diversity of data sources accessed, and the collaborative nature of dashboard sharing within the organization. You can practice exploring user behavior patterns, analyzing the distribution of dashboard usage, and assessing the impact of shared components on data insight generation. While the dataset provides a realistic view of such a business model, it is important to note that the data is synthetic, designed for the purpose of analysis and practice.",
    "domain": "saas",
    "shape": "graph-edges",
    "useCases": [
      "sql-practice",
      "teaching"
    ],
    "keywords": [
      "data visualization",
      "dashboards",
      "users",
      "data sources",
      "collaboration",
      "analytics"
    ],
    "locale": "en",
    "license": "CC0-1.0",
    "version": 1,
    "tables": {
      "users": {
        "description": "This table contains information about users who interact with the data visualization tool. Each user can create and share dashboards, linking them to other tables.",
        "rows": 150,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each user."
          },
          "full_name": {
            "kind": "fullName",
            "description": "The full name of the user.",
            "nullable": true
          },
          "email": {
            "kind": "email",
            "from": "full_name",
            "description": "User's email address.",
            "nullable": true
          },
          "role": {
            "kind": "enum",
            "values": [
              "admin",
              "editor",
              "viewer"
            ],
            "description": "Role of the user within the organization.",
            "weights": [
              8,
              3,
              1
            ]
          }
        }
      },
      "data_sources": {
        "description": "This table lists the various data sources that users can connect to for creating dashboards. Each data source can be linked to one or more dashboards.",
        "rows": 100,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each data source."
          },
          "name": {
            "kind": "words",
            "min": 1,
            "max": 3,
            "description": "Name of the data source.",
            "nullable": true,
            "when": {
              "column": "type",
              "in": [
                "api",
                "file"
              ]
            },
            "pool": [
              "database",
              "api",
              "csv",
              "json",
              "xml",
              "stream",
              "sensor",
              "report",
              "feed",
              "service",
              "endpoint",
              "repository",
              "archive",
              "bucket",
              "source",
              "connection",
              "module",
              "instance",
              "provider",
              "dataset"
            ]
          },
          "type": {
            "kind": "enum",
            "values": [
              "database",
              "api",
              "file"
            ],
            "description": "Type of the data source.",
            "weights": [
              6,
              2,
              1
            ]
          },
          "connection_count": {
            "kind": "int",
            "min": 1,
            "max": 50,
            "distribution": "normal",
            "description": "Number of connections established to this data source."
          },
          "last_accessed": {
            "kind": "datetime",
            "from": "2022-01-01",
            "to": "2023-12-31",
            "description": "Date and time when the data source was last accessed."
          }
        }
      },
      "dashboards": {
        "description": "This table contains the dashboards created by users. Each dashboard can have multiple shared components and is linked to a specific user.",
        "rows": 200,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each dashboard."
          },
          "user_id": {
            "kind": "fk",
            "ref": "users.id",
            "description": "The user who created the dashboard."
          },
          "title": {
            "kind": "words",
            "min": 1,
            "max": 3,
            "description": "Title of the dashboard.",
            "pool": [
              "overview",
              "analytics",
              "performance",
              "summary",
              "trends",
              "insights",
              "monitoring",
              "reporting",
              "metrics",
              "visualization",
              "dashboard",
              "scorecard",
              "strategy",
              "goals",
              "targets",
              "analysis",
              "review",
              "feedback",
              "comparison",
              "evaluation"
            ]
          },
          "created_at": {
            "kind": "datetime",
            "from": "2022-01-01",
            "to": "2023-12-31",
            "description": "Date and time when the dashboard was created.",
            "dayProfile": "business"
          },
          "view_count": {
            "kind": "int",
            "min": 0,
            "max": 1000,
            "distribution": "normal",
            "description": "Number of times the dashboard has been viewed."
          },
          "shared_count": {
            "kind": "int",
            "min": 0,
            "max": 100,
            "distribution": "normal",
            "description": "Number of users with whom the dashboard has been shared."
          }
        }
      },
      "shared_components": {
        "description": "This table tracks the components that are shared among dashboards. Each component can belong to multiple dashboards.",
        "rows": 300,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each shared component."
          },
          "dashboard_id": {
            "kind": "fk",
            "ref": "dashboards.id",
            "description": "The dashboard to which the component belongs.",
            "nullable": true,
            "when": {
              "column": "component_type",
              "in": [
                "chart",
                "table",
                "filter"
              ]
            }
          },
          "component_type": {
            "kind": "enum",
            "values": [
              "chart",
              "table",
              "filter"
            ],
            "description": "Type of the shared component.",
            "weights": [
              5,
              3,
              2
            ]
          },
          "usage_count": {
            "kind": "int",
            "min": 1,
            "max": 500,
            "distribution": "normal",
            "description": "Number of dashboards utilizing this shared component."
          },
          "last_updated": {
            "kind": "datetime",
            "from": "2022-01-01",
            "to": "2023-12-31",
            "description": "Date and time when the shared component was last updated."
          }
        }
      },
      "uploaded_files": {
        "description": "This table records files uploaded by users to enhance their dashboards. Each file can be associated with one user.",
        "rows": 100,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each uploaded file."
          },
          "user_id": {
            "kind": "fk",
            "ref": "users.id",
            "description": "The user who uploaded the file."
          },
          "file_name": {
            "kind": "words",
            "min": 1,
            "max": 3,
            "description": "Name of the uploaded file.",
            "nullable": true,
            "pool": [
              "report",
              "data",
              "export",
              "import",
              "analysis",
              "summary",
              "results",
              "log",
              "snapshot",
              "backup",
              "archive",
              "document",
              "file",
              "record",
              "dataset",
              "source",
              "input",
              "output",
              "configuration",
              "template"
            ]
          },
          "upload_date": {
            "kind": "datetime",
            "from": "2022-01-01",
            "to": "2023-12-31",
            "description": "Date when the file was uploaded.",
            "dayProfile": "waking"
          },
          "file_type": {
            "kind": "enum",
            "values": [
              "image",
              "document",
              "spreadsheet"
            ],
            "weights": [
              50,
              30,
              20
            ],
            "description": "Type of the uploaded file."
          },
          "file_size_mb": {
            "kind": "decimal",
            "min": 0.1,
            "max": 100,
            "scale": 2,
            "distribution": "heavy-tail",
            "description": "Size of the uploaded file in megabytes."
          }
        }
      }
    },
    "structure": "multi-table",
    "traits": [
      "categorical",
      "nullable",
      "high-cardinality"
    ],
    "analysisQuestions": [
      "How many dashboards does each user typically create?",
      "What types of data sources are most commonly used?",
      "Which components are shared the most across dashboards?",
      "What is the average number of files uploaded by each user?",
      "How does the role of a user influence their dashboard creation?"
    ],
    "suggestedQueries": [
      {
        "title": "Get all dashboards created by a specific user",
        "sql": "SELECT * FROM dashboards WHERE user_id = ?;",
        "dialect": "postgres"
      },
      {
        "title": "Count of dashboards by user role",
        "sql": "SELECT u.role, COUNT(d.id) FROM users u JOIN dashboards d ON u.id = d.user_id GROUP BY u.role;",
        "dialect": "postgres"
      },
      {
        "title": "List shared components for a specific dashboard",
        "sql": "SELECT sc.* FROM shared_components sc JOIN dashboards d ON sc.dashboard_id = d.id WHERE d.id = ?;",
        "dialect": "postgres"
      },
      {
        "title": "Average uploaded files per user",
        "sql": "SELECT u.full_name, AVG(COALESCE(file_count, 0)) AS avg_files FROM users u LEFT JOIN (SELECT user_id, COUNT(*) AS file_count FROM uploaded_files GROUP BY user_id) uf ON u.id = uf.user_id GROUP BY u.id;",
        "dialect": "postgres"
      },
      {
        "title": "Most popular data sources used in dashboards",
        "sql": "SELECT ds.name, COUNT(d.id) FROM data_sources ds JOIN dashboards d ON ds.id = d.data_source_id GROUP BY ds.name ORDER BY COUNT(d.id) DESC;",
        "dialect": "postgres"
      }
    ],
    "usageScenarios": [
      {
        "title": "SQL Practice for Beginners",
        "body": "New SQL learners can use this dataset to practice writing queries that join different tables. They can explore user interactions, count dashboards per user, and analyze the types of data sources being used. This hands-on experience will help solidify their understanding of relational databases."
      },
      {
        "title": "Teaching Data Relationships",
        "body": "Educators can leverage this dataset to demonstrate the concept of relationships between tables in a database. By creating lessons around the dataset, students can learn how to use foreign keys, aggregate data, and generate insights from interconnected tables."
      },
      {
        "title": "Analytics and Reporting",
        "body": "Data analysts can utilize this dataset to create reports on user engagement with dashboards and the effectiveness of various data sources. By analyzing the patterns in dashboard usage and shared components, they can derive actionable insights to improve the data visualization tool."
      },
      {
        "title": "Collaborative Dashboard Development",
        "body": "Teams can use this dataset to simulate a collaborative environment where multiple users share components and dashboards. This scenario helps in understanding how collaboration impacts data analysis and the importance of user roles in the development process."
      }
    ]
  },
  "counts": {
    "data_sources": 100,
    "users": 150,
    "dashboards": 200,
    "shared_components": 300,
    "uploaded_files": 100
  },
  "stats": {
    "users": {
      "rows": 150,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 150,
          "min": 1,
          "max": 150
        },
        "full_name": {
          "nulls": 17,
          "distinct": 131,
          "min": "Alice Kaya",
          "max": "Zoe Wright"
        },
        "email": {
          "nulls": 27,
          "distinct": 122
        },
        "role": {
          "nulls": 0,
          "distinct": 3,
          "min": "admin",
          "max": "viewer"
        }
      }
    },
    "data_sources": {
      "rows": 100,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 100,
          "min": 1,
          "max": 100
        },
        "name": {
          "nulls": 69,
          "distinct": 30
        },
        "type": {
          "nulls": 0,
          "distinct": 3,
          "min": "api",
          "max": "file"
        },
        "connection_count": {
          "nulls": 0,
          "distinct": 27,
          "min": 10,
          "max": 40
        },
        "last_accessed": {
          "nulls": 0,
          "distinct": 100,
          "min": "2022-01-05 06:01:08",
          "max": "2023-12-18 05:09:19"
        }
      }
    },
    "dashboards": {
      "rows": 200,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 200,
          "min": 1,
          "max": 200
        },
        "user_id": {
          "nulls": 0,
          "distinct": 117,
          "min": 1,
          "max": 149
        },
        "title": {
          "nulls": 0,
          "distinct": 148
        },
        "created_at": {
          "nulls": 0,
          "distinct": 200,
          "min": "2022-01-05 13:48:07",
          "max": "2023-12-30 09:23:47"
        },
        "view_count": {
          "nulls": 0,
          "distinct": 162,
          "min": 159,
          "max": 817
        },
        "shared_count": {
          "nulls": 0,
          "distinct": 55,
          "min": 14,
          "max": 78
        }
      }
    },
    "shared_components": {
      "rows": 300,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 300,
          "min": 1,
          "max": 300
        },
        "dashboard_id": {
          "nulls": 0,
          "distinct": 154,
          "min": 1,
          "max": 199
        },
        "component_type": {
          "nulls": 0,
          "distinct": 3,
          "min": "chart",
          "max": "table"
        },
        "usage_count": {
          "nulls": 0,
          "distinct": 168,
          "min": 61,
          "max": 442
        },
        "last_updated": {
          "nulls": 0,
          "distinct": 300,
          "min": "2022-01-01 14:29:35",
          "max": "2023-12-28 02:35:42"
        }
      }
    },
    "uploaded_files": {
      "rows": 100,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 100,
          "min": 1,
          "max": 100
        },
        "user_id": {
          "nulls": 0,
          "distinct": 73,
          "min": 1,
          "max": 150
        },
        "file_name": {
          "nulls": 10,
          "distinct": 71
        },
        "upload_date": {
          "nulls": 0,
          "distinct": 100,
          "min": "2022-01-08 04:29:10",
          "max": "2023-12-13 19:35:05"
        },
        "file_type": {
          "nulls": 0,
          "distinct": 3,
          "min": "document",
          "max": "spreadsheet"
        },
        "file_size_mb": {
          "nulls": 0,
          "distinct": 94,
          "min": 0.1,
          "max": 94.73
        }
      }
    }
  },
  "artifacts": [
    {
      "file": "csv/data_sources.csv",
      "format": "csv",
      "table": "data_sources",
      "key": "datasets/graph-connections/v4/csv/data_sources.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/graph-connections/v4/csv/data_sources.csv",
      "bytes": 4039,
      "sha256": "8aad9afde21162a54f513c0c4517d14927711db0f023efa9dea71b2ed575804a",
      "rows": 100,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/users.csv",
      "format": "csv",
      "table": "users",
      "key": "datasets/graph-connections/v4/csv/users.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/graph-connections/v4/csv/users.csv",
      "bytes": 6238,
      "sha256": "5b3aa469b38c17bee353b87b65a7f28823aa547cb79d96fa6fcf09580049e799",
      "rows": 150,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/dashboards.csv",
      "format": "csv",
      "table": "dashboards",
      "key": "datasets/graph-connections/v4/csv/dashboards.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/graph-connections/v4/csv/dashboards.csv",
      "bytes": 10778,
      "sha256": "3c98692f97e35a28e48df5cf311b5740c04c6372c5de53633bbd58a3e02f8d87",
      "rows": 200,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/shared_components.csv",
      "format": "csv",
      "table": "shared_components",
      "key": "datasets/graph-connections/v4/csv/shared_components.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/graph-connections/v4/csv/shared_components.csv",
      "bytes": 11545,
      "sha256": "d1423ed980e5c28e76df8fdeca58a689b36d4810a76a65359d0a99b54e1f9800",
      "rows": 300,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/uploaded_files.csv",
      "format": "csv",
      "table": "uploaded_files",
      "key": "datasets/graph-connections/v4/csv/uploaded_files.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/graph-connections/v4/csv/uploaded_files.csv",
      "bytes": 5420,
      "sha256": "69248f6052cd77adf78642fc9e1e17bed7d5e000c113d52e85ffbf031cb02c70",
      "rows": 100,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "graph-connections.json",
      "format": "json",
      "table": null,
      "key": "datasets/graph-connections/v4/graph-connections.json",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/graph-connections/v4/graph-connections.json",
      "bytes": 136386,
      "sha256": "e34adca9b2de442a1bfe2d1bf0826595e99885ea96f224fdf23c4136af432948",
      "rows": null,
      "contentType": "application/json; charset=utf-8"
    },
    {
      "file": "sql/postgres.sql",
      "format": "sql-postgres",
      "table": null,
      "key": "datasets/graph-connections/v4/sql/postgres.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/graph-connections/v4/sql/postgres.sql",
      "bytes": 53749,
      "sha256": "3abad0d8be0c5bcf107820751186498c7064070006fdf8288630505d7aebf00f",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/mysql.sql",
      "format": "sql-mysql",
      "table": null,
      "key": "datasets/graph-connections/v4/sql/mysql.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/graph-connections/v4/sql/mysql.sql",
      "bytes": 53150,
      "sha256": "ef824c35df173b6496d0e089c8cf54843bbed73e6cea0dd8ef129bc9c94b0723",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/mssql.sql",
      "format": "sql-mssql",
      "table": null,
      "key": "datasets/graph-connections/v4/sql/mssql.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/graph-connections/v4/sql/mssql.sql",
      "bytes": 55431,
      "sha256": "5b1630fc2e5b75661731df14aa00369dd906fa3e462b94aaa44601d464960030",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/sqlite.sql",
      "format": "sql-sqlite",
      "table": null,
      "key": "datasets/graph-connections/v4/sql/sqlite.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/graph-connections/v4/sql/sqlite.sql",
      "bytes": 52941,
      "sha256": "4189c26c2423cce5fea84fae6a911eff6eb54f21e33773bed8bdc8bb39cfdea0",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "prisma/seed.ts",
      "format": "prisma-seed",
      "table": null,
      "key": "datasets/graph-connections/v4/prisma/seed.ts",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/graph-connections/v4/prisma/seed.ts",
      "bytes": 113423,
      "sha256": "215462f8bed1d940576c028f639a202d6b5ebb34e4909b4d3ff37083235f6704",
      "rows": null,
      "contentType": "application/typescript; charset=utf-8"
    },
    {
      "file": "django/fixtures.json",
      "format": "django-fixture",
      "table": null,
      "key": "datasets/graph-connections/v4/django/fixtures.json",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/graph-connections/v4/django/fixtures.json",
      "bytes": 175932,
      "sha256": "3c9b22563b611f6045d26dc5ba5a8fa550a7697e600b480dd4696880b295a2b1",
      "rows": null,
      "contentType": "application/json; charset=utf-8"
    }
  ],
  "publishedAt": 1788767248032,
  "updatedAt": 1789095871109
}
