Хорошая структура базы Oracle подразумевает точное соблюдение бизнес-правил компании. Созданная модель данных должна удовлетворять любым бизнес-правилам, которые будет реализовывать приложение, и потому включение этих правил в проект будет помогать моделировать даже ту информацию, которая обычно не охватывается в моделях баз данных.
При внедрении принудительной проверки целостности данных, по сути, обеспечивается гарантия правильности данных в таблицах и отсутствие в них каких-либо несоответствий, которые могут появляться как прямо во время первоначального процесса ввода данных, так и позже, при внесении в них тех или иных изменений. Кроме того,модель должна предусматривать проверку целостности данных посредством применения соответствующих ограничений, предоставляемых самой РСУБД. ER-модель позволяет делать пометки о необходимых ограничений и планировать их обработку заранее.
Ниже перечислены четыре наиболее популярных методики, которые можно использовать для обеспечения проверки целостности данных и соблюдения бизнес-правил в ER-модели.
- Можно использовать первичные ключи для принудительного обеспечения уникальности данных в таблицах. Обратите внимание на то, что значения первичных ключей должны обязательно быть уникальными и не нулевыми. Значение первичного ключа не должно меняться на протяжении всей жизни экземпляра сущности.
- Можно использовать внешние ключи для принудительного обеспечения целостности ссылочных данных и тем самым получения уверенности в целостности и согласованности всех данных. Под обеспечением целостности ссылочных данных (referential integrity) подразумевается поддержание правильных отношений зависимости между двумя таблицами, а под обеспечением декларативной целостности ссылочных данных (declarative referential integrity) — гарантирование целостности данных за счет определения отношения между двумя разными таблицами.
- Можно обеспечивать действительность и значимость данных путем принудительного ввода доменных ограничений, наподобие проверочных ограничений целостности (check constraints). Доменные ограничения (domain constraints) гарантируют получение действительных значений для определенных сущностей. Например, в базе данных, связанной с банковским делом, может присутствовать ограничение,утверждающее, что сумма снятия в любой транзакции всегда должна быть меньше или равна общей сумме денежного баланса владельца счета.
- Можно использовать триггеры баз данных (database triggers), которые будут автоматически выполнять определенные операции в случае возникновения того или иного указанного действия для обеспечения действительности данных.
Пятым способом для обеспечения соблюдения бизнес-правил является написание программного кода с использованием встроенных ограничений базы данных. Например,вместо добавления для столбца ограничения NOT NULL, для обеспечения того, чтобы при операции вставки происходило фактическое заполнение поля данных, можно легко использовать и одну соответствующую простую строку кода. Более подробно о различных типах ограничений, которые могут встречаться в базах данных Oracle, будет рассказываться в следующих заметках блога.