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

Relational databases organize data into tables with predefined schemas, establishing relationships between these tables through keys, enabling efficient data re...

Relational databases — это тип базы данных, который хранит и предоставляет доступ к точкам данных, связанным друг с другом. Они основаны на реляционной модели, интуитивно понятном и простом способе представления данных в таблицах. Relational [database](/ru/terms/relational-database) организует данные в одну или несколько таблиц (или 'отношений') из столбцов и строк, причем каждая строка идентифицируется уникальным ключом. Каждый столбец таблицы содержит определенный тип данных (например, 'name', 'age', 'address'), а каждая строка представляет собой запись со значением для каждого столбца. Связи между таблицами устанавливаются с помощью foreign keys, которые являются столбцами в одной таблице, ссылающимися на primary key (уникальный идентификатор) в другой таблице. Эта структура позволяет эффективно запрашивать и манипулировать данными с помощью Structured Query Language (SQL). Основные преимущества включают целостность данных (обеспечиваемую ограничениями, такими как primary keys, foreign keys и типы данных), согласованность данных, простоту извлечения данных с помощью joins и поддержку сложных транзакций (свойства ACID: Atomicity, Consistency, Isolation, Durability). Примеры включают MySQL, PostgreSQL, Oracle Database и SQL Server.

        graph LR
  Center["Реляционные базы данных (РБД)"]:::main
  Pre_data_structures["data-structures"]:::pre --> Center
  click Pre_data_structures "/terms/data-structures"
  Pre_logic["logic"]:::pre --> Center
  click Pre_logic "/terms/logic"
  Center --> Child_sql["sql"]:::child
  click Child_sql "/terms/sql"
  Center --> Child_postgresql["postgresql"]:::child
  click Child_postgresql "/terms/postgresql"
  Rel_nosql["nosql"]:::related -.-> Center
  click Rel_nosql "/terms/nosql"
  Rel_data_warehouse["data-warehouse"]:::related -.-> Center
  click Rel_data_warehouse "/terms/data-warehouse"
  Rel_relational_database["relational-database"]:::related -.-> Center
  click Rel_relational_database "/terms/relational-database"
  classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
  classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
  classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
  classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
  linkStyle default stroke:#4b5563,stroke-width:2px;

      

🧒 Простыми словами

📊 Представьте большую книгу Excel, где каждый лист — это отдельная категория (например, 'Клиенты' или 'Заказы'). Вместо того чтобы копировать адрес клиента в каждый заказ, вы просто ставите 'ID клиента'. Компьютер использует этот код, чтобы 'связать' данные. Это делает систему надежной и предотвращает ошибки.

🤓 Expert Deep Dive

Главной чертой систем управления реляционными базами данных (СУРБД) является соблюдение принципов ACID: Атомарность, Согласованность, Изолированность и Долговечность. Для предотвращения аномалий используется Нормализация — процесс разбиения больших таблиц на более мелкие логические единицы. Современные СУРБД, такие как PostgreSQL, используют механизм MVCC для одновременной обработки тысяч запросов без потери производительности.

🔗 Связанные термины

Предварительные знания:
Чтобы узнать больше:

📚 Источники