2010-08-03 100 views
2

這是我第一次使用面向對象的數據庫。我與過去幾年的RDBMS相關聯。但是現在..進入面向對象數據庫的這個世界,我對數據庫創建或設計的後果感到擔憂。我擔心的是RDMS數據庫中面向對象數據庫的人口或遷移。這將是我的任務之一。面向對象的數據庫

我想知道我應該爲遷移片準備什麼樣的挑戰,而我們正在設計這些數據庫。

任何投入??

+0

「我擔心的是從關係數據庫管理系統數據庫中的人羣或此對象的遷移面向數據庫」?你可以再詳細一點嗎?你關心什麼?你必須編寫Java(或C#或Python)程序來加載數據庫嗎?這是你的擔心嗎?你使用哪種OODB? – 2010-08-03 19:46:33

+0

S.lot ..由於空間限制,我給出了我作爲本文回答的關注事例。 – iims 2010-08-03 20:25:48

+0

你的問題到底是什麼?你用什麼OODB?您可以根據需要使用其他詳細信息編輯原始帖子。 – CesarGon 2010-08-03 20:32:05

回答

0

我是一個即將到來的DBA,我不寫任何Java代碼,但..有這麼多的繼承回事,表之間的緊耦合的,也是我可以舉個例子,像

CREATE TABLE [dbo].[A](
[application] [varchar](50) NULL, 
[category] [varchar](50) NULL, 
[corporateCode] [varchar](50) NULL, 
[critical] [bit] NULL, 
[initialCondition] [varchar](50) NULL, 
[initialLossOfLife] [decimal](3, 2) NULL, 
[installationDate] [date] NULL, 
[lotNumber] [varchar](50) NULL, 
    [BID] [int] NOT NULL, 

    CONSTRAINT [PK_A] PRIMARY KEY CLUSTERED 
(
[AID] ASC 
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY =    OFF,   ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] 
) ON [PRIMARY] 

GO

SET ANSI_PADDING OFF GO

ALTER TABLE [dbo].[A] WITH CHECK ADD CONSTRAINT [FK_BID] FOREIGN KEY([B]) 

參考文獻[DBO]。[B]([BID]) GO

 CREATE TABLE [dbo].[B](
[BID] [int] NOT NULL, 
    CONSTRAINT [PK_B] PRIMARY KEY CLUSTERED 
    (
[BID] ASC 
    )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF,   ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] 
) ON [PRIMARY] 

GO 

    ALTER TABLE [dbo].[B] WITH CHECK ADD CONSTRAINT [FK_B_A] FOREIGN KEY([BID]) 
    REFERENCES [dbo].[A] ([AID]) 
    GO 

    ALTER TABLE [dbo].[B] CHECK CONSTRAINT [FK_B_A] 
    GO 

即使從表示層,這種設計如何插入也是可能的?

1

所以這真的是一個SQL數據庫?我不認爲這個問題與大多數人將會理解爲「面向對象」數據庫有什麼關係。

看起來您的數據庫在您發佈的表單中無法使用。除非您刪除或禁用某個外鍵約束 - 至少暫時不能插入行。要做到這一點的一個方法是使用「可排除的」約束。但是,它看起來好像您可能正在使用Microsoft SQL Server,它不支持可靠的約束。

1

我之前已經回答了這個問題here,希望這將有助於

關係數據庫

  • SQL和標準
  • 容易建模
  • 只能使用標準和供應商類型
  • 參照完整性(基本固體relational set theory
  • 大量的工具和數據庫實現
  • 數據從程序分離出來
  • 存儲管理和高端基礎設施支持內
  • 關係模型
  • 交易和併發管理做的是基於價值的,即行按主鍵標識

缺點

  • ñ O自定義類型
  • 沒有擴展的數據類型
  • 阻抗失配
  • 不能表達嵌套關係
  • 不能使用複雜的實體作爲單個單元
  • 需要在數據模型級別來定義關係的鍵和各種類型的
  • 的版本寫的程序,如果需要交易

對象DB

  • 高性能
  • 更快,因爲沒有聯接需要
  • 固有版本控制機制
  • 導航界面,用於操作(如圖遍歷)
  • 對象查詢語言檢索對象聲明
  • 複雜的數據類型
  • 對象身份即。equals()方法中,對象身份是獨立的價值和更新
  • 功能有助於對象共享
  • 類和層次結構(繼承和封裝),用於與持久性語言如ODL
  • 支持集成關係
  • 支持對於嵌套關係原子
  • 支持
  • 語義建模

缺點

  • 沒有數學基礎爲RDB(參照科德)面向對象
  • 持久難以對於複雜結構的
  • 缺點,一些數據必須是瞬時

對象關係數據庫(你可能看過UDT!)對於複雜的數據類型,例如採集

  • 支持,多集等
  • 面向對象的數據建模
  • 擴展SQL和豐富的類型UDT
  • 支持inhertance
  • 強大的查詢語言

不同的方法(OO,關係DB或OODB)對於不同的應用可能是必需的

參考

The advantage of using relational databases for large corpora

Relational Database Relational Database

OODMS manifesto

ODMG

Benefits of a relational database

The Object-Oriented Database System Manifesto

Object Oriented Database Systems

Object Relational Databases in DBMS

Completeness Criteria for Object-Relational Database Systems

比較

http://en.wikipedia.org/wiki/Comparison_of_relational_database_management_systems

http://en.wikipedia.org/wiki/Comparison_of_object_database_management_systems

http://en.wikipedia.org/wiki/Comparison_of_object-relational_database_management_systems