-
관계형 데이터베이스
JDBC
-
DataSource / DriverManager
-
Connection
-
PreparedStatement
SQL
-
DDL : 스키마 조작 ( 테이블 생성 / 수정 / 삭제, 인덱스 생성 / 수정 / 삭제)
-
DML : 데이터 조작
- 문제점 ?
1. SQL이 데이터베이스 마다 다름
2. 스키마 변경 시 코드 변경이 많다. -> 데이터 중심
3. 반복적인 코드가 많다.
ORM (Object-Relation Mapping)
: 애플리케이션의 클래스와 SQL 데이터베이스의 테이블 사이의 맵핑 정보를 기술한 메타데이터를 사용하여, 자바 애플리케이션의 객체를 SQL 데이터베이스의 테이블에 자동으로 영속화 해주는 기술
- 장점
1. 생산성 : 매핑정보 정의를 통해 빠르게 데이터 CRUD가 쉽다.
2. 유지보수성 : 코드가 매우 간결
3. 성능성 : 캐시를 사용하여 성능을 향상 시킴
4. 벤더 독립성 : 데이터베이스를 변경하더라도 코드가 변경하지 않는다.
(객체를 영속화 할 때 내부적으로 발생하는 SQL이 변경)
- 단점
1. 학습비용
2. ORM과 Java 객체와 패러다임 불일치
- 타입의 문제 : 객체와 릴레이션의 타입의 불 일치
- 상속 및 다형성 : 릴레이션에서는 상속과 다형성의 개념이 없다.
- 식별성 : 릴레이션에서는 주키를 통해 식별,
- 관계 : 객체간의 관계는 방향성으 존재하며 다대다 관계를 가질 수 있음 하지만 릴레이션은 다대다 관계를 갖을 수 없으며 테이블간의 관계의 방향이라는 의미가 없음, 외래키를 통해 Join으로 아무거나 묶어서 관계를 표현 할 수 있음.
참고 : 백기선 스프링 데이터 JPA
'JPA' 카테고리의 다른 글
[JPA] 엔티니 매니저 (0) 2020.06.28 [JPA] 엔티티 매핑 (0) 2020.04.06 [JPA] 프로그래밍 : 엔티티 상태 (0) 2020.04.03 [JPA] 프로그래밍 : 1대다 맵핑 (0) 2020.04.03 [JPA] 프로그래밍 : 엔티티 (0) 2020.04.02 댓글
-