Как проверить модальность/мощность отношения в Oracle

Я пытаюсь реконструировать базу данных, которая находится в Oracle. Мне удалось найти основные ключи и правила ссылочной целостности, соответствующие внешним ключам, но я не могу найти, где хранятся правила модальности/количественного числа.

Буду очень признателен за любую помощь в отношении того, в какой таблице искать или образец запроса.


person Josh    schedule 17.02.2010    source источник


Ответы (2)


Что вы подразумеваете под правилами модальности/мощности?

Отношения FK всегда 1:N, насколько это касается Oracle. Я предполагаю, что можно обеспечить соотношение 1:1, установив два отношения FK на одних и тех же полях, но в противоположных направлениях.

Единственное другое «правило», касающееся количества элементов, - это уникальные ключи, но я думаю, что они у вас уже есть. Если нет, это может помочь:

http://www.eveandersson.com/writing/data-model-reverse-engineering#constraints

В зависимости от настройки базы данных вы также можете найти эвристику о мощности значений в столбцах:

select * from user_tab_col_statistics

В частности, значение «NUM_DISTINCT» может иметь некоторую ценность.

Если вы ищете дополнительную информацию в словаре данных, я рекомендую этот выбор для начинающих.

select * from dict
where lower(comments|| '@' || table_name) like '%whatareyoulookingfor%'
person Jens Schauder    schedule 17.02.2010

Я думаю, вам придется проверить, что столбцы ссылок являются nullable:

SELECT column_name, nullable
FROM user_tab_cols
WHERE table_name = '<TABLE_NAME>'

и для уникальных индексов по ссылающимся столбцам:

SELECT idx.index_name, col.column_name
FROM user_indexes idx
JOIN user_ind_columns col ON ( col.index_name = idx.index_name )
WHERE idx.uniqueness = 'UNIQUE'
  AND idx.table_name = '<TABLE_NAME>'
person Peter Lang    schedule 17.02.2010