OOP와 RDB의 패러다임 불일치 문제가 발생하는 경우에 대해 알아보자
객체지향 프로그래밍(OOP)는 추상화, 캡슐화, 정보은닉, 상속, 다형성등의 기능을 제공하지만 관계형 데이터베이스(RDB)에는 이러한 기능을 제공하지 않아 패러다임의 불일치가 발생한다.
⇒ jpa가 이러한 패러다임 불일치 문제를 해결
1. 데이터 모델의 불일치:
- OOP는 객체 지향 데이터 모델을 사용하며, 데이터와 동작을 객체로 캡슐화하여 데이터 모델링에 활용한다.
- RDB는 테이블, Row, Column으로 데이터를 저장하며, 관계형 데이터 모델을 사용한다.
2. 상속 :
- OOP에서 클래스 상속을 통해 상위 클래스와 하위 클래스 간의 관계를 나타낸다. 이를 통해 상위 클래스의 기능을 하위 클래스로 확장할 수 있다. 객체는 참조가 있는 방향으로만 조회가 가능하다.
- RDB에서는 테이블이 외래 키를 사용해서 다른 테이블과 조인한 후 연관된 정보를 조회한다. 테이블은 외래 키 하나로 양방향 조회가 가능하다.
3. 객체 식별과 데이터베이스 키:
- OOP에서는 객체를 참조로 식별하며 동일한 객체를 참조하면 동일한 개체를 나타낸다.
- RDB에서는 Primary Key를 사용하여 레코드를 식별하며 동일한 데이터를 나타내는 레코드의 키 값이 동일하다.
4. 트랜잭션
- OOP에서 객체는 메모리 내에서 상태를 관리한다.
- RDB는 트랜잭션을 사용하여 데이터 일관성을 유지한다.