Введение в SQL и базы данных
Ключевые тезисы
- SQL — востребованный язык для работы с данными, используемый многими IT-специалистами.
- Существуют три основных типа баз данных: иерархические/сетевые, реляционные и NoSQL/Big Data.
- SQL изначально создан для реляционных баз, но сейчас применяется и в нереляционных системах.
- Популярность SQL основана на строгой математической основе, стандартизации и широком распространении знаний о нём.
Типы баз данных
Иерархические/сетевые базы данных
- Данные организованы в виде иерархии или сети.
- Пример: каталоги Microsoft Active Directory (организация → подразделения → пользователи).
Реляционные базы данных
- Данные хранятся в виде связанных между собой таблиц.
- SQL в первую очередь используется для работы с этим типом баз.
Базы данных для Big Data (NoSQL)
- Данные хранятся в неструктурированном виде (без чёткой иерархии или таблиц).
- Могут распределяться по множеству связанных серверов.
- SQL всё чаще применяется и для работы с такими системами.
Реляционная модель данных
Реляционная модель — математическая модель, описывающая данные в виде таблиц (отношений).
Структура таблицы:
- Состоит из столбцов (атрибутов). Пример для таблицы продуктов: ID, name, type, description, price.
- Строки содержат описание отдельных сущностей (например, онлайн-курсы, вебинары, книги).
Ключевые требования реляционной модели:
- В ячейках таблицы могут храниться только отдельные значения (не массивы или списки).
- Каждая сущность должна иметь значение в каждом столбце (допустимо отсутствующее значение —
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 так популярен?
- Строгая математическая основа: реляционная модель, алгебра и исчисление позволяют точно предсказать результат операций.
- Стандартизация: наличие стандартов ANSI обеспечивает переносимость запросов между разными СУБД (требуются лишь небольшие правки).
- Широкая распространённость: большое количество специалистов знает SQL, поэтому производители новых систем (включая Big Data) добавляют его поддержку для упрощения адаптации.
Структура курса
- Для кого: IT-специалисты начального уровня (разработчики, аналитики, тестировщики). Предварительные знания не требуются.
- Что будем изучать: основные операторы SQL для извлечения и изменения данных.
- Что НЕ будем изучать:
- Внутреннее устройство баз данных.
- Оптимизацию производительности запросов (это продвинутая тема).
- Курс не подойдёт для будущих администраторов баз данных.
- Используемая СУБД: PostgreSQL (популярная система с открытым кодом). Большинство примеров будут использовать стандартный синтаксис ANSI SQL, работающий и в других базах.
Отличие от Big Data: в реляционных базах у всех сущностей в таблице одинаковый набор атрибутов. В базах для Big Data каждая сущность может иметь свой собственный набор.