‘객체 지향 프로그래밍은 추상화, 캡슐화, 정보은닉, 상속, 다형성 등 시스템의 복잡성을 제어할 수 있는 다양한 장치들을 제공한다’
패러다임의 불일치
-상속 : DB의 경우 상속 개념은 없고 테이블간 슈퍼타입, 서브타입 관계가 있다
-연관관계 : 객체는 참조를 사용, 테이블은 외래키 사용 객체는 자유롭게 객체 그래프를 탐색할 수 있어야 한다. 반면 SQL은 처음 실행하는 탐색 범위에 따라 결정됨 (join 여부) → 상황에 따라 동일한 조회 메서드를 여러 개 생성해야 함
→ 물리적으로 계층이 분할되어 있지만 논리적으로 계층 분할이 되어 있지 않음 (?) -데이터 타입
-데이터 식별 방법
“객체를 자바 컬렉션에 저장하듯이 DB에 저장할 수 없을까?” → JPA 등장
ORM ?
-Object-relational mapping(객체 관계 매핑)
-객체는 객체대로 설계
-관계형 데이터베이스는 관계형 데이터베이스대로 설계
-ORM 프레임워크가 중간에서 매핑
-대중적인 언어에는 대부분 ORM 기술이 존재