At a very high-concept level, an EdTech application is the transformation of data. The application stores the data on a database. Bits of data have “relations” with one another. If a bit of data in one place changes, so do those who relate to it.
Any action from a learner, big or small, involves a change on some of the data bits. The change can be intentional, reflecting specific information the user wants to save. The change can also be the result of his behavior and performance on an “intervention.” Of course, an ordinary modern application store several thousand bits. (Or rather, “kilobytes,” “megabytes,” “gigabytes” and so on.) And the changes across the interrelated data is massive and fast. It is easy for even the most experience of developers to get lost in the vastness of flowing information.
Fortunately, to counter the fear of data deluge and potential mishandling, there’s always a friendly “oddball” who happens to love the maze.
Marcus Green, Moodler extraordinaire, has updated Examulator, also known as “Moodle ERD.” (It stands for Entity-Relationship Database model.) It’s his longstanding project, started in 2004, aimed to shed light into Moodle’s inner workings.
It all started basically as a bet on the Moodle Pub. Green felt challenged to list all of the databases that make up the Moodle LMS. Peer contributions and encouragement led to adding the “keys” which bind data across different sets or tables. Momentum has remained steady ever since.
For Moodle 3.8, Green outdid himself. The ERD covers all 421 tables, each with a dedicated page detailing each row, and visual representation or the relationships within one and two degrees. A very shallow look at the results reveals some interesting tidbits about how Moodle is designed:
- The largest database is “user” with 54 fields. It is also the table with the most “children,” as 113 tables allude to the user ID. In case you had any doubt Moodle is “user-centered.”
- There’s a total of 3,822 columns, or different data fields for everything going on in Moodle. It would be really interesting to see how many unique fields are updated throughout the course of an Activity or Lesson.
- The longest fields in the Moodle database belong to “long text” formats, present in some 257 columns. The length limit, 2,147,483,647, is the maximum value of a 32-bit integer and it was proven to be a prime number by Euler in 1772. It has its own Wikipedia page which reveals, among other things, that it’s the maximum possible score for lots of video games, it required a deep reingeneering of YouTube when Gangnam Style exceeded such amount of views, and it will be responsible for a Y2K type situation in 2038 once Unix time is maxed out.
Resources & References
- Check out Examulator with access to the most popular Moodle tables. See all the tables here.
- The Moodle SQL Generator plugin (which Green built himself) and provides the SQL code to create Examulator.
- SchemaSPY was used to extract the data from the Moodle database.
- Green thanks Titus Learning, Moodle Partner from the UK and his current employer, for the support. (And sponsor of LMSPulse.)
- See the history of Moodle diagrams, dating as far as Moodle 2.2
- Moodle history: See the Forum post where it all began.