Tuesday, May 29, 2007

File System Storage Versus BLOB Objects

Document Management Systems nowadays are heading towards storing all documents as BLOB objects in the database. You rarely find any server side applications that deal with documents as files.

Whether its a... Document, Content, Bug, Project, Knowledge Management System, they're all implementing document storage using BLOB objects.

Why it that then?

Well...

1. The first advantage of having everything stored in the database is the ease of backups and restorations. You no longer need to backup the database then backup your document's directory, then make sure they are synchronized.

2. The second advantage is that the documents are stored the same way on all platforms and partitions. Whether its FAT32, NTFS, or any other filesystem, you can store them all in the same way.

3. The third advantage is, you have full control of versioning documents, storing interesting information like diffs, dates, users performing on them.

4. The fourth advantage is that third party applications that connect to the database need only to have the database port available. No need to provide extra ftp access to acess the documents.

Thats it. Bottom line...

If you're building some kind of server application, consider a Database File System.

4 comments:

Anonymous said...

does that mean u must have the database engine to at least view the files and work on them?

Anonymous said...

Yes. The database engine is used for the file storage by the application.

Anonymous said...

i thought u were talking about operating systems, so are they going to be prepared with db engines in the future for document storage?

Basil 3ibs said...

I have no idea.

I'm not sure if I've made it clear enough.. this post was oriented towards web-systems (ya3ni web-applications for document management wa maa shaabah).

Concerning operating systems, I have no idea. Although I know that File Systems are a type of database, I'm more implicitly referring to 'Relational Databases' when I mention the word Database.