Problem solve Get help with specific problems with your technologies, process and projects.

Learning and creating databases

MySQL expert Scott Noyes advises a user on where to find information for creating a database.

I have been working with a spreadsheet that records student performance. I have improved this spreadsheet to the point where I would like to create software. I was advised to learn Microsoft Access and then transfer created files from Excel. Considering the limitations of Access, I should also study Visual Basic.net and learn SQL to add further sophistication. I would like know how to create database software and other computing tools. My passion is research, and I have limited knowledge of SPSS, Excel, Access and Word. Can you advise me on what to do or where I can learn such tools?

A wide variety of database brands exist, and an even wider variety of languages to use with those databases. The combination to pick depends on your budget and your goals.

The Microsoft products (Access and Visual Basic) are ideal for many small projects. They integrate with each other easily, and rank with FileMaker for friendliest user interfaces available, which make them easy to learn. Both companies offer training and cost breaks for schools. However, they are not free, have limited portability (it's hard to run Access on a Linux server) and some design limitations render them of limited use for larger projects.

If you're on a tighter budget, or need something a little more robust or portable, MySQL and PostgreSQL are very powerful database systems. They both run on a variety of platforms, and can be used with either a standalone client or web-based architecture. SQLite supports many of the standard features of bigger databases, but has a very small footprint and almost no need for configuration. The licenses for each vary, but generally you can use them at no charge until you are ready to start distributing your application to others.

One comforting thought is that it is possible (perhaps not trivial, but possible) to transfer all your data from any database to any other database. So feel free to just pick one and try it -- if you don't like it, or you discover another one better suits your needs, you can always switch.

Some other languages to consider include scripting languages like PHP, Python or Ruby, which are popular for running your application via the web. You can also write standalone applications in any of those languages, but it is more common to write such programs in Java or C/C++.

Check your local public library, community college and adult education center for classes -- many offer introductions to databases, often geared towards genealogical research.

Your library may have books on programming, but the computing world moves so fast that most libraries fall quickly out of date. Amazon.com has most of the current books. The "For Dummies" books are popular, interspersing the technical jargon with quips and cartoons. I recommend Peachpit's "Visual QuickStart Guide" series for something a little less chatty.

There are thousands of tutorials on the web which can walk you through everything from installing a database to compiling your code. Searching for "access tutorial" or "PHP tutorial" results in plenty of reading material.

Every one of those databases and languages has a community scattered across the Internet in forums and chat rooms, who are happy to answer specific questions whenever you get stuck. Here's a few of them:

  • http://www.experts-exchange.com
  • http://www.qunu.com
  • http://www.devshed.com

Dig Deeper on Linux servers

Start the conversation

Send me notifications when other members comment.

Please create a username to comment.