다대다 관계
데이터베이스를 설계에서 다대다(N:N)관계는 피하는것은 일반적으로 권장되고있습니다. 하지만 자세한 설명이 추가되지않는다면 그 이유가 헷갈릴 수 있는데요. 이는 데이터의 무결성, 효율성, 유지보수 등 다양한 측면에서 중요한 이유가 있어 권장하지 않는것입니다.
다대다 관계란?
다대다 관계란 하나의 엔티티(Entity)가 다수의 다른 엔티티와 관계를 맺고 있는 상황을 나타냅니다. 예를들어, 학생과 강좌간의 관계에서 한 학생이 여러 강좌를 수강하고, 한 강좌에는 여러 학생이 수강할 수 있는것이 다대다 관계입니다.
다대다 관계는 왜 피해야할까?
위에 연관관계를 통해 완성된 테이블을 만들어보겠습니다.
1. 데이터 중복성과 무결성 문제
위 테이블에 기본키(PK)를 포함해서 데이터의 중복이 발생했고, 데이터의 무결성이 손상되었습니다. 이로 인해 학번만으로 데이터를 구분할 수 없어졌습니다.
2. 유지보수 및 확장성
데이터의 추가 또는 변경이 일어난다면 중복된 데이터를 모두 수정 및 추가해야합니다. 예를 들어, 홍길동 학생의 학과가 '수학과'로 변경된다면 2군데 모두 수정해야하고, 학생 테이블에 성별을 추가한다면 중복데이터를 추가해야하는 일이 발생합니다.
결론
학생과 과목테이블 사이에 수강테이블을 만들어 다대다 관계를 일대다(1:N), 다대일(N:1) 관계로 풀어주는 것으로 해결 할 수 있다.
다음 글을 읽어보는걸 추천드립니다.
다대다(N:N) 관계를 조금 더 쉽게 풀어보자 (2진법의 활용)
이전 글 다대다(N:N) 관계는 왜 피해야할까?다대다 관계 데이터베이스를 설계에서 다대다(N:N)관계는 피하는것은 일반적으로 권장되고있습니다. 하지만 자세한 설명이 추가되지않는다면 그 이유
tmd8633.tistory.com
'일반 > DB' 카테고리의 다른 글
[DB] Lock 이해하기 (0) | 2025.01.15 |
---|---|
다대다(N:N) 관계를 조금 더 쉽게 풀어보자 (2진법의 활용) (0) | 2024.05.18 |