Лабораторная работа № 3 База данных Oracle Database 11g Express Edition. Экспресс-разработка приложений Oracle 1. Цель работы Изучение пользовательского интерфейса базы данных (БД) Oracle Database 11g Express Edition и встроенных средств экспресс-разработки приложений Oracle. 2. Задачи Создание сохраненного SQL-запроса на выборку из связанных таблиц. Разработка приложения с простым отчетом. Добавление в приложение графического объекта. 3. Теоретическая часть 3.1. Средства Oracle для экспресс-разработки приложений баз данных Для быстрой разработки приложений баз данных корпорация Oracle предлагает свои продукты, ориентированные на использование специалистами предметной области, а не профессиональными программистами. Одним таким продуктом является пакет Oracle Application Express (APEX). APEX является инструментом быстрой разработки веб-приложений для баз данных Oracle. Используя только веб-браузер и имея ограниченный опыт программирования, с его помощью можно быстро и безопасно разрабатывать и развертывать профессиональные приложения баз данных. Oracle Application Express 5.0 поддерживается на всех выпусках (SE1, SE, EE) базы данных Oracle 11.1 и выше. Application Express 5.0 может также использоваться с Oracle Database 11g XE. Однако этот продукт платный. Другим инструментом быстрой разработки приложений БД Oracle является компонент Oracle Application Builder, входящий в комплект бесплатной поставки Oracle 10g XE, Oracle 11g XE. Этот графический интерфейс пользователя построен в среде разработки APEX. Компонент Application Builder является одним из компонентов из состава APEX, который используется для представления в приложении высших по иерархии объектов базы данных, таких как таблицы и представления. С Application Builder разработка приложения (программирование, создание программного кода приложения) носит декларативный характер. Это означает, что код не генерируется программистом или не получается в результате компиляции. Пользователь, разрабатывающий приложение, взаимодействует с мастерами и свойствами объектов. Конструирование приложения разбивается на несколько этапов, в соответствии с подсказками мастера, на каждом из которых происходит выбор подходящих свойств и изобразительных эффектов из предлагаемых мастером списков. Запросы к базе данных формулируются на языке SQL, для их создания очень удобно использовать инструмент Query Builder (конструктор запросов). Если необходима процедурная логика, можно использовать фрагменты кода, написанные на процедурном языке PL/SQL. Декларативный код позволяет разрабатывать качественные приложения специалистам в предметной области, а не только профессиональным 1 программистам. Кроме модифицировать. того, такие приложения легко поддерживать и При конструировании приложения работа мастера - декларативно собирать приложения, организованные в страницы. Содержание страницы организовано в регионах. Регионы могут содержать текст, пользовательские программы PL/SQL, отчеты, графики, карты, календари, ссылки на веб-сервис или формы. Наиболее часто встречающимися объектами декларативного программирования в Oracle Application Builder являются формы и интерактивные отчеты. Формы (рис. 3.1) легко создаются на основе использования мастеров для таблиц или представлений. Рис. 3.1. Форма Назначение формы – представление данных в виде, удобном для восприятия человеком-оператором или специалистом в предметной области. Формы используются в основном для удобного ввода и редактирования данных. Формы состоят из полей, которые могут быть выбраны из множества встроенных типов (например, текстовые поля, радио-группы кнопок, списки выбора, флажки, всплывающие списки значений, календари). При создании формы мастера обеспечивают автоматическое управление вставкой, обновлением и удалением, а также обнаружением потерянных обновлений. После создания формы можно легко изменить форму поля (так называемые элементы формы) с помощью визуального представления, что позволяет быстро достичь нужного макета. На форме рис. 3.1 показаны наиболее часто используемые графические средства: строка ввода текста, выбор значения с помощью радиокнопок, выбор даты с помощью календаря, выбор значения из выпадающего списка. Интерактивные отчеты (рис. 3.2) предназначены для табличного способа отображения данных. 2 Рис. 3.2. Интерактивный отчет Чтобы создать интерактивный отчет, разработчику нужно либо выбрать таблицу, или создать предложение SQL на выборку данных. Он может ограничить возможности, доступные для конечных пользователей (например, выключив режим вставки или редактирования, не позволяя отображать столбцы, которые должны быть скрыты для данного пользователя), если это необходимо. Стандартные графические средства в интерактивном отчете – пиктограммы направления сортировки, включения режима редактирования строки таблицы, перемещения столбцов и изменения их ширины, цвета выделения столбца или строк. 3.2. Методика экспресс-разработки приложения в Oracle Application Builder Приложение, которое мы разработаем, будет показывать отчеты одного типа: простой отчет. В этой работе отчеты будут строиться на основе сохраненного запроса, который должен показать все расположения отделов компании. 3.2.1. Сохранение SQL запроса для использования в приложениях Наше приложение будет выбирать данные из объединения таблиц. Будут использоваться два запроса. Первый запрос должен возвратить данные из объединения таблиц Departments, Locations и Countries. Используем для создания запроса графический инструмент – конструктор запросов Query Builder, с помощью которого можно также сохранить запрос для дальнейшего использования. Запуск конструктора запросов описан в лабораторной работе № 1. Порядок выполнения: 1. Запустите конструктор запросов. 2. Разместите на правой панели конструктора таблицы Departments, Locations и Countries. 3. Соедините таблицы Departments и Locations по столбцу Location_id. 4. Соедините таблицы Locations и Countries по столбцу Country_id. 5. В таблице Departments отметьте столбцы Department_id, Department_name. 6. В таблице Locations отметьте столбцы Street_address, City, State_province, Postal_code. 7. В таблице Countries отметьте столбец Country_name. 8. Запустите выполнение запроса -> кнопка Run. 3 9. По итоговой выборке проверьте правильность выполнения запроса, при необходимости откорректируйте запрос. 10. Сохраните запрос -> кнопка Save. В открывшемся диалоговом окне Save SQL введите уникальное имя запроса (например, departments_locations) > кнопка Save диалогового окна Save SQL. Второй запрос является расширением первого. Он также должен показывать расположение отдела (страна, город, адрес), но кроме того, для каждого отдела нужно показать еще количество сотрудников в нем и краткое имя менеджера. Запрос должен возвратить данные из объединения таблиц Departments, Locations, Countries и Emploees. Используем для создания запроса инструмент SQL Commands – редактор запросов, с помощью которого можно также сохранить запрос для дальнейшего использования. Запуск редактора запросов описан в лабораторной работе № 1. Порядок выполнения: 1. Запустите редактор запросов. 2. В верхней панели редактора введите текст запроса: SELECT d.DEPARTMENT_ID, d.DEPARTMENT_NAME, (select count(*) from employees where department_id = d.department_id) "Number of Employees", substr(e.first_name,1,1)||'.'||e.last_name "Manager Name", c.COUNTRY_NAME, l.STATE_PROVINCE, l.CITY, l.STREET_ADDRESS, l.POSTAL_CODE FROM DEPARTMENTS d, EMPLOYEES e, LOCATIONS l, COUNTRIES c WHERE d.LOCATION_ID=l.LOCATION_ID AND l.COUNTRY_ID=c.COUNTRY_ID AND d.DEPARTMENT_ID=e.department_id AND d.manager_id=e.employee_id 3. Запустите выполнение запроса -> кнопка Run. 4. По итоговой выборке проверьте правильность выполнения запроса, при необходимости откорректируйте запрос. 5. Сохраните запрос -> кнопка Save. В открывшемся диалоговом окне Save SQL введите уникальное имя запроса (например, departm_locat_manag) > кнопка Save диалогового окна Save SQL. 3.2.2. Разработка приложения с простым отчетом В этом отчете нужно показать все данные, извлекаемые из объединения таблиц БД с помощью первого сохраненного SQL-запроса. Порядок выполнения: 1. Из главного меню браузера Oracle Application Express (страница Home) запустите конструктор приложений: Application Builder -> кнопка Create -> (или на странице Application Builder -> кнопка со стрелкой вниз -> Create). Открывается страница конструктора Home > Application Builder > Create Application, на которой начинает работу мастер приложений (рис. 3.3). 4 Рис. 3.3. Начало работы мастера приложений 2. Шаг мастера Method. Выберите тип приложения Database -> Next. Показывается окно выбора варианта создания приложения (рис. 3.4). Рис. 3.4. Выбор варианта создания приложения Приложение будет представлять собой сборник страниц, связанных вместе с помощью вкладок, кнопок или гипертекстовых ссылок. Вариант создания From Scratch – с нуля. Это вариант создания приложения, определяя страницы, выбрав схему аутентификации, указав пользовательский интерфейс. Страницы могут быть основаны на таблицах, запросах или запросов к связанным таблицам вида «главный – подчиненный». Выберите вариант From Scratch -> Next. 3. Шаг мастера Name (рис. 3.5.). 5 Рис. 3.5. Шаг мастера Name В этой форме надо указать имя приложения, задать уникальный номер приложения (можно использовать предлагаемый), выбрать способ создания приложения – «с нуля» или основываясь на существующей модели проектирования приложений, а также выбрать имя схемы. В строке ввода Name введите имя создаваемого приложения (например, HR Application Departments) -> Next. 4. Шаг мастера Pages. Здесь происходит добавление страницы в приложение, на которой будут располагаться отчеты и компоненты работы с данными. Можно выбрать тип отчета для страницы из предлагаемых вариантов. Пока наше приложение будет иметь одну страницу. Выберите для нее тип отчета Report (это простой отчет). Выберите источник данных для отчета Page Source: -> SQL Query (рис. 3.6). Рисунок 3.6. Шаг мастера Pages создания простого отчета 6 Выберите для выполнения сохраненный запрос: кнопка Query Builder -> переход на страницу конструктора запросов -> Saved SQL -> выбрать departments_locations -> Return -> в текстовом боксе Query: должен появиться текст сохраненного запроса -> имя страницы Page Name -> ввести текст Отделы -> реализация отчета Implementation -> выбрать Interactive -> Add page, в боксе Create Application появится описание первой страницы -> Next. 5. Шаг мастера Tabs -> выберите стиль расположения закладок страниц, можно оставить значение по умолчанию One Level of Tabs -> Next. 6. Шаг мастера Shared Components -> оставьте значение по умолчанию No -> Next. 7. Шаг мастера Attributes. Здесь устанавливаются правила идентификации пользователей, языковые стандарты и формат представления даты и времени. Установите Authentification Scheme: -> No Authentification -> языковые стандарты: оставить значения по умолчанию -> формат датывремени: выберите значение из списка по желанию ->Next. 8. Шаг мастера User Interface. Здесь можно выбрать стиль окна приложения. Выберите по желанию -> Next. 9. Шаг мастера Confirm. Проверьте правильность установленных свойств приложения -> Create. 10. Открывается страница работы с приложением (рис. 3.7). Щелкните иконку Run Application. Рисунок 3.7. Страница работы с приложением Показывается окно простого отчета с единственной страницей Отделы, на которой в форме таблицы представлены данные, возвращаемые сохраненным запросом (рис. 3.8). 7 Рис. 3.8. Простой отчет Отделы Далее изменим отображаемые заголовки столбцов. На странице отчета Отделы (рис. 3.8) нажмите кнопку Edit Page 1. Откроется форма редактирования страницы Page 1. Установите вид отображения Tree View (рис. 3.9). Рис. 3.9. Форма редактирования страницы Page 1 В разделе Page Rendering щелкните правой кнопкой мыши на пункте Отделы и во всплывающем меню выберите пункт Edit Report Attributes. Откроется форма редактирования атрибутов отчета (рис. 3.10). Рис. 3.10. Форма редактирования атрибутов отчета 8 В форме Column Attributes измените заголовки столбцов Heading на русские названия. Нажмите кнопку Apply Changes -> на форме рис. 3.9 нажмите кнопку Run или кнопку c пиктограммой светофора Page 1 (всплывающая подсказка Run Page 1). Убедитесь, что заголовки столбцов отчета изменились на русские названия. 3.2.3. Модификация отчета Изменим запрос на выборку данных в простом отчете. Используем второй сохраненный SQL-запрос. Закройте работающее приложение с помощью кнопки Home (рис. 3.8). Для этого: 1. Запустите редактор SQL-запросов SQL Commands -> на нижней панели выберите Saved SQL -> выберите свой второй сохраненный запрос departm_locat_manag -> скопируйте текст запроса из верхней панели. 2. Запустите Application Builder -> выберите свое приложение HR Application Departments -> выберите 1 – Отделы (щелчок на иконке или на названии страницы Page 1. 3. В открывшейся форме рис. 3.9. -> щелчок правой кнопкой на пункте Отделы -> во всплывающем меню пункт Edit -> в форме Source текстовый бокс Region Source -> вставить сохраненный SQL-запрос -> Apply Changes -> подтвердить изменения запроса Apply Changes в форме Confirm Interactive Report Region Change (рис. 3.11). Рис. 3.11. Форма подтверждения изменения запроса 4. В форме рис. 3.9. аналогично п.3. выберите во всплывающем меню Edit Report Attributes -> Column Attributes -> измените заголовки двух новых столбцов на русские -> Apply Changes -> Run. 5. На странице отчета Отделы новые столбцы пока не отображаются. Для того, чтобы они стали видимыми, надо сделать следующее: раскройте список Action -> Select Columns (рис. 3.12) Рис. 3.12. Выбор столбцов для отображения 6. Открывается форма выбора отображаемых столбцов (рис. 3.13). 9 Рис. 3.13. Форма выбора отображаемых столбцов 7. Переместите столбцы Количество сотрудников и Имя менеджера на правую панель кнопками между панелями. Можно также изменить порядок следования столбцов кнопками справа. Нажмите Apply. Поэкспериментируйте с отчетом. Произведите поиск какого-либо значения -> должна отобразиться найденная строка (или набор найденных строк) -> возврат к полному отображению – сброс фильтра. Используя меню столбца (щелчок на подчеркнутом имени столбца): измените порядок сортировки в таблице -> сортировка по возрастанию > сортировка по убыванию; установите и сбросьте фильтр по значениям в столбце; установите и сбросьте режим отображения с группировкой по столбцу (Control Breack). Используя пункты меню Action: уберите отображение какого-либо столбца, затем верните его на место; измените порядок следования столбцов в сетке строк; создайте фильтр по столбцам и по строкам; очистите фильтр; измените порядок и направление сортировки с помощью меню Format. Щелчком на пиктограмме однострочного просмотра (карандаш) перейдите в этот режим. В нем каждая запись таблицы отображается в специальной форме. Выберите следующие и предыдущие записи. Вернитесь к табличной форме отчета. 8. Выйдите из приложения, нажав кнопку Application ID (рис. 3.8). 3.2.4. Добавление к отчету страницы с графикой Добавим к простому отчету страницу, на которой будут отображаться данные в графической форме. Для этого надо сделать следующие шаги. 1. На странице работы с приложением (рис. 3.7) нажмите кнопку Create Page. Начинает работу мастер создания страницы. Шаг мастера Page -> выберите вид страницы Chart (рис. 3.14) -> Next. 10 Рис. 3.14. Выбор вида страницы 2. Выберите Flash Chart -> Next. Шаг мастера Chart Type. Выберите Pie & Doughnut -> Next (рис. 3.15). Рис. 3.15. Выбор типа графика 3. Выберите 3D Pie -> Next. Шаг мастера Page Attributes. На форме Create Flash Chart измените значение в строках Page Name и Region Name на График (остальные строки оставьте без изменений) -> Next (рис. 3.16). Рис. 3.16. Атрибуты страницы 4. Шаг мастера Tab (optional). Выберите Do not use tabs -> Next. 11 5. Шаг мастера Chart Attributes. В строке Chart Title задайте значение Диаграмма должностей сотрудников -> для Show Legend выберите любое, кроме None, значение -> все остальные настройки оставьте без изменений > Next. 6. Шаг мастера Query. Здесь требуется сформировать SQL-запрос на выборку данных для диаграммы – будем отображать на круговой диаграмме количество (долю) сотрудников для каждой долности. Нажмите Build Query > открывается окно Build Chart Query -> имя схемы HR -> Next -> в строке Table or View выберите значение Emploees -> Next. Установите значения: для Label -> JOB_ID, для Value -> EMPLOEE_ID, для Aggregate Function -> COUNT -> Next -> форма Chart Link без изменений -> Finish. В результате в окне Create Flash Chart должен появиться сформированный SQL-запрос (рис. 3.17). Рис. 3.17. SQL-запрос на выборку данных для диаграммы 7. Нажмите Next -> шаг мастера Confirm -> Finish -> Run Page. Вид диаграммы показан на рис. 3.18. Рис. 3.18. Диаграмма 8. Закройте диаграмму, нажав кнопку Application ID (рис. 3.8). Теперь на странице работы с приложением появилась вторая страница с именем 2 – 12 График. Однако она пока не привязана к панели вкладок домашней страницы приложения. Чтобы осуществить такую привязку, необходимо выполнить следующие действия. Щелкните домашнюю страницу приложения 1 – Отделы. В открывшемся окне (рис. 3.9) в разделе Shared Components выберите пункт Parent Tabs -> правой кнопкой вызовите всплывающее меню -> пункт Create. В открывшемся окне Manage Tabs (рис. 3.19) щелкните Add рядом со вкладкой Отделы. Рис. 3.19. Добавление вкладки 9. Начинает работу мастер создания стандартной вкладки. Шаг мастера Tab Name -> в строке Tab Label введите значение График -> Next -> шаг мастера Current Page: в строке Tab Current for Page выберите значение 2 (График) -> Next -> шаг мастера Sequence and Images: оставить без изменений -> Next -> шаг мастера Display Conditions:оставить без изменений -> Next -> шаг мастера Confirm: Create Tab. Новая вкладка с именем График на панель вкладок добавлена. 10. Запустите приложение кнопкой со светофором. Активизируйте график с панели вкладок. 4. Меры безопасности Во время выполнения лабораторной работы необходимо: соблюдать правила включения и выключения вычислительной техники; не подключать кабели, разъемы и другую аппаратуру к компьютеру, не относящиеся к лабораторной установке; при включенном напряжении сети не отключать, не подключать и не трогать кабели, соединяющие различные устройства компьютера; в случае обнаруженной неисправности в работе оборудования или нарушения правил техники безопасности сообщить руководителю лабораторной работы; не пытаться самостоятельно устранить неисправности в работе аппаратуры; по окончании работы привести в порядок рабочее место. ВНИМАНИЕ! При работе за компьютером необходимо помнить: к каждому рабочему месту подведено опасное для жизни напряжение. Поэтому во время работы надо быть предельно внимательным и соблюдать все требования техники безопасности! 13 5. Задание 1. Запустить интернет-браузер, например, Google Chrome. Запустить домашнюю страницу Oracle Application Express по адресу http://127.0.0.1:8080/apex/ . Войти в базу данных как пользователь HR. 2. Перейти в конструктор SQL-запросов SQL Builder. Создать запрос на выборку данных из связанных таблиц Departments, Locations, Countries. Проверить правильность выполнения запроса. Сохранить запрос. Руководствуйтесь указаниями п. 3.2.1. 3. Перейти в редактор SQL-запросов SQL Commands. Создать запрос на выборку данных из связанных таблиц Departments, Locations, Countries, Employees. Проверить правильность выполнения запроса. Сохранить запрос. Руководствуйтесь указаниями п. 3.2.1. 4. Перейти в конструктор приложений Application Builder. Разработать приложение с простым отчетом согласно указаниям п. 3.2.2. 5. Модифицировать приложение с простым отчетом согласно указаниям п. 3.2.3. 6. Добавить в приложение с простым отчетом страницу с графикой согласно указаниям п. 3.2.4. 6. Требования к отчету Отчет должен быть выполнен в текстовом редакторе MS Word. Отчет должен содержать: o Краткие теоретические сведения, o Тексты всех использованных SQL-запросов, o Результирующие таблицы с данными, показывающие работоспособность приложений, o Выводы по проделанной работе. 7. Контрольные вопросы 7.1. Что такое приложение БД? 7.2. Какие известны виды отчетов в приложениях БД Oracle 11g XE? 7.2. Какие продукты Oracle используются для экспресс-разработки приложений БД Oracle 11g XE? 7.3. Как происходит экспресс-разработка приложений БД Oracle 11g XE? 7.4. Какие основные типы отчетов используются для конструирования страниц приложения? 7.5. Какую функциональность реализует тип отчета Report? 7.6. Какую функциональность реализует тип отчета Chart? 14