ORM (Object Relational Mapping)

 - 사물을 추상화시켜 이해하려는 OOP적 사고방식과 DataModel을 정형화하여 관리하려는 RDB사이를 연결할 계층의 역할로 제시된 패러다임.

 - RDB (Relational DataBase) 관계형 데이터베이스

 - OOP (Object-Oriented Programming) 객체지향 프로그래밍

 - RBD의 모델을 OOP에 Entity형태로 투영시키는 방식을 사용.

 - Database 및 DB Connector에 따라 다라질 수 있는 데이터 매핑 구조를 객체지향 형태로 통일시켜 SQL구조의 Database를 OOP 구조의 형태로 매핑시킴.

 

 - 이러한 ORM을 구현하는 대표적인 프레임워크가 Hibernate

 - 이를 Java 표준 방식으로 정의한 것이 JPA

 - 실무에서 개발할 때에는 JPA와 Hibernate를 같이 사용한다.

 

 

ORM이 흔히 겪는 RDB와 OOP 사이의 아직 풀지 못한 숙제

 1. RDB 데이터 타입은 Vendor 마다 다르며, 더이상 정규화가 힘듬

 2. 하위 타입 문제 (RDB에는 상속의 개념이 없다.)

 3. 동일성 문제 (Java의 경우 Equals로 평가 가능하지만 DB는 PK 기준으로 함)

 4. 연관 관계 (FK는 연관의 방향성을 갖지 못하기 때문에 N:N 모델의 경우 Link테이블을 도입해야 함)

 5. 데이터 검색 (RDB는 한 번에 많이 가져올지 빈번하게 데이터를 가져올지를 고민해야함.)

 

 

출처: https://jins-dev.tistory.com/entry/ORMObject-Relational-Mapping%EC%9D%B4%EB%9E%80-ORM-%ED%8C%A8%EB%9F%AC%EB%8B%A4%EC%9E%84%EC%9D%98-%EA%B0%9C%EB%85%90

'TIL' 카테고리의 다른 글

csv insert with MySQL (Load data infile) 방법  (0) 2022.08.30
왜 Hello World ?  (0) 2021.12.25
Docker 를 왜 쓸까  (0) 2021.12.25
CSR vs SSR  (2) 2021.12.24
TIL이란?  (0) 2021.12.23

+ Recent posts