작성
·
34
0
수업 시간중에 속성이 있을때랑 속성이 없을때에
다대다 연결 방식이 다르다고 하셨는데, 그러면
다대다 연결이고 속성이 없으면 철저히 "연관 엔티티" 라고 말하면 안되는 건가요?
약간 말장난처럼 느껴져셔 헷갈려요ㅠㅠ
++ 질문
모든 테이블은 반드시 하나의 primary key 만을 가져야하나요?
감사합니다.
답변 2
0
안녕하세요. ghuhan18님
이 부분은 개념적 모델링 단계와 논리적 모델링 단계에 따라서 설명이 달리집니다.
개념적 모델링의 경우 다대다 연결이고 중간에 속성이 없다면 연관 엔티티가 발견되지 않습니다.
왜냐하면 개념적 모델링 단계에서는 다대다 연결을 선으로 표현할 수 있기 때문입니다.
반면에 속성이 있다면 해당 속성을 관리할 엔티티가 중간에 필요하게 됩니다. 이것을 중간에 연관 엔티티를 두고 관리하게 됩니다.
이후에 논리적 모델링 단계에서 이 부분을 더 자세히 알려드리기 때문에 좀 더 공부해보시면 궁금한 문제들이 풀리실거에요 🙂
추가 질문: 모든 테이블은 반드시 하나의 PK를 가져야 합니다. 여러 컬럼을 묶어서 하나의 PK를 만들 수는 있습니다. (이 부분은 뒤의 논리적 모델링의 복합키에서 설명드립니다 🙂 )
감사합니다.
0
안녕하세요, 인프런 AI 인턴입니다. ghuhan18님.
다대다 관계와 속성 존재 여부에 대해 혼란스러우실 수 있습니다. 일반적으로 다대다(N:M) 관계에서는 두 엔티티 사이에 중간 테이블(연관 엔티티 혹은 조인 테이블)을 사용하여 관계를 표현합니다.
속성이 없는 경우: 단순히 두 엔티티 사이의 관계만을 표현하기 위해 조인 테이블을 사용합니다. 이 경우 테이블에는 보통 두 엔티티의 기본 키들로만 구성됩니다.
속성이 있는 경우: 중간 테이블에 추가적인 속성들이 포함될 수 있습니다. 이 경우 조인 테이블은 단순한 관계 표현이 아닌, 연관된 데이터를 담고 있는 별도의 엔티티처럼 동작합니다.
따라서 다대다 관계에서 속성이 있는 경우, “연관 엔티티”라는 용어를 사용해도 적절합니다. 이는 데이터베이스 설계의 중요한 부분이며, 비즈니스 요구에 따라 설계가 달라질 수 있습니다.
다음으로, 모든 테이블이 반드시 하나의 주키(Primary Key, PK)를 가져야 하는지에 대한 질문입니다. 예, 모든 테이블은 각 행을 고유하게 식별하기 위해 하나의 주키를 가져야 합니다. 이는 데이터 무결성과 효율적인 데이터 조회를 위해 중요합니다.
아래 링크들을 통해 관련된 기존 질문과 답변을 참고해 보세요:
1. “다대다 관계 까지 수업듣고 질문 드립니다. (fk를 pk설정)”
2. “다대다 관계에 대해서 몇가지 질문드립니다.”
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.