It’s easier to describe what it’s not.
A non-relational, flat-file database is essentially a spreadsheet. (Not a workbook but a single sheet). The columns each contain a specified type of data and each row is a record, or instance. You can have very pretty flat-file databases that do not visually look like a spreadsheet. Microsoft Works comes with one, as does AppleWorks. You can view your data one record at a time (i.e., one row at a time) with the fields (columns) arranged any way you want. You can format some of the fields as checkboxes showing acceptable values, and some of them as drop-down fields with value lists and so on. You can arrange them in designs that do not remotely resemble a grid. But the data itself could still be represented as a simple grid of rows and columns, regardless of what this screen looks like.
I’m a professional database geek using a database system widely regarded as “nonstandard” by relational database geeks: FileMaker Pro. Many of the elements that others might describe as necessary for a relational database do not (necessarily) apply to FmPro. It is, nevertheless, relational, and has been relational since FileMaker 3.0 (it was a flat-file system before that point).
If the Straight Dope Message Board was a flat-file nonrelational database, the record constituting this particular post would be a row, and it would have to have a column for Forum (“General Questions”), a column for User Name (“AHunter3”), a column for thread title (“What is a relational database?”), a flag for thread status (“not locked”), a column for this post itself (<the text you’re reading right now>), a column for my signature, a column for my join date, a column for the date of this post, and so on. As a relational database, the record for this post could “know” (reference) all this data with just the column for this post itself (<this text>), the thread identification number (322384), post date, a flag for whether or not to display the signature, and my userID number (66).
A different table, a table of threads, contains a column with thread title (“What is a relational database?”), thread identification number (322384), forumID number (3), and thread status code (<whatever represents “not locked”), and so the post record, which shares the same thread identification number as the thread record in that other table, knows what its thread title is and whether or not the reply-to button oughta work when you click it.
Yet a third table, the table of forums, contains a column for forumID number (3), forum name (“General Questions”), forum visibility status (“visible”, or a code that means “visibile”), and so the post record, which as we’ve alread seen is connected to and “knows” the values in the thread record, indirectly is connected to the forum table via the thread record and therefore doesn’t need any column to indicate that it is a post within “General Questions” and that it is a post within a thread of a visible forum so you should be allowed to view it if given a link to it.
Yet another table, the table of members, contains a column for user ID number, a column for screen name, and a column for status. So since this post record contains the value 66 for userid, it knows that I am AHunter3, “Charter Member”, that I have the right to post here, and so on,
Performance and scalability issues aside, any relational database would theoretically be able to house the Straight Dope Message Board using an essentially identical storage structure. Some systems would have more specialized requirements than others but the ability to house this kind of data in a set of related tables would indicate that it’s a relational database. If Jerry the Tech God were to burn a DVD of the tables that constitute the Dope in tab-delimited or other common format, it should be a relatively (ahem, sorry) simple matter to define fields and import the entire message board and run it in that database environment using an identical structure.