Лабораторная работа № 7. Знакомство со средой разработки Oracle Application... Создание таблиц БД средставми Oracle Application Express

advertisement
Лабораторная работа № 7. Знакомство со средой разработки Oracle Application Express.
Создание таблиц БД средставми Oracle Application Express
Задачи:
1) Создать 2 таблицы БД с помощью инструмента SQL Workshop>Object Browser.
2) Добавить в таблицу столбец-ссылку на другую таблицу.
3) Создать приложение, позволяющее просматривать и редактировать созданные таблицы.
Создание таблиц БД
Приложения APEX ориентированы на работу с таблицами БД Oracle. Для того, чтобы в
создаваемом приложении можно было использовать таблицы, они должны быть предварительно
созданы. Не имеет значения, как именно создаются таблицы. Рассмотрим вариант создания таблиц
с использованием инструментов APEX.
1. Зарегистрируйтесь в APEX, используя Ваши регистрационные данные.
Создайте 2 новые таблицы, предназначенные для хранения сведений о студенческих группах и
студентах.
2. Создайте новую таблицу, предназначенную для хранения сведений о студенческих группах.
а. Откройте SQL Workshop и запустите Object Browser
б. Щелкните по кнопке Create в правом верхнем углу страницы. Отобразится список типов
объектов БД, которые можно создать:
в. Щелкните по ссылке Table. Запустится мастер создания таблицы.
г. В поле Table Name введите название таблицы – <фамилия в транслитерации><номер
группы>_gruppa1
д. Поля Column Name (Имя столбца), Type (Тип Данных), Precision (Точность,
Максимальный размер), Scale (Размер, Количество знаков после запятой), Not Null
1
Вместо <фамилия в транслитерации> подставьте Вашу фамилию латинскими буквами, а вместо ><номер группы> подставьте номер Вашей
группы.
1
(Обязательное) предназначены для описания столбцов создаваемой таблицы. Добавьте
описания следующих столбцов (как на рисунке):
 Столбец с названием id, тип данных – Number(4), обязательный. В этом столбце
будет храниться уникальный числовой идентификатор группы.
 Столбец с названием nomer, тип данных – Varchar2(30), обязательный. В этом
столбце будет храниться символьный номер группы.
 Столбец с названием god_nabora, тип данных – Number(4), необязательный. В этом
столбце будет храниться число, соответствующее году набора группы.
е. На шаге Primary Key:
 в поле Primary Key выберите Populated from a new sequence (значения
столбца первичного ключа будут браться из нового объекта-последовательности).
Последовательность (Sequence) – это объект БД, который используется для генерации
уникальных числовых значений.
 В полях Primary Key Constraint Name (Название ограничения целостности первичного
ключа) и Sequence Name (Название последовательности) оставьте значения по
умолчанию, сгенерированные APEX.
 В поле Primary Key (Первичный ключ) выберите столбец ID.
ж. Шаг Foreign Key (Внешний ключ) пропустите, т.к. в создаваемой таблице пока нет ссылок
на другие таблицы.
з. На шаге Constraints (Ограничения целостности) добавьте уникальный ключ,
определенный на столбце NOMER:
 В секции Add Constraint выберите радиокнопку Unique (Уникальный ключ)
 В появившееся ниже поле-список Key Column(s) (Столбцы ключа) перенесите столбец
NOMER.
 В поле Name должно быть указано название создаваемого ограничения целостности.
Это имя должно быть уникальным в БД. Оставьте значение, предлагаемое по
умолчанию.
 Нажмите кнопку Add, чтобы добавить ограничение в список ограничений целостности
создаваемой таблицы.
и. На шаге Confirm Вы можете просмотреть сгенерированный мастером SQL-скрипт по
созданию таблицы, щелкнув по ссылке
. Подтвердите создание таблицы, нажав на
кнопку Create.
2
Созданная таблица появится в списке таблиц. Для выбранной таблицы в центральной части Object
Browser отображается ее детальное описание, организованное в виде вкладок (Table, Data, Indexes,
Model, Constraints, …). На каждой вкладке представлены кнопки с операциями, которые можно
совершать над таблицей (например, на вкладке Table: Add Column, Modify Column и т.д.).
3.
4.
Изучите содержимое вкладок описания созданной таблицы.
Найдите и изучите описание созданного объекта-последовательности
5.
Аналогичным образом создайте новую таблицу, предназначенную для хранения сведений о
студентах:
3
а. Название таблицы – <фамилия в транслитерации><номер группы>_student1
б. В таблице должны быть определены столбцы, как на рисунке ниже:
Обратите внимание на столбец gruppa_id. Это столбец, который будет содержать ссылку
на группу (на запись в соответствующей таблице). Поэтому он должен иметь тот же тип
данных и размер, что и столбец первичного ключа в созданной Вами ранее таблице
<фамилия в транслитерации><номер группы>_gruppa.
в. В первичный ключ должен входить столбец id, значения для него должны браться из
новой последовательности, которая должна быть создана.
г. На шаге Foreign Key (Внешний ключ) добавьте ограничений ссылочной целостности
(внешний ключ) для столбца GRUPPA_ID:
 В секции Add Foreign Key (Добавить внешний ключ) поле Name впишите название
создаваемого ограничения целостности – <фамилия в транслитерации><номер
группы>_student_gruppa_fk. Убедитесь, что длина названия не превышает 30
символов (ограничение СУБД Oracle на длину идентификаторов объектов). При
необходимости сократите название.
 Из группы радиокнопок {Disallow Delete, Cascade Delete, Set Null on
Delete} оставьте выбранным Disallow Delete (запрещать удаление родительской
записи, если у нее есть дочерние).
 В качестве столбца, на который накладывается ограничение целостности (поле со
списком Key Column(s)) выберите столбец GRUPPA_ID.
 В качестве родительской таблицы (на которую ссылается столбец GRUPPA_ID)
выберите
созданную
Вами
ранее
таблицу
<фамилия в транслитерации><номер группы>_gruppa.
 Для того, чтобы появились поля со списками столбцов для родительской таблицы,
щелкните по иконке
справа от поля References Table.
 В появившееся ниже поле со списком Referenced Column(s) добавьте столбец ID, на
который будет ссылаться столбец GRUPPA_ID.
1
Вместо <фамилия в транслитерации> подставьте Вашу фамилию латинскими буквами, а вместо ><номер группы> подставьте номер Вашей
группы.
4
6.
 Нажмите кнопку Add, чтобы добавить ограничение целостности в список внешних
ключей.
д. Добавьте ограничение уникального ключа для столбца NOMER_ZACHETKI.
Изучите содержимое вкладок описания созданной таблицы. Обратите внимание на вкладку
Model. На ней отображаются таблицы, на которые ссылается данная таблица, и которые
ссылаются на данную таблицу.
Добавление в таблицу столбца-ссылки на другую таблицу
Созданные Вами таблицы <…>_GRUPPA и <…>_STUDENT уже позволяют хранить описания
студенческих групп и студентов этих групп. Однако они не позволяют указать, какой студент
является старостой группы. Рациональнее всего эту возможность моделировать как
характеристику группы (т.е., одним из атрибутов группы является ссылка на студента-старосту
группы)1. Для реализации этой возможности необходимо добавить в таблицу <…>_GRUPPA
столбец-ссылку на таблицу <…>_STUDENT., а также добавить в таблицу ограничение ссылочной
целостности, которое будет гарантировать, что в этом столбце будут храниться только реальные
значения идентификаторов студентов.
7. Добавьте в таблицу <фамилия в транслитерации><номер группы>_gruppa столбец
STAROSTA_ID:
а. В Object Browser откройте описание созданной Вами ранее таблицы
<фамилия в транслитерации><номер группы>_gruppa.
б. На вкладке Table щелкните по кнопке Add Column (Добавить столбец). Отобразится
мастер добавления столбца.
 В поле Add Column введите название столбца – starosta_id
 В поле Nullable оставьте значение NULL (do not require a value), т.к. мы
допускаем, что группа может не иметь старосты.
1
Другим, менее предпочтительным в данном случае, способом является добавление в характеристики студента признака того, что он является
старостой группы, в которой учится.
5
 В поле Type (Тип данных) выберите NUMBER
 В поле Precision введите 8 (что соответствует размеру столбца ID в таблице
<…>_STUDENT)
 Поле Scale (количество знаков после запятой) оставьте пустым
в. Подтвердите создание столбца, нажав на кнопку Finish. Созданный столбец отобразится в
списке столбцов таблицы.
8.
6
Добавьте в таблицу <фамилия в транслитерации><номер группы>_gruppa ограничение
ссылочной целостности (внешний ключ) для столбца STAROSTA_ID.
а. Откройте
вкладку
Constraints
описания
созданной
Вами
таблицы
<фамилия в транслитерации><номер группы>_gruppa.
б. Щелкните по кнопке Create. Отобразится мастер добавления ограничения целостности.
 В поле Constraint Name впишите название создаваемого ограничения (оно должно быть
уникальным
в
БД)
<фамилия в транслитерации><номер
группы>_gruppa_starosta_fk.
 В поле с выпадающим списком типов ограничений выберите Foreign Key.
 Для Constraint Type выберите Disallow Delete.
 В списке Foreign Key Column(s) выделите столбец STAROSTA_ID.
 В поле Reference Table Name (название родительской таблицы) выберите название
созданной Вами таблицы <фамилия в транслитерации><номер группы>_student.
 В списке Reference Table Column List (столбцы родительской таблицы, на которые
будут ссылаться столбцы внешнего ключа) выберите столбец первичного ключа
родительской таблицы – ID.
в. Подтвердите создание внешнего ключа, нажав на кнопку Finish. Созданное ограничение
целостности отобразится в списке ограничений целостности таблицы.
9.
Откройте вкладку Model для таблицы <фамилия в транслитерации><номер группы>_gruppa.
Обратите внимание, что таблица <…>_STUDENT дважды представлена в модели: как
подчиненная таблица, которая ссылается на таблицу <…>_GRUPPA, и как родительская
таблица, на которую ссылается таблица <…>_GRUPPA.
Создание приложения для просмотра и редактирования данных в созданных таблицах
10. Создайте новое приложение с названием ЛБ_7, позволяющее просматривать и редактировать
созданные таблицы. Приложение должно содержать:
а. главную страницу (со ссылками на ключевые страницы) или вкладки, позволяющие
осуществлять навигацию;
б. отчет, позволяющий просматривать список всех групп и искать группу (с помощью поля
поиска);
в. форму, связанную с отчетом о группах, позволяющую создавать новые и редактировать
существующие записи о группах;
г. отчет, позволяющий просматривать список всех студентов и искать студентов (с помощью
поля поиска);
д. форму, связанную с отчетом о студентах, позволяющую создавать новые и редактировать
существующие записи о студентах;
е. отчет о студентах, учащихся в заданной группе (группа выбирается пользователем, после
чего отображаются записи о студентах только этой группы).
11. Протестируйте работу созданного приложения, заполнив таблицы тестовыми данными.
Контрольные вопросы:
1. Каковы основные функции инструмента SQL Workshop > Object Browser?
2. Какие операции позволяет совершать над таблицей Object Browser?
3. Для чего служит вкладка Model в описании таблицы?
7
Download