Quellcode durchsuchen

Merge branch 'master' of u21liseenko/ISRPO into master

ypv vor 1 Jahr
Ursprung
Commit
130fb4134f

+ 96 - 0
Лекции/TransactionSQL/ Никипелов_А_В_Как устроен TransactionSQL.md

@@ -0,0 +1,96 @@
+# Как устроен язык SQL
+Каждый день вы проверяете почту, переводите деньги другу, покупаете онлайн или пользуетесь поисковиком. Все они в своей работе используют базы данных и язык запросов SQL.
+## Для чего нужен SQL
+
+SQL (сокращение от англ. Structured Query Language) — это язык запросов, который применяют, чтобы работать с базами данных, структурированных особым образом. Главные задачи SQL — составлять запросы так, чтобы находить среди большого объёма информации ту, что нужна для конкретных целей, сортировать её, структурировать и представлять в наиболее простом и понятном виде.
+
+Чтобы понять, зачем нужен язык SQL, представьте, что женщина выбирает в интернет-магазине летнее платье жёлтого цвета и хочет уложиться в 5 тысяч рублей. Всего в магазине 10 тысяч платьев. Если просто перебирать их по каталогу, уйдёт несколько часов. Но можно задать в фильтрах настройки по категории, сезону, цвету, цене и сразу найти нужные модели. Эти фильтры работают за счёт языка запросов SQL.
+
+Первый прототип языка SQL представила в 1979 году компания-разработчик Oracle. Сначала это был простейший инструмент для извлечения нужных данных, вроде фильтров в Excel-таблицах. С годами он усложнился, и теперь его применяют в качестве одного из основных инструментов для обработки данных. С помощью SQL можно:
+
+● собирать и хранить данные в виде таблиц;
+● изменять их содержимое и структуру;
+● объединять данные и выполнять вычисления;
+● защищать и распределять доступ.
+
+## Особенности языка SQL
+
+**● Это язык запросов, а не программирования.** Его используют в дополнение к Python, JavaScript или C++, но только для работы с базами данных. Написать на нём полноценный сайт или приложение невозможно.
+**● Чёткая и понятная структура.** Это делает язык SQL для работы с данными относительно простым для начинающих.
+**● Универсальность.** Есть единые стандарты построения запросов для любых баз данных и браузеров, которые позволяют обрабатывать даже очень большие объёмы информации.
+**● Совместный доступ.** SQL позволяет создавать интерактивные запросы. Это значит, что можно получать нужные данные онлайн и принимать решения на их основе.
+**● Управление доступом.** При помощи SQL можно предоставить, закрыть или ограничить доступ к данным для разных групп пользователей, а также выдать им определённый набор функций: чтение, изменение, создание, удаление, копирование. Это защищает базы данных от взлома или несогласованных изменений.
+
+## Сфера использования SQL
+
+SQL используют в Facebook, Google, Amazon, Uber, Netflix, Airbnb. Например, для того, чтобы показывать пользователям персональные рекомендации на основе того, что они смотрят, читают и лайкают.
+
+Язык SQL нужен разработчикам, тестировщикам, аналитикам данных, администраторам, маркетологам — всем тем, кому по работе нужно выгружать и обрабатывать большие объёмы данных. Правильно организованные запросы помогают извлекать полезную информацию о клиентах и пользователях, сортируют её по определённым категориям, анализируют работу сайта или бизнеса.
+
+Например, интернет-магазин доставляет товары по всей стране. У него обширная база клиентов. Владелец магазина хочет понять, как улучшить доставку и на какие регионы обратить внимание. Для этого он ставит задачу аналитику, который с помощью SQL-запросов выгружает данные о каждом регионе и сортирует их по объёму заказов.
+
+## Что такое база данных SQL
+
+База данных — это способ хранения и организации данных, которые структурированы так, чтобы пользоваться ими могли и человек, и алгоритм.
+
+При помощи SQL можно работать с реляционными базами данных — то есть теми, где данные представлены в виде таблиц. Это отчасти похоже на таблицы в Excel, при этом все таблицы в рамках одной базы данных связаны между собой сквозным поиском.
+![](https://avatars.mds.yandex.net/get-lpc/1520633/c417bfed-e5f1-4104-8619-19b033fb96e6/width_1280_q70)
+|*Реляционная база данных интернет-магазина объединяет таблицы с данными о клиентах, заказах и товарах*|
+
+Структура базы данных SQL состоит из шести элементов:
+
+● Ключ — самый главный столбец, который связывает таблицы данных.
+![](https://avatars.mds.yandex.net/get-lpc/1368426/8b8b7e2b-ccc4-45ac-bbaf-31788b354eb7/width_1280_q70)
+|*Ключи разного уровня в таблицах с данными*|
+
+Они бывают:
+- первичными — содержат уникальный идентификатор для каждого объекта, например, артикул;
+- потенциальными — содержат альтернативный идентификатор;
+- внешними — содержат ссылку, которая позволяет связать две таблицы, при этом значения ключей в одной таблице соответствуют первичному ключу в другой.
+
+● Отношение — таблица с данными, представленными в строках и столбцах.
+● Атрибут — столбец, который содержит наименование, тип, цену или другой параметр.
+● Домен — значения, которые допустимы для данного атрибута: например, стоимость в рублях или название кириллическими символами.
+● Кортеж — пронумерованная строка, где содержатся все данные о каком-либо объекте.
+● Значение — содержимое ячейки в таблице.
+
+Чтобы работать с базами данных при помощи SQL, используют систему управления базами данных, или СУБД — посредник между пользователем и сервером, где находятся таблицы. СУБД представляют собой комплекс ПО, которое позволяет создавать базы данных и управлять ими.
+
+СУБД бывают бесплатными и коммерческими — например, MySQL, Microsoft SQL Server, SQLite, Oracle, Ingres.
+![](https://avatars.mds.yandex.net/get-lpc/403342/01cf37a6-6a1a-4134-88ce-f29beac10aa3/width_1280_q70)
+|*Список платных и бесплатных СУБД и компаний, которые их используют*|
+
+## Работа с SQL: основные операторы
+
+Когда пользователь делает запрос к таблице с данными, поэтапно это выглядит так:
+
+1. Клиент — интерфейс, который используется для создания запроса. Например, строка поиска в Яндексе.
+2. СУБД (система управления базами данных) — отвечает за передачу запроса от пользователя к базе данных и возвращает ответ в понятном ему виде.
+3. База данных — таблицы, где данные структурированы и связаны друг с другом так, чтобы быстро находить нужное.
+
+Чтобы система проделала все эти операции, используют язык баз данных SQL. Это делают с помощью специальных команд — операторов.
+
+Вот основные типы операторов SQL:
+
+**● DDL (Data Definition Language)** — операторы определения данных, которые работают с целыми таблицами. Например: CREATE — чтобы создать таблицу (TABLE) или базу данных (DATABASE), DROP (TABLE/DATABASE) — чтобы удалить всю таблицу или базу данных, USE — чтобы выбрать нужную базу данных.
+
+**● DML (Data Manipulation Language)** — операторы манипуляции данными, которые работают с содержимым таблиц. Например, UPDATE — чтобы обновить данные, DELETE — чтобы удалить, INSERT — чтобы добавить новые, SELECT (FROM/WHERE) — чтобы выбрать нужные данные по заданному параметру.
+
+**● DCL (Data Control Language)** — оператор определения доступа к данным для разных пользователей. Например, GRANT — чтобы открыть доступ или DENY — чтобы запретить.
+
+**● SQL клиент-сервер** — для управления доступом к данных для разных пользователей.
+
+**● SQL трёхуровневой архитектуры** — для защиты данных от несанкционированного копирования и распространения.
+
+Кроме операторов используют **TCL (Transaction Control Language)** — язык управления транзакциями, то есть сериями команд, которые выполняются поочередно. Если хотя бы одна из команд не выполнена, все последующие тоже отменяются. Так происходит, к примеру, с оплатой онлайн, когда нужно последовательно ввести данные и подтвердить платёж. Например, BEGIN TRANSACTION — начало транзакции, COMMIT TRANSACTION — изменение команд в цепочке, а SAVE TRANSACTION — промежуточная точка сохранения внутри транзакции.
+
+## Главное об SQL
+
+● Язык запросов SQL используется для работы с большими базами данных, в которых информация структурирована особым образом. Он поможет быстро извлекать нужные данные, отфильтровывать их по десяткам разных параметров.
+● SQL и СУБД используют крупнейшие IT-компании, интернет-магазины и онлайн-сервисы, где нужно быстро отображать информацию в ответ на миллионы запросов. Среди них — Netflix, Google, Microsoft, Amazon. Поэтому специалисты, которые владеют SQL, очень востребованы.
+● Изучить основы языка запросов SQL будет проще тем, кто уже знаком с формулами в Excel-таблицах.
+● Знание языка SQL пригодится аналитикам данных, маркетологам, продакт-менеджерам, специалистам по финансам.
+
+# Литература:
+
+https://practicum.yandex.ru/blog/chto-takoe-sql/