Monday, September 3, 2007

XDB Introduction (Extensible Database System)

This blog will trace the development process of my latest software project known as XDB2.
XDB2, also know as: Extensible Database System 2, wants to provide a very easy and intuitive but still powerful way to store a list of "objects" and does so by using PlugIns which will be able to handle all sorts of imaginable data. Ever wanted to have a main index for your movie or audio collection, your SMS backups, clients, address book, recipes, monthly expenses or whatever you can think of?


XDB started in late 2004 as an idea in my head after a discussion with a friend of mine.
We love media (Movies, TV series, Songs, ...) and we have quite some stuff lying around
on our hard drives and on our shelfs, it can be pretty cumbersome to navigate through large
amounts of folders, network drives or CD/DVDs on some shelf in search of some old TV show episode, movie or song.

My friend wanted to code a small and simple application to serve as an index of his media, allowing him to perform a quick search for a name and find out where he could find the specified item.
A similar, more complex idea floated in my head, i wanted an easy and intuitive to use application that keeps an index of my media, but powerful enough to store all sorts of information, including a rapid way to find the actual location, regarding the listed media.

I already knew that
most modern media players had some kind of build in "Media Library" and that there where several ways to find or keep trace of media on PC. On the other hand there where professional standard database application with all sorts of powerful features. But all these systems have some major flaws. Media Players or windows built-in search need the media to be present somewhere to be able to handle it. Professional database applications are developed with very different needs in mind and provide way to many irrelevant features, time consuming procedures, need of certain skills in database languages and of course most are pretty expensive.

So i thought that it would be useful and interesting to code this by myself.
I named
my first simple attempt MediaDB which was able to handle three different "media" types, Movies, Audio and Games. I soon realized that such an application wouldn't be very flexible so i based the whole idea on PlugIns and for some reason i found XDB to not only sound good but also to be a good name for what i wanted to do.

XDB made it to version 0.8 and had a very simple PlugIn interface and database engine.
This is the main reason for discarding version 1.0 and rewriting XDB2 from scratch.
XDB2 now uses SQLite to store its data and has a completely new PlugIn interface.

Some features:
- Create and handle as many databases as you want.
- Each database can contain as many tables as you wish.
-
Databases and tables can be handled simultaneously in one application.
- Each table can be handled by a different plugin, you only need one database file.
- Password protect your database.
- Each database is encrypted by default.
- Each table can be individually locked or entirely hidden,
several users can share the same database without exposing their personal data.

- The General Data plugin can handle all tables in a generic way and allow you to create
your own totally personalized tables.
- Specialized plugins are able to interact completely with the data they handle
and will provide their own interface and many additional functions.


Some screenshots:

No comments: