Зарегистрируйтесь для доступа к 15+ бесплатным курсам по программированию с тренажером

Введение Основы реляционных баз данных

Web Server: App + DB

Любая нетривиальная программная система состоит минимум из двух компонентов:

  • Программного кода, отвечающего за логику работы
  • Хранилища, в котором содержатся данные, необходимые для работы

Возьмем для примера Хекслет. Это большой контентный проект, внутри которого есть данные: например, курсы и их содержимое.

Более того, довольно много контента создается самими пользователями: они вводят данные при регистрации, создают и заполняют профиля пользователя, описывают свои решения и переписываются с поддержкой через топики. Все эти данные непрерывно добавляются на сайт и только увеличиваются в объемах.

При этом данные нужно не только хранить, но и непрерывно считывать и показывать пользователям. Причем иногда в довольно хитрых формах, например: «Показать на странице испытания три последних код-ревью по этому испытанию, исключая код-ревью пользователя, который прямо сейчас смотрит на эту страницу».

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

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

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

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

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

Для работы с ними нужно понимать две основные вещи:

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

Оба пункта практически не зависят от реализации конкретной РСУБД. Изучив одну СУБД, вы крайне легко сможете переключиться на другую.

Основные темы курса

В этом курсе мы рассмотрим популярную СУБД PostgreSQL и затронем такие основные темы:

  • Установка и настройка
  • Создание и модификация базы данных (DDL)
  • Наполнение базы данных (DML)
  • Выборка данных (SELECT, WHERE, ORDER, LIMIT, DISTINCT, GROUP, HAVING)
  • Агрегирующие функции (COUNT)
  • Соединения (JOIN, LEFT JOIN)
  • Транзакции (уровни изоляции)
  • Реляционная алгебра (основы теории множеств)
  • Ключи (первичные, внешние)
  • Нормализация данных
  • Связи (один-к-одному, один-ко-многим, многие-ко-многим)
  • Производительность (индексы)

Как подготовиться к этому курсу

Чтобы пройти этот курс, достаточно уметь работать с командной строкой. Изучить эту тему вы можете в нашем курсе Основы командной строки.


Аватары экспертов Хекслета

Остались вопросы? Задайте их в разделе «Обсуждение»

Вам ответят команда поддержки Хекслета или другие студенты.

Для полного доступа к курсу нужен базовый план

Базовый план откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, проектам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.

Получить доступ
1000
упражнений
2000+
часов теории
3200
тестов

Открыть доступ

Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно.

  • 130 курсов, 2000+ часов теории
  • 1000 практических заданий в браузере
  • 360 000 студентов
Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и соглашаетесь с «Условиями использования»

Наши выпускники работают в компаниях:

Логотип компании Альфа Банк
Логотип компании Aviasales
Логотип компании Yandex
Логотип компании Tinkoff
Рекомендуемые программы

С нуля до разработчика. Возвращаем деньги, если не удалось найти работу.

Иконка программы Python-разработчик
Профессия
Разработка веб-приложений на Django
6 октября 10 месяцев
Иконка программы Java-разработчик
Профессия
Разработка приложений на языке Java
6 октября 10 месяцев
Иконка программы PHP-разработчик
Профессия
Разработка веб-приложений на Laravel
6 октября 10 месяцев
Иконка программы Node.js-разработчик
Профессия
Разработка бэкенд-компонентов для веб-приложений
6 октября 10 месяцев
Иконка программы Fullstack-разработчик
Профессия
Разработка фронтенд- и бэкенд-компонентов для веб-приложений
6 октября 16 месяцев
Иконка программы Инженер по тестированию
Профессия
Новый
Ручное тестирование веб-приложений
дата определяется 4 месяца

Используйте Хекслет по-максимуму!

  • Задавайте вопросы по уроку
  • Проверяйте знания в квизах
  • Проходите практику прямо в браузере
  • Отслеживайте свой прогресс

Зарегистрируйтесь или войдите в свой аккаунт

Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и соглашаетесь с «Условиями использования»