DB Logo

Database Design

by Rikky

Все категории нашего блога:

Основы баз данных (изображение статьи)

Основы баз данных

Проектирование БД простыми словами

Примеры баз данных (изображение статьи)

Примеры баз данных

Разбираем архитектуру БД на популярных примерах

Восстановление БД (изображение статьи)

Восстановление БД

Исправление частых ошибок без потери данных

Новости проекта (изображение статьи)

Новости проекта

Обновления, новые функции и прочие события

Примеры SQL запросов (изображение статьи)

Примеры SQL запросов

Основы SQL простыми словами, операторы SQL

Реляционные базы данных это одна из составляющих практически любого IT-проекта. В чём суть баз данных? Для чего они нужны?

Зачем нужна база данных?

Суть баз данных заключается в обеспечении удобного и эффективного способа хранения данных определённой структуры для IT-проектов. Чтобы было понятнее, рассмотрим пример:

Предположим у нас есть магазин, товарный ряд которого постоянно пополняется, и может меняться. Мы хотим разработать интернет-магазин, чтобы продавать товары онлайн. Если мы пропишем все товары в коде интернет-магазина, то для добавления или редактирования каждого товара нам придётся лезть в код, и копошиться в нём, чтобы совершить нужное действие.

Вместо этого мы можем хранить информацию о наших товарах в базе данных, а в коде интернет-магазина прописать получение товаров из базы. Теперь нам не нужно лезть в код, чтобы управлять товарами - мы можем либо управлять ими в интерфейсе СУБД (система управления базами данных), либо разработать систему управления контентом (CMS - content management system), чтобы через графический интерфейс легко и быстро производить все необходимые манипуляции с товарами.

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

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

Это означает, что мы можем записать несколько к примеру товаров, а получить данные только тех товаров название которых содержит определенное слово. Или цена которых больше или меньше определённого числа. Или товары которые добавлены раньше/позже определенной даты. Или одновременно применить все эти условия.

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

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

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

Что такое база данных с программной точки зрения?

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

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

Также чтобы использовать БД, нужно настроить к ней доступ: для этого добавляются пользователи базы данных. При установке СУБД автоматически добавляется главный пользователь «root», позже можно добавить других пользователей, и даже настроить им разрешения: можно сделать например так, что если пользователь подключится к базе, он бы мог только читать данные, а записывать не мог.

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

Работа с базами данных происходит при помощи специальных команд, позволяющих выполнять классические операции получения, добавления, редактирования и удаления данных (сокращенно CRUD - create, read, update, delete).

Эти команды можно слать при помощи программного кода (самый распространённый случай, для чего нам база и нужна), также писать напрямую в консоль запущенной субд, либо используя графический интерфейс.

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

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

Более распространённый случай - когда на одном сервере располагается и база данных, и backend проекта (и возможно frontend тоже). В этом случае к базе не открывают прямой доступ из интернета. Бэкенд подключается к базе по локальной сети, и производит манипуляции с данными.

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

Структура данных в БД

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

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

И для каждой таблицы следует продумать её «столбцы». Если мы собираемся хранить товары, какие данные мы будем хранить? Название? Да, один столбец. Стоимость? Да, ещё один столбец. Категорию товара? Да, значит ещё один столбец.

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

Когда мы записываем данные в таблицу, каждая запись - это строка. Она хранит информацию о каком то одном определенном объекте. В таблице с товарами каждая строка - это информация об одном конкретном товаре. Также каждая запись в базе данных как правило включает в себя ещё один столбец: ID, в котором хранится уникальный идентификатор (это может быть число, или хэш). В одной таблице нет повторяющихся ID, что позволяет зная ID конкретной записи со 100% точностью получить информацию именно об этой записи.

А почему реляционные? Что это вообще значит?

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

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

Структуру базы данных необходимо продумать заранее!

Этап на котором мы определям структуру базы данных (какие там будут таблицы, и какие в таблицах будут столбцы) называется проектированием архитектуры базы данных. Он очень ответственный и серьёзный, потому что от правильного проектирования зависит будет ли проект функционировать должным образом и без тормозов даже при высокой нагрузке.

Если база данных спроектирована неверно, это может обнаружиться как сразу так и не сразу, и может повлечь за собой необходимость полностью переделать базу данных, что повлечёт необходимость и переписывать заново код взаимодействующий с базой.

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

А где можно спроектировать базу данных?

Попробуйте воспользоваться новым визуальным конструктором под названием Database Design.

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

Рассмотрим как это выглядит:

Смотреть видео
Где можно спроектировать базу данных? В Database Design!

Схему из приложения Database Design в дальнейшем можно выгрузить в качестве SQL-дампа скачав его по ссылке.

Файл дампа может использоваться для воссоздания точной структуры реляционной БД в любой нормальной SQL-подобной системы управления базами данных (СУБД), например MySQL.

И даже код SQL-запросов не придётся для этого писать!

Работать в Database Design —
одно удовольствие!

Подойдёт как профессионалам
так и студентам для организации хранения и анализа а также наглядного представления моделей бд своих проектов.

В Database Design можно работать из браузера с любого устройства, даже со смартфона, скачивать и устанавливать ничего не нужно!

Перейти к конструктору
Database Design

Другие статьи
и новости проекта:

Как в SQL удалить данные из таблицы: запрос SQL DELETE FROM WHERE

Как в SQL удалить данные из таблицы: запрос SQL DELETE FROM WHERE

Примеры SQL запросов

Обучение SQL с примерами: как написать SQL команды, чтобы удалить строку из таблицы базы данных? Объясняю удаление строк SQL, как удалить запись SQL, простыми словами без воды. Запрос DELETE FROM WHERE это легко! Подойдёт для MySQL, PostgresQL, MS SQL, SQLite, Oracle, MariaDB и др. SQL СУБД. Читать статью

Как в SQL изменить данные в записи таблицы: запрос SQL UPDATE

Как в SQL изменить данные в записи таблицы: запрос SQL UPDATE

Примеры SQL запросов

Обновление SQL записей, как написать SQL команды, чтобы изменить строку в таблице? Объясняю как редактировать данные в кортеже базы данных SQL, простыми словами без воды. Команда UPDATE SET это легко! Подойдёт для MySQL, PostgresQL, MS SQL, SQLite, Oracle, MariaDB и других SQL СУБД. Читать статью

Как в SQL добавить строку в таблицу: запрос SQL INSERT INTO

Как в SQL добавить строку в таблицу: запрос SQL INSERT INTO

Примеры SQL запросов

Обучение SQL с примерами: как написать SQL команды, чтобы добавить данные в таблицу? Объясняю как вставить данные в таблицу базы данных, простыми словами без воды. Команда INSERT INTO — это легко! Подойдёт для MySQL, PostgresQL, MS SQL, SQLite, Oracle, MariaDB и других SQL СУБД. Читать статью

Как в SQL получить данные из таблицы: запрос SQL SELECT FROM WHERE

Как в SQL получить данные из таблицы: запрос SQL SELECT FROM WHERE

Примеры SQL запросов

Обучение SQL с примерами: как написать SQL команды, чтобы получить данные из базы данных? Объясняю как достать информацию из базы данных, простыми словами без воды. Команда SELECT FROM WHERE это легко! Подойдёт для MySQL, PostgresQL, MS SQL, SQLite, Oracle, MariaDB и других SQL СУБД. Читать статью

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

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

Новости проекта

Присвоив цвет таблице, можно быстро назначить другой таблице этот же цвет. Каждому цвету можно присвоить название, создав цветовую группу таблиц. Можно показать только одну группу таблиц, скрыв остальные. Пояснение к таблице всегда отображается над таблицей. Исправлен баг масштабирования. Читать статью

Добавлено: удобный выбор таблицы и столбца для связи, возможность переключаться между тёмной и светлой темами, и 2FA-авторизация

Добавлено: удобный выбор таблицы и столбца для связи, возможность переключаться между тёмной и светлой темами, и 2FA-авторизация

Новости проекта

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

Реляционные базы данных это одна из составляющих практически любого IT-проекта. В чём суть баз данных? Для чего они нужны?

Реляционные базы данных это одна из составляющих практически любого IT-проекта. В чём суть баз данных? Для чего они нужны?

Основы баз данных

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

Основы проектирования БД: как создать связь «один к одному» (1:1) и когда нужен этот тип связи, простыми словами на примере

Основы проектирования БД: как создать связь «один к одному» (1:1) и когда нужен этот тип связи, простыми словами на примере

Основы баз данных

Уроки по реляционным базам данных, обучение базам данных онлайн. Как создать связь «один к одному» (1:1) и когда нужен этот тип связи. Изучение структуры реляционных баз данных с примерами SQL-запросов. Читать статью

Добавлены типы данных, расширенные настройки и экспорт FOREIGN, и переключение чувствительности мышки и тачпада

Добавлены типы данных, расширенные настройки и экспорт FOREIGN, и переключение чувствительности мышки и тачпада

Новости проекта

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

Основы проектирования БД: как создать связь «многие ко многим» (М:М) и когда нужен этот тип связи, простыми словами на примере

Основы проектирования БД: как создать связь «многие ко многим» (М:М) и когда нужен этот тип связи, простыми словами на примере

Основы баз данных

Уроки по реляционным базам данных, обучение базам данных онлайн. Как создать связь «многие ко многим» (М:М) и когда нужен этот тип связи. Изучение структуры реляционных баз данных с примерами SQL-запросов. Читать статью

Добавлены настройки общего доступа!

Добавлены настройки общего доступа!

Новости проекта

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

Основы проектирования БД: нормализация данных простыми словами, для чего нужны связи в реляционной БД, связь «один ко многим»

Основы проектирования БД: нормализация данных простыми словами, для чего нужны связи в реляционной БД, связь «один ко многим»

Основы баз данных

Уроки по реляционным базам данных, обучение базам данных онлайн. Связь one-to-many она же «‎один ко многим» (1:М), объясняю на примерах, простыми словами. Читать статью

Не запускается MySQL: Ошибка MySQL Shutdown Unexpectedly

Не запускается MySQL: Ошибка MySQL Shutdown Unexpectedly

Восстановление БД

Всё работало как часы, и вдруг MySQL вылетает с ошибкой? Рассказываю как устранить проблему без потери данных. Читать статью