9 Марта 22:29
Сейчас, когда говорят база данных, то подразумевают реляционные БД, я уверен, что редкий программист не слышал акроним SQL, именно этот язык запросов используется для работы с реляционной моделью данных и часто обыгрывается в названии СУБД, например: MySQL, PostgreSQL, MSSQL, SQLite и многие другие. Реляционная модель имеет много положительных сторон: целостность, не избыточность, предсказуемость. Но это в теории, на практике же часто приходится поступаться этими принципами в угоду производительности. Кроме этого существуют серьезные проблемы с масштабированием реляционных БД, для этого используют различные репликации, но это скорее костыль чем решение. Именно поэтому, чаще всего узким местом веб-проектов являются базы данных. Современные высоконагруженные сайты, справляются с этой проблемой с помощью кэширования — связка memcached+mysql уже стала стандартом де факто. Вполне предсказуемо, что появились новые модели данных, которые проектировались с целью избавиться от проблем реляционной модели.
NoSQL или постреляционные базы данных — это совсем новый термин объединяющий в себе нереляционные хранилища данных которые не подчиняются привычным правилам хранения данных, так называемому ACID. Обычно такие системы не имеют жесткой структуры и не используют пересечения таблиц, по большому счету у них вообще нет таблиц!Следует знать, что акроним NoSQL расшифровывается как Not Only SQL — «Не только SQL», это движение не против SQL, а за то, чтобы использовать его только там, где это нужно. Нереляционные базы данных разделяют на несколько типов, в зависимости от их масштабируемости, модели данных и запросов, а также систем хранения данных. К единой классификации ещё не пришли, поэтому рассмотрим самые яркие модели данных:
Ключ/Значение
Это самая простая форма как для организации данных так и для реализаци, но одновременно одна из самых быстрых. Такие хранилища позволяют хранить в памяти по определенному ключу любые данные, это может быть просто число или текст, а может быть сериализованный объект. Ярким представителем такой схемы является популярный сейчас memcached и менее популярные: Redis, Scalaris, Tokyo Cabinet, Voldemort.Документно-ориентированная
Каждая запись хранится как отдельный документ, имеющий собственный набор полей, который может отличаться от документа к документу. Популярные реализации такой модели — Lotus Notes, CouchDB, MongoDB.Колоночно-ориентированная
Данные хранятся в столбцах вместо привычного хранения в строках. Это выгодно для различных архивов информации и каталогов, в которых большая часть вычислений происходит над подобными выборками данных. Представителями этой модели являются BigTable, HyperTable и HBase, а также Cassandra.Графовая
Используют вершины и ребра графа для представления информации. Очевидно, что такая модель гораздо производительнее работает с данными представленными в виде графов, например социальных графов. Наиболее известные системы хранилища данных такого типа — neo4j, AllegroGraph, ActiveRDF.Модель ключ/зачение проста и уже активно используется, колоночные и графовые модели весьма специфичны, а вот документные БД хоть и в новинку, но перспективны и имеют все шансы быть использованными в новых проектах.
652 просмотра
5 комментариев