и почему это так популярно в индустрии

За всей шумихой и славой машинного обучения в популярных СМИ стоит один чрезвычайно важный компонент, который как бы упускается из виду, - это роль систем управления базами данных (СУБД). Конечно, не всем действительно НУЖНО знать тонкости управления базой данных. Но если вы используете машинное обучение в каком-либо качестве, с очень высокой степенью вероятности в вашей профессиональной карьере будет время, когда его понимание в определенной степени может помочь.

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

Математик по имени Эдгар Ф. Кодд, работавший в IBM, увидел потребность в архитектуре общего назначения, которая действительно могла бы обойти жестко запрограммированную жесткость, чтобы соответствовать меняющимся потребностям. Войдите в систему управления реляционными базами данных (СУБД). В 1970 году он опубликовал статью с описанием этой архитектуры, в которой сама система могла определить наилучшее возможное представление и процедуру для хранения, извлечения и управления данными.

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

i) Select: выбирает и возвращает новое отношение, которое является подмножеством кортежей, удовлетворяющих определенным условным предикатам: SELECT * FROM Shop_A WHERE author_id = 102;

ii) Проекция: возвращает новое отношение с кортежами, которые содержат только указанные атрибуты, может изменять порядок атрибутов, может изменять значения: SELECT author_id-100, book_id FROM Shop_A WHERE author_id ›102;

iii) Объединение: возвращает все кортежи в двух входных отношениях как одно новое отношение, но работает только в том случае, если типы входных данных и атрибуты одинаковы в обоих: (SELECT * FROM Shop_A) UNION ALL (SELECT * ИЗ Shop_B);

iv) Пересечение: возвращает новое отношение кортежей, которые находятся в обоих входных отношениях, но работает только в том случае, если типы входных данных и атрибуты одинаковы в обоих: (SELECT * FROM Shop_A) INTERSECT (SELECT * ИЗ Shop_B);

v) Разница: возвращает новое отношение с кортежами, которые находятся в первом входе, но не во втором, но работает только в том случае, если типы входных данных и атрибуты одинаковы в обоих: (SELECT * FROM Shop_A ) ИСКЛЮЧАЯ (ВЫБРАТЬ * ИЗ Shop_B);

vi) Продукт. Возвращает новое отношение, которое является скалярным произведением двух входных данных, иначе. все возможные комбинации, обычно используемые для тестирования: SELECT * FROM Shop_A CROSS JOIN Shop_B; или ВЫБЕРИТЕ * ИЗ Shop_A, Shop_B;

vii) Присоединиться: возвращает новое отношение кортежей, которые находятся в обоих входных отношениях, но в отличие от Union, типы данных и атрибутов не обязательно должны быть одинаковыми, если есть хотя бы одно совпадение. внутри кортежей: SELECT * FROM Shop_A NATURAL JOIN Shop_B;

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

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

Представьте, что вы хотите создать новую связь между таблицами A и B, каждая из которых содержит 5 миллиардов строк, где вам нужны все кортежи с первичным ключом менее 500, которые присутствуют как в A, так и в B, с некоторыми одинаковыми атрибутами. Одна из процедур для этого - сначала НАТУРАЛЬНОЕ СОЕДИНЕНИЕ всех 10 миллиардов строк, а затем фильтрация ключей SELECT менее 500. Другой процедурой может быть фильтрация SELECT менее 500 ключей сначала из A и B, а затем NATURAL JOIN 1000 (не более ) записи. В зависимости от фактического размера базы данных коэффициент производительности второй процедуры будет намного эффективнее, чем у первой.

Вот где реляционная модель выделяется. Пользователю просто нужно указать что он хочет сделать, и СУБД выяснит, как сделать это наиболее эффективным способом. Вот почему языки запросов, такие как SQL, называются «непроцедурными». Явные шаги (или процедуры) встроены в систему. В отличие от языков программирования, таких как Python или C / C ++, где пользователь должен явно указать, что повторять эти данные столько раз, ищите эту характеристику, если n больше определенного числа, выберите этот другой метод, yada yada, SQL нужно только сообщить желаемый конечный результат.

РСУБД основана в основном на трех столпах:

i) Структура (схема): отношения и их содержимое, например атрибуты, типы, отношения внутри данных и между ними.

ii) Целостность: гарантия того, что содержимое базы данных удовлетворяет ограничениям (также известной как некоторая предопределенная собственная структура, такая как выделение памяти) для проверки экземпляра базы данных с учетом этих ограничений без избыточности.

iii) Манипуляция: способы доступа к данным или их изменения посредством выполнения запросов.

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







Ссылки:

  1. Павло А, 2019 г., Введение в системы баз данных, конспекты лекций, 15-445 / 645, Университет Карнеги-Меллона
  2. Кодд, Э. Ф. «Реляционная модель данных для больших общих банков данных». Сообщения ACM 26.1 (1983): 64–69. Коммуникации ACM. Интернет.

P.S. Для получения более коротких и конкретных статей о данных, программировании и о том, как биолог проходит через революцию данных, следите за моим блогом.

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

Спасибо за чтение!