Название: Базы данных. Концепция баз данных, реляционная модель данных, языки SQL и XML (Токмаков Г. П.) Жанр: Информационные системы и технологии Просмотров: 1437 |
2.2.3. о тношение предок / потомок
Одним из отличий реляционной модели от навигационных было то, что в ней отсутствовали явные указатели, используемые для реализации отношений пре- док/потомок в иерархической модели данных. Но такие отношения существуют и в реляционных базах данных. Например, в нашей учебной базе каждый из служа- щих закреплен за конкретным офисом, поэтому ясно, что между строками табли- цы OFFISY и таблицы SLUZHASCHIE существует отношение. Не приводит ли отсут- ствие явных указателей в реляционной модели к потере информации? Ответ на этот вопрос будет отрицательным. На 0 изображено несколько строк из таблиц OFFISY и SLUZHASCHIE. Обратите внимание на то, что в столбце ID_OFC таблицы SLUZHASCHIE содержится идентификатор офиса, в котором ра- ботает служащий. Доменом этого столбца (множеством значений, которые мо- гут в нем храниться) является множество идентификаторов офисов, содержа- щихся в столбце ID_OFC таблицы 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 является возможность извлекать данные, связанные между собой, используя эти отношения.
|
|