많은 관계형 데이터베이스 관리 시스템 (RDBMS)을 접했습니다. 그러나 최근에는 최대 절전 모드를 사용하여 Object Oriented 데이터베이스가 왜 인기가 없는지 궁금해졌습니다.
Java 나 C #과 같은 객체 지향 언어가 그렇게 대중적이라면 왜 객체 지향 데이터베이스 관리 시스템 (OODBMS)이 더 대중적이지 않습니까?
많은 관계형 데이터베이스 관리 시스템 (RDBMS)을 접했습니다. 그러나 최근에는 최대 절전 모드를 사용하여 Object Oriented 데이터베이스가 왜 인기가 없는지 궁금해졌습니다.
Java 나 C #과 같은 객체 지향 언어가 그렇게 대중적이라면 왜 객체 지향 데이터베이스 관리 시스템 (OODBMS)이 더 대중적이지 않습니까?
답변:
여러 가지 이유가 있습니다.
데이터베이스가 처음 나타 났을 때 OOP는 여전히 프로그래밍 방법이 아니 었습니다. 반면 관계형 데이터베이스는 많은 관심을 끌었습니다. 그리고 IBM이 80 년대에 도입 한 SQL 은 모든 데이터베이스의 링구아 프랑카 가되었습니다 .
OOP가 대중화되면 몇 가지 시도가 있었지만 몇 가지 문제가 있습니다. 첫째, 진정한 OODBMS는 실제로 구현하기가 어렵습니다. 관계형 데이터베이스의 경우 테이블 및 관련 인덱스는 매우 간단한 구조 (예 : B- 트리)입니다. 또 다른 이유는 관계형 모델 뒤에 많은 이론이 있다는 것입니다. 그것은 수학적 이론에서 직접 도출 된 것입니다. 관계형 데이터베이스를 올바르게 설계하는 방법은 알려져 있습니다 (정규화 등). 마지막으로, 사람들은 이미 SQL에 많이 익숙해졌습니다.
대부분의 경우 최신 NoSQL 솔루션은 실제로 OODBMS를 향한 단계가 아닙니다. 그들 중 많은 사람들이 여전히 관계형이며 단지 제거 JOINs
됩니다. 실제로 객체 저장소는 거의 없지만 객체 간의 관계를 알지 못하기 때문에 실제로 OODBMS가 아닙니다.
OODBMS에 대한 그러한 강력한 추진이없는 또 다른 이유는 "가난한 사람의 OODBMS"솔루션 인 ORM이 있기 때문입니다. 이것은 잘 알려져 있고 안정적이며 테스트를 거친 DB 엔진의 지원을 받아 큰 인기를 얻었지만 객체에 대한 매핑을 제공합니다. 물론 이들은 실제 OODB가 아닙니다.