ТЕХНИЧЕСКИЕ НАВЫКИ

ДомойBA & SA RoadmapРеляционные базы данных (Relational Databases)

Реляционные базы данных (Relational Databases)

Что такое реляционные базы данных?

Реляционная база данных (РБД) – это набор данных с предопределенными связями между ними. Эти данные организованны в виде набора таблиц, состоящих из столбцов и строк. В таблицах хранится информация об объектах, представленных в базе данных. В каждом столбце таблицы хранится определенный тип данных, в каждой ячейке – значение атрибута. Каждая стока таблицы представляет собой набор связанных значений, относящихся к одному объекту или сущности. Каждая строка в таблице может быть помечена уникальным идентификатором, называемым первичным ключом, а строки из нескольких таблиц могут быть связаны с помощью внешних ключей. К этим данным можно получить доступ многими способами, и при этом реорганизовывать таблицы БД не требуется.

Транзакции и целостность

Транзакции в контексте реляционных баз данных (РБД) представляют собой единицы работы, которые состоят из одной или нескольких операций на базе данных.

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

Транзакции в РБД обеспечивают атомарность, согласованность, изолированность и долговечность данных, что обычно обозначается сокращением ACID.

Вот объяснение каждого из аспектов ACID:

  1. Атомарность (Atomicity): Транзакции считаются атомарными, если все операции внутри них выполняются как единое целое. Это означает, что либо все операции успешно завершаются, либо ни одна из них не выполняется. Нет промежуточных состояний, где только часть операций выполнена.
  2. Согласованность (Consistency): Транзакции должны обеспечивать соблюдение всех ограничений целостности базы данных. Если база данных находится в согласованном состоянии до выполнения транзакции, она должна оставаться в согласованном состоянии после ее выполнения.
  3. Изолированность (Isolation): Транзакции должны выполняться изолированно, то есть результат выполнения одной транзакции не должен быть видим другим транзакциям до ее завершения. Это предотвращает неконсистентные или непредсказуемые результаты, которые могут возникнуть при параллельном выполнении нескольких транзакций.
  4. Долговечность (Durability): После успешного завершения транзакции изменения, внесенные в базу данных, должны быть постоянными и устойчивыми к сбоям системы. Даже в случае отказа системы или перезагрузки, изменения, сделанные в рамках завершенной транзакции, должны сохраняться.

Проектирование реляционной модели

Проектирование реляционной модели базы данных включает определение сущностей (таблиц), их атрибутов (столбцов) и связей между ними. Вот общий процесс проектирования реляционной модели:

  1. Идентификация сущностей: Определите сущности, которые будут представлять объекты или концепции в вашей базе данных. Например, если вы создаете базу данных для онлайн-магазина, сущности могут включать товары, клиентов, заказы и т.д.
  2. Определение атрибутов: Для каждой сущности определите ее атрибуты, то есть свойства или характеристики, которые описывают эту сущность. Например, для сущности «товар» атрибуты могут включать название товара, цену, описание и т.д. Каждый атрибут становится столбцом в соответствующей таблице.
  3. Определение первичных ключей: Выберите один или несколько атрибутов каждой сущности в качестве ее первичного ключа. Первичный ключ уникально идентифицирует каждую запись в таблице. Обычно он состоит из одного или нескольких столбцов, значения которых не повторяются и не могут быть пустыми.
  4. Определение связей: Определите связи или отношения между сущностями. Связи могут быть однозначными или многозначными. Например, связь «один-ко-многим» может быть использована для связи «клиент-заказ», где один клиент может иметь множество заказов.
  5. Нормализация данных: Примените нормализацию данных для устранения избыточности и обеспечения структурной целостности базы данных. Важно понять нормальные формы, такие как первая нормальная форма (1NF), вторая нормальная форма (2NF) и третья нормальная форма (3NF).
  6. Создание таблиц: Создайте таблицы для каждой сущности, используя определенные атрибуты и первичные ключи. Убедитесь, что связи между таблицами отражены с помощью внешних ключей.
  7. Оптимизация производительности: При проектировании реляционной модели также следует учитывать производительность базы данных. Это включает создание правильных индексов, выбор подходящих типов данных, оптимизацию запросов и денормализацию.

ERD-диаграммы «Сущность-связь»

ERD (Entity-Relationship Diagram) или диаграмма сущность-связь — это графическое представление структуры и взаимосвязей между сущностями в базе данных.

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

Популярные реляционные базы данных:

  • PostgreSQL
  • MySql
  • MariaDb
  • MS SQL
  • Oracle
  • SQLite
Подписаться
Уведомить о
guest

0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии

Мы в Telegram

Наш официальный канал
Полезные материалы и тесты
Готовимся к собеседованию
Project- и Product-менеджмент

? Популярное

? Telegram-обсуждения

Наши подписчики обсуждают, как искали первую работу в QA. Некоторые ищут ее прямо сейчас.
Наши подписчики рассказывают о том, как не бояться задавать тупые вопросы и чувствовать себя уверенно в новой команде.
Обсуждаем, куда лучше податься - в менеджмент или по технической ветке?
Говорим о конфликтных ситуациях в команде и о том, как их избежать
$1100*
медианная зарплата в QA в июне 2023

*по результатам опроса QA-инженеров в нашем телеграм-канале

Собеседование

19%*
IT-специалистов переехало или приняло решение о переезде из России по состоянию на конец марта 2022

*по результатам опроса в нашем телеграм-канале

live

Обсуждают сейчас