Базы данных

Базы данных

Neyescos

Сегодня поговорим о Базах данных, их разновидностях и какие выбирать.

К Делу

Вообщем то так, существуют два типа баз данных, одни называют реляционными, а другие понятное дело нереляционные.

Первые простроены на наборе стандартов под названием SQL(structured query language), ну и в чем же прикол, а прикол в том, что данный стандарт позволяет программисту не описывать поведение базы данных, а сразу описать, что ему необходимо сделать. И называются такие базы данных реляционными по причине того, что данные в них представлены таблицами, связанные между собой некими "отношениями".

Вторые называются NoSQL базами данных (not only sql), довольно важно понимать, что они не полностью отказываются от стандарта SQL однако сильно его видоизменяют, построены они на других принципах, и взаимодействуют по разному, основная их суть в том, предоставить удобный подход к расширению и изменению данных прямо на ходу. Например вам совсем не составит труда изменить в ходе разработки модель из БД, что иногда очень удобно. Однако данный тип баз данных очень сильно жертвует безопасностью, поэтому при построении приложения нужно, сразу выставить необходимые приоритеты для выбора базы данных.

Выбором базы данных в самом начале жизни проекта должен заниматься Архитектор, который в зависимости от задачи может сделать "trade-off" в сторону из какой либо базы данных.

Так что же выбрать?

Если в вашем приложении чётко прослеживается связь отношений, это точное совпадение с реляционной базой. Или если вы смотрите на информацию, которую вы будете хранить и четко способны определить модели с их отношениями между собой, смело используйте реляционную базу данных.Если вы пологаетесь на защиту данных и их целостность, реляционная будет так же вашим выбором.Или может вы хотите всевозможные варианты доступа к своим данным, не вопрос! Реляционные базы данных обеспечат гибкость их получения.

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

Типы NoSQL баз данных

Существует 4 основных типа, каждый основан на собственной технологии:

Document Databases -- документные, содержат данные в JSON,BSON и XML, одним из примеров таких баз, будет MongoDB.

Key-Value Stores -- хранилища по принципу ключ-значение, по факту работают как словари, ничего особенного, примером такой базы будет Redis.

Column-Oriented Databases -- основаны на принципе хранения данных в колонках, в отличие от реляционных, где данные хранятся построчно. Это дает хорошее преимущество, тк вы получаете только необходимую вам информацию уже хранящуюся в колонке. MonetDB

Graph-Oriented Databases -- базы данных основанные на теории графов и деревьев, обладают лучшей в своем классе скоростью работы, одним из предстваителей такой базы данных является Cassandra.

Вообщем то, тема довольно широкая, и по дороге к позиции архитектора, знания в ней стоит углубить в разы, тк ошибка в выборе базы данных может стоить и своей компании и компании клиента.

Report Page