Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things

Perl and Database

by Sun751 (Beadle)
on Aug 20, 2009 at 06:47 UTC ( #790012=perlquestion: print w/replies, xml ) Need Help??
Sun751 has asked for the wisdom of the Perl Monks concerning the following question:

I have been learning the Perl for since last few months. Now I want to push myself more further and want to learn more about the Perl database programming. I have lots of choices about which database I should use Informix, Oracle or SQL Server? I am totally new and want to go with something which can help me to sale myself in future. I am looking forwards for DB which is more flexible with perl. Any bodies have any suggestion? Please, Cheers

Replies are listed 'Best First'.
Re: Perl and Database
by cdarke (Prior) on Aug 20, 2009 at 07:57 UTC
    Informix, Oracle or SQL Server? ... help me to sale myself in future

    Technically I would go with PostgreSQL, but that is not in your list and it would not help sale yourself as much as it should. The sad fact is that recruiters do not see generic DB knowledge as they should and look for keywords like Oracle or SQL Server - it is not uncommon for non-technical people not to know the difference between SQL and MS SQL Server.

    It pains me to say this, but for saleability you should go for Oracle or MS SQL Server. It is difficult to call which of those will have the most secure future.
      If you need some book to get you started with SQL I would you recommend "Database System Concepts". I must warn you that there is a lot of theories in it. So if you are reading it, skip chapters that are not relevant for you.
Re: Perl and Database
by james2vegas (Chaplain) on Aug 20, 2009 at 07:26 UTC
    DBI supports a large number of databases, so most of them are flexible in Perl (DBI is one of Perl's best modules). You might want to start with free DBMSes, like PostgreSQL, Firebird, SQLite or MySQL (the most featureful and enterprise ready products first). Also worth noting is that MS SQL Server and Oracle both have free express, limited versions of their commercial products.
Re: Perl and Database
by dHarry (Abbot) on Aug 20, 2009 at 07:28 UTC

    Just start with mySQL. Easy to install and maintain. It's a very popular database also with other programming/script languages. The other databases you list are high-end products and often cost you money. You might also want to spend some time on data modeling and SQL in general.

      FYI: Most of the "high-end" DBs come in free versions. SQL Server, Oracle, and DB2 (which wasn't on the original list, but is what we use - and what I use as the back-end to the CB stats page) all have free versions (not to be confused, of course, with open-source). I suspect that the official support is the same, too: none. But I've got a lot of help on forums, usenet, and IRC, so no complaints so far.

      I would recommend NOT to start with MySQL. It often behaves very different from most other databases. (This is not an evil plan, just optimizations for special cases in some applications. And annoying in all other applications.) Good documentation.

      Oracle is nice, if you have a good DB admin that manages it for you. Everything seems to be documented, even Larry Ellison's coffee mug. You just have to know where to search for the documentation. And Oracle brings TONS of software, including Apache, Perl, Java and every tool you can think of. Bloatware.

      MS SQL is easy to set up (just click the "continue" buttons until they disappear ...), but it can be a real PITA when it comes to concurrent access, locking, multiple active statements, and access from non-Windows systems.

      PostgreSQL is easy to set up, clean, well documented, and it has a very short gotchas list. (And for me, it feels like Oracle done right.)

      SQLite is small, low-fat, and can easily be embedded. But it has a very unusual type system.

      My recommendations:

      • For fun projects as well as for new commercial projects, I would recommend to use PostgreSQL.
      • If you want to learn more, learn Oracle, then MS SQL, followed by MySQL and SQLite. (Clean to dirty order.)
      • If you have to deal with web hosting, you should learn MySQL (available nearly everywhere, but often in ancient versions) and SQLite (for hosters unwilling to provide a usable database), remembering that they have unusual behaviours.
      • If you want to earn money, you should know all of them, including the "light" versions (SQL Express, Personal Oracle). You sould also try to learn DB2 and other RBDMS.


      Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so". ;-)
Re: Perl and Database
by Bloodnok (Vicar) on Aug 20, 2009 at 10:19 UTC
    Of the 3 DBMSs you suggest, I would lean towards Oracle or Informix as a starting point, especially if you're just learning, since both support (and extend) the ANSI SQL standard whereas M$, quite typically IMO, have seen fit to modify the ANSI SQL standard in SQL_Server.

    That being said, as has been said previously on this thread, MySQL would provide a better (aka far cheaper:-) starting point - from there you can, if funds permit, then go on to Oracle/Informix...

    A user level that continues to overstate my experience :-))
      If you're just trying to learn the system, funds are not an issue with Oracle. They only want you to pay once you're hooked.

      The reasoning for this strategy is very well explained in Information Rules.

      If your reason for dismissing MS SQL is its poor ANSI SQL support, wouldn't it be more consistent of you to suggest something more SQL compliant amongst the free database servers, i.e. PostgreSQL or Firebird (even SQLite is better)? MySQL has been worse in supporting standard SQL than Microsoft (at least since MS SQL 6.5).
Re: Perl and Database
by dan. (Initiate) on Aug 21, 2009 at 09:27 UTC

    If you're completely new to databases, then you'll definitely benefit from having a go with SQLite.

    It's extremely easy to install and use (you can be up and running inside a couple of minutes). Although it doesn't support all the fancy features of other databases, it covers everything you need to get going. Once you decide you want to play with the shiny features, it'll be pretty easy to migrate, and your knowledge won't be wasted (it's a really handy tool to know ;))

    Beyond that, well, it depends what you want to do. PostgreSQL has evolved into an absolutely brilliant "enterprise-quality" database, and there's a wealth of documentation and an active community.

    In my opinion, MySQL is kinda going downhill a little nowadays (its particular niche is being squeezed by SQLite and Postgres), and who knows what Oracle are going to do with it. That said, there's plenty of people out there using it.

    I'm no expert on commercial databases, all I can really tell you is that Oracle can be rather complicated, but there's plenty of work out there for a good Oracle DBA.

    If you do nothing else, dedicate an hour to playing with SQLite.

Re: Perl and Database
by Melly (Hermit) on Aug 20, 2009 at 10:22 UTC

    I'd go with mysql and sql-server express. They are both free, and using two different systems will mean that:

    • You will be more aware of the sort of differences you will run into when using different db engines.
    • You will learn to write easily portable code
    • You will have more to put on your CV
    map{$a=1-$_/10;map{$d=$a;$e=$b=$_/20-2;map{($d,$e)=(2*$d*$e+$a,$e**2 -$d**2+$b);$c=$d**2+$e**2>4?$d=8:_}1..50;print$c}0..59;print$/}0..20
    Tom Melly, pm (at) cursingmaggot (stop) co (stop) uk
Re: Perl and Database
by erix (Parson) on Aug 20, 2009 at 19:03 UTC

    If the goal is to learn and to improve your CV, I would install all these systems.

    But definitely include Oracle: it's pretty much the gold standard of database systems, and there is always well-paid work. Oracle is to be avoided if you have to pay for the system (it's ridiculously overpriced) but for a developer it is a good skill to have. There is a free developer install.

    If you also install the free/opensource systems PostgreSQL, MySQL and SQLite, you can learn how to write programs that talk to the different systems in the same way (=with the same/similar SQL statements). This way you'll learn the differences and specific strengths of each system.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://790012]
Approved by ikegami
Front-paged by Arunbear
[Corion]: My favourite Bob Fosse choreography, basically redone in Austin Powers I think
[Corion]: Only now I realize that both pieces have the same melody, Big Spender and The Frug

How do I use this? | Other CB clients
Other Users?
Others meditating upon the Monastery: (7)
As of 2017-08-18 14:28 GMT
Find Nodes?
    Voting Booth?
    Who is your favorite scientist and why?

    Results (303 votes). Check out past polls.