책 내용 질문하기
전의 질문의 답변에 대한 재질문입니다.
도서
2018 시나공 정보처리기사 실기(산업기사 포함)
페이지
35
조회수
79
작성일
2018-05-24
작성자
탈퇴*원
첨부파일

"전에 질문의 답변에 대한 재 질문입니다." 질문의 답변에 대한 재 질문인데요.

외래키로 지정되는 속성이 기준이 될 때 기본키가 아니라 일반 속성인 경우 그 속성과의 관계는 1:N이 됩니다.

-> 그 속성과의 관계가 1:N이라고 하셨는데 어떤 속성과 어떤 속성의 관계를 의미하는건지요??

p35의 예제1에서 교수 릴레이션의 교수번호 속성과 과목 릴레이션의 교수번호 속성과의 관계가 1:N이 된다는 말인지요??

39쪽과 같이 학번 속성을 기준으로 기본키이면서 외래키로 설정되면 학번에 종속된 이름, 학과 속성이 각각의 테이블, 즉 재학생, 휴학생, 졸업생 테이블의 부분집합으로 포함됨을 설명하고 있습니다

-> 이건 무슨 말인지요?? 이름, 학과 속성이 재학생, 휴학생, 졸업생 테이블에는 존재하지 않는데 부분 집합이 된다는 건지요??

답변
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 관계에서 학번 속성을 다른 테이블에 추가하지 않고

기본키인 상태 그대로 연결하여 각 테이블의 기본키이면서 외래키로 사용되게 됩니다.

오늘도 즐거운 하루 되세요.

  • *
    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 관계에서 학번 속성을 다른 테이블에 추가하지 않고

    기본키인 상태 그대로 연결하여 각 테이블의 기본키이면서 외래키로 사용되게 됩니다.

    오늘도 즐거운 하루 되세요.

· 5MB 이하의 zip, 문서, 이미지 파일만 가능합니다.
· 폭언, 욕설, 비방 등은 관리자에 의해 경고없이 삭제됩니다.