Реляционная модель данных
Информация в реляционной базе данных хранится в одной или нескольких связанных таблицах.
Реляционная модель данных — это способ структурирования, при котором данные представлены в форме таблиц. Таблица состоит из строк и столбцов. Каждая строка имеет одинаковую структуру и содержит значения, соответствующие определённым столбцам.
Структура таблицы и основные термины
Отдельная таблица (в терминах модели —
отношение, relation) обычно представляет совокупность однотипных реальных объектов, абстрактных концепций или событий. Каждая запись (строка) идентифицирует один объект группы.
Строки называют
записями или
кортежами, столбцы —
полями или
атрибутами. Каждая ячейка таблицы содержит одно элементарное значение.
Свойства реляционной таблицы
1.
Атомарность. На пересечении строки и столбца должно находиться только одно значение. Нельзя хранить в одной ячейке составную информацию (например, фамилию, имя и отчество слитно), если это не продиктовано потребностями предметной области. Атомарность определяется не столько природой данных, сколько задачами: если требуется обращаться к отдельным частям (например, к имени), их следует выносить в отдельные атрибуты.
2.
Однородность столбцов. Все значения в одном столбце принадлежат к одному типу и берутся из одного
домена (множества допустимых значений). Нельзя в столбце «Фамилия» хранить имена, а в столбце «Возраст» — год рождения.
3.
Уникальность строк. В таблице не может быть двух полностью одинаковых строк. Каждая запись должна отличаться хотя бы по одному атрибуту. Инструментом обеспечения уникальности служит
первичный ключ (primary key) — один или несколько атрибутов, чья комбинация значений уникально идентифицирует строку.
4.
Произвольный порядок строк и столбцов. Порядок размещения записей и атрибутов на физическом уровне хранения не имеет значения. СУБД может показывать их в порядке ввода, но это лишь удобство для пользователя. Физически строки хранятся в произвольном порядке (например, в виде «кучи» — heap).
Отношение и таблица: абстракция и реализация
Таблица, обладающая перечисленными свойствами, служит точным прообразом математического двумерного множества —
отношения. Отношение — это абстрактный математический объект, а таблица — его конкретное изображение.
Основные различия:
• В отношении строки и столбцы принципиально не упорядочены. В таблице же строки отображаются сверху вниз, столбцы — слева направо.
• В отношении не может быть повторяющихся строк. В таблице при нарушении ограничений они могли бы появиться, но первичный ключ этого не допускает.
Ключи и индексы
Первичный ключ гарантирует уникальность каждой строки. Если ключ образуется композицией нескольких атрибутов, его называют
составным (composite key).
Для ускорения поиска и выполнения запросов применяются
индексы:
•
Кластеризованный индекс (clustered index) строится на первичном ключе.
•
Некластеризованные индексы (non-clustered index) создаются на остальных атрибутах.
Индексы хранятся в упорядоченном виде (часто как сбалансированные деревья) и позволяют быстро находить нужные записи без полного перебора таблицы. Зная значение ключа или проиндексированного поля, СУБД ограничивает область поиска.
Связи между таблицами
Связь устанавливается через совпадающие значения полей. Обычно связь идёт от
первичного ключа родительской таблицы к соответствующему полю дочерней. Это поле в дочерней таблице называется
внешним ключом (foreign key, FK). Значения внешнего ключа могут быть только из множества значений первичного ключа родительской таблицы (или NULL, если допустимо). Так обеспечивается ссылочная целостность.
Типы данных в реляционных базах данных
Тип данных определяет, какие значения могут храниться в столбце и какие операции над ними допустимы, аналогично типам в языках программирования.
Выделяют несколько категорий:
•
Общие типы — целые и вещественные числа, строки, дата/время.
•
Денежные типы (money, currency) — специализированные для работы с финансами, учитывают особенности округления и точности.
•
Темпоральные типы — позволяют хранить информацию, изменяющуюся во времени, отслеживать историю и восстанавливать состояние на определённую дату.
•
Абстрактные типы данных (abstract data types) — могут принимать значения разной природы (число, строка, изображение), когда заранее неизвестно, что будет записано. Активно развиваются для повышения гибкости реляционных систем.
Основные понятия реляционной модели
Ключевыми понятиями являются: тип данных, домен, атрибут, кортеж, первичный ключ и отношение.
Краткие итоги
В основе реляционных баз данных лежит табличное представление информации, где строки моделируют отдельные сущности, а столбцы — их характеристики. Это представление не произвольно, а подчинено строгой системе правил, обеспечивающих целостность и однозначность данных. Первым таким правилом выступает атомарность: каждая ячейка должна содержать элементарное, с точки зрения решаемой задачи, значение. Если предметная область требует оперировать отдельными частями составного атрибута (например, именем и фамилией), они обязаны быть выделены в самостоятельные столбцы; в противном случае допустимо хранение слитной строки. Так принцип атомарности становится не догмой, а проектным решением, производным от функциональных потребностей. Однородность столбцов требует, чтобы все значения атрибута черпались из одного домена — множества допустимых значений, имеющего определённый тип. Это исключает смешение разнородных данных в одной колонке и закладывает основу для корректных операций сравнения и вычислений. Уникальность строк, гарантированная первичным ключом, не позволяет появиться дубликатам, благодаря чему каждая запись получает однозначный идентификатор. Уже на этом этапе формируется фундаментальное различие между абстрактным математическим отношением и его физической реализацией — таблицей. В отношении атрибуты и кортежи не имеют порядка, тогда как таблица, ориентированная на человека, отображает их упорядоченно. Это разграничение позволяет отделить логический дизайн базы от деталей хранения.
Когда определена структура и введены идентификаторы, возникает задача эффективного доступа. Первичные ключи, будучи уникальными, сами по себе не гарантируют быстрого поиска среди миллионов записей. Именно для этого служат индексы — вспомогательные структуры, организованные преимущественно в виде сбалансированных деревьев. Кластеризованный индекс на первичном ключе физически упорядочивает данные, а некластеризованные индексы на других атрибутах создают отдельные объекты со ссылками на строки, радикально сокращая пространство перебора при выполнении запросов. Так практическая производительность встраивается в логику модели.
Следующий логический шаг — переход от изолированных таблиц к связанным наборам. Связывание реализуется через механизм внешних ключей: столбец дочерней таблицы принимает только те значения, которые присутствуют в первичном ключе родительской. Это не просто технический приём, а декларативное правило, поддерживающее ссылочную целостность всей совокупности данных. Без него распадаются любые многомерные аналитические конструкции.
Наконец, все рассмотренные элементы — домены, атрибуты, ключи — обретают конкретное наполнение благодаря типам данных. Выбор типа диктует не только формат хранения, но и семантику операций. Специализированные денежные типы корректно обрабатывают округления, неприемлемые для обычных чисел с плавающей точкой; темпоральные позволяют восстанавливать состояние на любой момент времени, что критично для аудита и версионности; абстрактные типы размыкают жёсткую статическую типизацию, позволяя реляционной системе работать с данными, структура которых не полностью предопределена. Именно типы данных цементируют мост между математической строгостью модели и хаосом реальных бизнес-требований, делая реляционный подход одновременно надёжным и гибким.
1. Реляционная модель организует данные в виде таблиц, где строки — записи (кортежи), а столбцы — атрибуты.
2. Каждая таблица описывает совокупность однотипных сущностей или событий.
3. Атомарность ячеек требует неделимости значений, но трактуется исходя из задач предметной области.
4. Однородность столбца означает, что все значения принадлежат одному типу и берутся из общего домена.
5. Уникальность строк гарантируется первичным ключом, исключающим дублирование записей.
6. Порядок строк и столбцов при хранении произволен; упорядоченный вид в интерфейсе — лишь удобство для пользователя.
7. Таблица есть физическая реализация математического отношения, в котором отсутствует упорядоченность и дубликаты.
8. Первичный ключ может быть простым или составным, однозначно идентифицирует кортеж и служит основой для индексов.
9. Кластеризованные индексы строятся на первичных ключах, некластеризованные — на других атрибутах; оба ускоряют выполнение запросов.
10. Связь таблиц реализуется внешними ключами, значения которых ограничены множеством значений первичного ключа родительской таблицы.
11. Типы данных включают общие, денежные, темпоральные и абстрактные, каждая категория решает специфические задачи хранения и обработки.
12. Ключевые понятия модели — отношение, кортеж, атрибут, домен, первичный ключ и тип данных — образуют фундамент проектирования реляционных баз.
1. Что такое реляционная модель данных и в какой форме в ней хранится информация?
2. Какие структурные элементы составляют реляционную таблицу и как они соотносятся с терминами «кортеж» и «атрибут»?
3. Что означает свойство атомарности и как его применение зависит от потребностей предметной области?
4. Почему все значения в одном столбце должны быть однородными и принадлежать одному домену?
5. Зачем нужен первичный ключ и чем простое поле отличается от составного ключа?
6. В чём заключается различие между математическим отношением и таблицей как его реализацией?
7. Каким образом порядок строк и столбцов в интерфейсе СУБД соотносится с физическим хранением данных?
8. Какую задачу решают индексы и чем кластеризованный индекс отличается от некластеризованного?
9. Каким образом устанавливается связь между двумя таблицами в реляционной базе данных?
10. Что такое внешний ключ и какие ограничения накладываются на его значения?
11. Какие категории типов данных выделяются в современных СУБД и для чего предназначены денежные и темпоральные типы?
12. Перечислите основные понятия реляционной модели, необходимые для понимания её устройства.