RDMS是否违反OOP

时间:2019-01-04 06:03:53

标签: oop design-patterns object-oriented-analysis

我想用现有数据库设计OOP  标头,详细信息,链接表,检索的存储过程  并从许多表格中进行计算并进行汇总等,  困惑如何将所有混乱转换为OOP?

1 个答案:

答案 0 :(得分:0)

关系数据库(RDB)和面向对象的编程(OOP)是不同的范例,每种技术都反映了不同的目的。 RDB旨在有效地将数据存储在表中并快速提取数据和关系,而OOP旨在反映在现实世界中看到的对象的组成和抽象。由于两者的目的是不同的,所以两者之间存在逻辑上的差距,但是在从RDB转换为OOP以及反之亦然方面已经做了很多工作。

此技术称为Object-Relational Mapping (ORM)。 ORM中使用了一套标准的模式和技术,可以轻松地将RDB数据转换为OOP,反之亦然,但是特定的技术不在本文讨论范围之内。此外,Patterns of Enterprise Architecture列出了弥合关系数据和OOP之间差距的非常重要的技术,包括:

在实践中,这些技术是如此普遍,以至于许多语言或流行的框架已经将这些模式编成代码,从而无需在项目中手动实现它们。例如,在Java中,有Java Database Connectivity (JDBC)Spring JDBC。具体的框架和工具将取决于语言,但是大多数现代语言都有数据库(特别是关系数据库)映射工具,从而无需编写繁琐的过程来提取和存储数据。如果您有兴趣,可以在List of object-relational mapping software上按语言列出(虽然不全面)ORM。


建议:阅读并了解ORM的常规做法,然后选择适合您项目需求的ORM或数据库抽象框架。