History:Classic Database Schema
The MusicBrainz Database Schema
This document describes the database structure of the MusicBrainz database, as of the Subversion copy at 20th August 2003. It is not meant to be a complete definition or any kind of definitive reference - it is just a series of pictures with some narrative, intended to be helpful to people trying to understand the overall form of the database. Also the diagrams were not produced automatically or anything - they were done by hand, so many contain errors. Please be forgiving if this is the case.
This document is partially outdated
This document does not describe the current state of the MusicBrainz database, but is a snapshot of how it looked like in mid 2003. Please check the images against the up-to-date CreateTables.sql script. The other scripts in the sql directory give more details about index, foreign key, and serial number management workings of the MusicBrainz Server. Please be advised that you'll need to understand the fundamentals of SQL before these scripts will make sense to you.
We also used to attempt to document our future plans for the database. But, as it is typical in software engineering, our implementations never matched our speculations about how we thought we'd do things in the future. In order to get a gimpse of what we are working on the for the future, take a look a the MusicBrainz Development page which describes tge CurrentWork being done on MusicBrainz. There is a page on how a NextGenerationSchema could look like, and an ObjectModel that goes with it. It is not clear at this time (05/2006) if, and when these changes get implemented.
The Whole Database in Miniature
Firstly let's just take a quick look at the whole database, in all its glory, all twenty-five tables of it:
In order to understand the big picture, we will break it down into smaller chunks:
- Search tables
- Editors or (Users)
- The editing (moderation) system
Finally there is a full-size image (71kb, 2085x1495px) of the diagram, if you'd like to decorate your appartment or whatever you like to do with it :))