Курс краху NoSql / Навчальний посібник [закрито]


100

Я бачив, як NoSQL вискочив на SO так, і я чітко розумію, чому ви його використовуєте (звідси, Вікіпедія тощо). Це може бути пов’язано з відсутністю конкретного та рівномірного визначення того, що це таке (скоріше парадигма, ніж конкретна реалізація), але я намагаюся загорнути голову, як би я пішов про розробку системи, яка б її використовувала чи як Я би реалізував це у своїй системі. Я дійсно застряг у реляційному режимі мислення, думаючи про речі з точки зору таблиць та приєднань ...

У будь-якому випадку, хто-небудь знає про збій / підручник в системі, яка використовувала б його (свого роду "привіт світ" для системи, що базується на NoSQL) або навчальний посібник, який приймає існуючий додаток "Hello World" на основі SQL і перетворює його в NoSQL (не обов'язково в код, а просто пояснення високого рівня).


Мені дуже сподобалось це відео . Це вебінар від 10Gen. Він пояснює, як публікувати базовий вміст та додавати соціальні взаємодії (теги, коментарі, агрегація даних) за допомогою MongoDB.
Онема

Відповіді:


45

Ось гідне слайд-шоу, яке представляє MongoDB. Я думаю, що велика різниця полягає в тому, що більшість систем покладаються на Active Record або якусь подібну абстракцію баз даних.

Також тут я знайшов чудову безкоштовну книгу orlys на Couch DB , яка є досить приголомшливою.


53

У своїй найпростішій формі NoSQL - це не більше ніж спосіб зберігання об'єктів за допомогою якоїсь системи сполучення ключів / значень. Ви використовуєте це весь час, я вже припускаю. Наприклад. у javascript ви можете створити об’єкт на ім'я foo, а потім зробити foo['myobj'] = myobj;для зберігання речей у об’єкті.

Всі сервери NoSQL насправді - це дати вам додавати / видаляти / запитувати масивні масиви, а також дозволяють зберігати стійкість та відмову від помилок. Ви можете створити NoSQL на сервері пам'яті приблизно в 100 рядках коду.

Тож давайте зробимо це таким чином ... у CouchDB ви використовуєте map / redu ... тому давайте створимо функцію map, зробимо так само, як і трохи SQL-коду:

SELECT * FROM users WHERE age > 10

У CouchDB ви надаєте серверу функцію JavaScript, яка запускається проти кожного елемента бази даних ...

function (doc)
{
    if (doc.objType == "users") {
       if (doc.age > 10) {
           emit(doc._id, null)
       }
    }
}

Це все, що насправді є для нього ..... Це стає набагато складніше звідти на серверному кінці, оскільки сервер повинен обробляти збої та багаторазові зміни одного і того ж об'єкта, але це лише приклад.


10
Ваш приклад здається, що це було б неефективно у великій БД. Чи може сервер індексувати тип doc або бути розумним щодо використовуваних ним ключів та індексувати їх на клавішах? Як ключі можуть бути user1, user2 і т. Д.
Джесс

3

Погляньте на це відео з телевізора DNR, який працює з MongoDB . Можливо, буде приємно для першого знайомства.


2

Веб-сайт mongoDB пропонує чудовий 10-ступінчастий посібник у формі онлайн-моделювання оболонки mongoDB. це займе 10 хвилин, і це дійсно чудовий спосіб почати роботу з noSQL!

http://www.mongodb.org/ (натисніть "спробувати")


1
просто додати до цього, у них є сторінка sql до mongo, яка допомагає отримати концепцію за допомогою коду docs.mongodb.org/manual/reference/sql-comparing
Choco Smith

1

y_serial написаний як єдиний модуль Python, який читає як робочий посібник і містить безліч порад та посилань: http://yserial.sourceforge.net/

Це сприймає перспективу, як зберегти довільний об’єкт Python (наприклад, структуру даних словника) способом "NoSQL" (не тільки SQL).





0

3
Цього сайту вже немає, усі 404-ті ...
Скотн

1
Так, це все 404.
Дон 01001100
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.