Открыто

[tutsplus] MongoDB — NoSQL-СУБД, ориентированная на хранение и работу с JSON 2013

Тема в разделе "Программирование", создана пользователем murzikozz, 4 мар 2013.

Цена: 5000р.-70%
Взнос: 1483р.

Основной список: 4 участников

Резервный список: 3 участников

  1. 4 мар 2013
    #1
    murzikozz
    murzikozz ДолжникДолжник

    [tutsplus] MongoDB — NoSQL-СУБД, ориентированная на хранение и работу с JSON 2013

    Собираем на перевод
    [tutsplus] MongoDB — NoSQL-СУБД, ориентированная на хранение и работу с JSON 2013
    Оригинальное название: Learning MongoDB
    Год выпуска: 2013
    Производитель: tutsplus
    Автор: Andrew Burgess
    Продолжительность: 02:53:50
    Описание: MongoDB – это открытая база данных типа NoSQL, разработанная с учетом требований в крайне высокой производительности и бесконечной масштабируемости. Платформа MongoDB поддерживает документоориентированную модель данных, динамическую схему, полноценное индексирование, сверхбыстрое обновление с замещением, функциональные динамические запросы, встроенные функции сегментирования и автоматического восстановления после сбоя, а также GridFS и MapReduce.

    • MongoDB — это документо-ориентированная СУБД. Данные в MongoDB хранятся в документах, которые объединяются в коллекции. Каждый документ представляет собой JSON-подобную структуру. Проведя аналогию с реляционными СУБД, можно сказать, что коллекциям соответствуют таблицы, а документам — строки в таблицах. Максимальный размер документа в MongoDB 2.x составляет 16 Мб(в более ранних версиях — лишь 4 Мб);
    • В отличие от РСУБД MongoDB не требует какого-либо описания схемы базы данных — она может постепенно меняться по мере развития приложения, что есть удобно;
    • Поддерживаются индексы, в том числе по массивам и вложенным документам, а также геопространственные индексы. Поддерживаются уникальные и составные индексы;
    • Также MongoDB есть атомарные операции, compare-and-swap, курсоры, запись без подтверждения и даже MapReduce (но я бы не спешил переходить с Hadoop на MongoDB);
    • Размер коллекции в MongoDB может быть ограничен числом документов или мегабайтами. Если коллекция слишком разрастется, старые документы будут удалены. Эта возможность может пригодится, если вы собираетесь хранить в MongoDB какие-то временные данные;
    • Интерфейс MongoDB сильно напоминают работу с DBIx::Class. Типа получаем ORM «из коробки». В запросах могут использоваться функции на языке JavaScript;
    • В MongoDB поддерживается журналирование, а также асинхронная репликация двух видов — master-slave репликация и наборы реплик. Разработчики MongoDB рекомендуют использовать последние. Набор реплик представляет собой тот же master-slave, но в случае падения мастера среди реплик автоматически выбирается новый мастер. После возобновления своей работы бывший мастер становится репликой;
    • Пожалуй, самая значительная особенность MongoDB заключается в том, что документы могут быть автоматически сегментированы по нескольким наборам реплик. Сегментирование производится по диапазону; чтобы отнести документ к конкретному диапазону, используется сегментный ключ (shard key). Данные распределяются между наборами реплик так, чтобы каждый набор содержал примерно одинаковый объем данных. Если кластер перестает справляться с нагрузкой, можно просто добавить в него еще один набор реплик — перераспределение данных произойдет автоматически;
    • В документах MongoDB можно хранить бинарные данные — картинки, mp3 и так далее. Однако для данных размером более 1 Мб рекомендуется использовать GridFS. GridFS — это соглашение о хранении файлов произвольного размера в MongoDB, поддерживаемое всеми официальными драйверами. У меня уже чешутся руки написать свой RapidShare, а у вас?
    • MongoDB используют GitHub, SourceForge, Foursquare, Bit.ly, About.me, MTV, CNN, New York Times, Forbes, Disney, EA и многие другие;
    Однако за все хорошее приходится платить. В MongoDB атомарность операций гарантируется только на уровне отдельных документов. Например, если сервер с MongoDB будет обесточен во время обновления коллекции документов, часть документов окажется обновлена, а часть — нет. В MongoDB нет join’ов. Приходится выполнять их вручную. При этом следует учитывать, что пока вы делаете join, состояние базы данных изменяется. Также в MongoDB нет транзакций, но можно написать свой двухфазный коммит.

    Есть множество других тонких моментов. Например, при обновлении документа в коллекции, ограниченной по размеру, документ не может увеличиваться. Еще MongoDB не позволяет выполнять неоптимизированную сортировку документов (когда производится выборка большого объема данных, а у вас нет подходящего индекса). А еще для работы с файлами MongoDB использует mmap. В связи с этим MongoDB обычно использует больше места на диске, чем другие СУБД. Также, если вы хотите работать с объемами данных, превышающими 4 Гб, вам понадобятся 64-х битные сервера.

    Вы спросите, как вообще можно для чего-то использовать такую СУБД, если она не поддерживает даже транзакции? В действительности, в этом нет ничего страшного. Наверняка половина веб-сайтов до сих пор хранят свои данные в MyISAM. И ничего, живем ведь как-то. Скажем, если вы решили написать на MongoDB движок форума, то при удалении темы должны сначала удалить все ответы в этой теме и только потом саму тему. Кроме того, никто же не запрещает вам использовать MongoDB, например, совместно с PostgreSQL.

    1.1 Введение
    1.2 Установка MongoDB
    1.3 MongoDB Инструменты
    1.4 Условия баз данных NoSQL

    2.1 Создание баз данных, коллекции и документы
    2.2 Объекты
    2.3 Связанные Документы

    3.1 Нахождение документов и Выбор Поля
    3.2 Операторы, часть 1
    3.3 Операторы, часть 2
    3.4 Группировка и регулярных выражений
    3.5 Курсор методов, сортировки и разбиения по страницам
    3.6 Обновление Документов, часть 1
    3.7 Обновление Документов, часть 2
    3.8 Удаление документов, коллекций и баз данных
    3.9 Индексы

    4.1 PHP драйвер
    4.2 Node.js драйвер
    4.3 Сравнение NoSQL и SQL

    5.1 Заключение

    1.1 Introduction
    1.2 Installing MongoDB
    1.3 MongoDB Tools
    1.4 NoSQL Database Terms

    2.1 Creating Databases, Collections, and Documents
    2.2 ObjectIDs
    2.3 Relating Documents

    3.1 Finding Documents and Choosing Fields
    3.2 Operators, part 1
    3.3 Operators, part 2
    3.4 Grouping and Regular Expression
    3.5 Cursor Methods, Sorting, and Paging
    3.6 Updating Documents, part 1
    3.7 Updating Documents, part 2
    3.8 Deleting Documents, Collections, and Database
    3.9 Indexes

    4.1 The PHP Driver
    4.2 The Node.js Driver
    4.3 NoSQL vs. SQL

    5.1 Conclusion

    01-intro.mov
    02-install.mov
    03-tools.mov
    04-terms.mov
    05-create.mov
    06-objectids.mov
    07-relations.mov
    08-queries-1.mov
    09-queries-2.mov
    10-queries-3.mov
    11-queries-4.mov
    12-queries-5.mov
    13-updates-1.mov
    14-updates-2.mov
    15-deleting.mov
    16-indexes.mov
    17-php.mov
    18-node.mov
    19-nosql-vs-sql.mov
    20-end.mov

    // Сам курс не покупается, а берется в паблике
    // Как наберется народ, найдется и переводчик и организатор :)
    // Заинтересовались – подписывайтесь!
     
    Последнее редактирование модератором: 20 ноя 2015
    1 человеку нравится это.
  2. Последние события

    1. alexprt
      alexprt не участвует.
      16 июн 2022
    2. alexprt
      alexprt участвует.
      16 июн 2022
    3. Monogatari
      Monogatari не участвует.
      3 июн 2022
    4. FrontEnd-NodeJS
      FrontEnd-NodeJS участвует.
      21 дек 2017
  3. Обсуждение
  4. 4 мар 2013
    #2
    murzikozz
    murzikozz ДолжникДолжник
    спасибо. что-то я не посмотрел даже на подпись))
    офигеть. поправил
     
  5. 4 мар 2013
    #3
    ChivPoint
    ChivPoint БанЗабанен
    Кто переводить то будет?
     
  6. 26 мар 2013
    #4
    Александр
    Александр БанЗабанен
    Цена перевода известна?
     
  7. 24 апр 2013
    #5
    Сильхи
    Сильхи ОргОрганизатор
    Уважаемые модераторы. По просьбе объявляю свою цену. Поставьте 5000 р
     
  8. 10 май 2013
    #6
    MildKidder
    MildKidder ШтрафникШтрафник
    Ссыль на рутрекер битая, так надо?
     
    1 человеку нравится это.
  9. 15 июн 2013
    #7
    Асимметрия
    Асимметрия ЧКЧлен клуба
    На сайте тут он идёт 3 часа и на Рутрекере уже нету раздачи.
     
  10. 16 июн 2013
    #8
    carnada
    carnada БанЗабанен
    Кто будет озвучивать?
     
  11. 13 июл 2013
    #9
    numer
    numer ДолжникДолжник
    Сомневаюсь что за 2 часа в курсе обговорят все детали работы СУБД. А без их понимания не возможно будет использовать mongodb на полную. Тем более версия 2.2 устарела.

    Ничего лучше офф. мануалов никто еще не придумал. Я бы скинулся на перевод офф. мануала) Вот это бы была вещь ! ! !

    А для понимания основ, той книги что в паблике более чем хватит. Хотя опять таки многие очень ванные вещи в ней проходят вскользь или вообще опущены. Без мануала далеко не зайдешь.

    ИМХО
     
  12. 23 сен 2013
    #10
    Control
    Control БанЗабанен
    Мануалы в большинстве своём не переводят, так как они постоянно обновляются. Пока будут переводить, они сильно изменятся и так по кругу. Кому это нужно?
     

Поделиться этой страницей