Реализация на языке SQL иерархической (древовидной) структуры
1. Список смежности,
2. Перечисление путей,
3. Вложенные наборы,
4. Стол для закрывания.
Результатом проектов является набор SQL скриптов (для каждой из моделей), создающих таблицы для хранения деревьев, заполняемых данными, и SQL процедур и функций (с их вызовами), позволяющих:
1) добавить новый элемент в дерево,
2) удаление любого элемента в дереве,
3) перемещение элемента в древовидной структуре,
4) чтение всех потомков данного узла дерева (прямых и косвенных),
5) чтение потомков на выбранном уровне (например, внуков),
6) чтение прямого предка данного узла,
7) чтение всех предков данного узла,
8) чтение предков данного узла на выбранном уровне,
9) чтение "братьев и сестер" (других узлов на том же уровне),
10) проверка того, что дерево не содержит циклов,
11) проверка, является ли дерево связным.
Минимальным требованием является реализация как минимум трех из перечисленных функциональных возможностей для обеих моделей.
Для выполнения задания можно использовать следующие материалы:
1. Карвин, Б. (2012). Наивные деревья (стр. 37-59). В книге: Антипаттерны языка SQL. Как избежать подводных камней при программировании баз данных. Гелион.
2. Карвин, Б. (2010). Наивные деревья (стр. 34-53). In: SQL Antipatterns: Avoiding the Pitfalls of Database Programming. Прагматичные программисты, ООО.
Обязательные пункты:
1. Создайте таблицы схемы для хранения деревьев (CREATE)
2. Заполнение таблиц данными выборки
3. Подготовка демонстрации проекта (вызовы процедур и функций)
4. Задание для обеих моделей 11 мин. 3 выбраны
a. добавление нового элемента в дерево;
b. удаление любого элемента в дереве;
c. перемещение элемента в древовидной структуре;
d. чтение всех потомков данного узла дерева (прямых и косвенных);
e. чтение потомков на выбранном уровне (например, внуков);
f. чтение прямого предка данного узла;
g. чтение всех предков данного узла;
h. чтение предков данного узла на выбранном уровне;
i. чтение "братьев и сестер" (других узлов на том же уровне);
j. проверка того, что дерево не содержит циклов;
k. проверка соответствия дерева.