728x90
반응형
용어
- 기본키 : 테이블에서 row(행)를 구분 할 수 있는 column(열, 필드명)
- 외래키 : 테이블간의 참조관계를 나타내는 column
- 참조 관계에서 두 테이블 간의 관계에 따라 식별, 비식별 관계로 나눌 수 있다.
식별 관계
- 부모테이블 기본키(PK)가 자식 테이블의 외래키(FK)이면서, 기본키(PK)로 사용되는 관계이다.
- 자식 테이블의 row를 추가할 때(데이터를 추가하려고 할 때) 부모 테이블에 참조하려는 row가 없다면(데이터가 없다면) 자식테이블에 데이터를 생성할 수 없다.
비식별 관계
- 자식 테이블에서 참조된 외래키가 기본키가 아닌 일반 컬럼으로 참조되는 관계이다.
- => 부모테이블의 기본키(PK)가 자식테이블의 외래키(FK)로만 사용되는 관계
- 자식 테이블의 row를 추가할 때 부모 테이블의 참조 row가 없어도 자식 테이블의 row를 추가할 수 있다.
- => 부모 테이블에 데이터가 없어도 자식테이블에 데이터를 추가할 수 있다.
정리
- 테이블 설계 시 비식별 관계로 테이블을 설계하는 것을 권장한다.
- 식별 관계를 사용할 경우 데이터의 정합성을 보장하지만 비즈니스 로직이 변경되면 테이블 관리가 힘들어진다.
- 정합성 : 데이터 들의 값이 서로 일치함
- 식별 관계를 사용할 경우 데이터의 정합성을 보장하지만 비즈니스 로직이 변경되면 테이블 관리가 힘들어진다.
- 비식별관계를 이용할 경우 정합성을 유지하기 위해 별도의 비즈니스 로직이 필요하다.
- 비식별 관계는 데이터 무결성을 보장하지 않는다.
- 무결성 : 데이터 값이 정확한 상태
파트너스 활동을 통해 일정액의 수수료를 제공받을 수 있음
반응형
'Spring > JPA' 카테고리의 다른 글
[Lock] 동시성 제어를 위한 JPA Lock 3. 비관적 락(Pessimistic Lock) (0) | 2022.12.08 |
---|---|
[Lock] 동시성 제어를 위한 JPA Lock 2. 낙관적 락(Optimistic Lock) (0) | 2022.12.07 |
[Lock] 동시성 제어를 위한 JPA Lock 1. 격리수준과 잠금(락) (0) | 2022.12.06 |
[JPA 연관관계매핑] 단방향, 양방향 연관 관계 매핑 (0) | 2021.04.11 |
[JPA] Hibernate의 ddl-auto (0) | 2021.04.09 |