코딩하는 해달이

[데이터 베이스 설계] 3주차 본문

학교 공부/데이터 베이스 설계

[데이터 베이스 설계] 3주차

코딩하는 해달 2023. 3. 16. 16:49
키 속성(Key Attributes)
  • 어떤 개체에 대해서 항상 유일한 값을 갖는 속성(또는 속성들의 집합)
    • 학생의 학번, 책의 ISBN, 자동차의 차량번호, …
  • 특정 Snapshot이 아닌, 해당 개체의 모든 가능한 Snapshot의 집합을 고려하여 파악되어야 함
    • 다음의 SSN, 이름, 혈액형 중 키 속성을 찾으시오.
  • 복합 키(Composite Key)
    • Composite Attribute가 키 속성이 되는 경우
    • 복합 키는 유일성과 최소성을 가져야 함
      • (팀명, 등번호) vs. (팀명, 등번호, 선수명)
  •    각 개체는 하나 이상의 키를 가질 수 있음
  •    어떤 개체는 키를 갖지 않을 수도 있음
    • 약성 개체(Weak Enity)
    • 요구 사항 분석
      • 회사는 여러 개의 부서로 구성되어 있다
      • 각 부서는 부서명, 부서 번호, 부서 내 직원 수, 그리고 그 부서를 관리하는 직원(관리자)의 정보를 갖고 있다.
      • 직원은 최대 하나의 부서를 관리할 수 있다. 한편 해당 직원이 부서 관리자로 근무를 시작한 정보도 저장해야 한다.
      • 각 부서는 여러 지역에 위치하고 있을 수 있으며, 각 부서는 여러 프로젝트를 동시에 관리할 수 있다. 각 프로젝트는 고유의 프로젝트명, 프로젝트 번호를 가지며, 하나의 프로젝트는 하나의 지역에서만 진행된다.
      • 직원에 대해 직원명, 주민번호, 주소(/, 상세주소), 급여, 성별, 생년월일의 정보를 저장한다.
      • 각 직원은 하나의 부서에 소속되어 있으며, 여러 프로젝트에 참여할 수 있다.
      • 한편 각 직원이 참여한 프로젝트에 대해 해당 직원의 주당 근무시간 정보도 관리해야 한다
      • 각 직원에 대해 해당 직원의 직속상사(감독자)에 대한 정보를 관리한다.
      • 각 직원은 여러 명의 부양가족을 가질 수 있다. 부양 가족에 각각에 대해 부양가족명, 성별, 생년월일, 그리고 해당 직원과의 관계에 대한 정보를 관리한다.
  • 요구 사항 정리
    • Entity 부서 : 부서명, 부서번호, 관리자, 관리시작일, 직원수, 지역
    • Entity 프로젝트 : 프로젝트명, 프로젝트번호, 지역, 부서
    • Entity 직원 : 이름, 주민번호, 성별, 주소, 급여, 생년월일, 부서, 감독자, (프로젝트, 주당근무시간)
    • Entity 부양가족 : 직원, 이름, 성별, 생년월일, 관계

  • 관계(Relationship) 설정
    •  개체의 속성이 다른 개체를 참조할 때 관계가 형성됨
    • [부서] [관리자] 속성은 [직원] 개체를 참조함
    • [직원] [프로젝트] 속성이 [프로젝트] 개체를 참조함
  • 관계의 차수(Degree)
    • 관계에 참여하는 개체의 수
    •  - Binary, Ternary, Unary, …
  • 관계의 대응수(Cardinality)
    • 해당 개체가 해당 관계에서 참여할 수 있는 관계 인스턴스의 최대 수
    •    - 1:1, 1:N, (or N:1), M:N
  • 대응 수에 따른 관계의 분류
    • 일대다 관계
      • [근무]관계의 [근무시작일] 속성이 이동한다면...
    • 일대일 관계
      • [관리] 관계의 [관리시작일] 속성이 이동한다면
    • 다대다 관계
      • [참여] 관계의 [주당근무시간] 속성이 이동한다면

 

일반화 예시

반응형
Comments