{
  "format": "dataset-manifest/1",
  "slug": "university-enrolments",
  "version": 1,
  "seed": "university-enrolments:1",
  "spec": {
    "format": "dataset/1",
    "slug": "university-enrolments",
    "name": "University Enrolments",
    "tagline": "University enrolment data including students, departments, courses, and grades across multiple terms.",
    "description": "Universities offer a variety of courses each term, enrolling students who are pursuing various departments. This dataset models the relationships between students, departments, courses, course offerings, enrolments, and grades. Each table is designed to capture specific aspects of the university's academic structure, allowing for comprehensive analysis and insights. By examining this dataset, users can answer questions about student performance across different courses, track course prerequisites, and analyze enrollment trends by department and term. This synthetic dataset provides a rich ground for SQL practice and teaching, simulating real-world academic data without the complexities of personal information.",
    "domain": "education",
    "shape": "transactional",
    "useCases": [
      "sql-practice",
      "teaching"
    ],
    "keywords": [
      "university",
      "students",
      "courses",
      "departments",
      "enrolments",
      "grades",
      "prerequisites"
    ],
    "locale": "en",
    "license": "CC0-1.0",
    "version": 1,
    "tables": {
      "students": {
        "description": "Each row represents a student enrolled at the university, linking to their department and enrolments.",
        "rows": 300,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for the student."
          },
          "full_name": {
            "kind": "fullName",
            "description": "The full name of the student."
          },
          "email": {
            "kind": "email",
            "from": "full_name",
            "description": "Email address of the student."
          },
          "department_id": {
            "kind": "fk",
            "ref": "departments.id",
            "description": "The department the student belongs to."
          }
        }
      },
      "departments": {
        "description": "Each row represents a department within the university, linked to the courses offered.",
        "rows": 10,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for the department."
          },
          "name": {
            "kind": "sentence",
            "description": "Name of the department."
          }
        }
      },
      "courses": {
        "description": "Each row represents a course offered at the university, with possible prerequisites.",
        "rows": 50,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for the course."
          },
          "name": {
            "kind": "sentence",
            "description": "Name of the course."
          },
          "department_id": {
            "kind": "fk",
            "ref": "departments.id",
            "description": "The department offering the course."
          },
          "prerequisite_id": {
            "kind": "fk",
            "ref": "courses.id",
            "nullable": true,
            "description": "Optional prerequisite course for this course."
          }
        }
      },
      "course_offerings": {
        "description": "Each row represents a specific offering of a course in a term, linking to the course and term.",
        "rows": 200,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for the course offering."
          },
          "course_id": {
            "kind": "fk",
            "ref": "courses.id",
            "description": "The course being offered."
          },
          "term": {
            "kind": "enum",
            "values": [
              "Fall",
              "Spring",
              "Summer"
            ],
            "description": "The term during which the course is offered."
          },
          "year": {
            "kind": "int",
            "min": 2020,
            "max": 2025,
            "description": "The year of the course offering."
          }
        }
      },
      "enrolments": {
        "description": "Each row represents a student's enrolment in a specific course offering, linking students and course offerings.",
        "rows": 600,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for the enrolment."
          },
          "student_id": {
            "kind": "fk",
            "ref": "students.id",
            "description": "The student enrolled in the course."
          },
          "course_offering_id": {
            "kind": "fk",
            "ref": "course_offerings.id",
            "description": "The course offering in which the student is enrolled."
          }
        }
      },
      "grades": {
        "description": "Each row represents a grade awarded to a student in a specific course offering.",
        "rows": 600,
        "columns": {
          "id": {
            "kind": "pk",
            "description": "Unique identifier for the grade record."
          },
          "enrolment_id": {
            "kind": "fk",
            "ref": "enrolments.id",
            "description": "The enrolment linked to this grade."
          },
          "grade": {
            "kind": "enum",
            "values": [
              "A",
              "B",
              "C",
              "D",
              "F"
            ],
            "description": "The grade awarded to the student."
          }
        }
      }
    },
    "structure": "multi-table",
    "traits": [
      "categorical",
      "nullable",
      "timestamped",
      "high-cardinality"
    ],
    "analysisQuestions": [
      "How many students are enrolled in each department?",
      "What are the average grades per course across different terms?",
      "Which courses have the most prerequisites?",
      "What trends can be observed in student enrolments over the years?",
      "How do grades differ between courses within the same department?"
    ],
    "suggestedQueries": [
      {
        "title": "Join Students and Enrolments",
        "sql": "SELECT students.full_name, enrolments.id AS enrolment_id FROM students JOIN enrolments ON students.id = enrolments.student_id;",
        "dialect": "postgres"
      },
      {
        "title": "Average Grade by Course",
        "sql": "SELECT courses.name, AVG(CASE WHEN grades.grade IS NOT NULL THEN grades.grade END) AS average_grade FROM courses LEFT JOIN course_offerings ON courses.id = course_offerings.course_id LEFT JOIN enrolments ON course_offerings.id = enrolments.course_offering_id LEFT JOIN grades ON enrolments.id = grades.enrolment_id GROUP BY courses.name;",
        "dialect": "postgres"
      },
      {
        "title": "Enrollments by Department and Term",
        "sql": "SELECT departments.name, course_offerings.term, COUNT(enrolments.id) AS total_enrolments FROM departments JOIN courses ON departments.id = courses.department_id JOIN course_offerings ON courses.id = course_offerings.course_id JOIN enrolments ON course_offerings.id = enrolments.course_offering_id GROUP BY departments.name, course_offerings.term;",
        "dialect": "postgres"
      },
      {
        "title": "Students with Grades and Prerequisites",
        "sql": "SELECT students.full_name, courses.name AS course_name, grades.grade FROM students JOIN enrolments ON students.id = enrolments.student_id JOIN course_offerings ON enrolments.course_offering_id = course_offerings.id JOIN courses ON course_offerings.course_id = courses.id JOIN grades ON enrolments.id = grades.enrolment_id WHERE courses.prerequisite_id IS NOT NULL;",
        "dialect": "postgres"
      }
    ],
    "usageScenarios": [
      {
        "title": "Student Performance Analysis",
        "body": "Educators can utilize this dataset to analyze students' performances across various courses and determine how prerequisites impact grades. Academic advisors might leverage this information to guide students in selecting courses that align with their academic goals."
      },
      {
        "title": "Enrollment Trends Study",
        "body": "Researchers interested in educational trends can analyze enrolment data to identify patterns in student choices over the years. By correlating enrolment numbers with course offerings, they can assess how changes in curriculum affect student interest."
      },
      {
        "title": "Course Prerequisite Evaluation",
        "body": "Department heads can use this dataset to evaluate the necessity of prerequisites for certain courses. By examining the relationship between course grades and prerequisites, they can refine course structures to enhance student success rates."
      },
      {
        "title": "Curriculum Development",
        "body": "Curriculum planners can leverage the insights from this dataset to develop new courses based on student interest and performance. By reviewing the enrolment data alongside grades, they can identify gaps in the curriculum that need to be addressed."
      }
    ]
  },
  "counts": {
    "departments": 10,
    "courses": 50,
    "course_offerings": 200,
    "students": 300,
    "enrolments": 600,
    "grades": 600
  },
  "stats": {
    "students": {
      "rows": 300,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 300,
          "min": 1,
          "max": 300
        },
        "full_name": {
          "nulls": 0,
          "distinct": 295,
          "min": "Alice Flores",
          "max": "Zoe Weber"
        },
        "email": {
          "nulls": 0,
          "distinct": 299
        },
        "department_id": {
          "nulls": 0,
          "distinct": 10,
          "min": 1,
          "max": 10
        }
      }
    },
    "departments": {
      "rows": 10,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 10,
          "min": 1,
          "max": 10
        },
        "name": {
          "nulls": 0,
          "distinct": 10
        }
      }
    },
    "courses": {
      "rows": 50,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 50,
          "min": 1,
          "max": 50
        },
        "name": {
          "nulls": 0,
          "distinct": 50
        },
        "department_id": {
          "nulls": 0,
          "distinct": 10,
          "min": 1,
          "max": 10
        },
        "prerequisite_id": {
          "nulls": 3,
          "distinct": 24,
          "min": 1,
          "max": 43
        }
      }
    },
    "course_offerings": {
      "rows": 200,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 200,
          "min": 1,
          "max": 200
        },
        "course_id": {
          "nulls": 0,
          "distinct": 48,
          "min": 1,
          "max": 50
        },
        "term": {
          "nulls": 0,
          "distinct": 3,
          "min": "Fall",
          "max": "Summer"
        },
        "year": {
          "nulls": 0,
          "distinct": 6,
          "min": 2020,
          "max": 2025
        }
      }
    },
    "enrolments": {
      "rows": 600,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 600,
          "min": 1,
          "max": 600
        },
        "student_id": {
          "nulls": 0,
          "distinct": 255,
          "min": 1,
          "max": 300
        },
        "course_offering_id": {
          "nulls": 0,
          "distinct": 191,
          "min": 1,
          "max": 199
        }
      }
    },
    "grades": {
      "rows": 600,
      "columns": {
        "id": {
          "nulls": 0,
          "distinct": 600,
          "min": 1,
          "max": 600
        },
        "enrolment_id": {
          "nulls": 0,
          "distinct": 391,
          "min": 2,
          "max": 600
        },
        "grade": {
          "nulls": 0,
          "distinct": 5,
          "min": "A",
          "max": "F"
        }
      }
    }
  },
  "artifacts": [
    {
      "file": "csv/departments.csv",
      "format": "csv",
      "table": "departments",
      "key": "datasets/university-enrolments/v1/csv/departments.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/university-enrolments/v1/csv/departments.csv",
      "bytes": 614,
      "sha256": "18546ce1453295d39c14ca13da91f5d96b18bf3858b068298e901bd199c58ee1",
      "rows": 10,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/courses.csv",
      "format": "csv",
      "table": "courses",
      "key": "datasets/university-enrolments/v1/csv/courses.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/university-enrolments/v1/csv/courses.csv",
      "bytes": 3352,
      "sha256": "a9da926e2c7d6b72479f961c00e670ab30ce093e380e11e6c7046b776a42a89a",
      "rows": 50,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/course_offerings.csv",
      "format": "csv",
      "table": "course_offerings",
      "key": "datasets/university-enrolments/v1/csv/course_offerings.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/university-enrolments/v1/csv/course_offerings.csv",
      "bytes": 3735,
      "sha256": "9182ddc0b31852209cfb41b57f10312cd3d8dca40d61645716cace6b600bff9b",
      "rows": 200,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/students.csv",
      "format": "csv",
      "table": "students",
      "key": "datasets/university-enrolments/v1/csv/students.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/university-enrolments/v1/csv/students.csv",
      "bytes": 12834,
      "sha256": "eb6cee9a941afae2155512910d4f19ca9c5213d5b06c91f34ca24c6d426b96b5",
      "rows": 300,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/enrolments.csv",
      "format": "csv",
      "table": "enrolments",
      "key": "datasets/university-enrolments/v1/csv/enrolments.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/university-enrolments/v1/csv/enrolments.csv",
      "bytes": 7189,
      "sha256": "fe0095051118c035da5a4a516c486ffa41502545e894144083f0d169517b17e5",
      "rows": 600,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "csv/grades.csv",
      "format": "csv",
      "table": "grades",
      "key": "datasets/university-enrolments/v1/csv/grades.csv",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/university-enrolments/v1/csv/grades.csv",
      "bytes": 6416,
      "sha256": "1e5ad1ef7cfa8366a4fd89ebf2eaf4c4126986ea4d2f70cd3cf51bdeb76e7d24",
      "rows": 600,
      "contentType": "text/csv; charset=utf-8"
    },
    {
      "file": "university-enrolments.json",
      "format": "json",
      "table": null,
      "key": "datasets/university-enrolments/v1/university-enrolments.json",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/university-enrolments/v1/university-enrolments.json",
      "bytes": 164058,
      "sha256": "78d7f6492ed0e49e0df4d689c5d586c3b0c48a438d5bc3f5be92622f4c599603",
      "rows": null,
      "contentType": "application/json; charset=utf-8"
    },
    {
      "file": "sql/postgres.sql",
      "format": "sql-postgres",
      "table": null,
      "key": "datasets/university-enrolments/v1/sql/postgres.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/university-enrolments/v1/sql/postgres.sql",
      "bytes": 55095,
      "sha256": "d3787967906c9e8bbb667056bede61c2100bac57b2c961c2bcc9ee0a59f6046f",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/mysql.sql",
      "format": "sql-mysql",
      "table": null,
      "key": "datasets/university-enrolments/v1/sql/mysql.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/university-enrolments/v1/sql/mysql.sql",
      "bytes": 54404,
      "sha256": "963f4f574d7c39e22520a9914ebc43d7b3c666f2e3c25e40be0ecd73d73f3e7d",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/mssql.sql",
      "format": "sql-mssql",
      "table": null,
      "key": "datasets/university-enrolments/v1/sql/mssql.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/university-enrolments/v1/sql/mssql.sql",
      "bytes": 56272,
      "sha256": "daa171e7b5e99a758a7d8c6acff3c182e74c60c96b429508467228646f012139",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "sql/sqlite.sql",
      "format": "sql-sqlite",
      "table": null,
      "key": "datasets/university-enrolments/v1/sql/sqlite.sql",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/university-enrolments/v1/sql/sqlite.sql",
      "bytes": 54121,
      "sha256": "1044836488a2f89d77910a5ff3246ffb277dc306594f4244bffc34d27931fa20",
      "rows": null,
      "contentType": "application/sql; charset=utf-8"
    },
    {
      "file": "prisma/seed.ts",
      "format": "prisma-seed",
      "table": null,
      "key": "datasets/university-enrolments/v1/prisma/seed.ts",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/university-enrolments/v1/prisma/seed.ts",
      "bytes": 125670,
      "sha256": "367642fc4cff4136ce854fa1036843dbb223847d2f2f96058a0f04776975e724",
      "rows": null,
      "contentType": "application/typescript; charset=utf-8"
    },
    {
      "file": "django/fixtures.json",
      "format": "django-fixture",
      "table": null,
      "key": "datasets/university-enrolments/v1/django/fixtures.json",
      "url": "https://database-sample-website.s3.eu-north-1.amazonaws.com/datasets/university-enrolments/v1/django/fixtures.json",
      "bytes": 235498,
      "sha256": "4a2528303541885d5d12940a4392c0e7218abdda372adbdc44bf067d22df55fd",
      "rows": null,
      "contentType": "application/json; charset=utf-8"
    }
  ],
  "publishedAt": 1788733971445,
  "updatedAt": 1788733971445
}
