본문 바로가기

학교수업/데이터베이스

4. 데이터 모델링

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

데이터 모델링

  • 현실 세계의 데이터를 컴퓨터 세계의 데이터베이스로 옮기는 변환 과정
  • 데이터베이스 설계의 핵심 과정

2단계 데이터 모델링

개념적 데이터 모델링

현실 세계의 중요 데이터를 추출해 개념 세계로 옮기는 작업

논리적 데이터 모델링

개념 세계의 데이터를 데이터베이스에 저장하는 구조로 표현하는 작업


데이터 모델

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

 

개념적 데이터 모델

  • 사람의 머리로 이해할 수 있도록 현실 세계를 개념적으로 모델링하여 데이터베이스의 개념적 구조로 표현하는 도구
  • 개체 관계 모델(ER모델: Entity Relationship Model)
    • 피터 첸이 제안한 개념적 데이터 모델
    • 개체와 개체 간 관계를 이용해 현실세계를 개념적 구조로 표현
    • 핵심요소: 개체, 속성, 관계
    • 개체 관계 다이어그램(ER 다이어그램): 개체 관계 모델을 이용해 현실 세계를 개념적 모델링한 결과물을 그림으로 표현한 것
    • 개체 타입: 개체를 고유의 이름과 속성으로 정의한 것. 파일 구조의 레코드 타입에 대응
    • 개체 인스턴스(개체 어커런스): 개체를 구성하는 속성이 실제값을 가짐으로서 실체화된 개체. 파일 구조의 레코드 인스턴스와 대응됨
    • 개체 집합: 동일한 개체 타입 갖는 개체 인스턴스들의 집합

  • 개체(entity)
    • 저장할 가치가 있는 중요 데이터를 갖고 있는 사람, 사물, 개념, 사건 등
    • 다른 개체와 구별되는 이름을 갖고 있고 각 개체만의 고유 특성, 상태 즉 속성을 하나 이상 갖고 있다.
    • 예) 학교에 필요한 개체: 학과, 과목
    • 파일 구조의 레코드와 대응됨
    • ER 다이어그램에서 네모로 표기
  • 속성(attribute)
    • 개체나 관계가 갖고 있는 고유 특성
    • 의미 있는 데이터의 가장 작은 논리적 단위
    • 파일 구조의 필드와 대응됨
    • ER 다이어그램에서 타원으로 표기
  • 속성의 분류
속성 속성 값의 개수 단일 값 속성 값을 하나만 가질 수 있는 속성. 타원형
다중 값 속성 값을 여러개 가질 수 있는 속성. 이중 타원형
의미의 분해 가능성 단순 속성 의미를 더 이상 분해할 수 없는 속성
복합 속성 의미를 분해할 수 있는 속성
기존 속성 값에서 유도 유도 속성 기존의 다른 속성값에서 유도되어 결정되는 속성. 별도 저장 안됨. 점선 타원형

널 속성

  • 널값(아직 결정되지 않았거나 모르는 값. 존재하지 않는 값)이 허용되는 속성

키 속성

  • 개체 인스턴스 식별에 사용
  • 모든 개체 인스턴스의 키 속성 값은 다르다
  • 둘 이상의 속성들로 구성되기도 한다.
  • 밑줄로 표현

관계

  • 개체와 개체가 맺고 있는 대응 관계(Mapping)
  • 마름모로 표현
관계에 참여하는 개체 타입의 수 이항 관계 개체 타입 2개가 맺는 관계
삼항 관계 개체 타입 3개
순환 관계 개체 타입 하나가 자기 자신과
매핑 카디널리티
(각 개체 집합 내부 인스턴스가 다른 개체 내 인스턴스 몇개와 연결되는지)
1:1  
1:n
n:n

관계의 참여 특성

필수적 참여(전체 참여)

  • 모든 개체 인스턴스가 관계에 반드시 참여해야 한다
  • 이중선으로 표시

선택적 참여(부분 참여)

  • 개체 인스턴스 중 일부만 관계에 참여해도 된다
  • 실선

관계의 종속성

강한개체:약한개체 = 1: n

약한개체는 강한개체와의 관계에 필수적으로 참여하여 강한 개체의 키를 포함해 키를 구성

약한개체: 이중 사각형

강한 개체: 사각형

약한개체와 강한개체 사이의 관계: 이중 마름모


논리적 데이터 모델

  • ER다이어그램으로 표현된 개념적 구조를 논리적으로 모델링하여 데이터베이스에 저장할 논리적 구조로 표현
  • 데이터베이스의 논리적 구조 == 데이터베이스 스키마
  • 관계 데이터모델, 계층 데이터 모델, 네트워크 데이터 모델

관계 데이터 모델

  • 일반적으로 많이 사용하는 논리적 데이터 모델
  • 데이터베이스의 논리적 구조: 2차원 테이블 형태

계층 데이터 모델(Hierarchical data model)

  • 데이터베이스 논리적 구조: 트리 형태
  • 루트 역할을 하는 개체가 존재하고 사이클이 존재하지 않음
  • 개체 간 상하관계: 부모(1), 자식(n)
  • 두 개체사이 하나의 관계만 정의할 수 있음
  • n:m직접 표현 불가능
  • 개념적 구조 모델링 어려움
  • 데이터의 삽입, 삭제, 수정, 검색이 어려움

네트워크 데이터 모델

  • 데이터베이스의 논리적 구조가 네트워크, 즉 그래프 형태
  • 개체간 1:n 관계만 허용: 오너(1), 멤버(n)
  • 두 개체 사이 여러관계 정의 가능 >> 이름으로 구별
  • n:m 표현 불가능
  • 구조 복잡, 데이터의 삽입, 삭제, 수정, 검색이 어려움