[SQL] 현실 속 외래키(foregin key) 활용 실태

2024. 11. 12. 20:24·STUDY/DB SQL
728x90

 

 

"외래 키는 개념적으로는 설계에 포함되지만, 실제 데이터베이스에서는 제약 조건 없이 관리되는 경우가 많습니다."

Foregin key를 실질적으론 잘 사용하지 않고 개념만 가지고 사용한다는게 사실을 처음 들었다.

 

실제로 많은 개발자들이 데이터베이스에서 외래 키(Foreign Key)를 물리적으로 설정하지 않고, 개념적으로만 사용하는 경우가 많은데 아마 아래와 같은 이유들로 인한 것 같다.

1. 성능 이슈: 대규모 트랜잭션이 발생하거나 많은 데이터를 저장하는 경우 외래 키 제약 조건이 성능에 부정적인 영향을 줄 수 있습니다. 따라서 물리적으로 외래 키를 설정하면 데이터베이스의 속도가 저하될 수 있습니다.

2. 분산 시스템: 마이크로서비스 아키텍처 같은 분산 시스템에서는 여러 데이터베이스를 사용할 수 있기 때문에 물리적으로 외래 키를 설정하기 어려운 경우가 많습니다. 이 경우 서비스 레이어에서 외래 키 관계를 코드로 관리하게 됩니다.

3. 유연성: 개발 및 유지 보수 시 외래 키 제약 조건이 있으면 데이터 구조 변경이 어렵기 때문에, 유연성을 높이기 위해 외래 키를 생략하고 응용 프로그램 레벨에서 제약 조건을 관리합니다.

4. ORM 사용: 많은 개발자들이 JPA와 같은 ORM을 사용하여 외래 키 관계를 코드에서 관리합니다. 이 경우 물리적인 외래 키 설정이 없어도 데이터 무결성을 어느 정도 보장할 수 있습니다.



728x90

'STUDY > DB SQL' 카테고리의 다른 글

[SQL] EXISTS 와 IN의 차이점  (0) 2025.10.29
[MyBatis] <sql>, <include> 사용방법  (0) 2025.10.29
[SQL] 행 개수 지정 조회 SELECT TOP LIMIT FETCH FIRST ROWNUM  (1) 2024.11.07
[MySQL] 테이블 스키마 백업하기  (0) 2024.10.11
[MySQL][JAVA] 연동 시 Public key retrieval is not allowed 오류  (0) 2024.10.11
'STUDY/DB SQL' 카테고리의 다른 글
  • [SQL] EXISTS 와 IN의 차이점
  • [MyBatis] <sql>, <include> 사용방법
  • [SQL] 행 개수 지정 조회 SELECT TOP LIMIT FETCH FIRST ROWNUM
  • [MySQL] 테이블 스키마 백업하기
ReCode.B
ReCode.B
404 Brain Not Found
  • ReCode.B
    B의 개발 공부 기록
    ReCode.B
  • 전체
    오늘
    어제
  • 공지사항

    • 개인적 기록을 위한 블로그
    • 분류 전체보기 (679)
      • STUDY (527)
        • for Developer (25)
        • WEB (24)
        • HTML5 CSS3 (22)
        • JavaScript (102)
        • jQuery (30)
        • TypeScript (1)
        • JAVA (102)
        • SpringLegacy (46)
        • SpringBoot (41)
        • Vert.x (5)
        • DB SQL (86)
        • SERVER OS (34)
        • React (4)
        • C C++ C# (2)
        • EXCEL (3)
      • TOOL (66)
        • VCS (30)
        • Eclipse (23)
        • intelliJ (7)
        • VSCODE (6)
      • Programmers (31)
        • java (10)
        • javascript (15)
        • oracle (6)
      • Follow Work (54)
        • SpringbootBoard (54)
  • 블로그 메뉴

    • 방명록
  • hELLO· Designed By정상우.v4.10.0
ReCode.B
[SQL] 현실 속 외래키(foregin key) 활용 실태
상단으로

티스토리툴바