Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I read that there exists three main types of databases

* Transactional (Client-Server database// OLTP database)
* Decision support system (DSS) (Data warehouse database // Data mart // Reporting database)
* Hybrid

What is the type of database considered for a social network, like Facebook or Twitter?

I guess the category is:

Transactional > Client -Server database.

From the book:

A transactional database is a database based on small changes to the database (that is, small transactions).The database is transaction-driven. In other words, the primary function of the database is to add new data, change existing data, delete existing data, all done in usually very small chunks, such as individual records.

But, as I said, I am not sure.

share|improve this question

migrated from Jun 7 '11 at 16:12

This question came from our site for professional and enthusiast programmers.

Is this homework? Please update the question with your answer so we can comment on it. Please explain your understanding of the problem for a social network and the data base "type" that you understand. – S.Lott Jun 7 '11 at 15:33
if you don't know the answer please don't mark to close. the question is objective and related programming – user455318 Jun 7 '11 at 15:34
@S.Lott is not an homework. I am reading this book: Wrox - Beginning Database Design, and i have some doubts in this chapter of the book. My only objective is understand what is the type of database used by facebook or twitter as example. – user455318 Jun 7 '11 at 15:35
@user455318: "Facebook doesn't have small transactions"? What makes you say that? What evidence do you have? What definition of "Small Transaction" are you using? – S.Lott Jun 7 '11 at 17:04
Breaking down Databases into those categories seems very arbitrary and not very realistic. – JohnFx Jun 7 '11 at 23:44

The answer is e. none of the above. Twitter, for example, uses a graphing database called FlockDB for its social graph (which they developed and open sourced). Facebook uses an internally developed graph database. I'm not sure when that book was written but its categorization is rather suspect today.

share|improve this answer

Given those three choices, I would say that "Transactional" would be the type of database that would be used by social networking sites...

But, Wrox's categorization is a little simplistic, and would only apply to a SQL database; as mentioned in the comments, Facebook and Twitter use document databases. It's not that they couldn't be implemented in a Transactional SQL database, it's just that these social networks have just grown so large that they need alternate implementations in order to scale to the massive number of users that they have.

If you're interested in the various NoSQL implementations, the following link has a lot of valuable information:

share|improve this answer
thanks for the source. – user455318 Jun 7 '11 at 16:04

Just for completeness sake: there are also object oriented databases, which work entirely different from any of the above.

And, to clarify: DSS databases are generally also SQL databases, but use a completely different focus on structuring the data to provide faster access (since they are used for data mining).

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.