{
  "format": "dataset-manifest/1",
  "slug": "flight-and-travel-reservations-database",
  "version": 1,
  "seed": "flight-and-travel-reservations-database:1",
  "spec": {
    "format": "dataset/1",
    "slug": "flight-and-travel-reservations-database",
    "name": "Travel Reservations Insights",
    "tagline": "Travel reservations data including customers, flights, hotels, and car rentals across various locations.",
    "description": "The travel industry thrives on the dynamic interactions of customers booking flights, hotels, and car rentals. This synthetic dataset models various transactions that occur throughout the reservation process, capturing essential details about ticket sales, flight reviews, hotel bookings, and car rentals across different countries and airports. The tables reflect standard flight tickets purchased, while hotel reservations demonstrate varied demand, revealing the complexities of travel trends. By analyzing this dataset, users can uncover insights into customer preferences, seasonal travel patterns, and the effectiveness of loyalty programs. Each table is interconnected, allowing for rich queries and analyses that can answer questions about travel behaviors and trends. This dataset is ideal for SQL practice and ORM seeding, providing a realistic yet synthetic representation of travel reservations.",
    "domain": "travel",
    "shape": "transactional",
    "useCases": [
      "sql-practice",
      "orm-seeding"
    ],
    "keywords": [
      "travel",
      "reservations",
      "flights",
      "hotels",
      "car rentals",
      "loyalty programs",
      "baggage management",
      "customer insights"
    ],
    "locale": "en",
    "license": "CC0-1.0",
    "version": 1,
    "tables": {
      "customers": {
        "description": "This table holds customer information, with each row representing a unique customer. It links to reservations and loyalty programs.",
        "rows": 250,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each customer."
          },
          "full_name": {
            "kind": "fullName",
            "description": "The customer's full name."
          },
          "email": {
            "kind": "email",
            "from": "full_name",
            "description": "The customer's email address."
          },
          "phone": {
            "kind": "phone",
            "description": "The customer's phone number."
          },
          "loyalty_program_id": {
            "kind": "fk",
            "ref": "loyalty_programs.id",
            "nullable": true,
            "description": "Links to the loyalty program the customer is enrolled in."
          }
        }
      },
      "flights": {
        "description": "This table captures flight details, including ticket sales and associated flights. Each row represents a flight ticket purchased by a customer.",
        "rows": 500,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each flight record."
          },
          "flight_number": {
            "kind": "words",
            "min": 6,
            "max": 10,
            "description": "Flight number assigned by the airline."
          },
          "departure_airport": {
            "kind": "city",
            "description": "City of the departure airport."
          },
          "arrival_airport": {
            "kind": "city",
            "description": "City of the arrival airport."
          },
          "departure_date": {
            "kind": "datetime",
            "from": "2023-01-01",
            "to": "2024-12-31",
            "description": "Date and time of the flight departure.",
            "dayProfile": "waking"
          },
          "customer_id": {
            "kind": "fk",
            "ref": "customers.id",
            "description": "Links to the customer who purchased the ticket."
          }
        }
      },
      "hotel_reservations": {
        "description": "This table records hotel bookings made by customers. Each row reflects a unique hotel reservation associated with a flight.",
        "rows": 300,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each hotel reservation."
          },
          "hotel_name": {
            "kind": "words",
            "min": 5,
            "max": 15,
            "description": "Name of the hotel where the reservation is made."
          },
          "check_in_date": {
            "kind": "date",
            "from": "2023-01-01",
            "to": "2024-12-31",
            "description": "Check-in date for the hotel reservation.",
            "trend": "seasonal"
          },
          "check_out_date": {
            "kind": "date",
            "after": "check_in_date",
            "withinDays": 30,
            "description": "Check-out date for the hotel reservation, must be after check-in."
          },
          "customer_id": {
            "kind": "fk",
            "ref": "customers.id",
            "description": "Links to the customer who made the hotel reservation."
          }
        }
      },
      "car_rentals": {
        "description": "This table captures car rental details associated with customers' travel plans. Each row represents a unique car rental transaction.",
        "rows": 200,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each car rental record."
          },
          "car_model": {
            "kind": "words",
            "min": 5,
            "max": 15,
            "description": "The model of the car rented."
          },
          "rental_start_date": {
            "kind": "date",
            "from": "2023-01-01",
            "to": "2024-12-31",
            "description": "Start date of the car rental.",
            "trend": "seasonal"
          },
          "return_date": {
            "kind": "date",
            "after": "rental_start_date",
            "withinDays": 30,
            "description": "Return date of the car rental, must be after the rental start."
          },
          "customer_id": {
            "kind": "fk",
            "ref": "customers.id",
            "description": "Links to the customer who rented the car."
          }
        }
      },
      "loyalty_programs": {
        "description": "This table lists various loyalty programs available for customers. Each row represents a unique program.",
        "rows": 100,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each loyalty program."
          },
          "program_name": {
            "kind": "words",
            "min": 5,
            "max": 15,
            "description": "Name of the loyalty program."
          },
          "points_required": {
            "kind": "int",
            "min": 100,
            "max": 10000,
            "description": "Number of points required for membership."
          }
        }
      },
      "flight_reviews": {
        "description": "This table holds reviews for flights made by customers. Each row represents a unique review tied to a specific flight.",
        "rows": 150,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for each flight review."
          },
          "flight_id": {
            "kind": "fk",
            "ref": "flights.id",
            "description": "Links to the flight being reviewed."
          },
          "customer_id": {
            "kind": "fk",
            "ref": "customers.id",
            "description": "Links to the customer who wrote the review."
          },
          "rating": {
            "kind": "int",
            "min": 1,
            "max": 5,
            "description": "Rating given by the customer, from 1 to 5."
          },
          "comments": {
            "kind": "sentence",
            "max": 250,
            "description": "Customer's comments regarding their flight experience."
          }
        }
      }
    },
    "structure": "multi-table",
    "traits": [
      "timestamped",
      "categorical",
      "nullable",
      "high-cardinality"
    ],
    "analysisQuestions": [
      "What are the most popular destinations among customers?",
      "How do customer ratings correlate with flight prices?",
      "Which hotels have the highest booking rates and why?",
      "What is the average length of car rentals per customer?",
      "How effective are loyalty programs in repeat bookings?"
    ],
    "suggestedQueries": [
      {
        "title": "Join flights with customers",
        "sql": "SELECT flights.flight_number, customers.full_name FROM flights JOIN customers ON flights.customer_id = customers.id;",
        "dialect": "postgres"
      },
      {
        "title": "Count hotel reservations per customer",
        "sql": "SELECT customer_id, COUNT(*) AS reservation_count FROM hotel_reservations GROUP BY customer_id;",
        "dialect": "postgres"
      },
      {
        "title": "Average flight rating per flight",
        "sql": "SELECT flight_id, AVG(rating) AS average_rating FROM flight_reviews GROUP BY flight_id;",
        "dialect": "postgres"
      },
      {
        "title": "Find popular car rental models",
        "sql": "SELECT car_model, COUNT(*) AS rental_count FROM car_rentals GROUP BY car_model ORDER BY rental_count DESC;",
        "dialect": "postgres"
      },
      {
        "title": "Customer booking trends over time",
        "sql": "SELECT DATE_TRUNC('month', check_in_date) AS month, COUNT(*) AS hotel_bookings FROM hotel_reservations GROUP BY month ORDER BY month;",
        "dialect": "postgres"
      }
    ],
    "usageScenarios": [
      {
        "title": "Travel Agency Data Analysis",
        "body": "A travel agency can use this dataset to analyze customer booking patterns and identify popular destinations. By querying flight and hotel data, the agency can tailor its marketing strategies, offering promotions to boost reservations during off-peak times."
      },
      {
        "title": "Loyalty Program Effectiveness",
        "body": "A travel company can evaluate the success of its loyalty programs using this dataset. By examining the correlation between loyalty program membership and booking frequency, the company can refine its program offerings to enhance customer retention."
      },
      {
        "title": "Customer Experience Improvement",
        "body": "Customer support teams can leverage the flight reviews table to gather feedback on flights. Analyzing customer ratings and comments allows the team to identify areas for improvement in service quality and address any recurring issues."
      },
      {
        "title": "Car Rental Insights",
        "body": "Car rental agencies can utilize this dataset to analyze the types of vehicles that are most frequently rented. By understanding customer preferences, agencies can optimize their fleet management and improve customer satisfaction."
      }
    ]
  },
  "counts": {
    "loyalty_programs": 100,
    "customers": 250,
    "car_rentals": 200,
    "flights": 500,
    "flight_reviews": 150,
    "hotel_reservations": 300
  },
  "stats": {
    "customers": {
      "rows": 250,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 250,
          "min": 1,
          "max": 250
        },
        "full_name": {
          "nulls": 0,
          "distinct": 248,
          "min": "Alice Martin",
          "max": "Zoe Shah"
        },
        "email": {
          "nulls": 0,
          "distinct": 250
        },
        "phone": {
          "nulls": 0,
          "distinct": 230
        },
        "loyalty_program_id": {
          "nulls": 26,
          "distinct": 86,
          "min": 1,
          "max": 100
        }
      }
    },
    "flights": {
      "rows": 500,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 500,
          "min": 1,
          "max": 500
        },
        "flight_number": {
          "nulls": 0,
          "distinct": 500
        },
        "departure_airport": {
          "nulls": 0,
          "distinct": 63,
          "min": "Amsterdam",
          "max": "Zurich"
        },
        "arrival_airport": {
          "nulls": 0,
          "distinct": 63,
          "min": "Amsterdam",
          "max": "Zurich"
        },
        "departure_date": {
          "nulls": 0,
          "distinct": 500,
          "min": "2023-01-03 12:41:49",
          "max": "2024-12-30 14:26:40"
        },
        "customer_id": {
          "nulls": 0,
          "distinct": 217,
          "min": 1,
          "max": 250
        }
      }
    },
    "hotel_reservations": {
      "rows": 300,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 300,
          "min": 1,
          "max": 300
        },
        "hotel_name": {
          "nulls": 0,
          "distinct": 300
        },
        "check_in_date": {
          "nulls": 0,
          "distinct": 245,
          "min": "2023-01-03",
          "max": "2024-12-31"
        },
        "check_out_date": {
          "nulls": 0,
          "distinct": 239,
          "min": "2023-01-07",
          "max": "2025-01-28"
        },
        "customer_id": {
          "nulls": 0,
          "distinct": 181,
          "min": 1,
          "max": 250
        }
      }
    },
    "car_rentals": {
      "rows": 200,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 200,
          "min": 1,
          "max": 200
        },
        "car_model": {
          "nulls": 0,
          "distinct": 200
        },
        "rental_start_date": {
          "nulls": 0,
          "distinct": 176,
          "min": "2023-01-06",
          "max": "2024-12-30"
        },
        "return_date": {
          "nulls": 0,
          "distinct": 175,
          "min": "2023-01-12",
          "max": "2025-01-17"
        },
        "customer_id": {
          "nulls": 0,
          "distinct": 139,
          "min": 2,
          "max": 249
        }
      }
    },
    "loyalty_programs": {
      "rows": 100,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 100,
          "min": 1,
          "max": 100
        },
        "program_name": {
          "nulls": 0,
          "distinct": 100
        },
        "points_required": {
          "nulls": 0,
          "distinct": 100,
          "min": 514,
          "max": 9930
        }
      }
    },
    "flight_reviews": {
      "rows": 150,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 150,
          "min": 1,
          "max": 150
        },
        "flight_id": {
          "nulls": 0,
          "distinct": 130,
          "min": 4,
          "max": 496
        },
        "customer_id": {
          "nulls": 0,
          "distinct": 114,
          "min": 1,
          "max": 249
        },
        "rating": {
          "nulls": 0,
          "distinct": 5,
          "min": 1,
          "max": 5
        },
        "comments": {
          "nulls": 0,
          "distinct": 150
        }
      }
    }
  },
  "artifacts": [
    {
      "file": "csv/loyalty_programs.csv",
      "format": "csv",
      "table": "loyalty_programs",
      "key": "datasets/flight-and-travel-reservations-database/v1/csv/loyalty_programs.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/flight-and-travel-reservations-database/v1/csv/loyalty_programs.csv",
      "bytes": 7516,
      "sha256": "a968a078c942f3be8a7065c53a9e686f2cae6f1f0d037a8bb64bb06521ead4df",
      "rows": 100,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/customers.csv",
      "format": "csv",
      "table": "customers",
      "key": "datasets/flight-and-travel-reservations-database/v1/csv/customers.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/flight-and-travel-reservations-database/v1/csv/customers.csv",
      "bytes": 14817,
      "sha256": "d0931363203b85047d45a422c85b0ae91d0d89dbe901a3ddf395b378f1d8aeea",
      "rows": 250,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/car_rentals.csv",
      "format": "csv",
      "table": "car_rentals",
      "key": "datasets/flight-and-travel-reservations-database/v1/csv/car_rentals.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/flight-and-travel-reservations-database/v1/csv/car_rentals.csv",
      "bytes": 19596,
      "sha256": "afa157bd22115d1e62b6631e4c35bdd4296ce8601c1c00ee579710bc6eef3548",
      "rows": 200,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/flights.csv",
      "format": "csv",
      "table": "flights",
      "key": "datasets/flight-and-travel-reservations-database/v1/csv/flights.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/flight-and-travel-reservations-database/v1/csv/flights.csv",
      "bytes": 48964,
      "sha256": "4dbf4ecad9a0429eab954c1d275eaf3efde345f6c2cfb95c3ed3fb88ef3f6268",
      "rows": 500,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/flight_reviews.csv",
      "format": "csv",
      "table": "flight_reviews",
      "key": "datasets/flight-and-travel-reservations-database/v1/csv/flight_reviews.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/flight-and-travel-reservations-database/v1/csv/flight_reviews.csv",
      "bytes": 10576,
      "sha256": "9fa1bc2a3328114fed18334a205e950a646708f6d6e6a4127dcf1e3bef07caa1",
      "rows": 150,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/hotel_reservations.csv",
      "format": "csv",
      "table": "hotel_reservations",
      "key": "datasets/flight-and-travel-reservations-database/v1/csv/hotel_reservations.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/flight-and-travel-reservations-database/v1/csv/hotel_reservations.csv",
      "bytes": 29259,
      "sha256": "577bad215d46a380807767bf29fed9822a1e46953063532fd55b190ce3f82f9b",
      "rows": 300,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "flight-and-travel-reservations-database.json",
      "format": "json",
      "table": null,
      "key": "datasets/flight-and-travel-reservations-database/v1/flight-and-travel-reservations-database.json",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/flight-and-travel-reservations-database/v1/flight-and-travel-reservations-database.json",
      "bytes": 320943,
      "sha256": "cf35774359d9df0c36de8e45339d4504f4bda9b53a9ff09dc4d0ebd4f0f741a9",
      "rows": null,
      "contentType": "application/json; charset=utf-8"
    },
    {
      "file": "sql/postgres.sql",
      "format": "sql-postgres",
      "table": null,
      "key": "datasets/flight-and-travel-reservations-database/v1/sql/postgres.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/flight-and-travel-reservations-database/v1/sql/postgres.sql",
      "bytes": 159003,
      "sha256": "1a190e4f143881bdab3879d408552f2840ebb6e3dddd3ba89dde5aa876528dad",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/mysql.sql",
      "format": "sql-mysql",
      "table": null,
      "key": "datasets/flight-and-travel-reservations-database/v1/sql/mysql.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/flight-and-travel-reservations-database/v1/sql/mysql.sql",
      "bytes": 158277,
      "sha256": "161eea93c8dc1021ec53dee9288278e2fd9a304a446d6d8e34aa9bb26759d1aa",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/mssql.sql",
      "format": "sql-mssql",
      "table": null,
      "key": "datasets/flight-and-travel-reservations-database/v1/sql/mssql.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/flight-and-travel-reservations-database/v1/sql/mssql.sql",
      "bytes": 163216,
      "sha256": "b0267785be254bc3dd31c916a3f07647f3ddc8c91549a94c66d100f0c8cf6f62",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/sqlite.sql",
      "format": "sql-sqlite",
      "table": null,
      "key": "datasets/flight-and-travel-reservations-database/v1/sql/sqlite.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/flight-and-travel-reservations-database/v1/sql/sqlite.sql",
      "bytes": 157953,
      "sha256": "b6c8a34af075a5333c7b75db4288b21507a360957e830c8c1332d6fee258c7e1",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "prisma/seed.ts",
      "format": "prisma-seed",
      "table": null,
      "key": "datasets/flight-and-travel-reservations-database/v1/prisma/seed.ts",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/flight-and-travel-reservations-database/v1/prisma/seed.ts",
      "bytes": 271057,
      "sha256": "f387ee6f5e7293822a3f5ad05356a0315a8fd7b1ae0366d29d804cd0144b6ee1",
      "rows": null,
      "contentType": "application/typescript; charset=utf-8"
    },
    {
      "file": "django/fixtures.json",
      "format": "django-fixture",
      "table": null,
      "key": "datasets/flight-and-travel-reservations-database/v1/django/fixtures.json",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/flight-and-travel-reservations-database/v1/django/fixtures.json",
      "bytes": 386946,
      "sha256": "71e0f446015204b205a5adb4332af739c8c0ff06cff9184cf0e90677068353ff",
      "rows": null,
      "contentType": "application/json; charset=utf-8"
    }
  ],
  "publishedAt": 1788767633860,
  "updatedAt": 1788767633860
}
