{
  "format": "dataset-manifest/1",
  "slug": "culinary-operations-insights",
  "version": 2,
  "seed": "culinary-operations-insights:1",
  "spec": {
    "format": "dataset/1",
    "slug": "culinary-operations-insights",
    "name": "Culinary Operations Insights",
    "tagline": "Customer orders, reservations, menu items, and reviews from various restaurant operations.",
    "description": "Restaurants thrive on the coordination of various components, from kitchen operations to customer service. This dataset focuses on key aspects such as delivery logistics, order management, menu offerings, customer reservations, and feedback, reflecting the dynamic interactions within the restaurant ecosystem. The tables capture routine orders and deliveries, alongside customer insights through reservations and reviews. The data showcases how different elements interact, allowing for analysis of operational efficiency and customer satisfaction. With a focus on common transactions, this synthetic dataset includes a variety of scenarios that can help developers practice SQL and ORM techniques, making it a valuable resource for learning and experimentation.",
    "domain": "restaurants",
    "shape": "transactional",
    "useCases": [
      "sql-practice",
      "orm-seeding"
    ],
    "keywords": [
      "restaurant",
      "orders",
      "reservations",
      "feedback",
      "menu",
      "delivery"
    ],
    "locale": "en",
    "license": "CC0-1.0",
    "version": 1,
    "tables": {
      "customers": {
        "description": "Each row represents a customer who places orders, linked to their reservations and reviews.",
        "rows": 150,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each customer."
          },
          "full_name": {
            "kind": "fullName",
            "description": "The full name of the customer."
          },
          "email": {
            "kind": "email",
            "from": "full_name",
            "description": "Email address of the customer."
          },
          "phone": {
            "kind": "phone",
            "description": "Contact number of the customer.",
            "nullable": true
          }
        }
      },
      "orders": {
        "description": "This table records each order placed by customers, linked to the customer who made the order.",
        "rows": 600,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each order."
          },
          "customer_id": {
            "kind": "fk",
            "ref": "customers.id",
            "description": "Identifier for the customer who placed the order."
          },
          "order_date": {
            "kind": "datetime",
            "from": "2023-01-01",
            "to": "2023-12-31",
            "description": "Date and time when the order was placed.",
            "dayProfile": "waking"
          },
          "total_amount": {
            "kind": "decimal",
            "min": 10,
            "max": 200,
            "scale": 2,
            "description": "Total amount for the order.",
            "nullable": true,
            "distribution": "long-tail"
          }
        }
      },
      "menu_items": {
        "description": "Describes the items available on the menu, linked to orders to reflect what has been ordered.",
        "rows": 100,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each menu item."
          },
          "name": {
            "kind": "productName",
            "description": "Name of the menu item."
          },
          "price": {
            "kind": "decimal",
            "min": 5,
            "max": 50,
            "scale": 2,
            "description": "Price of the menu item.",
            "nullable": true,
            "when": {
              "column": "category",
              "in": [
                "Appetizer",
                "Main Course",
                "Dessert",
                "Beverage"
              ]
            },
            "distribution": "high"
          },
          "category": {
            "kind": "enum",
            "values": [
              "Appetizer",
              "Main Course",
              "Dessert",
              "Beverage"
            ],
            "description": "Category of the menu item."
          }
        }
      },
      "reservations": {
        "description": "Records customer reservations, linked to the customer and the time of reservation.",
        "rows": 200,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each reservation."
          },
          "customer_id": {
            "kind": "fk",
            "ref": "customers.id",
            "description": "Identifier for the customer who made the reservation."
          },
          "reservation_time": {
            "kind": "datetime",
            "from": "2023-01-01",
            "to": "2023-12-31",
            "description": "Date and time of the reservation.",
            "dayProfile": "business"
          },
          "party_size": {
            "kind": "int",
            "min": 1,
            "max": 10,
            "description": "Number of people in the reservation party.",
            "nullable": true
          }
        }
      },
      "reviews": {
        "description": "Contains customer reviews of menu items, linked to both the customer and the menu item reviewed.",
        "rows": 150,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each review."
          },
          "customer_id": {
            "kind": "fk",
            "ref": "customers.id",
            "description": "Identifier for the customer who wrote the review."
          },
          "menu_item_id": {
            "kind": "fk",
            "ref": "menu_items.id",
            "description": "Identifier for the reviewed menu item."
          },
          "rating": {
            "kind": "int",
            "min": 1,
            "max": 5,
            "description": "Rating given by the customer.",
            "distribution": "high"
          },
          "comment": {
            "kind": "sentence",
            "min": 10,
            "max": 200,
            "description": "Customer's feedback on the menu item.",
            "nullable": true
          }
        }
      }
    },
    "structure": "multi-table",
    "traits": [
      "categorical",
      "timestamped",
      "monetary"
    ],
    "analysisQuestions": [
      "What are the most popular menu items based on orders?",
      "How does customer feedback correlate with order amounts?",
      "Which days see the highest number of reservations?",
      "What is the average rating per menu item?",
      "How do order totals vary by customer?"
    ],
    "suggestedQueries": [
      {
        "title": "Join Orders and Customers",
        "sql": "SELECT o.id, c.full_name FROM orders o JOIN customers c ON o.customer_id = c.id;",
        "dialect": "postgres"
      },
      {
        "title": "Total Orders by Menu Item",
        "sql": "SELECT mi.name, COUNT(o.id) AS order_count FROM orders o JOIN menu_items mi ON o.id = o.customer_id GROUP BY mi.name;",
        "dialect": "postgres"
      },
      {
        "title": "Average Rating by Menu Item",
        "sql": "SELECT mi.name, AVG(r.rating) AS average_rating FROM reviews r JOIN menu_items mi ON r.menu_item_id = mi.id GROUP BY mi.name;",
        "dialect": "postgres"
      },
      {
        "title": "Reservations by Date",
        "sql": "SELECT DATE(reservation_time) AS reservation_date, COUNT(*) AS reservation_count FROM reservations GROUP BY reservation_date;",
        "dialect": "postgres"
      }
    ],
    "usageScenarios": [
      {
        "title": "Restaurant Operational Analysis",
        "body": "Restaurant managers can utilize this dataset to analyze ordering patterns and customer preferences, allowing them to optimize their menu offerings and improve customer satisfaction. By examining the frequency of orders and feedback, they can make informed decisions about which dishes to promote or modify."
      },
      {
        "title": "Training for SQL Practitioners",
        "body": "Data analysts and SQL learners can practice their skills by querying this dataset to gain insights into restaurant operations. The structured tables provide a rich environment for learning about joins, aggregations, and data analysis techniques."
      },
      {
        "title": "Customer Experience Evaluation",
        "body": "Customer service teams can analyze reservation and review data to enhance the dining experience. By understanding peak reservation times and average customer ratings, they can tailor their service strategies to meet customer expectations effectively."
      },
      {
        "title": "Marketing Campaign Development",
        "body": "Marketing professionals can leverage the insights from this dataset to create targeted campaigns. Analyzing which menu items receive the best reviews and the demographics of customers can guide promotional efforts and menu adjustments."
      }
    ]
  },
  "counts": {
    "customers": 150,
    "menu_items": 100,
    "orders": 600,
    "reservations": 200,
    "reviews": 150
  },
  "stats": {
    "customers": {
      "rows": 150,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 150,
          "min": 1,
          "max": 150
        },
        "full_name": {
          "nulls": 0,
          "distinct": 149,
          "min": "Alice Weber",
          "max": "Zoe Smith"
        },
        "email": {
          "nulls": 0,
          "distinct": 150
        },
        "phone": {
          "nulls": 15,
          "distinct": 132
        }
      }
    },
    "orders": {
      "rows": 600,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 600,
          "min": 1,
          "max": 600
        },
        "customer_id": {
          "nulls": 0,
          "distinct": 148,
          "min": 1,
          "max": 150
        },
        "order_date": {
          "nulls": 0,
          "distinct": 600,
          "min": "2023-01-01 14:39:13",
          "max": "2023-12-30 08:02:52"
        },
        "total_amount": {
          "nulls": 57,
          "distinct": 526,
          "min": 10,
          "max": 199.83
        }
      }
    },
    "menu_items": {
      "rows": 100,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 100,
          "min": 1,
          "max": 100
        },
        "name": {
          "nulls": 0,
          "distinct": 89,
          "min": "Classic Backpack",
          "max": "Wireless Umbrella"
        },
        "price": {
          "nulls": 0,
          "distinct": 96,
          "min": 5.97,
          "max": 50
        },
        "category": {
          "nulls": 0,
          "distinct": 4,
          "min": "Appetizer",
          "max": "Main Course"
        }
      }
    },
    "reservations": {
      "rows": 200,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 200,
          "min": 1,
          "max": 200
        },
        "customer_id": {
          "nulls": 0,
          "distinct": 110,
          "min": 1,
          "max": 150
        },
        "reservation_time": {
          "nulls": 0,
          "distinct": 200,
          "min": "2023-01-02 17:14:26",
          "max": "2023-12-31 22:39:41"
        },
        "party_size": {
          "nulls": 22,
          "distinct": 10,
          "min": 1,
          "max": 10
        }
      }
    },
    "reviews": {
      "rows": 150,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 150,
          "min": 1,
          "max": 150
        },
        "customer_id": {
          "nulls": 0,
          "distinct": 94,
          "min": 1,
          "max": 150
        },
        "menu_item_id": {
          "nulls": 0,
          "distinct": 79,
          "min": 1,
          "max": 100
        },
        "rating": {
          "nulls": 0,
          "distinct": 5,
          "min": 1,
          "max": 5
        },
        "comment": {
          "nulls": 21,
          "distinct": 129
        }
      }
    }
  },
  "artifacts": [
    {
      "file": "csv/customers.csv",
      "format": "csv",
      "table": "customers",
      "key": "datasets/culinary-operations-insights/v2/csv/customers.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/culinary-operations-insights/v2/csv/customers.csv",
      "bytes": 8213,
      "sha256": "a21751f87ad8b3ffce124c810d006c52d2b0109f13d35bdbcd139c876831c6f8",
      "rows": 150,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/menu_items.csv",
      "format": "csv",
      "table": "menu_items",
      "key": "datasets/culinary-operations-insights/v2/csv/menu_items.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/culinary-operations-insights/v2/csv/menu_items.csv",
      "bytes": 3460,
      "sha256": "e193c71543274f02078270c7d0d211359637630d0cb0cb767ed1cd0cd11940e0",
      "rows": 100,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/orders.csv",
      "format": "csv",
      "table": "orders",
      "key": "datasets/culinary-operations-insights/v2/csv/orders.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/culinary-operations-insights/v2/csv/orders.csv",
      "bytes": 20430,
      "sha256": "207bca455cde1583e6fb007c8bc9b39de34c1f62b9ea0c866ed854f6e5fd1121",
      "rows": 600,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/reservations.csv",
      "format": "csv",
      "table": "reservations",
      "key": "datasets/culinary-operations-insights/v2/csv/reservations.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/culinary-operations-insights/v2/csv/reservations.csv",
      "bytes": 5982,
      "sha256": "8ee82cb2381ef62f6826d9cb22d2725b84fdd076a82ceeadcea58eff08325a1a",
      "rows": 200,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/reviews.csv",
      "format": "csv",
      "table": "reviews",
      "key": "datasets/culinary-operations-insights/v2/csv/reviews.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/culinary-operations-insights/v2/csv/reviews.csv",
      "bytes": 9110,
      "sha256": "6e1242af1f5751023ae590eba1e7d70b18b1ac6d9ee05df02cdcd5d4ac6e4557",
      "rows": 150,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "culinary-operations-insights.json",
      "format": "json",
      "table": null,
      "key": "datasets/culinary-operations-insights/v2/culinary-operations-insights.json",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/culinary-operations-insights/v2/culinary-operations-insights.json",
      "bytes": 157763,
      "sha256": "a7a38f98bdd2ee8bf33972beb2fbf71a425901b731773fb50f1bf98b86f243e9",
      "rows": null,
      "contentType": "application/json; charset=utf-8"
    },
    {
      "file": "sql/postgres.sql",
      "format": "sql-postgres",
      "table": null,
      "key": "datasets/culinary-operations-insights/v2/sql/postgres.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/culinary-operations-insights/v2/sql/postgres.sql",
      "bytes": 64353,
      "sha256": "4e5f2b18d35b69a2e61a7badd753430a6b66a5758d84500ffe7bc7463feb85f8",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/mysql.sql",
      "format": "sql-mysql",
      "table": null,
      "key": "datasets/culinary-operations-insights/v2/sql/mysql.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/culinary-operations-insights/v2/sql/mysql.sql",
      "bytes": 63788,
      "sha256": "5338e0faf8add187c5c9c4684793d32089efcca9d66928fdc046eb05e38eb744",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/mssql.sql",
      "format": "sql-mssql",
      "table": null,
      "key": "datasets/culinary-operations-insights/v2/sql/mssql.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/culinary-operations-insights/v2/sql/mssql.sql",
      "bytes": 65681,
      "sha256": "369a63a1ab6916a7f3600b24c25807989abafb507e511469c69d0390201f5f7a",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/sqlite.sql",
      "format": "sql-sqlite",
      "table": null,
      "key": "datasets/culinary-operations-insights/v2/sql/sqlite.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/culinary-operations-insights/v2/sql/sqlite.sql",
      "bytes": 63604,
      "sha256": "91c5554aca630ebb205e328c480c1b0dbfa5d6d147a0204241a503e9955b2cd4",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "prisma/seed.ts",
      "format": "prisma-seed",
      "table": null,
      "key": "datasets/culinary-operations-insights/v2/prisma/seed.ts",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/culinary-operations-insights/v2/prisma/seed.ts",
      "bytes": 134168,
      "sha256": "3c8e77faba3fdfb411e9dd13a541fd818a8300870a4d839f40235b83771a542c",
      "rows": null,
      "contentType": "application/typescript; charset=utf-8"
    },
    {
      "file": "django/fixtures.json",
      "format": "django-fixture",
      "table": null,
      "key": "datasets/culinary-operations-insights/v2/django/fixtures.json",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/culinary-operations-insights/v2/django/fixtures.json",
      "bytes": 209050,
      "sha256": "b41f3adf1e631e6fb55d210cc3b7387a4cac7df5e4093b87fc5cf2fd00b18f81",
      "rows": null,
      "contentType": "application/json; charset=utf-8"
    }
  ],
  "publishedAt": 1788767482798,
  "updatedAt": 1788778152090
}
