Some databases store objects, relational structure of tables, hierarchies, etc. What are all these types (models)? When is the application of each one indicated (besides, of course, the developer preference)? Examples of each?
Some databases store objects, relational structure of tables, hierarchies, etc. What are all these types (models)? When is the application of each one indicated (besides, of course, the developer preference)? Examples of each?
The most commonly used is the relational template that has been there for over 40 years, serving almost every problem well of computing that require data storage.
Other models are being used more recently in sites that need a lot of scalability or by those who follow the paradigm orientation paradigm. That is, the person does not need it, but uses it because he has seen a lot of people using it. The main ones: key-value (question here ), object oriented , graphs , hierarchical a>.
There are different ways to implement these templates, one of the most used on some systems is the hierarchical document-based (some specifically as XML ) and the Columns .
When the data does not have a defined structure, works well as a document and has no relation, it may be more interesting to use the document model, even in conjunction with the relational.
When there is no structure defined, it will probably be very different, there are no relationships and the data work in isolation, key-value may be more appropriate. It is often used only as a cache and not the primary database.
Many of these models do not allow gross performance. They can even respond quickly by putting hardware to help be fast. They usually climb better, or at least easier to climb.
These two forms are most commonly used when the relational model is not used.
These templates are not usually ACID which can be crippling in many cases. Some to be ACID relinquish advantages by which they are chosen.
In general they are called NoSQL, which is a misnomer. See How to choose between NoSQL and SQL? .
In fact the top database brands on the market that have always been relational have started having mechanisms to work better with the other models as well. So a hybrid database gives you the best of both worlds. They always allowed the document template, key-value and other templates, but it was never simple, never had anything ready, now it has.
Some sites are so simple that they do not even use management systems and prefer a simple file system.
I do not really like rankings of this type, but there's DB-Engines to see the most used according to their criteria (do not trust much, it's just a base). And it has the tendency of what more questions in the SOen.
Notethatonlynon-relationalMongoDBhaverelevance,curiouslyonethathasverylittleadvantageovertraditionalDBsthathavemodernized.
Thefactisthatpeopleendupcomplicatingwhatissimple.Here'salittleopinion:whyusesomethingyoudonotneed?Todothebasics,withoutworryingaboutintegrity,performance,facilitiesforobtainingdatainvariousways,NoSQLmaybeeasiertodevelopforit,evenwhereitisnotreallyneeded,butwhenyoustartaskingforthesecharacteristics,therelationalmodelbeginsstandout,andmostproblemsneedthismodel.AsadatabaseIonlyseeanadvantageinusingthesemodelswhenIneedtodistributethedatabase,especiallyaftertherelationalstartedtoadoptothermodelsinanintegratedway.
ThehybridmodelprovidedbythemajorDBsthatwererelationalseemstobeawinningmodel.Othermodelsmaybemoresuitableinniche.
Thereisalotdonewithwebinterfacebutthatdoesnotmattertothedatabase.Ingeneralthereisabuseofweb-makingwhichwouldworkbestasanativeapplication.