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


CREATE OR REPLACE FUNCTION hashpassword()



Pdf көрінісі
бет43/46
Дата12.05.2023
өлшемі0,79 Mb.
#92097
түріПрактикум
1   ...   38   39   40   41   42   43   44   45   46
Байланысты:
2-3 лаб

CREATE OR REPLACE FUNCTION hashpassword() 
RETURNS "trigger" AS 
$BODY$ 
BEGIN 
NEW."password"=md5(NEW."password"); 
RETURN NEW; 
END 
$BODY$ 
LANGUAGE 'plpgsql' VOLATILE; 
ALTER FUNCTION "UMUAcessManagement".hashpassword() 
OWNER TO postgres; 


В таблице 7.1 приведены специальные переменные, которые могут 
быть использованы в триггерных функциях. 
Таблица 7.1 – Специальные переменные в триггерных функциях 
Имя 
Тип данных 
Описание 
NEW RECORD 
Новая запись базы данных, созданная 
командой INSERT или UPDATE при 
срабатывании триггера уровня записи 
(ROW). Переменная используется для 
модификации новых записей 
OLD RECORD 
Старая запись базы данных, оставшаяся 
после выполнения команды INSERT 
или UPDATE при 
срабатывании 
триггера уровня записи (ROW) 
TG_NAME name Имя сработавшего триггера 
TG_OP text Строка INSERT, UPDATE, DELETE в 
зависимости от операции 
TG_RELNAME name 
Имя таблицы, в которой сработал 
триггер 


Задание на лабораторную работу №7 
Данная лабораторная работа не является обязательной для выполнения, 
однако необходима для получения оценки выше «4» на экзамене. 
1. Создайте отношение A. Для этого отношения определите два поля: 
поле – номер (тип число) и поле – строка_значений (тип одномерная 
матрица). Таблица будет иметь следующую структур: 
номер_матрицы строка_значений 
1 ‘{2,4}’ 
1 ‘{-3,1}’ 
2 ‘{0}’ 
2 ‘{5}’ 
3 ‘{-2,-4}’ 
Что соответствует матрицам 

и 

⎟⎟


⎜⎜



=
1
3
4
2
1
A
⎟⎟


⎜⎜


=
5
0
2
A
(
)
4
2
3


=
A
2. Создайте отношение B, содержащее четыре поля: номер_операции 
(целое), номер_первой матрицы (целое), номер_второй матрицы (целое), 
название_функции (текст). 
3. Создайте третье отношение – C, которое имеет поля: номер_операции 
(целое) и поле результат (numeric). 
4. Создайте функции сложения, вычитания, транспонирования, 
умножения матриц, которые работают с матрицами, определенными в 
отношении A, т.е. на вход получают номер матрицы (или матриц – для 
бинарных операций). 
5. Создайте функцию вычисления определителя матрицы по ее номеру. 
6. Создайте триггер, который: 
• при добавлении новой строки в отношение B (с новым 
номером_операции) производит расчет для этой операции, вызвав 
соответствующую функцию для переданных матриц, и записывает 
полученный результат в отношение C в виде нового кортежа; 
• при обновлении строки в отношении B производит пересчет, 
согласно новых переданных параметров, если пересчет произведен без 
ошибок, то обновляет соответствующий кортеж в отношении C; 
• при выборе строки из отношения B производит пересчет, согласно 
существующих параметров. 


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




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

    Басты бет