...
- Выбрать предметную область для проекта. См. список вариантов.
Выберите наиболее интересную область, не обязательно из списка. Лучше всего, если она будет интересна лично вам, и среди ваших знакомых будет эксперт, который сможет играть роль заказчика. Можно взять предметную область из курсовой работы курса по БД, это позволит сэкономить время на проектирование БД. - Разработать концепцию (Vision) проектируемой системы (документ на от половины страницы до двух страниц максимум).
Лучше всего это сделать со слов знакомого-заказчика, либо согласовать с ним - Составить словарь специальных терминов предметной области (не обязательно)
Чтобы любой разработчик, прочитав словарь, мог говорить с командой на одном языке - Нарисовать UML диаграммы сценариев использования (Use Cases) для всех ролей системы.
Детализация сценариев хотя бы части системы, должна доходить до уровня конкретных пунктов меню, кнопок и форм - Детализировать требования:
- Activity-диаграммы (для описания бизнес-процессов)
- Диаграммы состояний объектов предметной области
- другой способ описания или визуализации
Материалы и примеры диаграмм см. в 1.1 Сбор и анализ требований
2. Проектирование ER-схемы
3. Разработка процедур на PL/SQL
- Спроектировать схему БД в виде логической и физической модели в ER Case-средстве (например, er-win)
- Таблицы и связи. Количество таблиц не регламентируется, но все сценарии (use case) из п.1 должны быть реализуемы на схеме.
- Первичные ключи должны быть суррогатными - состоять из одного поля типа INTEGER, значения для которого генерируются из последовательности (sequence). Возможны обоснованные исключения.
- Типы данных на логической и физической моделях должны соответствовать требованиям. По-умолчанию Er-Win используется CHAR(14) что почти всегда неверно.
- Альтернативные ключи должны присутствовать там, где по смыслу одна или более колонок должны быть уникальными
- Сгенерировать скрипт из ER-модели и накатить его в свою схему в Oracle.
- При помощи команд SQL Insert или SQL Developer заполнить схему тестовыми данными (по 3-5 или более строк в каждую таблицу).
3. Разработка процедур на PL/SQL
Разработать одну или несколько процедур/функций или триггеров на процедурном языке СУБД (PL/SQL), реализующих один или часть сценария (use case) из задания №1.
Процедура должна:
- принимать аргументы на вход
- валидировать значения аргументов, бросать исключение если значения некорректны
- выполнять необходимое действие
- если необходимо, выполнять пост-валидацию корректности данных после действия, в случае необходимости бросать исключение (RAISE_APPLICATION_ERROR)
- обрабатывать исключения (например, NO_DATA_FOUND), возникающие во время выполнения. Свои собственные исключения перехватывать обычно не надо.
Примеры возможных процедур:
- Выполнения массивных вставок или обновлений в БД, например заполнение свободными местами новых рейсов самолетов.
- Триггеры, ведущие аудит (историю изменений) данных. При insert/update/delete в основные таблицы, триггер может вставлять копию данных в дополнительную таблицу.
- Создания отчета по-расписанию. Данные отчета (результаты вычислений) записываются в отдельную таблицу.
- Реализация сценария, требующего вставки/обновления в несколько таблиц.
4. Клиент №1
5. Клиент №2
...