Complex DB solutions are not rare nowadays, so I have an idea to deploy a SQL "sandbox" for staff training before real projects come. Mainly I interested in 2 things to have:

  1. Oracle 11+ DB instance.
  2. MS SQL Server 2008 (or better 2012) DB instance.

I want to deploy these using my company infrastructure, probably vCloud (we already have that up & running). However, while the infrastructure question should mostly be addressed to IT guys, I need to decide on the following:

  1. What tables / structure is recommended for learning purposes? That shouldn't be too complex, even for complete beginners, but at the same time DB should have enough for more advanced practice.
  2. Is there any significant difference in approach in training for MS SQL and Oracle? While elementary SELECT statements are pretty much similar, further things are most likely not (I have enough exp with Oracle, but hardly ever played with MS SQL).
  3. Easy redeploy / restore: e.g. once a month DB should be reset to initial state. I suppose that should be done via resetting either DB snapshot OR the virtual server itself, but I'm not certain about hidden details of these.
  4. Set of exercises / training solutions for the wide range of skills? This is definitely a hard point for me.

I'm pretty much sure even small companies do invest in staff training, so your nice suggestions and best practices are very much welcome here.

4 Answers 4


Microsoft has sample databases for exactly this purpose: http://www.microsoft.com/en-us/download/details.aspx?id=23654 http://msdn.microsoft.com/en-us/library/ms124501%28v=sql.105%29.aspx

There are tons of samples, tutorials and training online that all use these sample databases. It sounds like everything you want from above could be done with these and require very little work from you.

  • thanks a lot, that's definitely worth a try) But Oracle still an open question.
    – Peter L.
    Feb 19, 2013 at 17:11
  • 1
    As for SQL vs Oracle, the concepts are going to be pretty much identical, however there are a number of differences in the syntax and built in functions: dba-oracle.com/oracle_news/…
    – Sam Woods
    Feb 19, 2013 at 17:37
  • Thanks again for the link - will add that for future tutorial. However, i still need a sample DB similar to the above MS SQL one.
    – Peter L.
    Feb 19, 2013 at 17:43
  • Couldn't you just use the scripts for MS-SQL and adapt them to use in your Oracle environment? Or just search and you find links like learndotnetprogramming.com/2007/04/12/… Feb 19, 2013 at 18:20
  • @JoeStrazzere thanks for the suggestion, but I'd like to have different DBs for 2 platforms, although with similar level of complexity. Sure thing your option will remain for the worst scenario - in case nothing better is found.
    – Peter L.
    Feb 19, 2013 at 19:58

While you need DB instance for SQL training purposes, you can look at small solution like SQLite http://sqlitestudio.pl/?act=download . Off course it can't be compared with Oracle or MS SQL Server. But it has enough functions for SQL trainings and you can easy create/restore structure from previously created SQL Script. Maybe you can use it for small tasks...

2 hours of SQL lectures, db schemas and fiew Interesting exercises for the different range of skills you can find at http://class2go.stanford.edu/db/Winter2013

About difference in approach: There are many ways (different scripts) to get the same result from the same DB, so if you train staff good enough, it wouldn't be problem for them to work with any DB. Off course, there are some trics, like if you want to use cirylic statement as a condition in MS SQL Server 2005 you shoud place "N" before (e.g. [where a=N'русский']). You know them when you expirienced, and maybe you shoud get a List of such usefull things =)


Good idea. Can you use a schema from one of your projects? For training purposes, if the schema is too big, you can focus on a subset. If you are comfortable reading code, it shouldn't be too hard to figure out what kind of queries your projects are actually using.

  • In my current projects schemas are too complicated and hardly ever suit for learning purposes - mostly because cases are very specific and should be investigated only in terms of project testing. But for understanding these I need first to train my testers on basics.
    – Peter L.
    Feb 19, 2013 at 20:01

Good discussion. Another approach is to setup a Containerized environment, where each dev can easily deploy their own isolated container instance on a shared server. WinDocks suports all editions SQL Server 2008 and up, and even runs on Windows 8 (one cheap server for this purpose). A free Community Edition is available here

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.