2012-09-02 31 views
1

當我們在oracle中指定外鍵關係時,我們不需要說關係是否是1對1,1對多等。但是當我們指定一個關係在Cognos框架管理器中,爲什麼我們需要指定1對1,1對多等? 另外,無關但只是好奇,同樣是在像Hibernate的ORM工具中的行爲。 該規範僅用於驗光目的嗎?爲什麼我們需要在cognos/hibernate中指定基數,而不是在oracle中指定基數

我的另一個問題是指定錯誤的基數關係的效果是什麼?我,我指定一個1對1的關係,它實際上是1對多關係。我冒着什麼風險?

回答

0

聲明中甲骨文的關係,這種關係的性質,因爲它被聲明爲甲骨文,例如方式含蓄:

​​

意味着父表與此表之間存在1:M的關係。

如果,此外,還有對孩子表的唯一約束,例如:

CONSTRAINT uk UNIQUE (id) 

暗示的關係是1:1。

0

從COGNOS文檔:

的IBM®Cognos®軟件使用在以下幾個方面有關係的基數:

,以避免重複計算事實數據
支持循環連接,在星很常見架構模型
優化訪問底層的數據源系統
以識別查詢主題表現爲事實或尺寸

對於更多詳情,請看這裏: Framework Manager Cardinality

+0

謝謝。但是當我們創建表時,Oracle如何不需要指定這個基數? – Victor

+0

看看Jeffrey Kemp上面的答案,瞭解如何定義1:M和1:1。 以任何方式Oracle都是數據庫,而Cognos是BI工具。他們工作或對待關係的方式完全不同。 在Oracle DB中,它通常是在BI工具(如Cognos)中用於表之間的參照完整性,通常是爲了實現更好和正確的(用於正確結果)查詢生成而完成的。 –

相關問題