это атрибут, или набор из минимального числа атрибутов, который однозначно идентифицирует конкретный кортеж и не содержит дополнительных атрибутов. Это значит, что если отдельный произвольный атрибут исключить из первичного ключа, то оставшихся атрибутов будет недостаточно для однозначной идентификации отдельных кортежей. Например, в отношении ПРЕПОДАВАТЕЛЬ первичным ключом может быть только номер преподавателя НП, в таблице ЧИТАЕТ первичным ключом является набор атрибутов <НП, НК>, обозначающих номер преподавателя и номер читаемого учебного курса (рис. 2.3).

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

Рис. 2.3. Первичные ключи.


В реляционной БД таблицы взаимосвязаны и соотносятся друг с другом как главные и подчиненные. Одной строке главной таблицы могут соответствовать несколько строк подчиненной таблицы (рис. 2.4). Связь главной и подчиненной таблиц осуществляется через первичный ключ (primary key) главной таблицы и внешний ключ (foreign key) подчиненной таблицы. Внешний ключ – это атрибут, или набор атрибутов, подчиненной таблицы, который в главной таблице является первичным ключом. Связь главной и подчиненной таблиц схематически изображается линией, соединяющей первичный и внешний ключи этих таблиц, с указанием одной стрелки со стороны главной таблицы и двух стрелок со стороны подчиненной таблицы (рис. 2.5).

Рис. 2.4. Связь главной таблицы ПРЕПОДАВАТЕЛЬ с подчиненной таблицей ЧИТАЕТ.


Рис. 2.5. Схематическое изображение связи главной таблицы ПРЕПОДАВАТЕЛЬ с подчиненной таблицей ЧИТАЕТ.


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

В результате индексирования создается дополнительный индексный файл, упорядоченный по значениям индексного ключа. Структура индексного файла может быть разной, но должна обеспечивать быстрый поиск. На рис. 2.6 показана возможная структура индексного файла, ускоряющего поиск в файле ПРЕПОДАВАТЕЛЬ по номеру преподавателя.

Рис. 2.6. Пример индексного файла.

2.2. Реляционная алгебра

Реляционная алгебра служит математической основой реляционной ДЛМ. Так как отношение является множеством, то реляционная алгебра является алгеброй взаимосвязей между особыми множествами, называемыми отношениями.

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

2.2.1. Проекция

Воспользуемся в качестве примера следующим отношением R, представленным в виде таблицы (рис. 2.7).

Рис. 2.7. Отношение R (r кортеж).


Пусть для конкретного кортежа г, являющегося элементом отношения R, r[Х] обозначает расположенные в ряд составляющие кортежа, соответствующие множеству атрибутов X. Например, если Х={ЗавК, Нтел}, то r[Х] = <Вернер, 2882>.

Проекцией отношения R на X называют новое отношение:

Проекции R[ЗавК, Нтел] и R[НП, ЗавК] показаны на рис. 2.8.

Рис. 2.8. Проекции R[ЗавК, Нтел] и R[НП, ЗавК].


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