Синонимы таблиц Назад В начало Вперед

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

Для иллюстрации применения синонимов усложним пример: к названию этапа добавим название проекта, к которому относится этап. И этапы и проекты хранятся в одной физической таблице. Поэтому в реляционном графе появляется цикл (см. Рис. 2).

Рис. 2. Зацикленный реляционный граф

Для расцикливания этого графа можно ввести синоним таблицы "Проекты и этапы проектов". Тогда граф будет иметь вид приведенный на Рис. 3.

Рис. 3. Реляционный граф с устраненным циклом

Описание логической таблицы принимает вид:

create view
  as select
	KatPersons.LastName, KatPosts.Name, KatDeps.Name,
	Stages.Name, Projects.Name

  from
	KatPersons, KatDeps, KatPosts, PrjExecutors, Projects,
	synonym Projects Stages
  where
  ((
	root				 == KatPersons.LastName
  and (KatPersons.LastName <> 'Смирнов')
  and KatPersons.cDepartment == KatDeps.NRec
  and KatPersons.cPost	 == KatPosts.NRec
  and KatPersons.NRec		== PrjExecutors.cEmployee (noIndex)
  and PrjExecutors.cMaster   == Stages.NRec
  and Stages.cProject		== Projects.NRec
  ))
;

Здесь мы обращаемся к физической таблице Projects по двум разным именам: Stages и Projects. По условиям подцепки Stages содержит данные об этапах, а Projects - о проектах.