[데이터베이스] 객체관계매핑(ORM, Object-Relational Mapping)
영속성(Persistence)
1) 영속성(Persistence)
- 데이터를 생성한 프로그램의 실행이 종료되더라도 사라지지 않는 데이터의 특성
- 영속성을 갖지 않는 데이터는 단지 메모리에서만 존재하고 프로그램 종료돠 동시에 사라지게 됨
2) 영구적인 객체(Object Persistence)
- 메모리 상의 데이터를 파일 시스템, RDB 등을 활용해 영속성을 부여해 영구적으로 존재하는 데이터
3) 영속성을 부여하는 방법
(1) JDBC
(2) Persistence Framework
4) Persistence Layer
- 프로그램 아키텍처에서 데이터에 영속성을 부여하는 계층
5) Persistence Framework
- JDBC 같은 복잡한 프로그래밍 없이 간단한 작업만으로 영속성을 부여할 수 있도록 지원하는 프레임워크
(1) SQL Mapper
- SQL 문장으로 직접 데이터베이스를 접근
- MyBatis
(2) ORM
- 객체를 통해 간접적으로 데이터베이스에 접근
- Hiberate
객체관계매핑(ORM, Object-Relational Mapping)
- 객체와 테이블을 자동으로 매핑해주는 기술
- 객체지향언어에서의 클래스를, 관계형데이터베이스의 테이블을 사용하므로 불일치가 존재
- ORM을 통해 객체 간의 관계를 바탕으로 SQL을 자동으로 생성해 불일치를 해결
1) 장점
- 객체 지향적인 코드로 인해 직관적
- 비즈니스 로직에 집중할 수 있도록 지원
- DBMS에 대한 종속성이 줄어듬
- 편리성
2) 단점
- DBMS 고유의 기능을 사용하기 어려움
- 프로젝트가 커질수록 난이도가 올라감
- 잘못 구현된 경우 심각한 속도 저하와 일관성을 무너뜨리는 현상이 발생
JDBC
- 자바에서 데이터베이스에 접근할 수 있도록 지원하는 자바 API
- RDB의 쿼리문을 수행하기 위해 자바로 작성된 클래스와 인터페이스
- 독립적인 인터페이스를 통해 다양한 데이터베이스에 접근하는 코드를 구현할 수 있도록 제공하는 자바 클래스의 표준