Чем 'неподверсия Codd управляет' средний?

Что касается Первичного ключа, независимо от того, что физически делает строку уникальной, должен быть определен как первичный ключ.

Для ссылки как внешний ключ, с помощью автоматического целого числа постепенного увеличения, поскольку суррогат является хорошей идеей по двум главным причинам.
- Сначала, там меньше наверху поносится в соединении обычно.
- Второй, если необходимо обновить таблицу, которая содержит уникальный varchar тогда, обновление должно расположиться каскадом вниз ко всем дочерним таблицам и обновить всех их, а также индексы, тогда как с международным суррогатом, это только должно обновить основную таблицу, и это - индексы.

drawaback к использованию суррогата - то, что Вы могли возможно позволить изменяться значения суррогата:

ex.
id value
1 A
2 B
3 C

Update 3 to D
id value
1 A
2 B
3 D

Update 2 to C
id value
1 A
2 C
3 D

Update 3 to B
id value
1 A
2 C
3 B

Все это зависит от того, о чем действительно необходимо волноваться в структуре и что означает больше всего.

5
задан Michael Petrotta 3 September 2009 в 18:38
поделиться

2 ответа

Правило 12: Правило отсутствия подверсий:

Если система предоставляет интерфейс низкого уровня (запись за раз), то этот интерфейс нельзя использовать для подорвать систему, например, в обход реляционной безопасности или ограничение целостности.

Допустим, вы определяете ненулевое ограничение для столбца. Можете ли вы обойти СУБД (например, используя служебный API низкого уровня, предоставляемый Oracle), чтобы вставить в этот столбец нуль? Если да, то вы нарушили это правило.

10
ответ дан 18 December 2019 в 11:59
поделиться

То, что сказал Майкл, также применимо к массовым загрузчикам.

Предположим, что SQL * Loader позволяет массово загружать строки в таблицу, не проверяя, дублируют ли строки строки уже в таблице с нарушением уникального ограничения. Это равносильно нарушению правил, выраженных в схеме.

Другие продукты СУБД имеют массовые загрузчики, и некоторые из них допускают подрывную загрузку, чтобы ускорить массовую загрузку.

Правило 12 запрещает это.

5
ответ дан 18 December 2019 в 11:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: