[DB] ORM, Object Relational Mapping 이란?

dyomi·2024년 8월 12일
0

ORM이란, [객체 - 관계 매핑]

객체와 관계형 데이터베이스의 데이터를 자동으로 매핑해주는 것을 말한다.

객체 지향 프로그래밍은 클래스를 사용하고, 관계형 데이터베이스는 테이블을 사용하므로, 객체 모델과 관계형 모델 간에 불일치가 존재한다.

ORM을 통해 객체 간의 관계를 바탕으로 SQL을 자동으로 생성하여 불일치를 해결해준다.

데이터베이스 데이터 <- 매핑 -> Object 필드

객체를 통해 간접적으로 데이터베이스 데이터를 다루며, Persistant API라고도 부른다. Ex) JPA, Hibernate

주요 기능

  1. 객체와 테이블 매핑
    ORM은 데이터베이스 테이블을 프로그래밍 언어의 객체로 매핑한다. 예를 들어, 데이터베이스의 users 테이블은 프로그래밍 언어의 User 클래스에 매핑될 수 있다.

  2. 자동 SQL 생성
    ORM은 데이터베이스와 상호작용하기 위해 필요한 SQL 쿼리를 자동으로 생성한다. 따라서 개발자는 직접 SQL을 작성할 필요 없이 메서드 호출을 통해 데이터베이스 작업을 수행할 수 있다.

  3. 트랜잭션 관리
    ORM 프레임워크는 데이터베이스 트랜잭션을 자동으로 관리한다. 이는 데이터의 일관성을 유지하고, 오류 발생 시 롤백할 수 있도록 도와준다.

  4. 객체 지향 프로그래밍 통합
    ORM을 사용하면 객체 지향 프로그래밍의 장점을 활용하여 데이터베이스 작업을 수행할 수 있다. 예를 들어, 상속, 다형성 등을 사용할 수 있다.

장단점

이 기능들은 개발자가 복잡한 SQL 없이도 데이터베이스를 효과적으로 다룰 수 있게 해준다.

그리고 ORM 프레임워크는 다양한 데이터베이스를 지원해서 데이터베이스를 변경하더라도 크게 수정할 필요가 없고, 객체와 데이터베이스 간의 자동 매핑을 통해 일관성 있는 데이터 처리가 가능하다.

ORM을 통해 데이터베이스 작업을 보다 직관적이고 효율적으로 수행할 수 있으며, 코드의 유지보수성과 재사용성을 높일 수 있다.

단점으로는 ORM이 생성하는 SQL 쿼리가 수동으로 작성한 쿼리보다 비효율적일 수 있어서 성능저하가 발생할 수 있다. 그리고 복잡한 쿼리를 처리하는데 한계가 있을 수 있다.

주요 프레임워크로는 JPA를 구현한 자바의 하이버네이트, 파이썬의 SQLAlchemy 등이 있다.



참고 자료
[JPA] JPA와 Hibernate 그리고 Spring Data JPA

profile
기록하는 습관

0개의 댓글