- •2.3.5. Операции
- •2.3.6. Обработка списков и строк символов
- •3. Иерархическая модель
- •4. Семантическая сеть
- •5. Фреймовая модель
- •6. Объектно-ориентированная модель
- •7. Модель, управляемая образцами
- •8. Реляционная модель
- •8.1. Структура модели
- •8.2. Индексирование
- •8.3. Связывание таблиц
- •8.4. Реляционная алгебра
8.2. Индексирование
Для реализации возможностей, которые обеспечиваются ключом отношения (автоматическая сортировка записей, контроль отсутствия повторения), применяют индексирование. Индекс выполняет роль оглавления таблицы, просмотр которого предшествует обращению к записям таблицы. Индексы можно хранить в отдельных (индексных) файлах.
В записи индекса можно хранить значения ключевых полей индексируемой таблицы либо свертку ключа (хеш-код). Если свертки различных ключей совпадают, возникают так называемые коллизии, которые приходится устранять различными способами.
И
33
Как показывает рис.8.2, при одноуровневой схеме индексирования ключи в блоках не отделены от соответствующих им записей.
При двухуровневой схеме ключи (свертки) отделены от содержимого записей – рис. 8.3.
Поскольку основная работа производится с короткими индексными файлами, а не с записями таблиц, двухуровневая схема оказывается производительней.
Кроме первичных индексов, соответствующих таблицам и являющихся системными, пользователь может создавать свои – вторичные индексы. Связь между указанными индексами должна быть оговорена особо.
8.3. Связывание таблиц
34
При связывании двух таблиц выделяют основную и дополнительную таблицы. Логическое связывание таблиц производится с помощью ключа связи. Ключ связи состоит из одного или нескольких полей, называемых полями связи. Последние могут быть обычными (связь между таблицами) и ключевыми (для данной таблицы).
Пример связи типа 1:1, когда одной записи основной таблицы соответствует одна запись дополнительной таблицы, показан на рис. 8.4.
Таблица
1 (основная)
+
Код
Значение
а
10
б
40
в
3
Таблица
2 (дополнительная)
+
Код
Значение
а
стол
в
книга
Рис. 8.4. Связь таблиц по типу 1:1
На рис. 8.4 показаны две таблицы, содержащие коды некоторых объектов и их значения. Знаками , + обозначены ключевые и обычные поля связи, откуда видно, что поля кодов таблиц являются ключевыми для каждой таблицы и одновременно полями связи между таблицами. Таким образом, сопоставление таблиц дает следующие новые сведения (виртуальные записи или псевдозаписи): (а, 10, стол), (в, 3, книга).
Связь вида 1:М имеет место, когда одной записи основной таблицы соответствует несколько записей вспомогательной таблицы – рис. 8.5. На
Таблица
1 (основная)
+
Код
Значение
а
CD-ROM
б
CD-Recorder
в
Sound
Blaster
Таблица
2 (дополнительная)
+
Код
Фирма-изготовитель
Наличие
а
Acer
Да
а
Mitsumi
Нет
а
NEC
Да
а
Panasonic
Да
а
Sony
Да
б
Philips
Нет
б
Sony
Нет
б
Yamaha
Да
в
Creative
Labs
Да
Рис.8.5. Связь таблиц по типу 1:М
рис.8.5 таблица 2 имеет два ключевых поля, но связь между таблицами может осуществляться только по полям связи, обозначенным как "+". С учетом сказанного виртуальные записи могут быть следующими: (а, CD-ROM, Acer, да), (а, CD-ROM, Mitsumi, нет),… (б, CD-Recorder, Philips, нет) и т.д.
Связь типа М:1 имеет место, когда одной или нескольким записям основной таблицы ставится в соответствие одна запись дополнительной таблицы. Общий вид связи М:М возникает в случае, когда нескольким записям основной таблицы соответствует несколько записей
дополнительной таблицы.
