Введение

В современном мире практически любое предприятие использует в своей работе базы данных. При этом вы можете об этом даже не знать: если вы пользуетесь стандартным софтом (например, 1С), то от вас эта «начинка» просто скрыта.

Но сути дела это не меняет – стоит вам прийти в любую компанию, которая живет в парадигме data-driven подхода, вам придется засучить рукава и окунуться в мир баз данных.

И тут перед вами встала непреодолимая проблема – как быстро разобраться, что вообще происходит вокруг? Как понимать своих коллег и говорить с ними на одном языке?

Ответ прост. Что бы вы сделали, если бы поехали в Уганду, где никто не говорит по-английски или по-русски? Конечно же, купили бы или скачали бы переводчик-разговорник. Вот и здесь также – приводим вам выжимку всех основных терминов, которые вам встретятся на пути.

Словарь

1. SQL

SQL – Structured Query Language, язык структурированных запросов. Это язык программирования, который служит для манипуляции данными, которые хранятся в некоторой базе данных.

Обратите внимание: SQL – не база данных. SQL – не программа для работы с базами данных. SQL – язык для работы с данными.

Важно: Нельзя говорить «Скачать SQL», «Установить SQL», «Сохранил данные в SQL» и так далее.

Если вы хотите изучить язык SQL, то рекомендуем скачать бесплатный гайд «Первые шаги в SQL» и записаться на наш открытый курс «Аналитика с SQL и R».

2. Реляционная база данных

Реляционная база данных – база данных, основанная на реляционной модели.

Реляционная модель – некоторая модель данных, основанная на 3 принципах:

  • Данные представляются в виде отношений (под отношениями удобно понимать таблицы базы данных)
  • Все отношения выстроены с учетом ограничений и условий целостности (например, возраст человека не может быть отрицательным)
  • Между отношениями возможен некоторые набор преобразований (например, пересечение или объединение множеств)

Обратите внимание: реляционная база данных – все еще не программа.

3. СУБД

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

Если собрать воедино 3 первых пункта словаря, получается так:

Вы работаете с реляционными базами данных через СУБД с использованием языка SQL.

Примечание: Если наша база реляционная, то СУБД превращается в РСУБД.

4. MySQL

Хорошо, с SQL и СУБД все понятно – но что же тогда MySQL?

MySQL – свободная реляционная система управления базами данных. Другими словами – это просто один из представителей класса РСУБД. Является одним из самых популярных в мире, особенно применительно к веб-разработке.

На данный момент поддержку MySQL осуществляет корпорация Oracle. Изначально создавалась в 1995 году для внутреннего использования шведской компанией TcX.

Интересный факт: Дельфина зовут Sakila – именно это имя было выбрано из большого списка «имен дельфинов».  

5. PostgreSQL

Теперь-то вы наверняка догадываетесь, что такое PostgreSQL. Конечно, PostgreSQL – еще одна реляционная система управления базами данных.

Начало свое СУБД PostgreSQL берет в далеком уже 1986 в Калифорнийском университете Беркли. Тогда этот проект назывался просто Postgres. Почему такое имя? Да все просто – создатель этой СУБД, Майкл Стоунбрейкер, на тот момент уже был руководителем коммерческого проекта Ingres. Поэтому, долго не раздумывая, он и назвал свое детище «Post Ingres».

Интересный факт: у слона с логотипа имени нет, поэтому принято называть его Slonik.

Еще один интересный факт: Помимо слоника, на разных этапах существования этого проекта на логотипе был гепард, черепаха, да и чего только еще не было.

6. MS SQL Server

Да, СУБД от Microsoft – Microsoft SQL Server. Не будем здесь останавливаться подробно – и так все статьи про продукты этого гиганта: то про Power BI, то про Excel, то про Word… Давайте в этой статье уступим место другим 🙂

7. T-SQL

Очередная СУБД? Нет, что-то новенькое. T-SQL, или иначе Transact-SQL, – расширения языка SQL, использующиеся для работы с MS SQL Server. Фактически, ребята из Sybase (да, изначально это был не Microsoft) добавили немного кода к стандартному SQL, и получился широко известный ныне T-SQL. Он позволяет вам делать все то же самое, что можно с помощью стандартного языка SQL, но и еще немного сверху того.

8. PL/SQL

По аналогии с предыдущим пунктом, PL/SQL – как бы «собственный» язык, используемый для работы с СУБД Oracle. Да, у корпорации Oracle есть и своя собственная разработка – одноименная СУБД Oracle. Вот для работы с ней и используется PL/SQL.

9. PL/pgSQL

PL/pgSQL – еще одна «обертка над SQL». На сей раз для работы с СУБД PostgreSQL.

Примечание: Естественно, различия между каждой «версией» языка могут быть очень большими. Однако, если вы просто работаете с базой на уровне написания простых запросов (а скорее всего так и есть), то вы эти различия почти и не ощутите.

10. Сущность

Удобнее всего понимать сущность, как описание какого-то объекта. В базах данных под сущностью обычно подразумевают таблицу – это некоторое комплексное описание одного объекта. Вряд ли вы будете в одну таблицу заносить информацию о людях (ФИО, пол, возраст и так далее) и о блюдах (ингредиенты, пропорции). Одна таблица – одно исчерпывающее описание объекта – одна сущность.

11. Атрибут

Если сущность – объект, то атрибут – признак, который так или иначе описывает этот объект. Например: если у нас таблица с описанием людей, то ФИО, Пол, Возраст и так далее – атрибуты данной сущности.

Обычно принято понимать под атрибутами заголовки столбцов в таблице.

12. Домен

Если вы подумали, что речь про https://sf.education/, то нет, речь не об этом.

В базах данных домен легче всего представлять себе, как набор всевозможных допустимых значений какого-то объекта. Например, домен «Имена» априори не может включать комбинацию букв, которая начинается с мягкого знака – это общее правило.

13. Кортеж

Кортеж – это не что-то неприличное. Это вполне приличное множество пар Атрибут – Значение атрибута. При этом в кортеж должно входить по одному атрибуту данной сущности. Все в рамках закона, так сказать.

Обычно под кортежем понимают строку таблицы.

Например, если мы рассмотрим таблицу Коты с полями-атрибутами (Кличка, Порода, Возраст), то кортежами будут всевозможные наборы значений каждого атрибута. Если в таблице всего 2 строки, то наборы (Барсик, Сибирский, 5) и (Мурзик, Сфинкс, 7) и будут нашими кортежами.

Примечание: можно дать определение сущности через кортежи. Говорят, что сущность – соответствующее множество кортежей. Другими словами, таблица – набор всех ее строк. Все логично, собственно говоря.

14. Нормализация БД

В теории баз данных есть некий свод правил и установок, по которым эти базы проектируются. Установки эти называются нормальными формами. Каждая нормальная форма подразумевает выполнение предыдущий и привносит что-то свое.

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

15. Запрос

Запрос – это некоторая команда, написанная в специальном формате (на языке SQL, если быть точней), которая обрабатывается системой, и на выходе мы получаем результат.

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

16. DDL, TCL, DCL, DML

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

Язык SQL состоит из некоторых операторов, и их можно разделить на группы, в зависимости от их «миссии», т.е. задач, которые они решают.

DDL – Data Definition Language. С помощью операторов этой группы мы работаем со структурой базы: удаляем, изменяем, создаем объекты и так далее. В эту группу входят операторы:

CREATE – создание объекта
ALTER – изменение объекта
DROP – удаление объекта

DML – Data Manipulation Language. С помощью этой группы операторов мы можем манипулировать данными, т.е. выгружать их, изменять, добавлять новые и так далее. В эту группу входят:

SELECT – выбор данных
INSERT – добавление данных
UPDATE – изменение данных
DELETE – удаление данных

DCL – Data Control Language. Эта группа позволяет контролировать доступ к данным, т.е. управлять правами и разрешениями. Сюда входят:

GRANT – дает разрешения пользователю
REVOKE – забирает данные ранее разрешения
DENY– запрещает

TCL – Transaction Control Language. Это набор операторов для управления транзакциями. Транзакция – набор команд, которые выполняются как единый блок.

BEGIN TRANSACTION – начало транзакции
COMMIT TRANSACTION – применение транзакции
ROLLBACK TRANSACTION – откат транзакции
SAVE TRANSACTION – промежуточное сохранение транзакции

Заключение

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

В рамках данной статьи я специально не стал концентрироваться на самом языке SQL, а сделал упор именно на том, что чаще всего забывается/опускается/оставляется без внимания. А опытные HR об этом знают и любят задавать подобные вопросы на собеседованиях. Так что сохраните это в свою копилку памяти – и удачного программирования!

Автор: Андрон Алексанян, СОО «Аптека-Центр», эксперт SF Education