Warum würde ich wollen, verwenden Sie eine nicht-relationale Datenbank?

Der Letzte Schrei in Datenbanken zu sein scheint zentriert um nicht-relationale Datenbanken. Warum? Es scheint irgendwie kontraproduktiv. Zum Beispiel macht es viel mehr Sinn, mich zu äußern, meine Daten in eine relationale Art und Weise (Beispiel-code in Django + SQL für Tabellen):

class Post(models.Model):
    name = models.CharField()
    created = models.DateTimeField(auto_now_create = True)

class Comment(models.Model):
    text = models.TextField()
    post = models.ForeignKey('Post')
    created = models.DateTimeField(auto_now_create = True)

SQL:

create table post (id int primary key auto_increment,
        name varchar,
        created datetime);

create table comment(id int primary key auto_increment,
        text text,
        post_id int,
        created datetime,
        foreign key post_id references post(id));

Die macht von SQL ist, dass diese Informationen zum Ausdruck gebracht werden kann so viele Möglichkeiten. Sicher, das ganze Objekt-relational-mapping-problem besteht, aber ich sehe es als feature und nicht als problem. Mit SQL kann ich abrufen alle unterschiedlichen Kommentare von einem bestimmten Beitrag, die älter sind als gestern, collate alle von denen zusammen, und erstellen Statistiken. Das gleiche kann getan werden, für nicht-relationale-Datenbanken?

Es scheint auch wirklich auf die performance auswirken, eine nicht-relationale Datenbank wie MongoDB, weil Sie würde sofort packen einen ganzen objektgraphen, sondern als das, was Sie minimal müssen.

Kann mir jemand erklären was die Vorteile der Verwendung einer nicht-relationalen Datenbank?

InformationsquelleAutor Naftuli Kay | 2011-10-28
Schreibe einen Kommentar