Assignment Overview
In this assignment, you will design a complete Learning Management System (LMS) database from the ground up. You'll gather requirements, normalize the design, create documentation, and implement a production-ready schema.
Normalization
1NF, 2NF, 3NF, BCNF forms
ER Modeling
Entities, relationships, cardinality
Scalability
Sharding, replication, partitioning
The Scenario
EduPlatform LMS
You're the lead database architect for a new Learning Management System that will serve millions of students worldwide. The system needs to handle courses, enrollments, assignments, grades, and discussions.
"We expect 10 million users, 100,000 courses, and need to support real-time analytics. Design must be scalable from day one."
System Requirements
- Users - Students, instructors, administrators with roles
- Courses - Multiple sections, modules, prerequisites
- Enrollments - Registration, progress tracking
- Content - Videos, documents, quizzes, assignments
- Assessments - Submissions, grading, feedback
- Discussions - Forums, comments, threads
Deliverables
Requirements Analysis
- Document all entities and their attributes
- Identify relationships between entities
- Define cardinality for each relationship
- List business rules and constraints
ER Diagram
- Create complete ER diagram with all entities
- Show primary and foreign keys
- Indicate cardinality (1:1, 1:N, M:N)
- Include attribute data types
Normalization Documentation
- Show original unnormalized data
- Document 1NF transformation
- Document 2NF transformation
- Document 3NF/BCNF final form
Schema Implementation
- Complete DDL scripts for all tables
- All constraints (PK, FK, CHECK, UNIQUE)
- Indexes for common query patterns
- Sample data for testing
Scalability Plan
- Partitioning strategy for large tables
- Read replica recommendations
- Caching layer suggestions
- Archive strategy for old data
Submission Guidelines
GitHub Repository
- Create a repository named
sql-assignment-9-database-design - Include
requirements.mdwith entity analysis - Include
er-diagram.png(or use dbdiagram.io link) - Include
normalization.mdwith step-by-step process - Include
schema.sqlwith complete DDL - Include
scalability.mdwith growth plan
Grading Rubric
| Criteria | Points |
|---|---|
| Requirements analysis completeness | 30 |
| ER diagram accuracy and detail | 40 |
| Normalization documentation | 40 |
| Schema implementation quality | 50 |
| Scalability planning | 40 |
| Total | 200 |