티스토리 뷰
728x90
객체 관계 불일치
- 관계형 데이터베이스와 메모리 내의 데이터 형식의 불일치를 의미한다.
- 테이블의 경우 행과 열의 형식으로 데이터를 나타낸다.
- 이와 달리 객체(메모리내)데이터 형식은 제약이 없어 복잡한 구조(중접)를 저장한다.
- 이러한 구조를 저장하려면 관계형 구조로 변환해서 저장해야만 한다.
- 이와 같은 불일치를 해결하기 위해 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
728x90
'프레임워크 > 스프링 & 스프링 부트' 카테고리의 다른 글
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 |
댓글