2010-08-03 98 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