На этапе проектирования таблиц в базе данных Oracle нужно определять, какие из таблиц будут исполнять роль основных таблиц данных, а какие — таблиц поиска. В таблицах поиска (lookup table) обычно содержатся статические данные, как в описанной в предыдущем разделе таблице отделов (Departments). Как правило, при наличии в таблице внешнего ключа, таблица, которая является источником этого ключа, и будет становиться таблицей поиска.
Для обеспечения хорошей производительности в будущем, лучше не бояться тратить на этапе проектирования как можно больше времени на продумывание того, каким образом пользователи будут использовать базу данных. Например, несмотря на то, что нормализация может и являться правильным подходом к проектированию базы данных с технической точки зрения, она чревата появлением потребности в считывании большего количества таблиц для обработки одного запроса. А чем больше таблиц будет требоваться объединять для запроса, тем больше будет использоваться ресурсов центрального процессора и памяти и тем хуже может становиться производительность базы данных.
В случае проявления достаточного объема усердия на этапе проектирования базы данных Oracle, поток производственных процессов организации при проектировании таблиц может удаться изобразить достаточно точно. Если задуматься о стоимости и сложности отладки плохо написанного SQL-кода впоследствии, станет очевидно, что тщательное проектирование таблиц и полей стоит приложения усилий.
Структуры таблиц и соглашения по именованию
Определение структур таблиц и соглашений по именованию для базы данных должно завершаться на этапе физического проектирования. Во многих организация, однако, эти элементы уже предопределены, и тогда может быть достаточно использовать установленные стандарты. Самое главное — давать таблицам короткие, понятные имена, поскольку впоследствии, при их обслуживании, это позволит экономить массу усилий.
Спецификации столбцов и выбор типов данных
К этому моменту нужно уже иметь хорошее представление о точной природе столбцов во всех таблицах. Еще на этом этапе необходимо определиться с типами данных, которые будут использоваться для спецификации столбцов. Например, требуется устанавливать, в каком виде будут сохраняться данные в каждом столбце: в виде целых чисел, символов или чего-нибудь еще.
Типы данных будет диктовать природа самого приложения. Например, в случае создания базы данных посетителей больницы количество посещений всегда будет иметь вид целого числа, а не числа с плавающей запятой, потому что не может быть такого, чтобы человек посещал больницу, скажем, 2,5 раза в год.