I’m working on a home project where I need to create a database on my PC which can be updated by and accessed by a Perl program. I’ve created MS-Access databases on my home system in the past, and I’ve worked with Oracle at my 9 to 5.

What is the best way forward for a home project? Is there an easy “free” download of Oracle single user, and if so what is the best way to access it using Perl, what packages do I need to load?

Same question for working with MS-Access? I have Access 2013 on my Window’s 7 PC now as part of Office 2013. If I use Access, is the best method through ODBC, or is there a better way?

The database and table relationships will be fairly complex. This is for an investment strategy process. I will be tracking a list of stock symbols. I will have tables that track the annual and monthly income statements for each company and determine if they are investment quality.

If they are I will track historical prices and the calculated indicators like moving average, MACD, Stochastic, etc. to determine when is a good time to invest. I will also have tables that will track the clse to the current market price of various call options to expand the investment into covered calls.

So, in short, the tables can become rather large with a lot of dependencies. I have used MS – access for this type of system in the past, but looking to convert the world from Visual Studio to Perl.

Make sure that you use InnoDB for the engine with creating the tables. It supports row/record locking when adding/updating records. The other engine type use table locks instead of record locks. I believe Access also uses full table locks instead of row/record locks.

More importantly, InnoDB is ACID compliant and hence fully transactional with ROLLBACK and COMMIT and support for Foreign Keys to aide in maintaining referential integrity.

My first post has the mysql download link. It's a simple download and install process.

You could use the mysql cli for all of your database design and maintenance. Or, you could download/install Mysql Workbench; it's a free gui tool (similar to phpmyadmin, but more powerfull). I use Workbench for the initial design process and schema changes and the cli for most everything else.