[데이터베이스] #3 데이터 모델링, 관계 데이터 모델

2023. 10. 10. 20:49·Computer Science

04. 데이터 모델링

현실 세계의 데이터를 컴퓨터 세계의 데이터베이스로 옮기는 과정을 데이터 모델링이라고 한다.

  • 사람 머릿속에 코끼리를 연상시킬 수 있는 중요한 데이터를 찾아 개념 세계로 옮기는 단계와, 이를 컴퓨터 세계에 저장하는 구조를 결정해서 표현하는 단계로 나누어 진행한다.
  • 현실 세계에서 코끼리에 대한 중요 데이터를 추출해서 개념 세계로 옮기는 작업을 개념적 모델링이라고 하고, 개념 세계의 데이터를 컴퓨터의 데이터베이스 구조로 표현하는 작업을 논리적 모델링이라고 한다
  • 데이터 모델은 데이터 모델링의 결과를 표현하는 도구로, 개념적 데이터 모델과 논리적 데이터 모델로 나눌 수 있다.
  • 개념적 데이터 모델 : 현실 세계를 개념 세계로 추상화했을 때 어떤 요소로 이루어져 있는지 표현하는 개념적 구조.
    • ex) 개체-관계 모델 (E-R 모델)
  • 논리적 데이터 모델 : 데이터를 어떤 모습으로 저장할 것인지 표현하는 논리적 구조
    • ex) 관계 데이터 모델

개체-관계 모델

  • 존재 종속 관계는, 개체 B가 개체 A에 종속될 경우 개체 A가 존재해야 개체 B가 존재하며 개체 A가 삭제되면 개체 B도 함께 삭제되는 관계를 의미한다.
  • 이때 다른 개체의 존재 여부에 의존적인 개체 B를 약한 개체라 하고, 다른 개체의 존재 여부를 결정하는 개체 A를 강한 개체라 한다.
    • 강한 개체와 약한 개체는 일대다 관계
    • 약한 개체는 강한 개체의 관계에 필수적으로 참여 (=전체 참여)
    • 약한 개체는 DB 전체에서 식별되기 어려우므로, 강한 개체의 키를 포함하여 키를 구성함.
    • 약한 개체집합 내에서 서로 구별할 수 있는 속성은 부분키라고 함.
    • 약한 개체의 부분키는 전체 DB에서 key 식별이 불가하고, 종속된 강한 개체 내에서는 key로 식별이 가능함.
      💡 개체와의 부가관계가 2개 이상의 속성을 지닐 경우, 개체의 속성으로 빼지 말고 존재종속 관계로 표현해야 함

논리적 데이터 모델

  • 위에서 개념적 구조를 표현한 E-R 다이어그램을 데이터베이스에 저장할 형태로 표현한 논리적 구조를 논리적 데이터 모델이라 한다.
    • 컴퓨터의 DB에 표현하는 형태를 결정하기 때문에 DBMS 종류에 영향을 받는다. (개념적 데이터 모델은 DBMS과 무관)
    • 이 때 개념적 구조는 다이어그램이고, 논리적 구조는 schema(스키마)임 → 이 스키마는 사용하는 데이터베이스 관리 시스템에 따라 달라짐
  • 대표적으로 계층 데이터 모델, 네트워크 데이터 모델, 관계 데이터 모델이 존재한다.
    • 이 중 관계 데이터 모델이 일반적으로 많이 사용됨

05. 관계 데이터 모델

  • 개념적 구조를 논리적 구조로 표현하는 논리적 데이터 모델로, 하나의 개체에 관한 데이터를 릴레이션 하나에 담아 DB에 저장한다.
  • 릴레이션의 열을 속성 또는 애트리뷰트라고 부른다.
    • 릴레이션은 파일 관리 시스템의 파일에 해당하고, 속성은 해당 파일의 필드에 해당
  • 릴레이션의 행은 투플이라고 부른다.
    • 해당 릴레이션의 인스턴스로, 파일 관리 시스템의 레코드에 대응하는 개념

키(key)

  • 릴레이션에 포함된 투플들을 유일하게 구별해주는 역할을 한다. DB 전체에서 식별이 가능해야 키(key)로 인정되는 개념적 구조의 E-R 모델과 다르게 릴레이션 내에서만 구별이 가능하면 키로 인정한다.
  • 슈퍼키 : 유일성의 특성을 만족하는 속성 혹은 속성들의 집합
  • 후보키 : 유일성과 최소성을 만족하는 속성 혹은 속성들의 집합
    • 슈퍼키 중에서도 최소성을 만족하면 후보키가 됨.
    • 하나의 속성으로 구성된 키는 당연히 최소성을 만족함.

슈퍼키, 후보키, 기본키

  • 대체키 : 기본키로 선택되지 못한 후보키들
  • 외래키 : 다른 릴레이션의 기본키를 그대로 참조하는 속성 혹은 속성의 집합
    • 이 때 외래키 속성과 그것이 참조하는 기본키 속성의 이름은 달라도 되지만, 도메인은 동일해야 함.
    • ex) 이름은 ‘고객아이디’와 ‘주문고객’으로 다르지만, 속성의 도메인은 동일
    • 외래키는 기본키를 참조하지만, 외래키 자체는 해당 릴레이션에서 기본키가 아니기 때문에 NULL 값일 수 있음.

관계 데이터 모델의 제약

  1. 개체 무결성 제약조건 (기본키에 대한 규칙)
    • 기본키를 구성하는 모든 속성은 널 값을 가지면 안 된다는 규칙
    • 기본키를 구성하는 속성이 NULL 값이 되면 유일성 판단이 어려워짐 → 본래 목적 상실
  2. 참조 무결성 제약조건 (외래키에 대한 규칙)
    • 외래키는 자신이 참조하는 릴레이션에 기본키 값으로 존재하는 값, 즉 참조 가능한 값만 가져야 함
    • 아래 그림의 경우 cherry라는 주문고객의 속성은 존재하지 않으므로, 제약조건을 위반한 예임.
    • 외래키가 NULL 값을 가지는 것은 참조 무결성 제약조건을 위반한 예시는 아님.

저작자표시 (새창열림)

'Computer Science' 카테고리의 다른 글

[데이터베이스] 데이터베이스 저장 및 인덱스  (0) 2023.11.29
[데이터베이스] #2 데이터베이스 시스템  (0) 2023.09.09
[데이터베이스] #1 데이터베이스 기본 개념, 관리 시스템 DBMS  (0) 2023.09.09
'Computer Science' 카테고리의 다른 글
  • [데이터베이스] 데이터베이스 저장 및 인덱스
  • [데이터베이스] #2 데이터베이스 시스템
  • [데이터베이스] #1 데이터베이스 기본 개념, 관리 시스템 DBMS
jjjaeunn
jjjaeunn
  • jjjaeunn
    eunlogツ
    jjjaeunn
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 논문 리뷰
      • AI
      • Computer Science
      • 알고리즘
  • 블로그 메뉴

    • 홈
    • papers
    • algorithm
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    데이터베이스
    db
    동아리
    gpu
    빅데이터연합동아리
    BERT
    pytorch
    보아즈
    MLM
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.2
jjjaeunn
[데이터베이스] #3 데이터 모델링, 관계 데이터 모델
상단으로

티스토리툴바