Ayende @ Rahien

My name is Oren Eini
Founder of Hibernating Rhinos LTD and RavenDB.
You can reach me by phone or email:


+972 52-548-6969

, @ Q c

Posts: 6,026 | Comments: 44,842

filter by tags archive

ChallangeThe sample legacy database from hell

time to read 1 min | 52 words

I need a legacy database for my NHibernate course. I can take some of the creepy ones in the NHibernate test suite, but I think that would be evil to the students.

Anyone can come up with a good (um, bad) legacy database that is also small enough to be a good example?

More posts in "Challange" series:

  1. (18 Feb 2009) The sample legacy database from hell
  2. (01 May 2007) Finding the missing piece




Tuna Toksoz

Northwind, AdventureWorks?


I have used AdventureWorks previously for that type of thing.It works for sqlCE (so easy to port your examples without having a dependency). It also contains some "interesting" scenarios like string primary keys etc.


it seems most accounting packages have terrible db schemas which reflect flat files more than anything else. not that you want to recreate a db, but maybe harvesting some segments of an accounting db schema is the way to go.

Kevin McDonnell

If you've got a copy of a Remedy database. They still give me nightmares.

julian jelfs

Well you've seen ours and it has some quirks. Too big to use but I would say it would be nice to throw in some composite key stuff because that's the one thing we really struggled with when trying to use NHibernate.

Art Johnson

I wish I could hook you up with this DB2/AS400/ISeries hell-hole we have...

A developer in sorrow

In the history of databases, there have always been rumblings of a DB which was so poorly designed, so poorly maintained, and just plain evil. Well good sir, I have come into contact with such a DB, and I am clutched within its dark fingers.

A putrid design created deep within the bowels of hell; some say forged by the evil one himself. This is a DB which has wreaked its evil on it's users for years slaying anyone who has come into contact with it - DBA, developer, architect; none stood a chance.

But alas, I cannot share its design. Letting such vile loose in the world would be a travesty and a cross which I just could not bear.

You shall have to look elsewhere on your search of a database from hell... this one is just too malevolent.


AdventureWorksLT, small enough to avoid dizziness, but "Relational" enough to show NHibernate coolness ;)


If you know Assyst!!! Surely it's database came from hell!!! They use hibernate for their mapping though. :0

Alessandro Riolo

From time to time, I have seen DBs without a single foreign key declared (now that I think about that, wasn't the one of SAP R/3 one of those?).

Probably the worst was having a table, with a single column acting as primary key, holding strings of guillemets enclosed substrings (as in "«A234..»«B234..»«E454..»"), the latters being the logical foreign key to max 3 tables (min 0) from a collection of 10 available, and the table being referenced was decided from the initial character of the substrings.

I was said this "design" decision was taken because the application had been ported from some previous platform ..


Alessandro, was that previous platform MS Word? These guillemets sure look like Word form fields :P

Luis Rocha

What about Chinook Database?


It is a sample database available for SQL Server, SQL Compact, Oracle and MySQL. You could demo using different database servers. It is based on iTunes store including tables for artists, albums, media tracks, invoices and customers. It is a small, simple and can be created by executing a single SQL script. You can even generate the SQL script using the data from your own iTunes library if you want.

Johan Andersson

MSSQL Product Sample Databases @ CodePlex: http://www.codeplex.com/MSFTDBProdSamples

However, it seems only to be AdventureWorks, not all the other fictious companies they use commonly (Wingtip Toys, Woodgrove Bank, Northwind Traders, etc.)

  • Johan
Alessandro Riolo

Configurator, as I was there (a very big government office) to write an Office Automation application (*), I wouldn't be surprised if you are right, although I never even enquired .. I was already too shellshocked from what I was seeing, I guess ..

(*) no, I don't do that anymore, it has been way more than 10 years now ;)

Comment preview

Comments have been closed on this topic.


No future posts left, oh my!


  1. Technical observations from my wife (3):
    13 Nov 2015 - Production issues
  2. Production postmortem (13):
    13 Nov 2015 - The case of the “it is slow on that machine (only)”
  3. Speaking (5):
    09 Nov 2015 - Community talk in Kiev, Ukraine–What does it take to be a good developer
  4. Find the bug (5):
    11 Sep 2015 - The concurrent memory buster
  5. Buffer allocation strategies (3):
    09 Sep 2015 - Bad usage patterns
View all series


Main feed Feed Stats
Comments feed   Comments Feed Stats