카테고리 없음

ch4. 데이터 모델링

hjr067 2025. 4. 19. 16:40

01 데이터 모델링과 데이터 모델의 개념

  • 현실 세계에 존재하는 데이터를 컴퓨터 세계의 데이터베이스로 옮기는 변환 과정
  • 추상화

- 2단계 데이터 모델링

  • 개념적 데이터 모델링
    • 현실 세계의 중요 데이터를 추출하여 개념 세계로 옮기는 작업
  • 논리적 데이터 모델링
    • 개념 세계의 데이터를 데이터베이스에 저장하는 구조로 표현하는 작업

- 데이터 모델

  • 데이터 모델링의 결과물을 표현하는 도구
  • 개념적 데이터 모델
    • 사람의 머리로 이해할 수 있도록 현실 세계를 개념적 모델링하여 데이터베이스의 개념적 구조로 표현하는 도구
    • ex. 개체-관계 모델
  • 논리적 데이터 모델
    • 개념적 구조를 논리적 모델링하여 데이터베이스의 논리적 구조로 표현하는 도구
    • ex. 관계 데이터 모델

- 데이터 모델의 구성

  • 데이터 구조
    • 정적 특징
    • 개념적 데이터 모델에서 개념적 구조 - 현실 세계를 개념 세계로 추상화했을 때 어떤 요소로 이루어져 있는지 표현
    • 논리적 데이터 모델에서 논리적 구조 - 데이터를 어떤 모습으로 저장할 것인지 표현
  • 연산
    • 동적 특징
  • 제약조건
    • 데이터 무결성 유지 목적
    • 구조적 측면의 제약 사항
    • 연산을 적용하는 경우 허용할 수 있는 의미적 측면의 제약 사항

02 개체-관계 모델

  • 개체-관계 모델
    • 개체와 개체 간의 관계를 이요해 현실 세계를 개념적 주고로 표현
    • 핵심 요소 : 개체, 속성, 관계
  • 개체-관계 다이어그램E-R 다이어그램 (=ERD)구성 요소의미예시
Entity (개체) 데이터가 저장되는 대상 사용자(User), 주문(Order), 제품(Product)
Attribute (속성) 개체나 관계가 가지는 고유한 특성 이름, 이메일, 가격, 수량 등
Relationship (관계) 개체 간 연결 사용자가 주문한다, 제품이 주문에 포함된다

 

- Entitiy (개체)

  • 다른 개체와 구별되는 이름을 가지고 있고, 각 개체만의 고유한 특성이나 상태 (=속성)을 하나 이상 가지고 있음
  • 예 ) 서점에 필요한 개체 : 고객, 책 / 학교에 필요한 개체 : 학과, 과목
  • 파일 구조의 레코드와 대응됨
  • ERD에서 사각형으로 표현

- Attribute (속성)

  • 의미 있는 데이터의 가장 작은 논리적 단위
  • 파일 구조의 필드와 대응됨
  • ERD에서 타원으로 표현

- entity type (개체 타입)

  • 파일 구조의 레코드 타입에 대응됨

- entity instance (개체 인스턴스) = entity occurrence (개체 어커런스)

  • 실체화된 개체
  • 파일 구조의 레코드 인스턴스에 대응됨

- entity set (개체 집합)

 

다중 값은 이중 타원, 유도 속성은 점선 타원으로 표시

  • 널 값은 공백/0과는 의미가 다름
  • 키 (KEY) 속성
    • ERD에서 밑줄로 표현
    • 각 개체 인스턴스를 식별하는 데 사용
    • 모든 개체 인스턴스의 키 속성 값이 달라야됨
    • 둘 이상의 속성들로 구성되기도 한다.

- Relationship (관계)

  • 개체 집합들 사이의 대응 관게 = 매핑 (MAPPING)
  • ERD에서 마름모로 표현
  • 관계의 유형
    • 이항 관계
    • 삼항 관계
    • 순환 관계 : 개체 타입 1개가 자기 자신과 맺는 관계
    • 매핑 카디널리티 기준 (1:1, 1:N, N:M)
  • 관계의 참여 특성
    • 필수적 참여 (전체 참여)
      • EX. 모든 고객은 책을 반드시 구매해야된다면, 고객 개체가 책 개체와의 구매 관계에 반드시 참여해야 된다는 것
      • ERD에서 이중선으로 표현
    • 선택적 참여 (부분 참여)
      • 개체 인스턴스 중 일부만 관계에 참여해도 되는 것
      • EX. 고객에 구매하지 않은 책이 존재할 수도 있음 
  • 개체의 종속성
    • 약한 개체 - 다른 개체의 존재 여부에 의존적인 개체 (ERD에서 이중 삼각형, 이중 마름모 )
    • 강한 개체 - 다른 개체의 존재 여부를 결정하는 개체
    • 강한 - 약한 은 일반적으로 일대다
    • 약한은 강한의 관계에 필수적으로 참여
    • 약한은 강한의 키를 포함하여 키를 구성

03 논리적 데이터 모델

ERD로 표현된 개념적 구조를 DB에 저장할 형태로 표현한 논리적 구조

- 데이터베이스의 논리적 구조 = 데이터베이스의 스키마 

  • 관계 데이터 모델
    • DB의 논리적 구조 : 2차원 테이블 형태 
  • 계층 데이터 모델 (위에가 1, 아래가 다 N인 형태 / 객체에 상하관계 부여)
      • DB의 논리적 구조 : 트리(TREE) 형태 
      • 루트 역할 개체 존재, 사이클이 존재하지 X ( = 순환관계 X)
      • 부모 개체 / 자식 개체 ( 1:N )
      • 두 개체 사이에 하나의 관계만 정의 가능
      • 개념적 구조 모델링 어려워 구조 복잡해질 수 있음
      • 데이터의 삽입, 삭제, 수정, 검색이 쉽지 않음 -> 트리에서의 연산이 어려워서
  • 네트워크 데이터 모델
    • DB의 논리적 구조 : 그래프 형태
    • 개체 간에는 1:N 관계만 허용됨 (오너 / 멤버)
    • 두 개체 간의 관계를 여러 개 정의할 수 있어 이름으로 구별함 = 레이블링 필요
    • 데이터의 삽입, 삭제, 수정, 검색이 쉽지 않고 구조 복잡
    • 순환 관계 가능