강의

멘토링

로드맵

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

Kyeongho Lee님의 프로필 이미지
Kyeongho Lee

작성한 질문수

데이터베이스 중급(Modeling)

M:N 관계

49 분 대체키를 이용한 select

작성

·

256

0

안녕하세요. 

수업 듣는중 궁금한점이 생겼습니다. 

대체키 혹은 PK는 의미를 가지지 않는다고 하셨는데요, 

49분즈음 설명을 fk가 아닌 대체키를 이용해 select를하면 일일이  fk로 조건을 걸 필요가 없다고 하셨잖아요. 

그런데 제가 원하는 정보를 가지고 있는 row의 대체키를 어떻게 찾는거죠?? 

학생의 id 와 과목의 id는 각각의 이름을 통해 찾는다고 쳐도 대체키는 못찾을것 같은데요..

퀴즈

관계형 데이터베이스에서 1:M 관계를 구현할 때, 부모 테이블과 자식 테이블 간의 연결은 주로 무엇을 통해 이루어지나요?

부모 테이블의 Foreign Key를 자식 테이블에 사용

자식 테이블의 Primary Key를 부모 테이블에 사용

부모 테이블의 Primary Key를 자식 테이블의 Foreign Key로 사용

두 테이블 모두에 새로운 Unique Key 추가

답변 1

0

이교준님의 프로필 이미지
이교준
지식공유자

구현하기 나름이지만 ERP에서 원자재 마스터 테이블이 있다고 가정하고, 원자재에 PK로 int를 선언하고 identity를 선언해서 자동증가를 했다고 가정해보죠. 그런데 오랬동안 사용하던 자재별 코드가 있을 수 있습니다.

이 경우 자재코드를 PK로 사용해도 되지만 혹시모를 경우가 있을 수 있어 확실하게 하고자 안전하게 int 컬럼을 만들어 PK로 사용한 것이죠. 이 때는 명확하게 대체키가 있는거죠.

 

또 하나는 PK가 많은 컬럼들로 구성한 경우인데 그 키값을 가지고 프로그램을 하려면 프로그래머들이 힘들겠죠. 이런 때는 Dummy key로 int 컬럼을 하나 만들어서 자동증분을 시키고 관계는 진짜 PK로 사용하되, 그리드 등에서 레코드를 선택했을 때 dummy key를 가지고 현재 선택한 레코드를 읽어올 수 있을 겁니다. 

 

이런 식으로 대체키는 존재할 수 있습니다. 이 밖에도 핸드폰번호, 주민번호 등이 키가 대체키로 선택될 수도 있지만 다만 not null 조건을 주어야 정상적으로 동작하겠죠.

Kyeongho Lee님의 프로필 이미지
Kyeongho Lee

작성한 질문수

질문하기