Sql бд: Реляционные базы данных и язык SQL

Содержание

Сравнение SQL- и NoSQL-баз данных / Хабр


SQL и NoSQL — две популярные модели баз данных, которые используют для решения различных задач. Чтобы понять, какая из них подойдёт в вашем случае, необходимо разобраться в их различиях, преимуществах и недостатках.

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

▍ Начнём с определений SQL- и NoSQL-баз данных


SQL (Structured Query Language) — это язык структурированных запросов, используемый для управления и манипулирования реляционными базами данных. SQL-базы данных применяются там, где необходимо хранить и управлять данными структурированной природы, например, информацией о продуктах, покупателях и оформленных заказах в магазине.

NoSQL (Not Only SQL) — это широкий термин, который относится к нереляционным моделям баз данных, которые используют различные структуры для хранения данных: документы, ключ-значение, столбцовые и графовые БД. NoSQL-базы данных применяются, когда необходимо хранить данные неструктурированной природы, например, большие объёмы текстовых данных, изображения и видео.

Я люблю метафоры, и поэтому для каждого рассматриваемого типа баз данных приведу примеры:

SQL-базы данных можно сравнить с большим хранилищем файлов, которые находятся в ящиках с метками и связями между ними. Каждый ящик содержит отдельный файл с определённой информацией. Чтобы получить доступ к нужному файлу, необходимо знать метку ящика, в котором он хранится, и связь с другими ящиками, чтобы составить полную картину информации. Это подобно работе с таблицами и связями в SQL-базах данных, где каждая таблица представляет из себя отдельный ящик с заданной информацией, которая может быть легко найдена и объединена с помощью специальных запросов.

NoSQL-базы данных можно сравнить с большим и сложным пазлом, в котором каждая часть представляет отдельный фрагмент информации. Информация может быть представлена не только в виде текста, но и в виде изображений, звуковых файлов, видеоматериалов и т. д. Каждый фрагмент может быть различного размера и формы, и для того, чтобы получить полную картину, необходимо собрать и объединить все фрагменты. Это подобно работе с NoSQL-базами данных, где каждый элемент может быть различного типа и формата, и для того, чтобы получить всю необходимую информацию, следует использовать различные методы и инструменты запросов. Как и в пазле, каждый элемент данных имеет своё место и собирается в единую картину по мере необходимости.

▍ Типы и структуры данных


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

SQL-базы данных используют реляционную модель данных, где информация хранится в таблицах, связанных между собой. В таблице имеется набор столбцов, каждый из которых соответствует определённому типу данных. Например, целочисленные данные, строки, даты, время, нулевые значения, булевы значения и т. д. Это означает, что набор данных может быть разбит на отдельные поля для каждого вида информации. В SQL-базах данных используется язык запросов SQL, который позволяет пользователям создавать таблицы, добавлять, изменять и удалять данные, а также запрашивать информацию из базы данных.

NoSQL-базы данных имеют более гибкую модель данных, которая не требует таблиц и связей, как в SQL-базах. Как правило, данные в NoSQL-базах хранятся в документах, коллекциях или графах. Документ — это структурированный контейнер для хранения данных в формате пар ключ-значение, где пары могут иметь разные типы данных. Коллекция — это группа документов, связанных между собой. Граф — это набор вершин и связей между ними. NoSQL-базы данных используют специальные языки запросов, которые позволяют пользователям запрашивать и манипулировать данными, такие как: MongoDB Query Language для MongoDB, Cassandra Query Language для Apache Cassandra и т. д.

▍ Способы хранения данных и производительность


SQL- и NoSQL-базы данных используют разные способы хранения данных и имеют уникальные характеристики производительности, которые необходимо учитывать при выборе модели базы данных для своего проекта.

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

NoSQL-базы данных используют нереляционную модель хранения данных, где данные могут храниться в виде «ключ-значение», документов, графов и т. д. В NoSQL-базах данных нет строгих правил для организации данных, что делает их более гибкими для хранения различных типов данных и структур. Однако эта гибкость может повредить производительности при обработке данных в некоторых случаях.


Что касается производительности, то SQL-базы данных обычно имеют высокую производительность при работе с сильно структурированными данными и большими объёмами информации, поскольку они могут использовать оптимизированные индексы и быстрые алгоритмы сортировки/фильтрации данных. Однако при работе с неструктурированными данными, производительность SQL-баз может снижаться.

NoSQL-базы данных обычно могут обрабатывать большой объём неструктурированных данных с высокой производительностью, так как они не имеют строгих правил структурирования. Однако при работе со сложными запросами или при запрашивании связанных данных могут возникать сложности с производительностью.

▍ Способы обработки запросов путём индексирования и соответствующие возможности


Индексирование является важным способом увеличения производительности баз данных при обработке запросов. В SQL- и NoSQL-моделях применяются различные методы индексирования данных, которые обеспечивают быстрый доступ к данным во время выполнения запросов.

В SQL-базах данных используется B-Tree индекс, который является структурой дерева, где каждый узел имеет набор ключей, отсортированных в порядке возрастания или убывания. Этот тип индекса позволяет быстро выполнять запросы SELECT, JOIN, WHERE и ORDER BY, а также обеспечивает быстрый доступ к данным при выполнении операций вставки, обновления и удаления данных. Также в SQL-базах данных применяются индексы на нескольких столбцах, которые позволяют оптимизировать выполнение запросов, использующих несколько столбцов.

В NoSQL-базах данных используются различные типы индексов, в зависимости от конкретной модели. В MongoDB, которая относится к документо-ориентированным базам данных, применяется индексирование на основе ключей, которое позволяет осуществлять быстрый поиск по значениям в полях документов. В базах данных ключ-значение, таких как Redis, необходимо указывать явно, какие ключи должны быть проиндексированы. Этот тип индексирования позволяет быстро получать значения по ключам, но не позволяет выполнять сложные запросы, ограничиваясь только поиском по ключам. В графовых базах данных, таких как Neo4j, используются графовые индексы, которые обеспечивают быстрый доступ к связям между узлами графа.

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

Надёжность и устойчивость баз данных — один из самых важных аспектов при их разработке и эксплуатации. Базы данных могут столкнуться с различными проблемами, такими как сбои и отказы, поэтому необходимо иметь стабильную и надёжную систему, которая позволит быстро восстановить работу в случае возникновения неполадок.

▍ Надёжность и устойчивость баз данных


SQL- и NoSQL-базы данных имеют различные механизмы для обеспечения надёжности и устойчивости, но их методы зависят от конкретного решения и его требований к надёжности и безопасности.

В SQL-базах данных используется транзакционная модель, которая позволяет сохранять целостность данных и обеспечивать ACID (Atomicity, Consistency, Isolation, Durability) свойства для отказоустойчивости и надёжности базы данных. Также SQL-базы данных могут использовать процессы резервного копирования и восстановления для обеспечения сохранности данных и минимизации потерь в случае сбоя.

В NoSQL-базах данных, которые редко используют транзакционные модели, обычно применяется распределённая архитектура, чтобы повысить надёжность и отказоустойчивость. Кластеризация и репликация данных помогают минимизировать вероятность потери данных и обеспечить их доступность в случае отказа ноды или узла.

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

С другой стороны, у NoSQL-баз данных есть некоторые преимущества в области безопасности. Например, MongoDB и Couchbase используют документо-ориентированную модель, что делает их более непроницаемыми для атак с использованием SQL-инъекций. В NoSQL-базах данных также применяются методы шифрования данных, что обеспечивает более высокий уровень безопасности. Однако в NoSQL-базах данных разработчики должны самостоятельно реализовывать механизмы безопасности, что может привести к возможным проблемам, если разработчик недостаточно опытен или внимателен при разработке.

▍ Гибкость и масштабируемость SQL и NoSQL


SQL- и NoSQL-базы данных имеют различные уровни гибкости и масштабируемости, которые зависят от конкретного решения и его требований к масштабируемости и гибкости.

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

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

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

▍ Влияние типа базы данных на реализацию транзакций


Транзакции — это операции, которые выполняются на данных в базе данных и поддерживают свойства ACID (Atomicity, Consistency, Isolation, Durability).

ACID — это аббревиатура, которая означает четыре основных свойства транзакций в СУБД:

  1. Атомарность (Atomicity) — это свойство, которое гарантирует, что транзакция будет выполнена целиком или не выполнена вовсе. Если транзакция не может быть выполнена полностью, то она будет откатана, и база данных вернётся к состоянию, которое было до начала транзакции.
  2. Согласованность (Consistency) — это свойство, которое означает, что транзакция должна привести базу данных из одного согласованного состояния в другое согласованное состояние. В результате выполнения транзакции база данных не может быть нарушена, и данные должны соответствовать всем ограничениям и правилам целостности.
  3. Изолированность (Isolation) — это свойство, которое помогает избежать непредсказуемых результатов при одновременном доступе к данным нескольких транзакций. Свойство изолированности гарантирует, что каждая транзакция выполняется независимо от остальных, даже если они работают с одними и теми же данными.
  4. Долговечность (Durability) — это свойство, которое гарантирует, что после выполнения транзакции данные будут сохранены в базе данных и не будут утеряны или повреждены при возможном отказе системы. Транзакция должна быть выполнена таким образом, чтобы изменения, внесённые в базу данных, были сохранены даже в случае сбоя системы и необходимости её перезапуска.


Эти свойства необходимы для обеспечения целостности данных и непротиворечивости не только при обычной работе с базой данных, но и при сбоях системы.

Обеспечение транзакционности — один из ключевых аспектов БД, которые гарантируют целостность данных и правильную работу приложений, использующих эти данные.

SQL- и NoSQL-базы данных имеют различные модели поддержки транзакции и свои методы транзакционной обработки.

SQL-базы данных обычно используют ACID-комплект свойств, что означает, что транзакции выполняются совместно и что любые откатывания транзакций произойдут для всех соединений с данными. Это значит, что если транзакция завершится неудачей, все изменения будут отменены и база данных будет возвращена к предыдущему состоянию. В SQL-базах данных транзакции могут быть поддержаны с помощью механизмов специальных языковых конструкций (например, в SQL есть операторы BEGIN TRANSACTION, COMMIT и ROLLBACK).

С другой стороны, NoSQL-базы данных, такие как MongoDB или Cassandra, обычно не используют транзакции, так как они нацелены на большие масштабы данных и скорость обработки, нежели на поддержку обеспечения транзакционности. Вместо этого NoSQL-базы данных используют CAP-теорему, которая помогает выбрать между согласованностью данных, доступностью и устойчивостью к разделению (partition tolerance). Это означает, что они обычно предоставляют потребителю выбор между согласованностью и доступностью, и что наши приложения могут выбрать, что им больше нужно в конкретной ситуации.

Таким образом, SQL- и NoSQL-базы данных имеют различные методы реализации транзакций. SQL-базы данных построены на модели поддержки транзакций и включают ACID-свойства, тогда как в NoSQL-базах данных поддержка транзакций не всегда реализуется. Вместо этого NoSQL-базы данных используют CAP-теорему, чтобы помочь пользователям выбрать между согласованностью и доступностью данных.

▍ Настройка и управление SQL- и NoSQL-базами данных


Для настройки и управления SQL-базами данных наиболее распространёнными инструментами являются SQL Management Studio (для SQL Server), phpMyAdmin (для MySQL), и pgAdmin (для PostgreSQL). Они позволяют администраторам управлять базой данных, создавать и изменять таблицы, индексы, представления, процедуры и триггеры, а также устанавливать права доступа и конфигурировать различные параметры.

Для настройки и управления NoSQL-базами данных наиболее распространёнными инструментами являются MongoDB Compass, Cassandra Query Language Shell (CQLSH), и Neo4j Browser. Эти инструменты позволяют администраторам управлять базой данных, создавать и изменять коллекции (в случае MongoDB) или таблицы (в случае Cassandra и Neo4j), производить запросы и управлять различными параметрами конфигурации.

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

▍ Отличия


Основные отличия между SQL и NoSQL:

  1. Схема данных: SQL-база данных имеет строгую схему данных, которая определяет типы данных и связи между таблицами. В NoSQL-базах данных нет строгой схемы данных.
  2. Масштабируемость: SQL-базы данных имеют ограничения на масштабируемость, из-за чего они могут быть неэффективны в обработке большого количества данных. NoSQL-базы данных обладают большой масштабируемостью, из-за чего они могут обрабатывать большие объёмы данных.
  3. Гибкость запросов: SQL имеет очень мощный язык запросов, что делает его лучшим выбором для сложных запросов, связанных с большим количеством таблиц. С другой стороны, NoSQL имеет простой язык запросов, который хорошо подходит для запросов, связанных с большим количеством данных.
  4. Скорость обработки: Несмотря на то, что SQL обычно работает медленнее, чем NoSQL, его мощный язык запросов позволяет быстро обрабатывать сложные запросы. С другой стороны, NoSQL работает очень быстро с неструктурированными данными в больших объёмах.


Особенности SQL:

  • SQL-базы данных имеют жёстко определённый формат хранения данных, что делает их наиболее подходящим выбором для представления сложных связанных данных;
  • SQL имеет мощный язык запросов, который позволяет обрабатывать сложные запросы;
  • SQL-базы данных обычно требуют больших затрат на обслуживание и настройку.


Особенности NoSQL:

  • NoSQL-базы данных хранят данные в форме документов, что делает их лучшим выбором для хранения неструктурированных данных, таких как данные о социальных сетях и блогах;
  • NoSQL имеет простой язык запросов, который позволяет быстро обрабатывать запросы на огромные объёмы неструктурированных данных;
  • NoSQL-базы данных позволяют быстрее масштабировать и расширять базу данных.

▍ Заключение


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

Telegram-канал с розыгрышами призов, новостями IT и постами о ретроиграх 🕹️

Что такое NoSQL? | Нереляционные базы данных, модели данных с гибкой схемой | AWS

Высокопроизводительные нереляционные базы данных с гибкими моделями данных

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

Базы данных в AWS: подходящий инструмент для подходящей работы

Базы данных NoSQL используют разнообразные модели данных для доступа к данным и управления ими. Базы данных таких типов оптимизированы для приложений, которые работают с большим объемом данных, нуждаются в низкой задержке и гибких моделях данных. Все это достигается путем смягчения жестких требований к непротиворечивости данных, характерных для других типов БД.

Рассмотрим пример моделирования схемы для простой базы данных книг.

  • В реляционной базе данных запись о книге часто разделяется на несколько частей (или «нормализуется») и хранится в отдельных таблицах, отношения между которыми определяются ограничениями первичных и внешних ключей. В этом примере в таблице «Книги» имеются столбцы «ISBN», «Название книги» и «Номер издания», в таблице «Авторы» – столбцы «ИД автора» и «Имя автора», а в таблице «Автор–ISBN» – столбцы «Автор» и «ISBN». Реляционная модель создана таким образом, чтобы обеспечить целостность ссылочных данных между таблицами в базе данных. Данные нормализованы для снижения избыточности и в целом оптимизированы для хранения.
  • В базе данных NoSQL запись о книге обычно хранится как документ JSON. Для каждой книги, или элемента, значения «ISBN», «Название книги», «Номер издания», «Имя автора и «ИД автора» хранятся в качестве атрибутов в едином документе. В такой модели данные оптимизированы для интуитивно понятной разработки и горизонтальной масштабируемости.

Базы данных NoSQL хорошо подходят для многих современных приложений, например мобильных, игровых, интернет‑приложений, когда требуются гибкие масштабируемые базы данных с высокой производительностью и широкими функциональными возможностями, способные обеспечивать максимальное удобство использования.

  • Гибкость. Как правило, базы данных NoSQL предлагают гибкие схемы, что позволяет осуществлять разработку быстрее и обеспечивает возможность поэтапной реализации. Благодаря использованию гибких моделей данных БД NoSQL хорошо подходят для частично структурированных и неструктурированных данных.
  • Масштабируемость. Базы данных NoSQL рассчитаны на масштабирование с использованием распределенных кластеров аппаратного обеспечения, а не путем добавления дорогих надежных серверов. Некоторые поставщики облачных услуг проводят эти операции в фоновом режиме, обеспечивая полностью управляемый сервис.
  • Высокая производительность. Базы данных NoSQL оптимизированы для конкретных моделей данных и шаблонов доступа, что позволяет достичь более высокой производительности по сравнению с реляционными базами данных.
  • Широкие функциональные возможности. Базы данных NoSQL предоставляют API и типы данных с широкой функциональностью, которые специально разработаны для соответствующих моделей данных.

БД на основе пар «ключ‑значение». Базы данных с использованием пар «ключ‑значение» поддерживают высокую разделяемость и обеспечивают беспрецедентное горизонтальное масштабирование, недостижимое при использовании других типов БД. Хорошими примерами использования для баз данных типа «ключ‑значение» являются игровые, рекламные приложения и приложения IoT. Amazon DynamoDB обеспечивает стабильную работу БД с задержкой не более нескольких миллисекунд при любом масштабе. Такая устойчивая производительность послужила основной причиной переноса Snapchat Stories в сервис DynamoDB, поскольку эта возможность Snapchat связана с самой большой нагрузкой на запись в хранилище.

Документ В коде приложения данные часто представлены как объект или документ в формате, подобном JSON, поскольку для разработчиков это эффективная и интуитивная модель данных. Документные базы данных позволяют разработчикам хранить и запрашивать данные в БД с помощью той же документной модели, которую они используют в коде приложения. Гибкий, полуструктурированный, иерархический характер документов и документных баз данных позволяет им развиваться в соответствии с потребностями приложений. Документная модель хорошо работает в каталогах, пользовательских профилях и системах управления контентом, где каждый документ уникален и изменяется со временем. Amazon DocumentDB (совместимая с MongoDB) и MongoDB — распространенные документные базы данных, которые предоставляют функциональные и интуитивно понятные API для гибкой разработки.

Графовые БД. Графовые базы данных упрощают разработку и запуск приложений, работающих с наборами сложносвязанных данных. Типичные примеры использования графовых баз данных – социальные сети, сервисы рекомендаций, системы выявления мошенничества и графы знаний. Amazon Neptune – это полностью управляемый сервис графовых баз данных. Neptune поддерживает модель Property Graph и Resource Description Framework (RDF), предоставляя на выбор два графовых API: TinkerPop и RDF / SPARQL. К числу распространенных графовых БД относятся Neo4j и Giraph.

БД в памяти. Часто в игровых и рекламных приложениях используются таблицы лидеров, хранение сессий и аналитика в реальном времени. Такие возможности требуют отклика в пределах нескольких микросекунд, при этом резкое возрастание трафика возможно в любой момент.  Amazon MemoryDB для Redis – это совместимый с Redis надежный сервис базы данных в памяти, который уменьшает задержку чтения до миллисекунд и обеспечивает надежность в нескольких зонах доступности. MemoryDB специально создана для обеспечения сверхвысокой производительности и надежности, поэтому ее можно использовать как основную базу данных для современных приложений на базе микросервисов. Amazon ElastiCache – это полностью управляемый сервис кэширования в памяти, совместимый с Redis и Memcached для обслуживания рабочих нагрузок с низкой задержкой и высокой пропускной способностью. Такие клиенты, как Tinder, которым требуется, чтобы их приложения давали отклик в режиме реального времени, пользуются системами хранения данных в памяти, а не на диске. Еще одним примером специально разработанного хранилища данных является Amazon DynamoDB Accelerator (DAX). DAX позволяет DynamoDB считывать данные в несколько раз быстрее.

Поисковые БД. Многие приложения формируют журналы, чтобы разработчикам было проще выявлять и устранять неполадки. Сервис Amazon OpenSearch – специально разработанный сервис для визуализации и аналитики автоматически генерируемых потоков данных в режиме, близком к реальному времени, путем индексирования, агрегации частично структурированных журналов и метрик и поиска по ним. Кроме того, сервис Amazon OpenSearch – это мощный, высокопроизводительный сервис для полнотекстового поиска. Компания Expedia задействует более 150 доменов сервиса Amazon OpenSearch, 30 ТБ данных и 30 миллиардов документов для разнообразных особо важных примеров использования – от операционного мониторинга и устранения неисправностей до отслеживания стека распределенных приложений и оптимизации затрат.

В течение десятилетий центральное место в разработке приложений занимала реляционная модель данных, которая использовалась в реляционных базах данных, таких как Oracle, DB2, SQL Server, MySQL и PostgreSQL. Но в середине – конце 2000‑х годов заметное распространение стали получать и другие модели данных. Для обозначения появившихся классов БД и моделей данных был введен термин «NoSQL». Часто «NoSQL» используется в качестве синонима к термину «нереляционный».

Существует множество типов БД NoSQL с различными особенностями, но в таблице ниже приведены основные отличия баз данных NoSQL от SQL.

Начало работы с NoSQL

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

SQLMongoDBDynamoDBCassandraCouchbase
ТаблицаКоллекцияТаблицаТаблицаКорзина данных
РядДокументЭлементРядДокумент
СтолбецПолеАтрибутСтолбецПоле
Первичный ключObjectIdПервичный ключПервичный ключИД документа
ИндексИндексВторичный индексИндексИндекс
ПредставлениеПредставлениеГлобальный вторичный индексМатериализованное представлениеПредставление
Вложенная таблица или объектВстроенный документКартаКартаКарта
МассивМассивСписокСписокСписок
Список
Список
Первичный ключ

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

Начать работу с Amazon DynamoDB

What is Amazon DynamoDB?

Вход в Консоль

Подробнее об AWS

  • Что такое AWS?
  • Что такое облачные вычисления?
  • Инклюзивность, многообразие и равенство AWS
  • Что такое DevOps?
  • Что такое контейнер?
  • Что такое озеро данных?
  • Безопасность облака AWS
  • Новые возможности
  • Блоги
  • Пресс‑релизы

Ресурсы для работы с AWS

  • Начало работы
  • Обучение и сертификация
  • Библиотека решений AWS
  • Центр архитектуры
  • Вопросы и ответы по продуктам и техническим темам
  • Аналитические отчеты
  • Партнеры AWS

Разработчики на AWS

  • Центр разработчика
  • Пакеты SDK и инструментарий
  • . NET на AWS
  • Python на AWS
  • Java на AWS
  • PHP на AWS
  • JavaScript на AWS

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

Поддержка AWS для Internet Explorer заканчивается 07/31/2022. Поддерживаемые браузеры: Chrome, Firefox, Edge и Safari.
Подробнее »

SQL и реляционные базы данных 101

Предлагает: IBM

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

Продолжить чтение

DB0101EN

База данных

36,3 тыс. + зарегистрированных

(1.9к+)

Войдите, чтобы зарегистрироваться

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

Данные — один из важнейших активов любого бизнеса. Данные нуждаются в базе данных для быстрого хранения и обработки данных. SQL — это язык, используемый базой данных для запроса данных.

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

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

  • Модуль 1 — SQL и реляционные базы данных 101
    • Введение в SQL и реляционные базы данных
    • Информация и модели данных
    • Типы отношений
    • Сопоставление сущностей с таблицами
    • Концепции реляционной модели
  • Модуль 2. Ограничения реляционной модели и объекты данных
    • Ограничения реляционной модели Введение
    • Расширенные ограничения реляционной модели
  • Модуль 3. Язык определения данных (DDL) и язык обработки данных (DML)
    • Оператор CREATE TABLE
    • Оператор ВСТАВКИ
    • Оператор SELECT
    • Операторы UPDATE и DELETE
  • Модуль 4. Расширенный SQL
    • Строковые шаблоны, диапазоны и наборы
    • Сортировка наборов результатов
    • Группировка наборов результатов
  • Модуль 5. Работа с несколькими таблицами
    • Обзор объединения
    • Внутреннее соединение
    • Внешнее соединение
  • Нет

Расчетное усилие

3 часа

Уровень

Новичок

Навыки, которым вы научитесь

Базы данных, SQL

Язык

Английский

Расскажи своим друзьям!

Сохранил эту страницу в буфер обмена!

Войдите, чтобы зарегистрироваться

Инструкторы

Рав Ахуджа

Глобальный директор программы, IBM Skills Network

Рав Ахуджа является глобальным директором программы в IBM. Он руководит стратегией роста, созданием учебных программ и партнерскими программами для IBM Skills Network. Рав стал соучредителем Cognitive Class, возглавляемой IBM инициативы по демократизации навыков для востребованных технологий. Он работает в канадской лаборатории IBM в Торонто и специализируется на учебных решениях для искусственного интеллекта, данных, разработки программного обеспечения и облачных вычислений. Рав участвует в мероприятиях по всему миру и является автором многочисленных документов, статей, книг и курсов по вопросам управления и анализа данных. Рав имеет B. Eng. Университета Макгилла и степень магистра делового администрирования Университета Западного Онтарио.

Читать далее

баз данных NoSQL и SQL | MongoDB

TL;DR: Базы данных NoSQL («не SQL» или «не только SQL») были разработаны в конце 2000-х с упором на масштабирование, быстрые запросы, возможность частого изменения приложений и упрощение программирования для разработчиков. . Реляционные базы данных, доступ к которым осуществляется с помощью SQL (язык структурированных запросов), были разработаны в 19 в. 70-х с акцентом на сокращение дублирования данных, поскольку хранение стоило гораздо дороже, чем время разработчиков. Базы данных SQL, как правило, имеют жесткие, сложные табличные схемы и обычно требуют дорогостоящего вертикального масштабирования.

Если вы не знакомы с тем, что такое базы данных NoSQL или с различными типами баз данных NoSQL, начните здесь.

Обзор

Ниже приведен обзор того, что рассматривается в этой статье.

  • В чем разница между SQL и NoSQL?
  • Каковы преимущества баз данных NoSQL?
  • Каковы недостатки баз данных NoSQL?
  • Попробуйте базу данных NoSQL

Различия между SQL и NoSQL

В таблице ниже приведены основные различия между базами данных SQL и NoSQL.

9 0160 Документ: документы JSON, Ключ-значение: пары ключ-значение, Широкий столбец: таблицы со строками и динамическими столбцами, График: узлы и ребра

Базы данных SQL Базы данных NoSQL
Модель хранения данных Таблицы с фиксированными строками и столбцами
История разработки Разработано в 1970-х годах с акцентом на уменьшение дублирования данных Разработано в конце 2000-х с акцентом на масштабирование и обеспечение возможности быстрого изменения приложений с помощью методов Agile и DevOps.
Примеры Oracle, MySQL, Microsoft SQL Server и PostgreSQL Документ: MongoDB и CouchDB, ключ-значение: Redis и DynamoDB, широкий столбец: Cassandra и HBase, график: Neo4j и Amazon Neptune
Основная цель Общего назначения Документ: общего назначения, Ключ-значение: большие объемы данных с простыми поисковыми запросами, Широкий столбец: большие объемы данных с предсказуемыми шаблонами запросов, График: анализ и обход взаимосвязей между подключенные данные
Схемы Жесткие Гибкие
Масштабирование на обычных серверах)
Транзакции ACID с несколькими записями Поддерживается Большинство транзакций ACID с несколькими записями не поддерживаются. Однако некоторые, например MongoDB, это делают.
Соединения Обычно требуется Обычно не требуется
Сопоставление данных с объектами Требуется ORM (объектно-реляционное сопоставление) Многие не требуют ORM. Документы MongoDB напрямую сопоставляются со структурами данных в большинстве популярных языков программирования.

Каковы преимущества баз данных NoSQL?

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

  • Гибкие модели данных

    Базы данных NoSQL обычно имеют очень гибкие схемы. Гибкая схема позволяет легко вносить изменения в базу данных по мере изменения требований. Вы можете быстро выполнять итерации и постоянно интегрировать новые функции приложения, чтобы быстрее приносить пользу своим пользователям.

  • Горизонтальное масштабирование

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

  • Быстрые запросы

    Запросы в базах данных NoSQL могут выполняться быстрее, чем в базах данных SQL. Почему? Данные в базах данных SQL обычно нормализованы, поэтому запросы к одному объекту или сущности требуют объединения данных из нескольких таблиц. По мере того, как ваши таблицы увеличиваются в размерах, соединения могут стать дорогими. Однако данные в базах данных NoSQL обычно хранятся способом, оптимизированным для запросов. Эмпирическое правило при использовании MongoDB — 9.0121 данные, к которым обращаются вместе, должны храниться вместе. Запросы обычно не требуют соединений, поэтому запросы выполняются очень быстро.

  • Легко для разработчиков

    Некоторые базы данных NoSQL, такие как MongoDB, сопоставляют свои структуры данных со структурами популярных языков программирования. Это сопоставление позволяет разработчикам хранить свои данные так же, как они используют их в коде своего приложения. Хотя это может показаться тривиальным преимуществом, такое сопоставление позволяет разработчикам писать меньше кода, что приводит к сокращению времени разработки и уменьшению количества ошибок.

Каковы недостатки баз данных NoSQL?

Одним из наиболее часто упоминаемых недостатков баз данных NoSQL является то, что они не поддерживают транзакции ACID (атомарность, согласованность, изоляция, надежность) для нескольких документов. При соответствующем дизайне схемы атомарность одной записи приемлема для многих приложений. Однако все еще есть много приложений, которым требуется ACID для нескольких записей.

Для решения этих задач MongoDB добавила поддержку транзакций ACID с несколькими документами в версии 4.0 и расширила их в версии 4.2 для охвата сегментированных кластеров.

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

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

Как попробовать базу данных NoSQL

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

Вы можете ознакомиться с информационным документом Где использовать MongoDB, чтобы определить, подходит ли MongoDB или другая база данных для вашего случая использования. Затем перейдите к разделу Что такое база данных документов? чтобы узнать о модели документов и ее сравнении с реляционной моделью.

Для тех, кто любит сразу же начинать и учиться на практике, одним из самых простых способов начать работу с базами данных NoSQL является использование MongoDB Atlas. Atlas — это полностью управляемая глобальная служба базы данных MongoDB, доступная у всех ведущих облачных провайдеров. Одна из многих удобных вещей в Atlas заключается в том, что он имеет щедрый, навсегда бесплатный уровень, поэтому вы можете создать базу данных и открыть для себя все преимущества баз данных NoSQL из первых рук, не предоставляя свою кредитную карту.

Для тех, кто предпочитает структурированное обучение, Университет MongoDB предлагает совершенно бесплатное онлайн-обучение, которое шаг за шагом проведет вас через процесс изучения MongoDB.

Когда вы будете готовы взаимодействовать с MongoDB, используя свой любимый язык программирования, ознакомьтесь с краткими руководствами по началу работы.