식별 관계
- 부모 테이블의 기본키 또는 유니크 키를 자식 테이블이 자신의 기본키로 사용하는 관계
- 부모 테이블에 데이터가 존재해야 자식 테이블에 데이터를 입력 가능
- 즉, 부모 데이터가 없다면 자식 데이터는 생길 수 없음
상품 등록시에 상품 사진을 등록하는 세 가지의 케이스이다.
- 상품 한개당 사진이 없을 경우
- 상품 한개당 사진이 한개 있을 경우
- 상품 한개당 사진이 없을 경우 여러개 있을 경우
=> 이런 경우 이 두테이블의 관계는 1:N 관계가 된다
이 경우 상품이 없으면 상품의 사진 테이블도 존재하지 않기에 위와 같이 관계선을 넣어주면 된다.
비 식별 관계
- 부모 테이블의 기본키 또는 유니크 키를 자신의 기본키로 사용하지 않고, 외래 키로 사용하는 관계
- 자식 데이터는 부모 데이터가 없어도 독립적으로 생성될 수 있음
- 부모와의 의존성을 줄일 수 있기 때문에 조금 더 자유로운 데이터 생성과 수정이 가능
다대다 관계 해소
- 관계형 데이터를 생성하다 보면 다대다 관계가 생각보다 까다롭다는 것을 인지하게 된다.
- M:N관계란 양쪽 당사자 모두에게 1:M의 관계가 존재 할때 나타나는 것이다.
예시
- 위의 테이블은 PK가 각각 학번과 과목코드이다.
- 이렇게 다대다 관계를 가지게 된다면 서로 맞물려 기본키의 의미를 상실하고 데이터를 구분하기 힘들어진다
ex) 학생 테이블에서는 학번만으로 데이터를 구분할 수 없게 되고, 과목 테이블에서는 과목 코드만으로 데이터를 구분하기 힘들어진다
- 데이터를 변경할 시에도 여러군대를 직접 모두 변경해줘야 하기에 문제점이 발생한다
해결책
다대다 테이블을 풀기위해 새로운 테이블을 생성하여 1:N과 1:M테이블로 만들어주면 불필요한 데이터 중복을 피하며 데이터 검색 또는 변경시 보다 빠르고 수월하게 이용할 수 있다.
'스프링' 카테고리의 다른 글
AOP의 개념 및 사용 방법/주의사항 (1) | 2024.10.07 |
---|---|
ckeditor의 이미지 업로드 및 삭제 백엔드( SpringBoot ) (0) | 2024.07.23 |
회원가입시에 문자 인증 구현하기(coolSMS) (0) | 2024.01.29 |
window에 Redis-cli 설치하기/명령어 (0) | 2024.01.24 |
Spring Boot + Security 회원가입 기능 (0) | 2024.01.19 |