programing

ORM은 NoSQL API와 중복됩니까?

skycolor 2023. 6. 1. 22:36
반응형

ORM은 NoSQL API와 중복됩니까?

MongoDB(그리고 다른 NoSQL 데이터베이스 API의 가치가 있다고 가정함)를 사용하여 데이터베이스를 쿼리하는 방법은 SQL보다 훨씬 단순합니다.생성해야 하는 지루한 SQL 쿼리 등이 없습니다.예를 들어 mongodb-csharp에서 다음을 예로 들 수 있습니다.

using MongoDB.Driver; 
Mongo db = new Mongo(); 
db.Connect(); //Connect to localhost on the default port. 
Document query = new Document(); 
query["field1"] = 10; 
Document result = db["tests"]["reads"].FindOne(query); 
db.Disconnect();

ORM이 어떻게 그것을 단순화할 수 있습니까?적절한 NoSQL API 위에 ORM 또는 기타 "데이터베이스 추상화 장치"가 필요합니까?

MongoDB는 관계형 데이터베이스가 아니라 문서 지향 데이터베이스이기 때문에 객체 관계형 맵은 MongoDB와 중복됩니다.

그래서 SQL 대신 JSON에 쿼리를 씁니다.만약 당신이 Linq와 반대로, 정말로 JSON을 쓰고 싶지 않다면, 당신은 여전히 지도를 사용하고 싶을 것입니다.그리고 MongoDB 자체에 대해 커플링을 생성하고 싶지 않다면 실제를 통과하지 않는 것이 좋습니다.Document주변의 물체를 실제 POCO에 매핑하려고 합니다.

MongoDB와 같은 문서 지향 DB에서는 관계 대신 중첩된 문서가 있기 때문에 매핑이 훨씬 쉽지만 그렇다고 완전히 사라지는 것은 아닙니다.이는 단지 한 가지 유형의 "임피던스 불일치"를 약간 덜 극적인 다른 불일치로 대체했다는 것을 의미합니다.

MongoDb의 "ORM"은 객체를 DB로 "직렬화"하고 "직렬화"하는 데 유용할 뿐만 아니라(Norm이 훌륭한 일을 하는 것처럼 보임) 집계 쿼리를 더 쉽게 실행할 수 있도록 하는 데도 유용할 수 있다고 생각합니다.

ORM이 중복을 그룹화하고 탐지하기 위해 MapReduce 작업을 생성할 수 있다면 좋습니다.일부 사람들은 sql 문을 맵리듀스 작업으로 자동 변환하는 코드를 작성했습니다. http://rickosborne.org/blog/index.php/2010/02/19/yes-virginia-thats-automated-sql-to-mongodb-mapreduce/

쿤데라를 보세요: https://github.com/impetus-opensource/Kundera, 몽고드브, 카산드라, HBase보다 ORM.

또 다른 솔루션은 확장 가능한 SQL 언어를 사용하여 필요할 때 조인도 수행할 수 있는 PlayOm입니다(기본적으로 파티션 정보를 추가하기 위해 일반 SQL에 접두사만 추가).

드라이버가 NoSQL 데이터베이스와 함께 제공되는 성숙도에 따라 달라집니다.이 링크는 NoSQL 데이터베이스에 대한 ORM 도구의 관련성에 대해 설명합니다. http://xamry.wordpress.com/2012/08/10/sqlifying-nosql-are-orm-tools-relevant-to-nosql/

이 작업을 수행하려면 직렬화/직렬화만 있으면 됩니다.

Norm은 그것을 아주 잘 해냈습니다.한 줄의 코드로 직선의 포코 객체를 쉽게 가져가서 몽고에 저장할 수 있습니다.

그들은 Norm을 ORM이라고 부르지만, 그것은 정말 단지 사전 몽고 래퍼일 뿐입니다.

오르막은 이런 수술을 위한 추가적인 의식일 뿐입니다.데이터 작업이 저장소로 추상화된 경우 다른 백업 저장소로 변환하는 것은 개체당 기본적으로 개체이기 때문에 어느 쪽이든 문제가 되지 않습니다.

python에서 API로 라이브러리를 표준화하자는 제안이 있다는 것을 방금 읽었습니다: https://discuss.python.org/t/request-for-comment-making-pep-for-nosql-databases/14772

보다 정확하게는 설명된 API에 따라 다른 라이브러리를 차례로 구현할 라이브러리에 대해 이야기하고 있습니다. https://github.com/MatteoGuadrini/nosqlapi

이러한 API를 C# 언어로 적용하거나 변환할 수 있습니다.

그러나 NOSQL 데이터베이스의 경우 API를 모든 언어로 사용하는 것이 좋습니다...

언급URL : https://stackoverflow.com/questions/2694044/is-an-orm-redundant-with-a-nosql-api

반응형