Введение
В современном мире практически любое предприятие использует в своей работе базы данных. При этом вы можете об этом даже не знать: если вы пользуетесь стандартным софтом (например, 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