-
Notifications
You must be signed in to change notification settings - Fork 4
Object relational mapping
sixmen edited this page Oct 18, 2012
·
4 revisions
Object-relational mapping(ORM)은 타입 시스템이 호환되지 않는 RDB와 OOP 언어간에 데이터를 변환하기 위한 한가지 프로그래밍 기법이다.
예를 들어 여러 전화번호를 가진 한 사람의 정보를 OOP 언어에서는 전화번호 목록을 속성으로 가진 Person 객체만으로 표시할 수 있지만, RDB에서는 별도의 테이블이 필요하다.
객체의 속성을 유지하면서 데이터베이스에 영구 저장했다가 필요시 다시 객체로 만들어주는 것이 ORM의 핵심이다.
단점으로 각 데이터베이스에 최적화된 기법을 사용하기가 어렵고, 대량으로 데이터를 변경할 때 성능이 잘 나오지 않는다. 거기에 ORM에 과도화게 의존하면 데이터베이스 디자인을 안 좋게 만들기 쉽다.
다른 방법으로 객체 지향 데이터베이스를 사용할 수도 있지만, 잘 사용되지 않는다.
- Hibernate: Java, supports JPA 2.0
- MyBatis (iBatis): Java, .NET
- ActiveRecord, part of Ruby on Rails: Ruby
- JugglingDB: Node.js
- Sequelize: Node.js
- Mongoose: Node.js, for MongoDB (MongoDB는 RDB가 아니므로 엄밀히 말하면 ORM은 아니다)