UPDATE, DELETE 시 대리키, 자연키 활용 여부가 궁금합니다.
94
작성한 질문수 1
안녕하세요. 강사님의 강의를 2회독하며 궁금한 것들이 어느정도 정리가 되어 질문 드립니다.
제가 SI에 있어서 그런건지 혹은 프로젝트? 운이 없어서인지 차세대를 하더라도 돌이켜보면 경험했던 실무에서는 늘 자연키를 PK로 사용 했었습니다. 그러다보니 UPDATE, DELETE등 데이터를 핸들링 할 때에도 늘 PK(자연키)를 전부 들고다니며 사용 했었는데
대리키를 PK로 사용할 경우에는 PK도 항상 같이 다른 데이터 들과 함께 객체등에 담는지.. 혹은 데이터를 갱신 할 때에만 자연키들로 따로 pk를 조회 한 후 사용하는지 아니면 unique 조건이 걸린 자연키들로만 갱신을 하는지 궁금해서요 ㅜㅜ
답변 2
0
안녕하세요. sangmin님, 공식 서포터즈 y2gcoder입니다.
무조건 대리키 만 들고 다닌다기 보다는 상황에 따라 다를 것 같습니다. 예를 들어 유저 엔티티에 대리키와 자연키(이메일, unique) 이 있다고 하면 이메일로도 조회한 후 업데이트 및 조회를 할 수 있어야 합니다.
더 답변이 필요하면 말씀해주십쇼!
감사합니다.
0
안녕하세요, 인프런 AI 인턴입니다.
대리 키와 자연 키의 활용에 대해서는 많은 분들이 고민하시는 부분입니다. 대리 키를 PK(Primary Key)로 설정하면, 비즈니스 로직과는 무관한 고유한 ID를 통해 데이터 행을 식별할 수 있다는 장점이 있습니다. 이런 방식은 데이터의 일관성과 무결성을 유지하는 데 효과적입니다.
대리키 사용 시에는 데이터를 조회하거나 수정할 때 대리 키(PK)를 기준으로 접근하는 것이 일반적입니다. 이 방법은 데이터의 변경에 따른 영향 범위를 최소화할 수 있습니다. 대리키는 주로 시스템 내부적으로 사용되며, 비즈니스 로직과 관계 없는 데이터베이스 식별을 목적으로 합니다.
자연키 사용 시에는 비즈니스 로직에 의미가 있는 키를 사용하여 데이터 행을 식별합니다. 이 경우, 조회 및 갱신 시에 자연키를 기준으로 데이터를 핸들링하게 됩니다. 하지만 자연키가 변경될 가능성이 있거나 여러 필드로 구성된 경우, 복잡성이 증가할 수 있습니다.
UPDATE, DELETE 등의 작업에서:
- 데이터를 갱신하거나 삭제할 때 대리키(PK)를 기준으로 수행하는 것이 효율적이며, 일관성 있는 데이터 관리를 가능합니다. 이렇게 하면 작업 자체가 단순해지며, 대규모의 데이터에 영향을 주지 않습니다.
- 만약 자연키를 기준으로 데이터 처리를 필요로 하는 경우라면, 해당 자연키에 적절한 인덱스를 걸어 두는 것이 성능을 향상시킬 수 있습니다.
관련된 질문과 더 많은 정보를 얻을 수 있는 게시물들을 아래에 링크로 제공합니다:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
아주 작은 정오표 전달드립니다.
0
52
2
실제로 작은 기업에서 기획 롤
1
27
1
order_product 까마귀발
0
44
2
[DB설계] 탈퇴 유저의 구독 정보 유지 및 이메일 마스킹 관련 질문입니다.
0
53
1
자연키 vs 대리키 실무질문
0
28
1
1:N 관계에서 중간테이블 (연관엔티티)
0
57
2
일대일 fk 위치
0
43
1
제 3 정규형 vs BCNF 정규형 차이점?
0
106
3
BCNF 질문
0
78
2
연관 엔티티 네이밍 규칙
0
53
1
진짜 강의 듣는거 너무 고문
0
140
1
28강 sql 파일 어딨나여?
0
94
1
2NF의 엄밀한 정의
0
74
1
comment 채번을 사용해야 하는 이유에 대한 설명이 필요합니다.
0
124
3
학습중인 수업자료를 받아볼 수 있을까요??
0
103
2
수업자료 pdf파일관련 건의 - 제목 링크위치 개선
0
88
2
서비스 운영 중 잘못된 테이블 설계 발견시 수정 시점에 대한 질문
1
108
2
실무적인 설계로 접근했을 때 제 2정규형 항상 만족?
0
82
1
슈퍼/서브 타입 joined 전략
0
74
2
created_at 관련 구현과 DB ENUM에 대해
0
75
1
M:N 관계의 연관 엔티티 설계 순서
0
81
2
데이터 역사성 훼손 문제
0
67
2
실무팁 - 등록자,수정자 컬럼 관리 관련 질문입니다.
0
84
1
구글이 이메일 변경을 허용하는 이유
0
126
1





