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

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

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

СУБД, базы данных и таблицы

Возьмем для примера интернет-магазин. В нем есть тысячи карточек товаров. В каждой карточке есть название, производитель, ключевые характеристики и цена.

Все это — данные, которые оформлены и представлены покупателю в наглядном виде:

Карточка товара

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

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

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

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

Таким образом, каждая таблица хранит в себе данные, похожие по смыслу.

Например, в одной таблице мы храним информацию о товарах, в другой — о клиентах, и так далее.

Например, так может выглядеть таблица с данными о товарах — информации о клиентах здесь нет:

Таблица с данными о товарах

Сложность СУБД

Программы Postgresql, Mysql, Oracle, SQL Server являются СУБД — Системой Управления Базами Данных. СУБД не то же самое, что и база данных (БД). БД — это хранилище данных, у которых определенная внутренняя структура. Но кто-то должен ее обслуживать: создавать, обновлять, записывать в нее данные, выбирать их. Именно этим и занимается СУБД — специальная программа, которую необходимо установить на ту машину, где планируется размещать базу данных.

Когда компьютеры только появились, задачу хранения данных каждый решал по-своему. Самый простой способ хранить данные — положить их в файл. Но тогда неизбежно встанут вопросы:

  • Как потом найти эти данные?

  • А если разные данные имеют разную структуру и разный размер?

  • А что, если данные понадобятся нескольким пользователям одновременно?

  • А что, если во время обновления произойдет сбой?

  • А если данных станет настолько много, что они не поместятся в один файл?

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

СУБД — невероятно сложные программы, к которым предъявляются практически максимальные требования по надежности, скорости работы и эффективности. Неспроста считается, что если СУБД меньше 10 лет, то это слишком молодой продукт для использования в серьезных приложениях.

Как устроены СУБД

СУБД реализуется как клиент-серверное приложение:

  • Сервером выступает сама СУБД — она управляет файлами баз данных, принимает запросы от клиентов и выполняет их команды

  • Клиентом считается любое приложение, желающее взаимодействовать с базой данных.

Клиентские приложения могут быть разнообразны по форме:

  • Текстовая утилита

  • Графическое приложение

  • Веб-сервер, использующий базу данных для отображения веб-страниц

  • Специализированный инструмент для обслуживания баз данных

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

Иногда сервер и клиент располагаются на одной машине. Это удобно во время разработки:

Клиент Серверная Архитектура СУБД

Выводы

В этом уроке мы познакомились с СУБД, базами данных и таблицами. Повторим ключевые выводы:

  • Похожие по смыслу данные хранятся в отдельных таблицах

  • Таблицы с данными об одном проекте объединяют в базу данных. Другими словами, база данных — это просто набор таблиц

  • Чтобы удобно работать с базами данных, разработчики используют СУБД.

  • Базы данных реализуют клиент-серверную архитектуру. Для работы с базами используют специальные программы.

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


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

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

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

Об обучении на Хекслете

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

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

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

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

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

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

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

Логотип компании Альфа Банк
Логотип компании Aviasales
Логотип компании Yandex
Логотип компании Tinkoff
Рекомендуемые программы
профессия
от 25 000 ₸ в месяц
Разработка веб-приложений на Django
10 месяцев
с нуля
Старт 7 ноября
профессия
от 14 960 ₸ в месяц
Ручное тестирование веб-приложений
4 месяца
с нуля
Старт 7 ноября
профессия
от 25 000 ₸ в месяц
Разработка приложений на языке Java
10 месяцев
с нуля
Старт 7 ноября
профессия
от 24 542 ₸ в месяц
новый
Сбор, анализ и интерпретация данных
9 месяцев
с нуля
Старт 7 ноября
профессия
от 25 000 ₸ в месяц
Разработка веб-приложений на Laravel
10 месяцев
с нуля
Старт 7 ноября
профессия
от 39 525 ₸ в месяц
Разработка фронтенд- и бэкенд-компонентов для веб-приложений
16 месяцев
с нуля
Старт 7 ноября
профессия
от 25 000 ₸ в месяц
Разработка бэкенд-компонентов для веб-приложений
10 месяцев
с нуля
Старт 7 ноября
профессия
новый
Автоматизированное тестирование веб-приложений на JavaScript
8 месяцев
c опытом
Старт 7 ноября

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

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

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

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

Задавайте вопросы, если хотите обсудить теорию или упражнения. Команда поддержки Хекслета и опытные участники сообщества помогут найти ответы и решить задачу