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.
-
3Is 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– S.Lott2011年06月07日 15:33:14 +00:00Commented Jun 7, 2011 at 15:33
-
3if you don't know the answer please don't mark to close. the question is objective and related programminguser455318– user4553182011年06月07日 15:34:01 +00:00Commented Jun 7, 2011 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– user4553182011年06月07日 15:35:53 +00:00Commented Jun 7, 2011 at 15:35
-
1@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– S.Lott2011年06月07日 17:04:27 +00:00Commented Jun 7, 2011 at 17:04
-
2Breaking down Databases into those categories seems very arbitrary and not very realistic.JohnFx– JohnFx2011年06月07日 23:44:13 +00:00Commented Jun 7, 2011 at 23:44
3 Answers 3
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.
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: http://www.nosqlpedia.com/wiki/Survey_distributed_databases
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).