Do you know a database written in Perl with DBI interface? - database

Do you know a database written purely in Perl with DBI interface?
Or what can be used if there is no MySql or Postgresql installed and I want to use Perl only?
Thank you.
Ok, I just wanted something that can be used with Catalyst.

What about SQLite? DBD::SQLite

I believe DBD::CSV is a simple DBD implementation that uses Text::CSV to persist data to CSV files.

That depends greatly on what you consider "database".
If you just want something to store your data, there's a number of Perl databases avialable. Some are listed here: http://www.perl.com/pub/a/2004/09/12/embedded.html
Tie::File
Berkley DB
SQLite
Please note that despite "SQLite is written in C" comments I saw here, the article explicitly states:
Conveniently, the DBI-driver for
SQLite, DBD::SQLite, already contains
the database engine itself as part of
the module - so installing this module
is all that is required to be able to
use SQLite from Perl.
However, NONE of the above is a real database engine, supporting transactions etc..., although some allow SQL-like query language access
I'm not aware of any real database engines implemented in Perl.

Perl rule 34:
If you can imagine it, there's a DBD
module for it ;)
http://search.cpan.org/search?m=module&q=DBD::&s=1

AFAIK there is no database in pure perl that is relational, it's not really economical; you might look in ACME on CPAN.
Essentially you have two choices: a pure perl module that provides a DBD package that wraps around, for example .txt, .csv, or .xml files.
If there is none, you could also implement a BDB/DBM style system of your own using pure perl, much like Ken Thompson did in C with DBM. It however, wouldn't be as complex as having SQL based relational database.
If you expect to use SQL, use an SQL based database.

DBD::DBM is a pure Perl database driver which is part of DBI itself since version 1.42 (April 2004). It can work with a variety of different database formats using the respective modules, e.g. BerkleyDB or SDBM_File (core module).
One needs to combine this with MLDBM to get a usable database (otherwise ony two columns per table are supported).
The documentation of DBD::DBM is quite extensive and provides a good overview of the different options and how to set it up.

Related

what is difference between installing sqlite3 and making .sqlite file?

I'm trying to learn apollo and following the docs and this documentation using sqlite to show how to connect local database to server.
i didn't install sqlite3 but the .sqlite file is in given source.
Even though it was out of the lecture but i got curious how this works though i didn't install it.
i have searched to find why it works and what is difference between these but i couldn't find it so i reached here to ask question about what are the differences and what is better to use.
Thanks!
SQLite is a library extensively used in different programming languages like python, javascript, php etc. This library is made using C-language which implements a small, fast, self-contained, high-reliability, full-featured, SQL database engine. ".sqlite" is a database file which contains all the data stored. This file can be made by executing some code based on syntax of that particular language. For you to work on SQLite, you need to have installed it on your local machine.

How can I create a data base management system?

I have to create a data base management system as a project for the school but I don't know how to. It doesn't have to be very sophisticated. Is there any tutorial that shows how to do it? And, what would be the most appropriate language to do that?
Do you need to actually build a database engine? Or do you need to use a database engine to create a database that you write a program to use?
Without knowing exactly what you're after, for the latter, I'd recommend you get ahold of the MAMP (on Mac) or WAMP (on Windows) stacks. this gives you Apache, MySql, and PHP on top of your favorite OS. Following google threads on those topics should lead you to plenty of examples.
If you have to actually build a database engine... well, here's another SO question that might help: Simple Database Implementation for Educational Purpose. Also, you might search through Github for open source examples.
Good luck!
I suggest this repository:
Prerequisites :
Good understanding of algorithms & dynamic data structures like trees - B-trees.. (it's all about structuring data and handling it using optimized algorithms's implementation)
Proficiency with C programming language ( pointers , structures-unions-typedef..) .

Legacy File Schema - Reverse Engineering

I'm currently in the process of converting over 20k database tables from Corel Paradox 4.0 format (DOS Based, with a .db extension) to SQL databases, and rather than using off the shelf software, I'm currently looking into using a light scripting language like Python (or Ruby or PHP, but Python is ideal since I'm working on a Windows desktop setup -- although I could boot one of my Linux VM's for development if needed) for me to write a set of code to simply pull all the .db files in a directory and output a set of .sql databases in just one click.
Now while I know PHP has a limited library built to specifically handle Paradox files, when it comes to Python, Ruby, and other languages I haven't had much luck.
My question now is, when it comes to writing a script to convert formats, how do I go about defining the syntax of the file to be inputted? For example, when it comes to .exe, .zip, .msi, and so on, is there a single format/syntax published for developers to follow, and if so, what are the most comprehensive/solid sources to check?
I currently have a copy of Paradox for Windows which I can use to view the fields and tables, but that isn't helping me with my scripts as it only shows a high-level overview.
Thanks very much for any information,
Why do not you want to use already existing software? For example, a quick googling yielded this toolset (I do not have Paradox databases to test, but it seems to compile correctly).

Is there a Perl ORM with database reverse engineering?

I’m looking for a Perl ORM library that has support for reverse engineering of the database schema. All I’ve found so far is
http://perlorm.sourceforge.net/
and it appears to have no reverse engineering support.
There is a list of recommended ORM modules at the P5P wiki.
Rose::DB::Object and DBIx::Class can generate classes for you from an existing database schema, and can also write them out to a set of Perl module files.
Rose::DB::Object::Loader
DBIx::Class::Schema::Loader
DBIx::Class has DBIx::Class::Schema::Loader which generates classes for you from an existing datbase and can also write them out to files. It it limited to loading a single schema though.
There are three commonly used ORMs in Perl, Class:DBI, DBIx::Class and Rose::DB::Object. According to this page at PerlMonks, they can all load the metadata from the database, but it doesn't say how.

Transfering User Names from One Forum to Another?

How do I transfer the users of a vBulletin forum to a new installation of IceBB?
Presumably, they both have a database back-end of some sort, right? SQL dump, followed by patching stuff up in your favorite scripting language, followed by SQL load, seems do-able.
There is a tool called ImpEx for vBulletin to do exactly this. It imports and exports users and data. Doing the SQL yourself can be error prone and difficult compared to using ImpEx.

Resources