Проектирование схемы приложения. Эффективное использование синонимов в схеме приложения, страница 2

Такие диаграммы являются основой автоматизированного проектирования программного обеспечения и методологий проектирования, применяемых такими инструментальными средствами, как средства CASE Oracle. Различные символы на диаграмме показывают различные части схемы (таблицы обозначены прямо­угольниками, отношения — линиями и т.д.). (Подробнее о диаграммах отношения и инструментальных средствах CASE рассказывается в главе 14.)

Выбор ключей и определение правил целостности

При проектировании таблиц в схеме приложения важно определить в них ключи и задать между таблицами нужные отношения. Затем вы можете задать правила ссылочной целостности, идентифицированные на этапе анализа с помощью таких ограничений целостности Oracle7 как PRIMARY KEY, UNIQUE и FOREIGN KEY. Давайте рассмотрим кратко некоторые важные вопросы, которые нужно принимать во внимание при планировании для схемы правил целостности.

Выбор первичных ключей Каждая таблица базы данных должна иметь пер­вичный ключ — столбец или набор столбцов, значения которых уникальным образом идентифицируют каждую строку таблицы. При создании новой таблицы. важно корректно задать ее первичный ключ. В противном случае использующие таблицу приложения могут работать не так, как планировалось.

Первичные ключи таблиц характеризуются тремя качествами: они уникальны. остаются статическими и являются краткими.

Уникальность По определению первичный ключ таблицы не может содержать значений-дубликатов, иначе его невозможно будет использовать для уникальной идентификации каждой строки в таблице. Неявно подразумевается также, что первичные ключи не могут содержать значения NULL (так как два таких значения различить будет невозможно). При проектировании схемы обычно имеются две таблицы со столбцами идентификаторов (ID), которые для уникальной идентифи­кации каждой строки в базе данных используются в качестве первичных ключей. Однако в отдельных базах данных это может не требоваться. Например, в таблице со списком сотрудников в качестве первичного ключа может использоваться номер социального страхования.

Статичность Первичные ключи — это столбцы, не подверженные частым изме­нениям. После присваивания строке основного ключа он должен оставаться стати­ческим в течение всего времени существования строки иначе применение его бессмысленно. Например, номер социального страхования остается постоянным в течение всей жизни сотрудника.

Краткость В большинстве приложений поиск строки выполняется по первичному ключу, поэтому чем короче первичный ключ, тем лучше. Лучшим значением пер­вичного ключа является один столбец, содержащий целые числа, аналогично клю­чам. используемым в примерах этой книги. (Вспомните это, когда будете читать главу 16. В ней показано, как настраивать производительность приложения с помощью другого средства Oracle7 последовательностей, которые приложение может применять для автоматической генерации уникальных числовых значений первичных ключей.)

При выборе первичного ключа для таблиц в новой схеме приложения следуйте приведенным выше рекомендациям. Нужно иметь в виду, что в некоторых ситуа­циях вы не можете следовать всем этим рекомендациям. Например, для таблицы ITEM лучше использовать сложный первичный ключ, то есть ключ, состоящий из нескольких столбцов. Хотя Oracle7 поддерживает спецификацию сложных первич­ных ключей, чтобы упростить процесс разработки, их следует по возможности избегать.

Определив в схеме приложения первичные ключи, вы можете определить пра­вило ссылочной целостности, гарантирующее их уникальность. Для этого исполь­зуются ограничения Oracle7 PRIMARY KEY. (См. ниже раздел "Управление таблицами и ограничениями защиты", где о спецификации ссылочной целостности при создании таблиц рассказывается подробнее.)

Идентификация альтернативных ключей и столбцов для индекса