Advertisement
If you have a new account but are having problems posting or verifying your account, please email us on hello@boards.ie for help. Thanks :)
Hello all! Please ensure that you are posting a new thread or question in the appropriate forum. The Feedback forum is overwhelmed with questions that are having to be moved elsewhere. If you need help to verify your account contact hello@boards.ie

Python MySQL a good choice and Licensing issues?

Options
  • 02-03-2012 9:31pm
    #1
    Registered Users Posts: 140 ✭✭


    Hi,

    Hope you someone can help or point me in the right direction. I’ll start off by saying that I am not a programmer so please forgive me if I don’t understand all the terminology. I come from a mechanical engineering background and am familiar with VB in Excel and MS Access. Little bit of Fortran way back in college. I like programming but never really did too much of it in work.

    What I am thinking of doing:
    My work involves taking time based measurements. Tables can get up to 1 million rows with about 50 columns or so. There can be many tables. I have built tools in Excel to analyse this data. Due to tables getting so big (to me anyway!) I have more recently included MS Access to hold the data and some VBA code in Excel to make my life a lot easier. The things that I do is basic stuff; grab and append new data to database, grab a section of data (by date) and plot time series graphs, run simple queries to get monthly/yearly averages, counts, hourly averages, simple calculations to plot scatter or radial plots. I would like to build a more robust, more automated standalone application that could be sold to companies doing the same work as myself.

    Question 1:
    I have done a good bit of reading about different programming languages and databases (though I don’t understand the half of it:rolleyes:). Come down to Python and MySQL. Python seems to be easy enough to learn and has lots of libraries to be the GUI, plot professional looking graphs and produce a report. MySQL seems to be plenty big enough, is able to do everything I would need to store the data and run the queries. I’m sure there is no correct answer but is this choice good for what I need to do?

    Question 2:
    Obviously I need to do this as cheaply as possible. The market for this specific software will not be very big. Am I correct in assuming that the open source GNU General Public Licence version of MySQL is ok to use? It would be used as if the customer downloaded it themselves and started using it. What I would be selling is the application that will just use the database. I wouldn’t want the customer to have to download MySQL separately though and would want it packaged up in a single install.

    Similar for the Python libraries to plot graphs and produce reports. Are the open source ones ok to use?

    I suppose that was a 2 part second question:D!

    Appreciate any advice you can offer!

    Thanks.


Comments

  • Registered Users Posts: 44 damned_junkie


    First off, what you want to do with your database is known as embedding. MySQL is capable of doing this but it is usually used as a database server in client server architectures. (e.g. on websites), for example boards.ie uses MySQL for it's database backend. A common choice for embedded databases is SQLLite, which is bundled with python since python 2.5. This might be sufficient for your needs, but without more information it's hard to know for sure.

    As for licensing, you should be OK to use anything with a GNU GPL license. Other licenses like the Apache License will probably be OK too. The specifics of what you can and can't do are found on the GNU GPL FAQ.


  • Registered Users Posts: 140 ✭✭DukeOfDromada


    Thanks damned_junkie. I read about SQLite before but didn't really understand what i was reading at the time. I have read a lot more now and i really like it. I like their ethos of keeping things simple and the fact there is no server. As it is simple it is missing a few features but i have no idea is i would need them. It sounds like it should be able to do everything i would need.
    This might be sufficient for your needs, but without more information it's hard to know for sure.

    Not sure if this is what you mean but here goes.
    The data is composed of measurements made every 10 mins. A csv file is saved for each day. A csv file also represents a location and there are many locations.
    Timestamp format is DD/MM/YYYY HH:MM.
    The csv file will be appended to a table in the database every day for analysis.
    In Access I group by month using the month function to get the average values for the month. Also use count to calculate the data coverage for each month.
    I graph time series plots to check for erroneous data. If there is, then I delete that data.
    I graph other locations on the same time series plots for reference and also do correlations between them. Therefore the Timestamp column from all the tables need to be linked.
    There are a few other calculations performed on the data but that is pretty much it regarding the database side.

    Not sure if the fact that SQlite not having a date datatype will cause difficulties in doing some of the things I need?


    Thanks for the link to the GNU GPL FAQ.


Advertisement