Поиск по этому блогу

25.02.2013

3 - анализируем структуру БД и создаем таблицы

Рассмотрим, как настроить структуру базы данных на примере схемы, показанной на рисунке
Схема БД Access "Прием заказов и их анализ"
Голубым цветом выделена часть БД, которая нужна приемщику заказов, желтым цветом - часть схемы для пользователя - аналитика, а серым - общие для обоих таблицы. Примерно так вы можете разделить между собой работу по созданию таблиц в Oracle APEX. Значит, первое задание:
разделить таблицы БД между разработчиками проектов, в соответствии с темой проекта. Общие таблицы поделите на двоих, либо работайте над ними вместе.

Далее продумайте, какие типы полей Oracle вы будете использовать вместо типов Access. См. с.6-7 методички.
Например:
Тип поля Access
Тип поля Oracle
 Числовой, все форматы, в том числе:
Счетчик, длинное целое,
 Действительное
Денежный
NUMBER — числовые данные

Текстовое
VARCHAR 2 — текстовые строки переменной длины до 4000 байт.
Поле MEMO
LONG — текстовые строки длиной до 2 ГБ
CLOB – тексты длиной до 4 Гб
Дата / время
DATE — даты
TIME - время
Чтобы не запутаться в таблицах своей базы  данных, мы можем а) создать несколько схем БД в одной рабочей области или б) имена объектов одного  проекта начинать с одного и того же префикса. Воспользуемся вариантом Б: три первые буквы вашего логина будем писать перед именем каждой таблицы, например: spo_zakaz, res_zakaz и т.д.  То же самое касается представлений, приложений и прочих объектов в вашей БД.

Пользуясь приведенной таблицей и соглашением об именах таблиц, выполните второе задание: 
Напечатайте схему своей БД, напишите на схеме типы полей Oracle, названия полей и таблиц (без пробелов и все английскими буквами)

Разберемся с ключами. Первичный ключ таблицы в БД Oracle легче всего делать из объекта Sequence (секвенция), это что-то вроде отдельно живущего счетчика. Можно создать по счетчику для каждой таблицы, тогда выбирайте populated from a new sequence. Если вам нужен составной ключ или ключ без автоматического наращивания значения, то выбирайте последний вариант Not poulated.
Внешние ключи (foreign key) и связи между таблицами описываем также сразу во время создания таблицы. Внешний ключ должен ссылаться на первичный ключ в другой таблице. Поэтому создание БД начните с родительских таблиц: тех, от которых отходит связь с мощностью 1, так как при создании дочерних таблиц вам придется указывать ссылку на поле родительской таблице. Например, когда вы начнете делать таблицу ЗАКАЗ, таблицы КЛИЕНТЫ и ТИПЫ_ДОКУМЕНТОВ уже должны быть созданы.
При описании таблиц мы сразу же вводим и ограничения целостности: обязательные поля (NOT NULL), уникальные поля (Unique),  диапазон допустимых значений поля (длина и точность, а также условие проверки Check), каскадное действие при удалении. 

Задание третье:
подчеркните на схеме БД простые первичные ключи, подчеркните волнистой линией внешние ключи. Если есть составной первичный ключ - добавьте дополнительное поле ИД_данной сущности и сделайте его ключом. Не забудьте заменить внешние ключи в дочерних таблицах на это новое поле.

Напоследок советую посмотреть видео урок, где рассказано, как создать простейшее приложение. Нам из этого урока достаточно понаблюдать за технологией создания таблиц. 
Пользуемся диалоговым режимом APEX, который похож на "Конструктор таблиц" Access: выполните команду SQL WorkShop / Create Data Base Object / Table - и вперед! Теперь вы полностью готовы к созданию таблиц. 

Задание четвертое:
разработайте сначала вместе с партнером по проекту общие таблицы, а затем каждый самостоятельно - свою часть базы данных. Скопируйте SQL-скрипты, которые генерирует APEX после создания каждой таблицы, в обычный текстовый файл. Это сильно поможет вам, если база данных вдруг сломается.



Комментариев нет:

Отправить комментарий