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

Структура реляционной базы данных Основы реляционных баз данных

PostgreSQL — это СУБД, созданная для работы с реляционными базами данных. Что такое «реляционная», мы рассмотрим в будущем уроке. А в этом разберем, как устроены такие базы данных.

Структура реляционной базы данных

Данные в реляционных базах данных хранятся в таблицах. Их структура напоминает Microsoft Excel. Каждая строка в таблице — это связанный набор данных, который относится к одному предмету. Например, в таблице можно посмотреть все детали об одном сотруднике — его фамилию, имя, номер, отдел, зарплату, год рождения, адрес и телефон:

Microsoft Excel

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

У таблиц в базе данных есть определенная структура. Она включает:

  • Название таблицы — уникально в рамках одной базы данных. Имя таблицы и ее структура задаются при создании, но их можно изменить впоследствии
  • Столбцы или поля — располагаются в строго определенном порядке, и у каждого поля уникальное имя в рамках одной таблицы
  • Тип данных — сопоставляется каждому столбцу. Тип данных ограничивает набор допустимых значений, которые можно присвоить столбцу, и определяет смысловое значение данных для вычислений. Например, в столбец числового типа нельзя записать обычные текстовые строки, но его данные можно использовать в математических вычислениях, и наоборот
  • Строки — их число переменно и отражает текущий объем данных. В отличие от таблиц в Exсel, в таблицах реляционных баз данных нет никаких гарантий относительно порядка строк в таблице. Он может быть любым, и его можно задать с помощью языка SQL, который рассмотрим позже. Объем данных в разных таблицах сильно отличается — от нескольких штук до миллиардов записей

Пример таблицы с именем users:

Структура

Включает в себя имена полей и их типы. Структура определяет столбцы:

first_name string
last_name  string
email      string
created_at datetime

Содержание

Включает в себя данные. Содержание определяет строки:

| first_name | last_name |       email       | created_at |
|------------|-----------|-------------------|------------|
| Сергей     | Петров    | serj@gmail.com    | 11.10.2005 |
| Иван       | Сидоров   | sidorov@yahoo.com | 03.08.2000 |
| Виктор     | Курганов  | vkurg@indbox.com  | 23.12.2011 |

first_name, last_name, email и created_at — это имена столбцов. Строки содержат данные по каждому столбцу, а в поле created_at установлен тип данных datetime, поэтому туда нельзя записать текст.

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

Правила именования сущностей базы данных

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

В этом курсе мы используем именование, принятое во фреймворке Rails и его ORM (ActiveRecord). Оно состоит из нескольких правил:

  • Все имена в нижнем регистре
  • Для имен из нескольких слов используется snake_case — когда слова разделяются подчеркиванием _ без пробелов
  • Имя таблицы во множественном числе

В отличие от Excel, где ввод данных и отображение визуальные, в СУБД у данных нет никакого представления. Они вводятся и выбираются с помощью команд. При этом существуют специальные клиенты, которые используются, чтобы визуализировать управление базами данных. Они бывают платными и бесплатными. Из бесплатных в мире PostgreSQL наиболее популярен PgAdmin:

PgAdmin

Рекомендуем поставить его и поэкспериментировать внутри.

Управлять структурой базы данных и данными внутри таблиц — две разные задачи. При этом они выполняются одним инструментом — языком SQL.

Язык SQL

SQL (Structured Query Language) — специализированный язык, который разработали, чтобы управлять данными в реляционных СУБД.

-- Пример запроса, который извлекает
-- информацию о пользователях из таблицы users
SELECT * FROM users;

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

Когда вы научитесь работать с одной базой, сможете спокойно переключиться на другую. Базы данных поддерживают основной SQL и дополняют его своими возможностями. На протяжении курса мы будем использовать только стандартные возможности SQL, например, управлять ролями и их правами, создавать базы данных, обновлять данные. Такие основные возможности должен знать и понимать каждый программист.

Выводы

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

Чтобы управлять структурой базы данных и данными внутри таблиц, используют язык SQL. Дальше в курсе мы будем на практике применять его стандартные возможности.


Самостоятельная работа

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

  1. Убедитесь, что сервер PostgreSQL запущен и работает на вашем компьютере
  2. Скачайте и установите pgAdmin
  3. Следуйте инструкциям из подробного гайда с иллюстрациями про GUI app (2 пункт гайда) и подключитесь к вашей базе данных с помощью pgAdmin
  4. Изучите интерфейс программы и имеющуюся базу данных

Дополнительные материалы

  1. Установка пароля пользователя в PostgreSQL

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

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

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

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

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

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

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

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

Логотип компании Альфа Банк
Логотип компании Aviasales
Логотип компании Yandex
Логотип компании Tinkoff

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

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

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

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