ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [JPA] 개념
    JPA 2020. 4. 2. 12:48

    관계형 데이터베이스

    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

    댓글

Designed by Tistory.