"Информатика (базовый уровень)", Гейн А.Г., Юнерман Н.А.
Реляционная модель описывает данные как отношения, которые обычно выглядят как таблицы. В таблице столбцы задают свойства объектов, строки содержат сведения об отдельных объектах, а значения подчиняются общим правилам. Первичный ключ позволяет однозначно отличать одну запись от другой. Несколько таблиц можно связать общими ключевыми значениями, чтобы хранить данные о разных типах объектов отдельно и удобно обрабатывать их запросами.
Текст подготовлен нейронной сетью по теме параграфа и не заменяет учебник — важные факты и формулировки сверяйте с ним.
Реляционная модель представляет данные как отношения, которые обычно отображаются таблицами. В ней информация организована не в произвольном списке, а по строгим правилам: столбцы описывают свойства, а строки содержат отдельные сведения. Такая модель нужна, чтобы данные было удобно хранить, искать, изменять и связывать.
Отношение — таблица с данными об объектах одного типа. Например, отношение «Книги» может содержать сведения только о книгах, а его столбцы — название, автора и год издания. Это помогает не смешивать в одной структуре объекты с разным набором свойств.
Атрибут — столбец отношения, описывающий одно свойство объектов. Все значения в таком столбце должны иметь один смысл: в столбце «Год издания» нельзя одновременно хранить имена авторов. Понятие атрибута нужно, чтобы программа однозначно понимала и обрабатывала каждое поле.
Первичный ключ — атрибут или набор атрибутов, однозначно определяющий строку таблицы. Например, уникальный номер ученика позволяет отличить двух учеников с одинаковыми фамилиями. Ключ нужен для точного поиска записи и для связывания таблицы с другими таблицами.
Чтобы получить отношение, сначала определяют, о каких объектах будут храниться данные, а затем выбирают их важные характеристики. Для книг это могут быть название, автор и год издания. После этого каждому объекту отводят одну строку, потому что строка должна описывать именно один экземпляр, а не смесь разных объектов.
Один столбец хранит значения одного атрибута, поскольку иначе одинаковое место таблицы имело бы разные смыслы. Если в столбце «Год» часть ячеек содержит числа, а часть — фамилии, сортировка и вычисления становятся неоднозначными. Поэтому значения должны относиться к одному свойству и иметь совместимый тип: числовой, текстовый, логический или другой.
Первичный ключ отличает строки по устойчивому признаку, а не по их положению. Даже если у двух учеников совпадают имя, фамилия и класс, разные номера позволят выбрать нужную запись. Без ключа изменение данных может привести к тому, что строку нельзя будет надёжно найти или связать с другой таблицей.
Порядок строк и столбцов не определяет смысл отношения, потому что важны сами значения и названия атрибутов. Таблицу можно отсортировать или переставить её столбцы, не изменив описываемые объекты. Повторяющиеся строки также не добавляют сведений: они полностью совпадают и потому должны быть исключены.
Данные о разных типах объектов хранят в отдельных связанных таблицах, чтобы не повторять одну и ту же информацию. Например, сведения об учениках можно отделить от сведений о кружках, а связь задать через номера учеников. Совпадающие значения ключей позволяют запросу сопоставить строки и получить общую информацию.
| Элемент | Как представлен в таблице | Назначение |
|---|---|---|
| Отношение | Таблица | Хранит данные об объектах одного типа |
| Атрибут | Столбец | Описывает одно свойство объектов |
| Запись (кортеж) | Строка | Содержит сведения об одном объекте |
| Домен | Множество допустимых значений атрибута | Задаёт, какие значения и какого типа можно хранить |
| Первичный ключ | Один атрибут или набор столбцов | Однозначно определяет запись |
При чтении таблицы сначала определите, какие объекты она описывает, затем рассмотрите заголовки столбцов и отдельные строки. Домен помогает проверить допустимость значения, а первичный ключ — найти конкретную запись. Эти элементы связаны: отношение состоит из записей, записи имеют атрибуты, а ключ выделяет запись среди остальных.
Условие: для таблицы «Книги» с полями «Название», «Автор», «Год издания» укажите отношение, атрибуты и записи. Нужно перевести обычные элементы таблицы на язык реляционной модели. Сначала определим, что описывает вся таблица, а затем разделим её на столбцы и строки.
Ответ: отношение — таблица «Книги»; атрибуты — её три столбца; записи — строки с данными об отдельных книгах.
Условие: в таблице «Ученики» есть поля «Фамилия», «Имя», «Класс» и «Номер ученика». Нужно выбрать первичный ключ. Проверим, какое поле может однозначно отличать любую запись и сохранять это свойство при совпадении других данных.
Ответ: первичным ключом может быть «Номер ученика», потому что его значение однозначно определяет запись и не зависит от совпадения фамилий, имён или классов.
Условие: спроектируйте таблицы «Ученики» и «Кружки», чтобы хранить сведения об учениках и посещаемых ими кружках. Нужно разделить объекты по типам и указать, какие поля обеспечат связь. Отдельная таблица для каждого типа уменьшит повторение данных.
Ответ: таблицы связываются через общие ключевые значения, записанные в «Посещениях». Так можно узнать кружки конкретного ученика и учеников, посещающих конкретный кружок.
Номер строки принимают за идентификатор. Его выбирают из-за внешнего сходства с номером записи, но сортировка или удаление строк меняет этот номер. Проверьте себя: сохранится ли значение при перестановке строк; если нет, нужен отдельный ключ.
Первичным ключом выбирают повторяющийся атрибут. Фамилия, название класса или город могут совпадать у разных записей, поэтому такой столбец не выделяет одну строку. Проверьте таблицу на дублирование значений и убедитесь, что для каждой строки находится только один объект.
Смешивают атрибут и запись. Атрибут — это столбец с одним свойством, а запись — строка с полным набором свойств объекта. Чтобы не ошибиться, спросите себя: речь идёт о вертикальном поле или о горизонтальной строке.
Хранят в одном атрибуте разные смыслы или типы. Например, в поле «Дата» помещают и даты, и комментарии, из-за чего сравнение и обработка становятся ненадёжными. Проверьте, можно ли дать столбцу одно точное название и задать для всех его значений один тип.
До изучения реляционной модели нужно уметь представлять сведения в таблицах и различать строки и столбцы. Эти навыки помогают правильно определить атрибуты, записи и ключи.
Реляционная модель лежит в основе проектирования баз данных. Она также нужна при составлении запросов: по ключам и значениям атрибутов можно отбирать, соединять и упорядочивать данные.
Чем отношение отличается от обычной таблицы?
В реляционной модели отношение — это таблица, подчиняющаяся строгим правилам: строки не дублируются, каждый столбец имеет один смысл, а порядок строк и столбцов не важен. Обычная таблица может использоваться просто для оформления данных и не всегда удовлетворяет этим требованиям.
Может ли таблица иметь несколько первичных ключей?
У таблицы может быть только один первичный ключ. Однако он может состоять из нескольких атрибутов, а кроме него могут существовать другие уникальные наборы полей, называемые кандидатами в ключи.
Почему нельзя использовать номер строки как первичный ключ?
Порядок строк может измениться после сортировки, добавления или удаления записей. Поэтому номер строки не является постоянным свойством объекта и не подходит для его надёжной идентификации.
Обязательно ли в таблице хранить только один атрибут?
Нет, отношение обычно содержит несколько атрибутов, описывающих разные свойства объектов. Главное, чтобы каждый столбец имел один смысл, а каждая строка относилась к одному объекту.
Как связать между собой две таблицы?
В таблицах выделяют ключевые поля с согласованными значениями. Обычно первичный ключ одной таблицы записывают в другой как внешний ключ, после чего строки можно сопоставлять по совпадающим значениям.
§ 34. Реляционные модели