|
РБД_Лаб_2021. Распределенные базы данных
Лабораторная работа №4 СОЗДАНИЕ ПАКЕТОВ
Цель работы. Продолжить осваивать работу с языком PL/SQL; научиться создавать пакеты (Package). 4.1 КРАТКАЯ ТЕОРИЯ 4.1.1. Структура пакетов PL/SQL позволяет объединить логически связанные типы, программные объекты и подпрограммы в пакет. В любом пакете можно легко разобраться, а интерфейсы между пакетами являются простыми, ясными и четко определенными, что очень полезно при разработке приложений.
Пакеты обычно состоят из двух частей: спецификации и тела. Спецификация – это интерфейс для приложений: здесь объявляются типы, константы, переменные, исключения, курсоры и подпрограммы, которыми можно пользоваться. Телоопределяет курсоры и подпрограммы и таким образом реализует спецификацию. В следующем примере «пакетируются» две процедуры по найму служащих: PACKAGE emp_actions IS -- спецификация пакета
PROCEDURE hire_employee (empno NUMBER, ename CHAR, ...);
PROCEDURE fire_employee (emp_id NUMBER);
END emp_actions; PACKAGE BODY emp_actions IS -- тело пакета
PROCEDURE hire_employee (empno NUMBER, ename CHAR, ...) IS
BEGIN
INSERT INTO emp VALUES (empno, ename, . . . ) ;
END hire_employee; PROCEDURE fire_employee (emp_id NUMBER) IS
BEGIN
DELETE FROM emp WHERE empno = emp_id;
END fire_employee;
END emp_actions; Прикладным программам видимы и доступны только объявления в спецификации пакета. Детали реализации в теле пакета скрыты и недоступны.
Если имеется процедурное расширение базы данных, пакеты могут быть откомпилированы и занесены в базу данных ORACLE, откуда их содержимым могут совместно пользоваться многие приложения. Когда в первый раз вызывается одна из подпрограмм пакета, в память загружается весь пакет. Поэтому любые последующие вызовы подпрограмм пакета не потребуют обмена с диском. Таким образом, использование пакетов может повысить производительность труда и увеличить эффективность программы.
Скрытие информации означает, что видны детали, относящиеся только к данному уровню разработки алгоритма и структуры данных. Скрытие информации обеспечивает независимость решений, принимаемых на верхнем уровне разработки, от деталей разработки нижнего уровня, которые, скорее всего, изменятся.
Скрытие информации для алгоритмов реализуется в методе разработки сверху вниз. Когда определяется назначение процедуры нижнего уровня и спецификации ее интерфейса, можно игнорировать детали реализации. Они являются скрытыми для верхних уровней. Например, реализация гипотетической процедуры с именем raise-salary является скрытой. Все, что нужно знать, – это то, что процедура увеличит оклад данного служащего на указанную величину. Любые изменения в определении raise-salary прозрачны для вызывающих программ.
Скрытие информации для структур данных реализуется посредством инкапсуляции данных. При разработке набора подпрограмм, обслуживающих структуру данных, они изолируются от пользователей и других разработчиков. Таким образом, другие разработчики знают, как пользоваться подпрограммами, работающими со структурой данных, не представляя точно самой структуры.
В пакетах PL/SQL можно указать, являются ли типы, программные объекты и подпрограммы приватными или общедоступными. Таким образом, пакеты навязывают инкапсуляцию данных, предлагая помещать объявления типов в черный ящик. Приватное определение типа является скрытым и недоступным. Если определение изменится, это затронет только пакет (но не вашу прикладную программу), что упрощает сопровождение и совершенствование программ. 4.2 ЗАДАНИЯ К РАБОТЕ И ПОРЯДОК ВЫПОЛНЕНИЯ Задание 1. Разработать пакеты (спецификацию и тело) для своей базы данных.
Порядок выполнения задания 1.
1. Для каждой таблицы создается пакет с именем:
A_Имя таблицы.
Методы (процедуры) пакета должны выполнять следующие действия с одноименными таблицами:
Add_Имя таблицы(…) – добавление записи
Remove_Имя таблицы(…) – удаление записи
Change_ Имя поля(…) – изменение значения для поля таблицы (кроме ключевых и системных – ID_CRE и DAT_CRE). Должны быть созданы для каждого неключевого и несистемного поля).
2. В окне навигатора на пункте Packages правой клавишей мыши вызывается контекстное меню. В нем выбирается пункт New Package…
3. После описания пакета и его успешной компиляции создается тело пакета.
4. Для создания тела пакета в окне навигатора выбирается созданный ранее пакет и в контекстном меню для него выбирается пункт Create Body.
5. Заполняется и компилируется тело пакета.
4.3 СОДЕРЖАНИЕ ОТЧЁТА Готовится один отчёт на бригаду в печатном виде. Он должен содержать следующие разделы:
- задание;
- описание созданных пакетов (тела и спецификации) совместно с текстом PL/SQL реализации пакетов.
Приём отчёта осуществляется в индивидуальном порядке. Ответы на контрольные вопросы даются устно. 4.4 КОНТРОЛЬНЫЕ ВОПРОСЫ
Для чего предназначены пакеты? Описать характеристики заголовка и тела пакета. Подробно пояснить действия процедур пакета.
|
|
|