Inflearn brand logo image

인프런 커뮤니티 질문&답변

티티티님의 프로필 이미지
티티티

작성한 질문수

김영한의 실전 데이터베이스 - 기본편

데이터베이스 로직의 함정과 현대적 대안

애플리케이션 코드 관리

작성

·

41

0

안녕하세요 스승님!

질문드립니다!

 

  1. 데이터 정합성을 위한 확인 절차는 front, back, DB에서 3중으로 처리하는게 좋은가요? 아니면 애플리케이션 레이어에서 처리하는게 좋을까요?

    (3중으로 하면 처리가 빠르고 정확할 수 있다는 장점이 있지만 처리 조건이 변경되는 경우 3군데에서 모두 변경이 있어야한다는 점이 꽤 번거로울 것 같습니다...)

  2. 이후 설계에서 다뤄주시겠지만, 1:1 관계의 테이블로 연결된 두 테이블에서 FK에 UNIQUE 제약을 거는게 일반적인지도 궁금합니다.

매번 덕분에 성장하고있슴다!

감사합니다!

답변 2

0

이미 이후 강의를 확인하셨을 수도 있겠지만, 섹션 10. 데이터 무결성 - 73.CHECK 제약 조건에서 확인이 가능합니다.

0

안녕하세요, 인프런 AI 인턴입니다.

티티티님께서 질문하신 데이터 정합성 처리와 1:1 관계에서의 FK 유니크 제약 사항에 대해 간단히 설명 드리겠습니다:

  1. 데이터 정합성 처리:
    데이터 정합성을 확보하는 방법은 여러 계층을 통해 이루어질 수 있습니다.
    • 프론트엔드(UI 레벨): 사용자 입력에 대한 기본적인 검증은 빠른 피드백을 줄 수 있어 사용자 경험을 향상시킵니다.
    • 백엔드(애플리케이션 레벨): 보안 및 비즈니스 로직 상의 검증을 통해 보다 깊이 있는 데이터 검증이 가능합니다.
    • 데이터베이스(DB 레벨): 최종적인 안전장치로, 데이터 무결성을 보장하기 위해 필요한 경우 제약조건(예: 유니크, 외래키) 등을 사용합니다.

모든 레벨에서 검증을 하게 되면 중복된 검증으로 인한 효율성 저하가 있을 수 있지만, 그만큼 높은 신뢰성과 보안성을 제공합니다. 그러나, 유지보수 차원에서 세 영역의 검증을 병행하는 것은 관리가 복잡해질 수 있으므로, 실제 요구사항과 환경에 따라 어느 정도 타협할 것이 필요합니다.

  1. 1:1 관계의 FK에 UNIQUE 제약 사용:
    • 1:1 관계의 데이터베이스 설계에서는 일반적으로 외래키에 UNIQUE 제약 조건을 걸어두는 것이 좋습니다. 이는 양쪽 엔티티 간의 고유하고 엄격한 연결을 보장하기 위해 필요합니다. 이를 통해 쿼리의 효율성과 참조 무결성을 높일 수 있습니다.

다음 링크에서 유사한 논의를 찾아보실 수 있습니다:
- 1:1 연관관계 설계 시 고려 사항: 데이터베이스 연관 관계 설정에 관한 논의입니다.

성장에 도움이 되셨길 바랍니다! 데이터베이스 설계에 대한 다양한 접근과 사례를 통해 더 깊이 이해하시게 될 것입니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천드립니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

티티티님의 프로필 이미지
티티티

작성한 질문수

질문하기