99클럽 코테 스터디 21일차 DB ORM
728x90
  • DB
    • Index
      • Index 작동 원리
      • Index 종류
        • B-Tree 인덱스
        • Hash Indexes
        • Bitmap Index
        • GIST(Generalized Search Tree)
        • R-Tree
        • Full Text Index
        • Spatial Index
        • Trie(Prefix Tree) Index
        • Covering Index
  • 영속성
  • 트랜잭션
  • ORM
  • ACID
  • N+1 문제
  • DB 정규화
  • Data Replication
  • sharding 전략
  • CAP 이론

이란?

Object-Relational Mapping

  • 객체와 관계형 데이터베이스의 데이터를 자동으로 매핑해주는 것.
    • 객체 모델과 관계형 모델 간에 불일치가 존재하기 때문에 ORM 을 통해 객체 간의 관계를 바탕으로 SQL 을 자동으로 생성하여 불일치를 해결해줌.
  • DB Data <- Mapping -> Object field
    • 객체를 통해 간접적으로 데이터베이스 데이터를 다룸.
  • Persistant API 라고도 불림
    • JPA,Hiberante

ORM 작동 원리

  1. 데이터베이스 테이블과 객체의 매핑
    • ORM 은 데이터베이스의 테이블을 클래스로 매핑함.
      • 테이블의 각 행(row) 는 클래스의 인스턴스로, 테이블의 열(column)은 인스턴스의 속성(attribute) 로 대응됨.
    • session 관리
      • ORM 은 데이터베이스 연결과 트랜잭션을 관리하는 세션을 제공함. 개발자는 세션을 통해 데이터베이스에 대한 작업을 시작하고, 작업이 끝나면 커밋하거나 롤백할 수 있음.
    • 쿼리 생성
      • 객체의 메소드를 호출하는 것만으로 ORM 은 적절한 SQL 쿼리를 생성하고 실행함. 이 과정은 대부분 자동으로 이루어지므로, 개발자는 복잡한 데이터베이스 쿼리를 신경 쓸 필요가 없음.
    • 결과 매핑
      • SQL 쿼리의 실행 결과는 다시 객체로 매핑되어 반환됨. 이렇게 함으로써, 개발자는 일관된 방식으로 데이터를 처리할 수 있음.

장단점

장점

  1. 개발 효율성
    • 데이터베이스 스키마가 변경될 때 SQL 을 직접 수정하는 대신, 모델 코드만 갱신하면 되므로 빠르고 쉽게 데이터베이스 관련 작업을 처리할 수 있음.
  2. 유지보수
    • 객체 지향적 접근 방식은 코드의 가독성을 높이고 유지보수를 쉽게 만듬.
  3. 기술적 격리
    • 데이터베이스 시스템의 변경이나 SQL 구문의 특수성에 의존하지 않고, 일관된 코드 작성이 가능함.

단점

  1. 성능 이슈
    • ORM 을 사용함으로써 생성되는 SQL 은 때때로 최적화되지 않을 수 있음. 특히 복잡한 쿼리를 필요로 하는 큰 데이터에는 직접 작성한 SQL 이 더 효율적일 수 있음.
  2. 복잡한 쿼리 제한
    • ORM 은 대부분의 표준 쿼리를 잘 처리하지만, 매우 복잡하거나 특정 데이터베이스에 특화된 최적화가 필요한 쿼리는 처리하기 어려울 수 있음.
728x90