• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    해결됨

식별 관계랑 비식별 관계

23.10.26 20:09 작성 조회수 706

0

안녕하세요 강의 끝까지 잘봤습니다!!!

강의 시청 후 포트폴리오용 프로젝트 설계 중에 식별 관계에 대해 의문이 생겨서 질문합니다!

 

우선 식별 관계로 구성 시 자식 테이블에 데이터를 넣기 전에 부모 테이블에 데이터가 필수적으로 존재해야 한다고 알고 있습니다.

이는 개발자가 실수로 데이터를 입력하는 것을 막아줌으로써 데이터 정합성을 DB에서도 체크할 수 있지만, 만약 요구사항이 변경된다면 테이블의 데이터와 구조를 모두 변경해야하는 불상사가 발생할 수 있다고 알고 있습니다.

 

그렇다면 굳이 식별 관계로 설정할 필요가 있나요?? 그냥 전부 비식별 관계로 설정하면 안될까요? 포트폴리오에 올릴 프로젝트를 만드는 중이라 정석대로 식별 관계로 설정해야 하나 싶은데, 아직 뭐가 뭔지 잘 모르는 상태에서 괜히 복잡하게 식별 관계로 설정하는게 맞는건가 잘 모르겠어서요ㅜㅜ

답변 2

·

답변을 작성해보세요.

0

안녕하세요! guswn2332님!

질문주신 그대로, 유지보수의 복잡성으로인하여 기존에 식별관계였던 프로젝트들도 비식별로 푸는 회사가 많아요!

우리 수업에서도 erd클라우드 작성시 예시로 식별과 비식별 관계를 보여드리며, 실제 코드상에서는 비식별로 작업합니다!^^

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2023.10.28

안녕하세요 guswn2332 님, 인프런 AI 인턴이에요.
식별 관계와 비식별 관계는 데이터베이스 설계 시 적절한 선택이 필요한 개념입니다.

식별 관계는 자식 테이블의 외래 키가 부모 테이블의 기본 키에 의존하는 관계입니다. 이렇게 설정하면 자식 테이블의 레코드는 부모 테이블의 기본 키가 있어야만 존재할 수 있습니다. 이는 데이터 정합성을 보장하는데 도움을 주지만, 부모 테이블의 데이터가 삭제되면 관련된 자식 레코드도 함께 삭제되는 단점이 있습니다.

반면, 비식별 관계는 자식 테이블의 외래 키가 부모 테이블의 기본 키에 의존하지 않는 관계입니다. 자식 테이블의 레코드가 부모 테이블의 기본 키와 상관 없이 존재할 수 있습니다. 이는 데이터베이스 구조의 유연성을 높여주지만, 데이터 정합성을 보장하기 위해 추가적인 작업이 필요할 수도 있습니다.

따라서, 식별 관계와 비식별 관계는 프로젝트의 요구사항과 설계의 목적에 따라 선택되어야 합니다. 만약 요구사항이 변경될 가능성이 높거나 유연성이 필요한 경우에는 비식별 관계를 선택하는 것도 하나의 방법일 수 있습니다. 하지만, 데이터의 정합성과 일관성을 중요시하는 경우에는 식별 관계를 선택하는 것이 좋습니다.

포트폴리오 작성을 위한 프로젝트 설계에서는 프로젝트의 목적과 요구사항을 고려하여 적절한 관계를 선택하시면 됩니다. 강의에서 식별 관계를 다루고 있었다면, 정석대로 식별 관계로 설정하는 것도 하나의 방법일 수 있습니다. 하지만, 복잡한 구조를 사용하려면 그에 대한 이해와 호환성을 고려해야 합니다. 이는 차후 유지보수나 추가 기능 구현 시에도 영향을 미칠 수 있으므로 신중한 판단이 필요합니다.

프로젝트 설계 과정에서 그때그때 상황을 고려하여 적절한 관계를 선택하시면 좋을 것 같습니다. 감사합니다!