Лабораторные работы по курсу «Базы данных»


CREATE AGGREGATE sum ( BASETYPE = text



Pdf көрінісі
бет45/46
Дата12.05.2023
өлшемі0,79 Mb.
#92097
түріПрактикум
1   ...   38   39   40   41   42   43   44   45   46
CREATE AGGREGATE sum ( BASETYPE = text,
SFUNC = textcat,
STYPE = text,
INITCOND = '' ); 
Для проверки работы созданной в примере 8.1 функции-агрегата 
выполните запрос и разберитесь, что он делает:
SELECT substring(t2.r,1,length(t2.r)-1)
FROM (SELECT sum(t.title || ',') as r
FROM (SELECT * FROM (SELECT 'world' as title union SELECT 'Hello') 
as t1 order by t1.title) as t) as t2 


Задание на лабораторную работу №8 
Данная лабораторная работа не является обязательной для выполнения, 
однако необходима для получения оценки выше «4» на экзамене. 
Необходимо: 
1. Создать несколько отношений, связанных в виде иерархии, как 
это показано на рис. 8.1: 
сущность 
Рисунок 8.1 – Структура объектно-реляционных связей 
2. Самостоятельно определить атрибуты этих отношений. 
3. Иерархию реализовывать с использованием наследования (л/р 6). 
4. Создать представление, которое выбирает все атрибуты объекта и 
его наследников в один кортеж. В случаи, если для какого-то из 
атрибутов имеется несколько значений необходимо формировать 
поле в следующем виде: 
{‘<1ое значение атрибута>’, ‘<2ое значение атрибута>’, …}, где 
- значение атрибута в i-ом кортеже для 
объекта. Для этого написать собственную агрегатную 
функцию(ии), работающую с типами integer, text, timestamp. 
5. Определить универсальные функции для удаления, добавления, 
обновления любого объекта, которым передается имя отношения, 
фильтр (если нужно), массив имен полей (если нужно), массив 
новых значений полей (если нужно). 
6. На основании функций из п.5 определить для каждого объекта 
БД (кроме «сущность») функции: добавить, изменить, удалить. В 
функциях должен быть реализован контроль за уникальностью 
объекта. 
7. Запретить добавление данных в отношения с использованием 
SQL запросов (т.е. не через интерфейсные функции из пункта 5). 
Для этого определить необходимые триггеры. 
8. Написать 
функции (PL/PGSQL) вывода 
существующих 
документов человека (например, паспорт, з/к – если студент, № 
пропуска – если преподаватель). Функция использует 
представление созданное в пункте 4. Не использовать внешние 
ключи (реляционные связи) для связывания отношений 
находящихся в одной ветке иерархии, но использовать их (если 
человек 
документ 
студент 
Тип 
документа 
преподаватель 


необходимо) для связи объектов на одном уровне иерархии. 
Значение потенциального ключа в базовых таблицах не должно 
повторяться даже при выполнении запроса без параметра ONLY. 
9. Структура БД, ограничения, правила наследования, процедуры, 
представления, а также данные должны быть представлены в 
виде SQL-скрипта. 




Достарыңызбен бөлісу:
1   ...   38   39   40   41   42   43   44   45   46




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет