"전에 질문의 답변에 대한 재 질문입니다." 질문의 답변에 대한 재 질문인데요.
외래키로 지정되는 속성이 기준이 될 때 기본키가 아니라 일반 속성인 경우 그 속성과의 관계는 1:N이 됩니다.
-> 그 속성과의 관계가 1:N이라고 하셨는데 어떤 속성과 어떤 속성의 관계를 의미하는건지요??
p35의 예제1에서 교수 릴레이션의 교수번호 속성과 과목 릴레이션의 교수번호 속성과의 관계가 1:N이 된다는 말인지요??
39쪽과 같이 학번 속성을 기준으로 기본키이면서 외래키로 설정되면 학번에 종속된 이름, 학과 속성이 각각의 테이블, 즉 재학생, 휴학생, 졸업생 테이블의 부분집합으로 포함됨을 설명하고 있습니다
-> 이건 무슨 말인지요?? 이름, 학과 속성이 재학생, 휴학생, 졸업생 테이블에는 존재하지 않는데 부분 집합이 된다는 건지요??
안녕하세요.
35쪽의 예제1번은 1:1 관계를 표현한 것이고
36족의 예제2번은 1:N 관계를 표현한 것입니다.
예제1번과 같이 1:1 관계인 경우
어느 테이블의 기본키를 외래키로 추가하든 관계없이 1:1 관계가 유지됩니다.
예제2번과 같이 1:N 관계인 경우
1인 쪽의 기본키를 N인 쪽의 외래키로 추가해야 합니다.
ER 모델을 관계형 데이터 모델로 변환하여 표현할 때
관계에 따라 어떤 속성을 외래키로 추가해야 하는 문제는 관계가 어떻게 설정되어 있느냐에 따라 다릅니다.
1:1 관계에서는 예제1번과 같이
<교수> 테이블의 교수번호 속성을 <과목> 테이블의 외래키로 설정하든
<과목> 테이블의 과목번호를 <교수> 테이블의 외리키로 설정하든 관계가 없습니다.
서로가 1:1의 관계에 있으므로 두 테이블에 관련된 속성(교수번호, 과목번호)이 모두 기본키이기 때문에 중복된 값이 없습니다.
1:N 관계에서는 예제2번과 같이
한 명의 교수가 여러 학생을 가르칠 수 있는 관계이므로
1쪽의 기본키를 N 쪽의 외래키로 설정해야 합니다.
38쪽의 예제4번은
각각이 1:1 관계이면서 관련된 속성이 동일한 경우입니다.
이런 경우는 굳이 서로 관련된 학번 속성을 다른 테이블이 추가하여 외래키로 설정할 필요가 없습니다.
그럴 경우 해당 테이블에 속성이 두 번 반복되게 되는 것이죠.
예를 들어, <학생> 테이블에 학번 속성을 <재학생> 테이블의 외래키로 지정할 때 별도로 추가하여 지정하면
<학생> 학번, 이름 학과
<재학생> 학번, 재학번호, 학번
과 같이 <재학생> 테이블에 학번 속성이 반복되게 됩니다.
이런 경우에는 1:1 관계에서 학번 속성을 다른 테이블에 추가하지 않고
기본키인 상태 그대로 연결하여 각 테이블의 기본키이면서 외래키로 사용되게 됩니다.
오늘도 즐거운 하루 되세요.
-
*2018-05-25 11:10:58
안녕하세요.
35쪽의 예제1번은 1:1 관계를 표현한 것이고
36족의 예제2번은 1:N 관계를 표현한 것입니다.
예제1번과 같이 1:1 관계인 경우
어느 테이블의 기본키를 외래키로 추가하든 관계없이 1:1 관계가 유지됩니다.
예제2번과 같이 1:N 관계인 경우
1인 쪽의 기본키를 N인 쪽의 외래키로 추가해야 합니다.
ER 모델을 관계형 데이터 모델로 변환하여 표현할 때
관계에 따라 어떤 속성을 외래키로 추가해야 하는 문제는 관계가 어떻게 설정되어 있느냐에 따라 다릅니다.
1:1 관계에서는 예제1번과 같이
<교수> 테이블의 교수번호 속성을 <과목> 테이블의 외래키로 설정하든
<과목> 테이블의 과목번호를 <교수> 테이블의 외리키로 설정하든 관계가 없습니다.
서로가 1:1의 관계에 있으므로 두 테이블에 관련된 속성(교수번호, 과목번호)이 모두 기본키이기 때문에 중복된 값이 없습니다.
1:N 관계에서는 예제2번과 같이
한 명의 교수가 여러 학생을 가르칠 수 있는 관계이므로
1쪽의 기본키를 N 쪽의 외래키로 설정해야 합니다.
38쪽의 예제4번은
각각이 1:1 관계이면서 관련된 속성이 동일한 경우입니다.
이런 경우는 굳이 서로 관련된 학번 속성을 다른 테이블이 추가하여 외래키로 설정할 필요가 없습니다.
그럴 경우 해당 테이블에 속성이 두 번 반복되게 되는 것이죠.
예를 들어, <학생> 테이블에 학번 속성을 <재학생> 테이블의 외래키로 지정할 때 별도로 추가하여 지정하면
<학생> 학번, 이름 학과
<재학생> 학번, 재학번호, 학번
과 같이 <재학생> 테이블에 학번 속성이 반복되게 됩니다.
이런 경우에는 1:1 관계에서 학번 속성을 다른 테이블에 추가하지 않고
기본키인 상태 그대로 연결하여 각 테이블의 기본키이면서 외래키로 사용되게 됩니다.
오늘도 즐거운 하루 되세요.