Название: Базы данных. Концепция баз данных, реляционная модель данных, языки SQL и XML (Токмаков Г. П.)

Жанр: Информационные системы и технологии

Просмотров: 1420


2.2.3. о тношение  предок / потомок

 

Одним из отличий реляционной модели от навигационных было то, что в ней отсутствовали явные указатели, используемые для реализации отношений пре- док/потомок в иерархической модели данных. Но такие отношения существуют и в реляционных базах данных. Например, в нашей учебной базе каждый из служа- щих закреплен за конкретным офисом, поэтому ясно, что между строками табли- цы OFFISY и таблицы SLUZHASCHIE существует отношение. Не приводит ли отсут- ствие явных указателей в реляционной модели к потере информации?

Ответ на этот вопрос будет отрицательным. На 0 изображено несколько строк из таблиц OFFISY и SLUZHASCHIE. Обратите внимание на то, что в столбце

ID_OFC таблицы SLUZHASCHIE содержится идентификатор офиса, в котором ра- ботает служащий. Доменом этого столбца (множеством значений, которые мо- гут в нем храниться) является множество идентификаторов офисов, содержа-

щихся в столбце ID_OFC таблицы OFFISY.

 

Таблица OFFISY

 

 

 

Таблица SLUZHASCHIE

ID_OFFICE    CITY   REGION

 

22        Инза    Ульяновская

 

11        Буинск            Татарстан

 

12        Тверь  Московская

 

ID_SLUZH      FAMILY         NAME ID_OFFICE

 

178      Петров            Петр    22

 

189      Иванов           Иван   11

 

196      Федоров         Федор 12

 

199      Уткин Денис 11

 

Рис. 2.9. Реализация отношения предок/потомок в реляционной базе данных

 

Узнать, в каком офисе работает Иванов Иван, можно, определив значение столбца ID_OFC в строке таблицы SLUZHASCHIE для Иванов Иван (число 11), а за- тем отыскав в таблице OFFISY строку с таким же значением в столбце ID_OFC (это строка для офиса в Буинске). Таким же образом, чтобы найти всех служа- щих Буинского офиса, следует запомнить значение ID_OFC для Буинска (число

11), а потом просмотреть таблицу SLUZHASCHIE и найти все строки, в столбце ID_OFC которых содержится число 11 (это строки для Иванова Ивана и Уткина Дениса).

Отношение предок/потомок, существующее между офисами и работаю-

щими в них людьми, в реляционной модели не потеряно; просто оно реализо-

вано в виде одинаковых значений данных, хранящихся в двух таблицах, а не в виде явного указателя. Все отношения, существующие между таблицами реля- ционной базы данных, реализуются таким способом. Одним из главных пре- имуществ языка SQL является возможность извлекать данные, связанные между собой, используя эти отношения.