2

I need to teach my two interns how to use RDBMSes in general and "standard" SQL during their free time, using the outdated windows notebooks we have laying around. They come from math courses and have had little contact with programming.

Which database management system should I use to teach them? I need something with a trivial import\export interface, loading data to MS SQL Server Express can be a pain sometimes.

My long term goals are: Enable them to use the MS SQL Server we have at work, and to use Pentaho to visualize data on that server.

  • 1
    Do you mean MS SQL Server is a too complex RDMS to be learnt by rookies, and they should instead start with an easier RDBMS? Also, what do they need to learn beyond SQL? – Franck Dernoncourt Mar 18 '14 at 19:10
  • 1
    MS SQL Server has too many buttons that they will not use, but that's not the issue. RAM, processor and disk usage is, the machines we're using are very old. My evil plan is: Step 1: Teach them the details of SELECT, WHERE, HAVING, ORDER BY, GROUP BY, and show where to look for the exact syntax of INSERT, UPDATE and DELETE. Step 2: Show them the Pentaho BI Server and what it does. Step 3: Show them Pentaho Report Designer and how to use it. Step 4: Have them write reports. Profit. – Lucas Soares Mar 18 '14 at 19:22
  • 1
    @LucasSoares It might be a matter of opinion, but all DMS will have a lot of buttons they won't use if they are only going to use simple queries. If I were you, I'd stick to MS SQL, so they are used to the end environment immediatly. – Amber Mar 19 '14 at 12:39
  • @Amber We have some old notebooks we want to use as DB server and BI server. They can take these notebooks home to experiment on them. My trouble is that SQL Server looks, at first glance, too heavy for these machines. After some thinking about the situation and your comment, they will be using SQL Server on their work desktops (some more up to date HP computers, I5 processors and such). – Lucas Soares Mar 20 '14 at 11:51
  • Plus I want to teach them the concept of "Technology Agnosticism". They will focus on standard SQL, Relational Models, later on Dimensional Models, not on specific tools. – Lucas Soares Mar 20 '14 at 11:53
3

I would use MySQL as RDBMS and MySQL Workbench as IDE:

  • free
  • works on Windows/Linux/Mac
  • straightforward to install (to make it simpler you could even install MySQL on some server, and just have your interns connect to it)
  • syntax highlighting
  • auto completion
  • SQL documentation on the side
  • in addition to the SQL Editor, you can design visually database (usual EER) and administer the database.

SQL Editor:

enter image description here

Visual Database Design:

enter image description here

Administration:

enter image description here

Also, +1 for phpMyAdmin if you host MySQL and phpMyAdmin on your server: fewer features but lighter since it's just a web interface.

  • I decided for MySQL, mostly because that's what they use on the Head First SQL book. – Lucas Soares Mar 24 '14 at 18:08
2

I would recommend phpMyAdmin - works with MySQL (also MarioDB & Drizzle though I can't comment on the those). It does require PHP and MySQL/MarioDB/Drizzle - WAMP has it pre-setup through the installer if you want a simple Windows installation solution.

With phpMyAdmin you have full console abilities and also a very very easy to play with learn from/use for management GUI. The GUI can:

  • very easily import or export (in lots of formats; XML, PHP arrays, CSV, SQL, tab seperated etc. etc.)
  • add/edit/delete rows
  • add/move/edit/delete columns, databases, tables
  • setup constraints, indexes etc.
  • lots more.

It is how I have taught myself to actually understand what will happen with joins and stuff like that (for example because sure you can read it but when you see exactly what happens when you change type of join you actually understand it).

  • I had completely forgotten about WAMP and phpMyAdmin, even though it was my first software tool on my current job. I prepared some files, gave the guys the latest version of the WAMP installer and went forward. Got stuck in the first example: The simplest files I have around were too large for the standard PHP config to handle. – Lucas Soares Mar 21 '14 at 15:34
2

I'd give them sqlite - it's perfect for beginning situations like this:

  • The DB is in a single file, making it really easy to start using, and really easy to reset if you screw it up.
  • The DB engine is a single executable - just type sqlite3 <db file name> to get started.
  • Imports from CSV are pretty easy.
  • Supports the usual set of SQL operations.
  • The documentation is right on the website, and is very good.

They'll have some adjustment when they switch to MS SQL Server, but that's true no matter what you start them out with - every DB has it's own take on things and odd quirks.

  • I decided to use SQLite, but not in a very straightforward way. I wanted to teach them the basics of JOIN when compared to Excel's VLOOKUP. Dumb example, but they use VLOOKUP on a daily base, so that's a good starting point and motivated them. They have a bit of experience with the R language (r-project.org), and R sqldf package allows the use of SQLite without any boilerplate. Just start the thing and do the JOINs to quickly merge some data - sqldf does the import\export job. Some moment this week I will show them a small CRUD built using C (their college uses C) and SQLite. – Lucas Soares Mar 24 '14 at 18:07

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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