in

Аналитик данных. Часть 9: Введение в SQL

Порядок — это хорошо структурированный хаос

Неотъемлемая часть работы аналитика — работа с базами данных, поэтому в этой части мы начинаем познавать реляционное бусидо с помощью языка программирования SQL

Что такое SQL?

SQL (Structured Query Language — «язык структурированных запросов») — декларативный язык программирования, применяемый для создания, модификации и управления данными в реляционной базе данных. Иначе говоря — это набор стандартов и методик для создания, хранения, изменения и извлечения данных из реляционных БД.

Простыми словами: SQL — это основной инструмент работы с реляционными базами данных (о них чуть ниже). С его помощью можно делать запросы к БД

С помощью SQL можно:

  • Управлять и определять данные в базе данных, описывать их структуру,
  • Создавать, изменять и удалять таблицы БД, а также управлять доступом к ним.
  • Создавать функции и процедуры в БД
  • Взаимодействовать с другими языками через модули

Основы БД и СУБД

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

Что за реляционная базы данных? Бывают другие?

Реляционные базы данных представляют собой базы данных, которые используются для хранения и предоставления доступа к взаимосвязанным элементам информации. Таким элементом может быть строка, таблица, запись. Каждая запись при этом имеет уникальный ID (еще называется ключом) к которому вы можете обратиться.

Простыми словами: Реляционная БД — это «табличная» база данных. Все данные организованны в виде набора таблиц, состоящих из столбцов и строк. В таблицах хранится информация об объектах, представленных в базе данных. Если применить аналогию, то всё прям как в привычных таблицах Excel. У каждой ячейки есть свой «адрес» и вы всегда сможете обратиться к ней напрямую.

Столбцы таблицы имеют атрибуты данных, а каждая запись обычно содержит значение для каждого атрибута, что дает возможность легко устанавливать взаимосвязь между элементами данных.

Реляционные базы данных имеют под собой крайне важный аспект — целостность данных. Целостность данных – это полнота, точность и единообразие данных. Это позволяет гарантировать гарантировать точность и надежность данных.

Помимо реляционных БД есть и т.н. нереляционные. Такие NoSQL базы данных могут хранить деструктированную информацию, не иметь ограничений на типы хранимых данных (SQL-like БД их имеют) и создавать новые типы данных с произвольным набором атрибутов. Одним из самых известных продуктов NoSQL является MongoDB

У нереляционных БД (сетевые или иерархические) есть и свои недостатки: отсутствие единых стандартов и ограниченность функциональности запросов — переезд на другую СУБД будет проблемой. Проектирование модели данных в NoSQL-решениях с нуля потребует огромных временных и ресурсных затрат, в отличии от SQL, где всё давно систематизировано

Основные функции СУБД

  • Управление данными во внешней памяти (на дисках);
  • Управление данными в оперативной памяти с использованием дискового кэша;
  • Журнализация изменений (сохранение истории), резервное копирование и восстановление базы данных после сбоев;
  • Поддержка языков БД (язык определения данных, язык манипулирования данными).

Архитектура СУБД

СУБД реализованы на клиент-серверной архитектуре. Серверная часть у некоторых СУБД несколько отличается. Например, в PostgreSQL за управление файлами БД, подключение клиентских приложений и обработку запросов отвечает специальный сервисный процесс postgres.

В Oracle за это отвечают несколько фоновых фоновых процессов, сегментов памяти (называемых инстансами — instance) и файлов, содержащих конфигурации, транзакционные (или архивные) логи, данные и индексную информацию.

Что касается клиентских приложений, то здесь есть куда разгуляться. Это могут быть текстовые утилиты, графические приложения, веб-сервер, использующий базу данных для отображения веб-страниц, или специализированный инструмент для обслуживания БД.

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

Хранение данных в СУБД. Что такое база данных?

Данные СУБД — это специальные объекты базы данных, именуемые таблицами (tables). Да, те самые таблицы из колонок и строк, которые всем известны. Иными словами, база данных в SQL — это таблицы, коллекции связанных между собой данных определенного количества, состоящих из колонок и строк. Типичный пример:

Внутри таблицы есть поля (fields). Поле — это колонка таблицы, предназначенная для хранения определенной информации о каждой записи в таблице. В нашем случае это id, name, countrycode, district, population

Запись — она же строка (row). Это горизонтальное вхождение в таблице. Колонка (column) —  это вертикальное вхождение в таблице, содержащее всю информацию, связанную с определенным полем

С чем будем работать?

Мы будем работать с PostgreSQL, которая базируется на языке SQL (что логично). PostgreSQL – это мощная объектно-реляционная СУБД корпоративного класса с отрытым исходным кодом (open-source)

Многие команды и операции аналогичны и для других СУБД — Oracle или Microsoft SQL Server. Еще один плюс — PostgreSQL поддерживается для всех основных операционных систем — Windows, Linux, MacOS.

Установить PostgreSQL можно отсюда (для Windows). В качестве клиента используем DBeaver. Бесплатную Community-версию можно скачать на официальном сайте

Есть мнение, что начинать изучение SQL лучше сразу в консоли unix-like систем. Действительно, это имеет под собой основания — практически весь продашкн в современном мире работает под Linux. Но если вы совсем начинаете с нуля, рекомендуем всё же использовать GUI-инструменты.

При установке DBeaver устанавливайте все компоненты, которые просит установить мастер. Так же оставляйте порт (5423). В процессе у вас запросит пароль суперпользователя (если мастер не попросил ввести пароль — переустановите клиент в другую папку). Запомните его — данный пароль нужно будет вписать в свойства соединения, когда установка будет завершена

Самые нужные горячие клавиши DBeaver

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

Комментирование: CTRL+/. Раскладка при этом должна быть английская. Если стоит русский язык, то ничего не произойдет.

Выполнение кода в соседнем окне: CTRL+\.По умолчанию код выполняется в одном и том же окне. Если вам необходимо, чтобы часть вашего кода выполнилась в новом окне поможет эта комбинация клавиш

Ложка дёгтя в SQL

Единственное, в чем SQL реально неудобен, так это в поиске ошибок в коде

Примерно это выглядит так:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *