Введение в SQL и базы данных

Ключевые тезисы

  • SQL — востребованный язык для работы с данными, используемый многими IT-специалистами.
  • Существуют три основных типа баз данных: иерархические/сетевые, реляционные и NoSQL/Big Data.
  • SQL изначально создан для реляционных баз, но сейчас применяется и в нереляционных системах.
  • Популярность SQL основана на строгой математической основе, стандартизации и широком распространении знаний о нём.

🗄️ Типы баз данных

  1. Иерархические/сетевые базы данных

    • Данные организованы в виде иерархии или сети.
    • Пример: каталоги Microsoft Active Directory (организация → подразделения → пользователи).
  2. Реляционные базы данных

    • Данные хранятся в виде связанных между собой таблиц.
    • SQL в первую очередь используется для работы с этим типом баз.
  3. Базы данных для Big Data (NoSQL)

    • Данные хранятся в неструктурированном виде (без чёткой иерархии или таблиц).
    • Могут распределяться по множеству связанных серверов.
    • SQL всё чаще применяется и для работы с такими системами.

📊 Реляционная модель данных

Реляционная модель — математическая модель, описывающая данные в виде таблиц (отношений).

Структура таблицы:

  • Состоит из столбцов (атрибутов). Пример для таблицы продуктов: ID, name, type, description, price.
  • Строки содержат описание отдельных сущностей (например, онлайн-курсы, вебинары, книги).

Ключевые требования реляционной модели:

  1. В ячейках таблицы могут храниться только отдельные значения (не массивы или списки).
  2. Каждая сущность должна иметь значение в каждом столбце (допустимо отсутствующее значение — NULL).

⚖️ Отличие от Big Data: в реляционных базах у всех сущностей в таблице одинаковый набор атрибутов. В базах для Big Data каждая сущность может иметь свой собственный набор.

📜 История и стандартизация SQL

  • 1970 г.: Эдгар Кодд разработал реляционную модель данных.
  • 1974 г.: Рэймонд Бойс и Дональд Чемберлин (IBM) создали язык SEQUEL (Structured English Query Language).
  • Название: SEQUEL был переименован в SQL (произносится как "си-кью-эл" или "сиквел").
  • 1979 г.: Появление первых СУБД, поддерживающих SQL — Oracle и IBM.
  • 1986 г.: Первая стандартизация SQL американским национальным институтом стандартов (ANSI).
  • Стандарты: Постоянно развиваются (последний — SQL:2019). Производители стремятся их поддерживать, добавляя собственные расширения.

🌐 Системы управления базами данных (СУБД)

  • Коммерческие: Oracle, IBM DB2, Microsoft SQL Server.
  • С открытым исходным кодом: PostgreSQL, SQLite (можно бесплатно использовать в проектах).

Применение SQL вне реляционных баз:

  • Apache Hive: позволяет использовать SQL в экосистеме Hadoop для работы с большими данными.
  • Spark SQL: реализация в Apache Spark для выполнения SQL-запросов к данным в кластере.
  • Apache Drill: позволяет выполнять SQL-запросы, объединяющие данные из различных источников (даже тех, что не поддерживают SQL).

🎯 Почему SQL так популярен?

  1. Строгая математическая основа: реляционная модель, алгебра и исчисление позволяют точно предсказать результат операций.
  2. Стандартизация: наличие стандартов ANSI обеспечивает переносимость запросов между разными СУБД (требуются лишь небольшие правки).
  3. Широкая распространённость: большое количество специалистов знает SQL, поэтому производители новых систем (включая Big Data) добавляют его поддержку для упрощения адаптации.

🎓 Структура курса

  • Для кого: IT-специалисты начального уровня (разработчики, аналитики, тестировщики). Предварительные знания не требуются.
  • Что будем изучать: основные операторы SQL для извлечения и изменения данных.
  • Что НЕ будем изучать:
    • Внутреннее устройство баз данных.
    • Оптимизацию производительности запросов (это продвинутая тема).
    • Курс не подойдёт для будущих администраторов баз данных.
  • Используемая СУБД: PostgreSQL (популярная система с открытым кодом). Большинство примеров будут использовать стандартный синтаксис ANSI SQL, работающий и в других базах.