새소식

반응형
밥벌이/데이터베이스

ERD를 관계형 모델로 변환

  • -
반응형
  • ERD를 릴레이션 스키마로의 변환 방법
    • 강한 개체 타입의 변환
      • 강한 개체 타입 X는 독립적인 릴레이션 스키마 X로 표현
      • 개체 타입의 속성들은 릴레이션 스키마의 속성들로 정의, 단 모든 속성은 복합 속성이나 다중 값 속성이 아님
      • 기본키는 밑줄을 그어 표시
    • 약한 개체 타입의 변환
      기본키가 α인 강한 개체 타입 X에 의존적인 약한 개체 타입 Y는 α를 포함하는 릴레이션 스키마로 표현
    • 관계의 변환
      • 개체 타입 X, Y간의 관계 타입 R는 카디널리티에 따라 다르게 표현
      • 관계 타입 R이 1:1 관계이면, 릴레이션 스키마 X의 기본키를 릴레이션 스키마 Y의 외래키로 추가하거나 릴레이션 스키마 Y의 기본키를 릴레이션 스키마 X의 외해키로 추가하여 표현
      • 관계 타입 R이 1:N 관계이면, 릴레이션 스키마 X의 기본키를 릴레이션 스키마 Y의 외래키로 추가하여 표현
      • 관계 타입 R이 N:M 관계이면, 릴레이션 스키마 X와 Y의 기본키를 모두 포함한 별도의 릴레이션 스키마로 표현
    • 복합 속성의 변환
      각각의 구성 요소 속성을 별도의 속성으로 변환
    • 예) 주소 속성이 시와 동으로 구성되었을 경우 주소_시, 주소_동으로 변환
    • 다중값 속성의 변환
      다중 값 속성은 해당 속성이 존재하는 개체 타입의 기본키를 이용해 별도의 릴레이션 스키마로 표현
    • 예) 사원 개체의 기본키가 "이름"이고 다중값 속성이 "부양가족명"일 경우, 부양가족(이름,가족명)으로 변환
    • 일반화의 변환
      • 개체 타입의 특성에 따라 다르게 표현
      • 일반화가 분리(Disjoint)되면서 완전(Total)인 경우
        • 어떤 개체도 한 상위 개체 타입의 하위에 있는 2개의 개체 타입에 동시에 속하지 않으면서, 상위 개체 타입의 모든 개체는 하위 개체 타입들 중 하나의 구성원일 경우
        • 상위 개체 타입을 위한 릴레이션 스키마를 만들지 않고, 각각의 하위 개체 타입에 상위 개체 타입의 속성을 포함하는 릴레이션 스키마로 변환
          예) 근로자(이름, 주소, 연봉), 고객(이름, 주소, 성별)
      • 그 외 일반화인 경우
        상위 개체 타입을 하나의 릴레이션으로 변환하고, 하위 개체 타입은 상위 개체 타입의 기본키를 포함하는 릴레이션 스키마로 변환하거나 하위 개체 타입은 상위 개체 타입의 모든 속성을 전부 포함하여 릴레이션 스키마로 변환 예) 2 사람(이름, 주소), 근로자(이름, 주소,연봉), 고객(이름, 주소, 성별)
      • 예) 1 사람(이름, 주소), 근로자(이름, 연봉), 고객(이름, 성별)
    • 집단화(Aggregation)의 변화
      집단화와 개체 타입 간의 관계 타입은 양쪽의 기본키를 모두 가지는 릴레이션 스키마로 변환
    •    
  • ERD를 릴레이션 스키마로의 변환 예
    • ERD
    • 변환된 릴레이션 스키마
         
    • 강한 개체 타입
      • 타 개체 존재 여부와 상관없이 존재할 수 있는 개체
      • 기본키가 있는 개체
    • 약한 개체 타입
      • 다른 강한 개체가 존재해야만 자신도 존재할 수 있는 개체
      • 존재 종속이 성립하는 개체 타입으로서 기본키가 없는 개체
    • 복합속성 - 더 작은 단위로 나누어 질 수 있는 속성, 즉 여러 개의 속성들로 구성되는 속성
    • 다중값 속성 - 속성값이 여러 개 존재할 수 있는 속성
반응형

'밥벌이 > 데이터베이스' 카테고리의 다른 글

물리적 설계의 객체별 활동  (0) 2011.01.25
논리적 설계의 기본 요소  (0) 2011.01.20
함수적 종속과 정규화  (0) 2011.01.20
연결 함정(Connection Trap)  (0) 2011.01.20
개념적 설계의 기본 요소  (0) 2011.01.19
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.