티스토리 뷰

객체 관계 불일치

출처: http://sungsoo.github.io/2013/08/21/impedance-mismatch.html

  • 관계형 데이터베이스와 메모리 내의 데이터 형식의 불일치를 의미한다.
  • 테이블의 경우 행과 열의 형식으로 데이터를 나타낸다.
  • 이와 달리 객체(메모리내)데이터 형식은 제약이 없어 복잡한 구조(중접)를 저장한다.
  • 이러한 구조를 저장하려면 관계형 구조로 변환해서 저장해야만 한다.
  • 이와 같은 불일치를 해결하기 위해 ORM이 나타났고 Mybatis(정확히는 ORM이 아님), JPA(Hibernate)가 개발됨.

객체 관계 매핑(ORM)

  • 객체와 관계형 데이터베이스의 데이터를 매핑시켜준다.
  • ORM사용 시 쿼리를 자동으로 생성해주므로 SQL에 종속되지 않고 비즈니스 로직에 집중해서 개발이 가능하다.
  • DB에 종속적이지 않은 개발이 가능하다.
  • 러닝 커브가 높으며 세세한 쿼리 조작이 불가능하다.
    • criteria 또는 hql을 상용 할수 있음.(criteria의 경우도 작성의 제약이 있으며 hql의 경우 문자열을 사용해 쿼리 작성)
    • 위의 대체재로 QueryDSL 사용을 추천.
    • 통계와 같이 복잡한 쿼리 작성을 위해 native query를 사용할 수 있음.

https://gmlwjd9405.github.io/2019/02/01/orm.html

 

[DB] ORM이란 - Heee's Development Blog

Step by step goes a long way.

gmlwjd9405.github.io

http://sungsoo.github.io/2013/08/21/impedance-mismatch.html

 

Impedance Mismatch

Impedance Mismatch: 객체-관계 불일치 관계형 데이터베이스는 장점이 많지만 완벽하지는 않으며, 초창기부터 많은 불만이 있었다. 애플리케이션 개발자에게 가장 큰 불만은 객체-관계 불일치, 즉 관계형 모델과 메모리 내 데이터 구조 간 차이였다. 관계형 데이터 모델에서는 테이블과 행, 즉 관계와 튜플로 데이터를 구조화한다. 관계형 모델에서 튜플은 이름-값 쌍의 집합이고 관계는 튜플의 집합이다(튜플의 관계형 정의는 튜플을 값들의 나열로 정의하는 수

sungsoo.github.io

 

'프레임워크 > 스프링 & 스프링 부트' 카테고리의 다른 글

Spring Boot Admin  (1) 2019.12.30
Spring boot actuator  (0) 2019.12.30
Spring Boot - MVC  (0) 2019.08.10
Spring Boot - @SpringBootApplication  (0) 2019.08.10
Spring Boot?  (0) 2019.08.10
댓글