Good reasons NOT to use a relational database?

后端 未结 21 1512
粉色の甜心
粉色の甜心 2020-12-22 15:14

Can you please point to alternative data storage tools and give good reasons to use them instead of good-old relational databases? In my opinion, most applications rarely us

相关标签:
21条回答
  • 2020-12-22 15:24

    Also: * Embedded scenarios - Where usually it is required to use something smaller then a full fledged RDBMS. Db4o is an ODB that can be easily used in such case. * Rapid or proof-of-concept development - where you wish to focus on the business and not worry about persistence layer

    0 讨论(0)
  • 2020-12-22 15:26

    There was a RAD tool called JADE written a few years ago that has a built-in OODBMS. Earlier incarnations of the DB engine also supported Digitalk Smalltalk. If you want to sample application building using a non-RDBMS paradigm this might be a start.

    Other OODBMS products include Objectivity, GemStone (You will need to get VisualWorks Smalltalk to run the Smalltalk version but there is also a java version). There were also some open-source research projects in this space - EXODUS and its descendent SHORE come to mind.

    Sadly, the concept seemed to die a death, probably due to the lack of a clearly visible standard and relatively poor ad-hoc query capability relative to SQL-based RDMBS systems.

    An OODBMS is most suitable for applications with core data structures that are best represented as a graph of interconnected nodes. I used to say that the quintessential OODBMS application was a Multi-User Dungeon (MUD) where rooms would contain players' avatars and other objects.

    0 讨论(0)
  • 2020-12-22 15:29

    K.I.S.S: Keep It Small and Simple

    0 讨论(0)
  • 2020-12-22 15:30

    The filesystem's prety handy for storing binary data, which never works amazingly well in relational databases.

    0 讨论(0)
  • 2020-12-22 15:30

    One might want to consider the use of an LDAP server in the place of a traditional SQL database if the application data is heavily key/value oriented and hierarchical in nature.

    0 讨论(0)
  • 2020-12-22 15:32

    Plain text files in a filesystem

    • Very simple to create and edit
    • Easy for users to manipulate with simple tools (i.e. text editors, grep etc)
    • Efficient storage of binary documents

    XML or JSON files on disk

    • As above, but with a bit more ability to validate the structure.

    Spreadsheet / CSV file

    • Very easy model for business users to understand

    Subversion (or similar disk based version control system)

    • Very good support for versioning of data

    Berkeley DB (Basically, a disk based hashtable)

    • Very simple conceptually (just un-typed key/value)
    • Quite fast
    • No administration overhead
    • Supports transactions I believe

    Amazon's Simple DB

    • Much like Berkeley DB I believe, but hosted

    Google's App Engine Datastore

    • Hosted and highly scalable
    • Per document key-value storage (i.e. flexible data model)

    CouchDB

    • Document focus
    • Simple storage of semi-structured / document based data

    Native language collections (stored in memory or serialised on disk)

    • Very tight language integration

    Custom (hand-written) storage engine

    • Potentially very high performance in required uses cases

    I can't claim to know anything much about them, but you might also like to look into object database systems.

    0 讨论(0)
提交回复
热议问题