{
  "format": "dataset-manifest/1",
  "slug": "family-travel-and-event-management-system",
  "version": 1,
  "seed": "family-travel-and-event-management-system:1",
  "spec": {
    "format": "dataset/1",
    "slug": "family-travel-and-event-management-system",
    "name": "Family Travel Coordination Dataset",
    "tagline": "Itineraries, bookings, family members, and emergency contacts for planning family trips.",
    "description": "Families coordinate trips meticulously, ensuring every member is prepared for the adventure ahead. This dataset captures the intricacies of family travel planning, detailing the relationships among family members, their itineraries, and the necessary bookings that facilitate seamless trips. Each family represents a unique unit within the dataset, consisting of various family members whose interactions and roles contribute to the overall travel experience. The itineraries outline planned activities and destinations, while bookings provide specifics on accommodations and travel arrangements. Emergency contacts are crucial entries that ensure safety during travels, making the data not only practical but indispensable for effective trip planning.\n\nThe tables within this dataset include families, family_members, itineraries, bookings, and emergency_contacts. A row in the families table gives insights into individual family units, while the family_members table links directly to these families, detailing the roles and identities of each member. Itineraries follow, showcasing planned activities and schedules that each family may undertake during their travels. Bookings provide the logistical backbone, documenting where families are staying and how they plan to get there. Lastly, the emergency_contacts table adds an essential layer of safety by listing important contacts for each family, essential for unexpected situations.\n\nBy exploring this data, developers can practice answering questions such as how to optimize trip itineraries, analyze booking patterns, or assess the importance of having reliable emergency contacts. The rich interconnections between family members, their travel plans, and the emergency contacts create a comprehensive picture of family travel dynamics. This dataset is entirely synthetic, designed to mirror real-world complexities while providing a safe environment for developers to hone their skills.",
    "domain": "travel",
    "shape": "transactional",
    "useCases": [
      "sql-practice",
      "orm-seeding"
    ],
    "keywords": [
      "travel",
      "family",
      "itinerary",
      "bookings",
      "emergency contacts",
      "packing assignments"
    ],
    "locale": "en",
    "license": "CC0-1.0",
    "version": 1,
    "tables": {
      "families": {
        "description": "This table contains records of families planning trips. Each row represents a unique family with their members and contact information.",
        "rows": 100,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each family."
          },
          "last_name": {
            "kind": "lastName",
            "description": "Family's last name."
          },
          "contact_email": {
            "kind": "email",
            "description": "Email address for family communication.",
            "nullable": true
          },
          "contact_phone": {
            "kind": "phone",
            "description": "Phone number for emergency contact.",
            "nullable": true
          }
        }
      },
      "family_members": {
        "description": "This table lists the members of each family, linking back to the families table via family_id.",
        "rows": {
          "per": "families",
          "via": "family_id",
          "min": 2,
          "max": 5,
          "skew": "long-tail"
        },
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each family member."
          },
          "family_id": {
            "kind": "fk",
            "ref": "families.id",
            "description": "Reference to the family this member belongs to."
          },
          "first_name": {
            "kind": "firstName",
            "description": "First name of the family member."
          },
          "age": {
            "kind": "int",
            "min": 1,
            "max": 100,
            "description": "Age of the family member.",
            "nullable": true
          }
        }
      },
      "itineraries": {
        "description": "This table outlines the planned itineraries for each family trip, linking back to families.",
        "rows": {
          "per": "families",
          "via": "family_id",
          "min": 1,
          "max": 3,
          "skew": "long-tail"
        },
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each itinerary."
          },
          "family_id": {
            "kind": "fk",
            "ref": "families.id",
            "description": "Reference to the family planning the trip."
          },
          "date": {
            "kind": "date",
            "from": "2023-01-01",
            "to": "2023-12-31",
            "description": "Date of the planned activity.",
            "trend": "seasonal"
          },
          "activity": {
            "kind": "words",
            "min": 5,
            "max": 100,
            "description": "Description of the planned activity.",
            "nullable": true
          }
        }
      },
      "bookings": {
        "description": "This table captures the various bookings made for each trip, such as hotels and transportation.",
        "rows": {
          "per": "itineraries",
          "via": "itinerary_id",
          "min": 1,
          "max": 4,
          "skew": "long-tail"
        },
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each booking."
          },
          "itinerary_id": {
            "kind": "fk",
            "ref": "itineraries.id",
            "description": "Reference to the itinerary this booking belongs to."
          },
          "booking_type": {
            "kind": "enum",
            "values": [
              "hotel",
              "flight",
              "car rental",
              "activity"
            ],
            "description": "Type of booking made."
          },
          "cost": {
            "kind": "decimal",
            "min": 50,
            "max": 5000,
            "scale": 2,
            "description": "Cost of the booking.",
            "nullable": true,
            "when": {
              "column": "booking_type",
              "in": [
                "hotel",
                "flight",
                "car rental",
                "activity"
              ]
            }
          }
        }
      },
      "emergency_contacts": {
        "description": "This table holds emergency contacts for each family, with fewer records for quick reference.",
        "rows": {
          "per": "families",
          "via": "family_id",
          "min": 1,
          "max": 2,
          "skew": "long-tail"
        },
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each emergency contact."
          },
          "family_id": {
            "kind": "fk",
            "ref": "families.id",
            "description": "Reference to the family associated with this contact."
          },
          "contact_name": {
            "kind": "fullName",
            "description": "Full name of the emergency contact."
          },
          "relationship": {
            "kind": "words",
            "description": "Relationship of the contact to the family.",
            "nullable": true
          },
          "phone": {
            "kind": "phone",
            "description": "Phone number of the emergency contact.",
            "nullable": true
          }
        }
      }
    },
    "structure": "multi-table",
    "traits": [
      "categorical",
      "nullable",
      "self-referencing"
    ],
    "analysisQuestions": [
      "What are the most common activities planned for family trips?",
      "How many family members are typically involved in trip planning?",
      "What is the average cost of bookings per trip?",
      "Which family has the most emergency contacts listed?",
      "How does the age distribution of family members impact trip planning?"
    ],
    "suggestedQueries": [
      {
        "title": "List all families and their members",
        "sql": "SELECT families.last_name, family_members.first_name FROM families JOIN family_members ON families.id = family_members.family_id;",
        "dialect": "postgres"
      },
      {
        "title": "Count activities planned per family",
        "sql": "SELECT families.last_name, COUNT(itineraries.id) AS activity_count FROM families JOIN itineraries ON families.id = itineraries.family_id GROUP BY families.last_name;",
        "dialect": "postgres"
      },
      {
        "title": "Calculate total booking costs per family",
        "sql": "SELECT families.last_name, SUM(bookings.cost) AS total_cost FROM families JOIN itineraries ON families.id = itineraries.family_id JOIN bookings ON itineraries.id = bookings.itinerary_id GROUP BY families.last_name;",
        "dialect": "postgres"
      },
      {
        "title": "Find emergency contacts for each family",
        "sql": "SELECT families.last_name, emergency_contacts.contact_name FROM families JOIN emergency_contacts ON families.id = emergency_contacts.family_id;",
        "dialect": "postgres"
      }
    ],
    "usageScenarios": [
      {
        "title": "Travel Agency Management",
        "body": "A travel agency can utilize this dataset to develop an application for families to manage their trip details, including bookings and itineraries, while providing insights into family dynamics and preferences."
      },
      {
        "title": "Educational Tool for SQL Practitioners",
        "body": "Instructors can use this dataset as a teaching aid for students learning SQL, allowing them to practice queries related to family travel planning, data relationships, and analytics."
      },
      {
        "title": "Trip Planning Application Development",
        "body": "Developers can leverage this dataset to create a trip planning application that helps families coordinate their travel activities, manage bookings, and assign packing tasks effectively."
      },
      {
        "title": "Emergency Preparedness Tool",
        "body": "This dataset can be utilized to design a tool that helps families keep track of their emergency contacts, ensuring quick access to vital information during travel."
      }
    ]
  },
  "counts": {
    "families": 100,
    "emergency_contacts": 125,
    "family_members": 285,
    "itineraries": 157,
    "bookings": 295
  },
  "stats": {
    "families": {
      "rows": 100,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 100,
          "min": 1,
          "max": 100
        },
        "last_name": {
          "nulls": 0,
          "distinct": 54,
          "min": "Adams",
          "max": "Young"
        },
        "contact_email": {
          "nulls": 8,
          "distinct": 92
        },
        "contact_phone": {
          "nulls": 8,
          "distinct": 91
        }
      }
    },
    "family_members": {
      "rows": 285,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 285,
          "min": 1,
          "max": 285
        },
        "family_id": {
          "nulls": 0,
          "distinct": 100,
          "min": 1,
          "max": 100
        },
        "first_name": {
          "nulls": 0,
          "distinct": 80,
          "min": "Alice",
          "max": "Zoe"
        },
        "age": {
          "nulls": 26,
          "distinct": 95,
          "min": 1,
          "max": 99
        }
      }
    },
    "itineraries": {
      "rows": 157,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 157,
          "min": 1,
          "max": 157
        },
        "family_id": {
          "nulls": 0,
          "distinct": 100,
          "min": 1,
          "max": 100
        },
        "date": {
          "nulls": 0,
          "distinct": 130,
          "min": "2023-01-02",
          "max": "2023-12-29"
        },
        "activity": {
          "nulls": 16,
          "distinct": 141
        }
      }
    },
    "bookings": {
      "rows": 295,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 295,
          "min": 1,
          "max": 295
        },
        "itinerary_id": {
          "nulls": 0,
          "distinct": 157,
          "min": 1,
          "max": 157
        },
        "booking_type": {
          "nulls": 0,
          "distinct": 4,
          "min": "activity",
          "max": "hotel"
        },
        "cost": {
          "nulls": 0,
          "distinct": 295,
          "min": 53.32,
          "max": 4959.52
        }
      }
    },
    "emergency_contacts": {
      "rows": 125,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 125,
          "min": 1,
          "max": 125
        },
        "family_id": {
          "nulls": 0,
          "distinct": 100,
          "min": 1,
          "max": 100
        },
        "contact_name": {
          "nulls": 0,
          "distinct": 124,
          "min": "Alice Hughes",
          "max": "Zara Miller"
        },
        "relationship": {
          "nulls": 19,
          "distinct": 106
        },
        "phone": {
          "nulls": 7,
          "distinct": 116
        }
      }
    }
  },
  "artifacts": [
    {
      "file": "csv/families.csv",
      "format": "csv",
      "table": "families",
      "key": "datasets/family-travel-and-event-management-system/v1/csv/families.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/family-travel-and-event-management-system/v1/csv/families.csv",
      "bytes": 4781,
      "sha256": "4750a39ae4678710d39da6c01d3cfd386584ca1b61b7d4e1229cf793ade81d95",
      "rows": 100,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/emergency_contacts.csv",
      "format": "csv",
      "table": "emergency_contacts",
      "key": "datasets/family-travel-and-event-management-system/v1/csv/emergency_contacts.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/family-travel-and-event-management-system/v1/csv/emergency_contacts.csv",
      "bytes": 7255,
      "sha256": "adf09f1f366a88fbec41168b91664591749cdcd46368f98cc3ca781c87f1c37e",
      "rows": 125,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/family_members.csv",
      "format": "csv",
      "table": "family_members",
      "key": "datasets/family-travel-and-event-management-system/v1/csv/family_members.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/family-travel-and-event-management-system/v1/csv/family_members.csv",
      "bytes": 4521,
      "sha256": "1aaed6d2a6e188960498c4e7f4a2c3749acfe18a7a353017d0f3fde7bc453226",
      "rows": 285,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/itineraries.csv",
      "format": "csv",
      "table": "itineraries",
      "key": "datasets/family-travel-and-event-management-system/v1/csv/itineraries.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/family-travel-and-event-management-system/v1/csv/itineraries.csv",
      "bytes": 55856,
      "sha256": "02e6395e6088c4c06e67644499bfbc3280c3beb0b55a702512eecdafbf430897",
      "rows": 157,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/bookings.csv",
      "format": "csv",
      "table": "bookings",
      "key": "datasets/family-travel-and-event-management-system/v1/csv/bookings.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/family-travel-and-event-management-system/v1/csv/bookings.csv",
      "bytes": 7136,
      "sha256": "2771a53e8f4884fb7d9d66e1cccc1190e7a0f881fbe906c0b886e4b6ae22f21c",
      "rows": 295,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "family-travel-and-event-management-system.json",
      "format": "json",
      "table": null,
      "key": "datasets/family-travel-and-event-management-system/v1/family-travel-and-event-management-system.json",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/family-travel-and-event-management-system/v1/family-travel-and-event-management-system.json",
      "bytes": 165108,
      "sha256": "0daff262c616759eee2561446f567cf32f01e2bbbf97d3e45a944a3ba49fd920",
      "rows": null,
      "contentType": "application/json; charset=utf-8"
    },
    {
      "file": "sql/postgres.sql",
      "format": "sql-postgres",
      "table": null,
      "key": "datasets/family-travel-and-event-management-system/v1/sql/postgres.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/family-travel-and-event-management-system/v1/sql/postgres.sql",
      "bytes": 94456,
      "sha256": "897270b4dc3b11003031f02d55cc74daf8889740a7c9cd5494bedddc60da2fb9",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/mysql.sql",
      "format": "sql-mysql",
      "table": null,
      "key": "datasets/family-travel-and-event-management-system/v1/sql/mysql.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/family-travel-and-event-management-system/v1/sql/mysql.sql",
      "bytes": 93867,
      "sha256": "2a7b210ca95218a29804f5705aa38c5798d4c2992b1c73454e37012f44df2236",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/mssql.sql",
      "format": "sql-mssql",
      "table": null,
      "key": "datasets/family-travel-and-event-management-system/v1/sql/mssql.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/family-travel-and-event-management-system/v1/sql/mssql.sql",
      "bytes": 95730,
      "sha256": "a4f120eda7d4cb428fd00ca71f77631c6ea596f5fbe657557132676194d6f4f9",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/sqlite.sql",
      "format": "sql-sqlite",
      "table": null,
      "key": "datasets/family-travel-and-event-management-system/v1/sql/sqlite.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/family-travel-and-event-management-system/v1/sql/sqlite.sql",
      "bytes": 93625,
      "sha256": "0b5fb430e66b0ffb78d130921c7f496e5726b64b231644db72546268b7c43db4",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "prisma/seed.ts",
      "format": "prisma-seed",
      "table": null,
      "key": "datasets/family-travel-and-event-management-system/v1/prisma/seed.ts",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/family-travel-and-event-management-system/v1/prisma/seed.ts",
      "bytes": 138749,
      "sha256": "e8da391afea036b7f419f14052d2e03fced1cf36ec90662108cf83dfe5f57251",
      "rows": null,
      "contentType": "application/typescript; charset=utf-8"
    },
    {
      "file": "django/fixtures.json",
      "format": "django-fixture",
      "table": null,
      "key": "datasets/family-travel-and-event-management-system/v1/django/fixtures.json",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/family-travel-and-event-management-system/v1/django/fixtures.json",
      "bytes": 208112,
      "sha256": "fbf985c52a82a3b6fd242f9638518c79c91a0216b4593a89a4333d455effbe12",
      "rows": null,
      "contentType": "application/json; charset=utf-8"
    }
  ],
  "publishedAt": 1788766252642,
  "updatedAt": 1788766252642
}
