r=1;
FOR r=1 то m
i=1;
FOR i=1 то 2
WHILE a
1
i
<>a
2
i
;
a
1
i
:=Concat (a
1
i
,’ ‘,a
2
i
)
;
END;
END;
П3: Для двух связанных реляционных таблиц:
k=0;
i=1;
j=1;
r=1;
WHILE a
rj
<>END FILE
WHILE a
ij
<> Подзаголовок
IF k=0 THEN r=1;
k=1;
a1
ij
:=a
ij
;
i:=i+1;
END WHILE;
k:=0;
IF j=1 THEN j:=2;
ELSE j:=1;
END WHILE;
П4: К отношению R приписывается дополнительный атрибут KR с типом
“числовой”.
COUNTER:=0;
П5: Выполняется сканирование всех записей отношения R’. Если
в записи имеется только одно заполненное значение атрибута, то счет-
чик подзаголовков COUNTER увеличивается на единицу. Атрибуту
KR присваивается значение COUNTER.
П6: Создается новое отношение R2, включающее в себя два атри-
бута NR и атрибут с подзаголовком. Выполняется сканирование всех
записей отношений R’. Записи, которые имеют только одно (кроме
ключевого) заполненное значение атрибута, перемещаются в отноше-
ние R2.
В результате выполнения алгоритма сформируются отношение R2
(с подзаголовками исходной таблицы) и отношение R1 без подзаголов-
ков. Связи между таблицами обеспечиваются посредством ключевых
атрибутов KR, которые присутствуют в обоих отношениях.
Формализованный алгоритм исключения внутренних подзаголов-
ков и избавления от сложных атрибутов при преобразовании нереля-
ционных таблиц к реляционному виду выглядит следующим образом:
ISSN 0236-3933. Вестник МГТУ им. Н.Э. Баумана. Сер. “Приборостроение”. 2012. № 2 67