Любая достоверность движения NoSQL?

Прежде всего, я относительно новичок в мире базы данных, я заканчиваю свое обучение с B.S. в Comp Science этот семестр и технологии баз данных действительно поймали мой взгляд так, что я изучал много T-SQL, потому что я хочу, в конце концов, получить задание SQL Development (сервер MS SQL казался лучшим выбором сейчас, потому что он растет )

В любом случае, я слышал много шума об этом движении NOsql систем управления реляционными базами данных. Пытаясь сохранить этот вопрос и не субъективно, насколько это возможно, я в основном хочу знать преимущества/недостатки NRDBMS (например, Nosql), и если в них действительно есть будущее. Возможно, в качестве побочного вопроса, неудобно изучать SQL вообще (в частности, обычную СУБД, к которой мы так привыкли). Я предсказываю, что люди придерживаются этого в течение долгого времени, но потом снова..... я не знаю. Мне бы очень хотелось, чтобы мой интерес внезапно начал погружаться на рынок.

Ответ 1

Существует определенно действительность для движения NoSQL, но я не буду беспокоиться о том, что ваши навыки SQL будут потрачены впустую. Архитектуры хранения NoSQL рождались из-за необходимости наличия высокодоступных и масштабируемых хранилищ данных, которые выходят за рамки типичной реляционной базы данных. Однако это связано с ценой, и, как правило, такая стоимость гарантируется согласованностью. Это не всегда вызывает большую озабоченность. В случае чего-то вроде Facebook не имеет полной последовательности в течение определенного периода времени для таких вещей, как ваши фотографии, обновления статуса и т.д. Пока они становятся последовательными в какой-то момент, все в порядке. С другой стороны, возьмите свой банковский счет. Этот тип хранилища данных должен обеспечивать сильные характеристики ACID, которые предоставляет реляционная база данных.

NoSQL - это не то, что я вижу в мире, это альтернатива общему подходу РСУБД, и, как и все остальное, у него есть сильные и слабые стороны.

Вот отличная статья по теме, написанной о NetFlix.

Ответ 2

Другие могут обращаться к спецификациям NoSQL лучше, чем я могу, но что касается второй части вашего вопроса (беспокоиться о том, чтобы попасть в SQL, если NoSQL начинает становиться все более популярным): у меня есть клиенты, которые по-прежнему используют очень старые плоские файловые мейнфреймы,

SQL еще не достигла полного проникновения, и он ОЧЕНЬ укоренен в большом количестве бизнес-процессов. Рынок разработки и обслуживания SQL не скоро исчезнет, ​​и если он начнется, это не будет на ночь - у вас будет время узнать следующую большую вещь, прежде чем вы устареете.

Ответ 3

Базы данных NoSql отлично подходят для хранения неструктурированных данных. Подумайте об этом как о следующем поколении Lotus Notes.

Я бы не использовал базу данных NoSql для хранения списка людей и адресов, поскольку они полностью структурированы и хорошо известны.

Однако, если бы у меня был набор динамических атрибутов какого-либо типа (пары имя/значение) или что-то похожее, которое требовало большого поворота, чтобы добраться, тогда я серьезно посмотрел бы на него. Я мог бы даже пойти по этому маршруту, даже если есть структура, но это неизвестно заранее. Например, с динамическими таблицами.

Тем не менее, когда мы провели некоторые оценки в начале этого года (март 2010 г.), и мы не думали, что состояние доступных баз данных NoSql с открытым исходным кодом было готово к серьезному производству. В базах данных гораздо больше, чем просто ввод данных и их получение. Автоматическое резервное копирование, балансировка нагрузки, надежные инструменты запросов, проверки целостности и т.д. Являются абсолютными требованиями. Мы будем переоценивать в начале следующего года.

Ответ 4

SQL не уходит, а реляционная модель - это базовый блок построения информационных систем, который определенно стоит изучать и понимать самостоятельно. Я бы придерживался этого.

Базы, основанные на объекте вместо реляционной модели, существовали навсегда. Разница в том, что в прошлом они имели тенденцию быть закрытыми (и дорогостоящими!) Пакетами от отдельных поставщиков. Никто не хочет, чтобы их критически важные приложения были заблокированы в собственной базе данных, в зависимости от лицензирования от одного, иногда не отвечающего требованиям поставщика.

В отличие от сегодняшних баз данных NoSQL, как правило, бесплатны, открываются и хорошо ориентированы на существующие веб-ориентированные технологии, что позволяет быстро и быстро реагировать на масштабирование, не заботясь о лицензиях, и потенциальное участие в будущем развитии (или местное фортование/паттинг при необходимости).

То, что они также являются разнообразными, так что вы не можете классифицировать их все вместе как хорошо для конкретной задачи. Существуют тривиальные кодовые ценности, которые не делают попыток быть безопасными для ACID, существуют объектные базы данных с их собственными парадигмами безопасности (например, конфликты версий CouchDB), существуют более традиционные реляционные базы данных, которые просто не используют SQL в качестве (потому что пусть сталкивается с этим, приятно, хотя это означает, что вы можете использовать один и тот же язык запросов в базах данных, взламывая SQL-запросы в строку, чтобы база данных на другом конце могла выделить строку отдельно, чтобы получить логику запрос, который вы хотели сделать, немного глупо).

Их много, большинство из них очень незрелые по сравнению с древним зданием SQL, и для победителей потребуется некоторое время. Является ли NoSQL "действительным"? Конечно. Но я бы сказал, что использовать конкретную базу данных NoSQL в качестве основы для изучения сегодня (в отличие от использования того, который соответствует вашим потребностям для конкретной задачи, с которой плохо работает SQL) был бы преждевременным.

Ответ 5

Будущее больших систем потребует навыков как с SQL, так и с NoSQL.

NoSQL - важная парадигма, и она никуда не денется. Соединения не масштабируются горизонтально, а база данных SQL - это просто большие "машины объединения". NoSQL все еще находится в относительном младенчестве, есть тонны игроков и точно так же, как SQL, у каждого из них свои небольшие вариации.

Но все, что собирается встряхнуть в ближайшие несколько лет

Как недавний град, вы должны начать где-то. SQL - просто самое простое место для запуска. Вы увидите, что он будет идти вперед. Однако, как только вы столкнулись с SQL (скажем, вы прошли курс MS T-SQL), я настоятельно рекомендую взглянуть на что-то вроде MongoDB/Riak/CouchDB в качестве следующего приключения.

Вероятно, вы не перейдете в компанию, использующую NoSQL, но вы столкнетесь с проблемами, когда NoSQL на самом деле намного проще. Но вы не будете знать этого, пока не начнете играть с NoSQL.

Ответ 6

Похоже, вы уже указываете в правильном направлении, просматривая публикации вакансий и видя, какие текущие потребности находятся на пути хранения и управления данными, если это ваша страсть. Я не удивлюсь, если собеседования начнут спрашивать о преимуществах/недостатках nosql, просто чтобы узнать, знакомы ли вы с последними событиями (и если вы подаете заявку на позицию dba, они могут также спросить о соблюдении ACID и теорема CAP).

Многие компании начинают использовать технологии NoSQL, поэтому это действительно так, что люди используют его. И не только небольшие стартапы, но такие компании, как facebook (cassandra), yahoo (hadoop), google (bigtable) и etsy (mongodb), считают, что решения nosql соответствуют определенным требованиям.

Ответ 7

Я думаю, что NoSQL - больше ниша. Это действительно хорошо для некоторых приложений, но, вероятно, никогда не будет полностью вытеснять РСУБД (хотя комбинации NoSQL поверх бэкэнда RDBMS, похоже, появляются больше, чем я слышу). Совет будет состоять в том, чтобы справиться со старой РСУБД (она по-прежнему гораздо более распространена, по крайней мере, из того, что я видел), а затем, если хотите, перейдите в NoSQL на стороне.