데이터베이스: 데이터 모델

2023-06-11 00:01:00

데이터 모델링의 결과물을 표현하는 도구

  • 개념적 데이터 모델: 현실 세계의 중요 데이터를 추출 ex) 개체-관계 모델 (E-R모델)
  • 논리적 데이터 모델: DB에 저장할 형태로 표현한 논리적 구조 ex) 관게 데이터 모델, 계층 데이터 모델, 네트워크 데이터 모델, ...

구성

  • 연산
  • 데이터 구조
  • 제약조건

모델링

ER 다이어그램

  • 개체
    • 개체 타입의 ER 다이어그램 표현: 직사각형, 직사각형 안에 이름 표기
    • 개체 타입 유형
      • 강한 개체: 독립
      • 약한 개체: 독립존재 불가, 반드시 상위 개체 타입을 가짐
    • 속성: 개체가 가진 성질, 타원으로 표현
      • 단일 값 속성: 값을 하나만 갖는 속성
      • 다중 값 속성: 이중 타원으로 표현 ex) 고객 개체의 전화번호, 책 개체의 저자
      • 단순 속성: 의미를 더는 분해 불가능 ex) 고객 개체의 적립금, 책 개체의 이름/ISBN 등..
      • 복합 속성: 의미를 분해할 수 있음 ex) 고객 개체의 주소 → 시/군/구 읍/면/동 ...
      • 유도 속성: 다른 속성에 종속적인 속성, 값이 별도로 저장 X 점선 타원으로 표현
  • 관계: 개체와 개체가 맺고 있는 의미 있는 연관성, 개체 집합들 사이의 대응 관계, 매핑을 의미
    • ex) “고객은 책을 구매한다"

    • E-R 다이어그램에서 마름모로 표현

    • 관계 타입: 개체 타입과 개체 타입 간의 연결 가능한 관계를 정의한 것

    • 관계 집합: 관계로 연결된 집합

    • 관계 타입의 유형

      • 차수: 관계 집합에 참가하는 개체 타입의 수
      • 차수에 따른 관계 타입의 유형
        • 순환 관계(1진 관계): 한 개의 개체가 자기 자신과 관계를 맺음

          ex) 학생과 학생 간 멘토링

        • 이항 관계(2진 관계): 두 개의 개체가 관계를 맺음

          ex) 학생은 학과의 소속이다.

        • 삼항 관계(3진 관계): 세 개의 개체가 관계를 맺음

          ex) “직원”은 “부품”을 조립해 자동차를 만드는 “프로젝트”

    • 카디널리티: 두 개체 타입의 관계에 실제로 참여하는 개별 개체수

    • 카디널리티에 따른 관계 타입의 유형

      • 일대일 관계: 하나의 개체가 하나의 개체에 대응

        ex) 사원 한명은 한 대의 컴퓨터를 가진다.

      • 일대다 관계: 하나의 개체가 여러 개체에 대응

        ex) 학과는 여러명의 학생이 소속돼있다.

      • 다대일 관계: 여러 개체가 하나의 개체에 대응

        ex) 각 학생들은 학과에 소속돼있다.

      • 다대다 관계: 여러 개체가 여러 개체에 대응

        ex) 학생은 강좌들을 수강하고, 강좌들은 학생들에 의해 수강된다.

    • 카디널리티의 최솟값과 최댓값

      • 최댓값: 1:1, 1:N, M:N에서 1,N,M은 카디널리티의 최댓값
      • 최솟값을 표시하지 않는다는 단점을 보완하기 위해 다이어그램에서 대응수 외에 최소/최대를 표기함
    • 관계의 참여 제약 조건

      개체 집합 내의 모든 개체가 관계에 참여하는지 유무에 따라 전체 참여와 부분 참여로 구분 가능

      • 전체 참여: 개체 집합의 모든 개체가 참여 *(최솟값, 최댓값) 표기: (1, N)
        • ex) 고객 개체가 책 개체와의 구매 관계에 필수적으로 참여 → 모든 고객은 책을 반드시 구매해야함 *”구매" 관계 자체는 고객이 존재해야 성립됨!!
        • E-R 다이어그램에서 이중선으로 표현
      • 부분 참여: 개체 집합의 일부만 참여 *(최솟값, 최댓값) 표기: (0, N)
        • ex) 책 개체가 고객 개체와의 구매 관계에 선택적으로 참여 → 고객이 구매하지 않은 책이 존재할 수 있음

관계 데이터 매핑

[방법1] 오른쪽 개체 타입 E2를 기준으로 관계 R을 표현한다.

  • E1(KA1, A2)
  • E2(KA2, A4, KA1)

[방법2] 왼쪽 개체 타입 E1을 기준으로 관계 R을 표현한다.

  • E1(KA1, A2, KA2)
  • E2(KA2, A4)

[방법3] 단일 릴레이션 ER로 모두 통합하여 관계 R을 표현한다.

  • ER(KA1, A2, KA2, A4)

[방법4] 개체 타입 E1, E2와 관계 타입 R을 모두 독립된 릴레이션으로 표현한다.

  • E1(KA1, A2)
  • R(KA1, KA2)
  • E2(KA2, A4)

ER모델 → 실제 데이터베이스 로의 논리적 모델링 과정에서 매핑이 이루어짐

  • 1단계: 강한(정규) 개체 타입
  • 2단계: 약한 개체 타입
    • 자신의 키와 함께 강한 개체 타입의 키를 외래키로 매핑하여 자신의 기본키를 구성함
  • 3단계: 이진 1:1 관계 타입
    • 이진 1:1 관계 타입의 경우 방법1~4까지 모든 유형으로 매핑 가능, 개체가 가진 정보 유형에 따라 판단
  • 4단계: 이진 1:N 관계 타입
    • 이진 1:N 관계 타입의 경우 N의 위치에 따라 방법1/2 유형으로 매핑
  • 5단계: 이진 M:N 관계 타입
    • 이진 M:N 관계 타입은 방법4로 매핑됨 (교수-수업-과목)
  • 6단계: N진 관계 타입
    • ER모델의 차수가 3 이상인 다진 관계 타입의 경우 방법4의 유형으로 매핑됨