Почему нам нужно указывать мощность в cognos/hibernate, но не в oracle
1 Victor [2012-09-03 00:27:00]
Когда мы укажем отношение foregin key в oracle, нам не нужно говорить, является ли отношение от 1 до 1, 1 ко многим и т.д. Но когда мы укажем отношения в менеджере фреймворков cognos, почему нам нужно указывать от 1 до 1, 1 для многих и т.д.? Кроме того, не связанный, но просто любопытный, то же самое поведение в инструменте ORM, как Hibernate. Является ли спецификация только для целей optmisation?
Мой другой вопрос заключается в том, что является следствием определения неправильной взаимосвязи кардинальности? i, e, я указываю отношение 1 к 1, где оно действительно 1 для многих. Каков эффект, которым я подвергаюсь риску?
oracle10g cardinality cognos-8
2 ответа
0 Решение Jeffrey Kemp [2012-09-04 06:06:00]
Вы объявляете отношения в Oracle, характер отношений неявна в том, как он объявляется Oracle, например:
CONSTRAINT fk FOREIGN KEY (id) REFERENCES parent_table (id)
подразумевает, что между родительской таблицей и этой таблицей существует соотношение 1: M.
Если, кроме того, существует уникальное ограничение для дочерней таблицы, например:
CONSTRAINT uk UNIQUE (id)
подразумевает, что отношение равно 1:1.
0 Ran Avnon [2012-09-03 22:10:00]
Из документации Cognos:
Программное обеспечение IBM® Cognos® использует мощность отношений следующими способами:
избежать двойных учетных данных фактов
для поддержки объединений циклов, которые являются общими в моделях звездной схемы
для оптимизации доступа к базовой системе источников данных
для определения объектов запроса, которые ведут себя как факты или измерения
Для получения дополнительной информации смотрите здесь: Framework Manager Cardinality