컴퓨터공학/데이터베이스

[데이터베이스] 데이터베이스 모델링 (*중요)

NIMHO 2022. 10. 13. 12:08
728x90

복습하기 위해 학부 수업 내용을 필기한 내용입니다.
이해를 제대로 하지 못하고 정리한 경우 틀린 내용이 있을 수 있습니다.
그러한 부분에 대해서는 알려주시면 정말 감사하겠습니다.

데이터 모델링의 개념

  • 데이터 모델링
    • 현실 세계에 존재하는 데이터를 컴퓨터 세계의 데이터베이스로 옮기는 변환 과정
  • 3단계 데이터의 세계
    • 현실 세계(real world)
      • 인간이 감각기능을 통해 감지할 수 있는 실체로 되어있는 세계
    • 개념 세계(conceptual world)
      • 현실 세계의 실체를 개념으로 표현한 단계
    • 컴퓨터 세계(computer world)
      • 개념 세계를 컴퓨터가 처리할 수 있는 데이터로 변환한 단계

 

  • 개념적 데이터 모델링
    • 현실 세계의 실체를 추상적 개념을 통해 개념 세계로 표현하는 과정
  • 개념적 데이터 구조
    • 개념적 데이터 모델링으로부터 얻은 결과
    • 개체 타입
      • 현실 세계의 개체들을 추상화시킨 것
      • ex. 학생, 교수, 과목
    • 속성
      • 개체 타입에 속하는 개체들의 공통적인 속성
      • ex. 학번, 성명, 전화번호
    • 인스턴스
      • 각 개체의 값
      • ex. "20181234, 김철수, 010-4654-7654"
  • 개념 세계의 개념적 데이터 구조는 컴퓨터가 직접 이해할 수 없기 때문에 컴퓨터 세계의 환경에 맞게 변환
728x90
  • 논리적 데이터 모델링
    • 개념적 데이터 구조로부터 논리적 개념을 이용하여
    • 논리적 데이터 구조, 즉 데이터 모델로 표현하는 것
  • 물리적 데이터 모델링
    • 논리적 데이터 구조를 컴퓨터가 접근할 수 있는 물리적 데이터 구조로 변환시키는 것
    • DBMS를 이용해서 물리적 데이터 구조로 저장

 

데이터 모델

  • 데이터베이스 설계(database design)
    • 현실 세계 → 개념적 데이터 구조 → 논리적 데이터 구조 → 물리적 데이터 구조로 변환시키는 모든 과정
  • 개념적 데이터 모델(conceptual data model)
    • 속성들로 기술된 개체 타입과 이 개체들 간의 관계를 이용하여 현실 세계를 표현하는 방법
  • 논리적 데이터 모델(logical data model)
    • 데이터 필드로 기술된 레코드 타입과 이 레코드 타입들 간의 관계를 이용하여 개념 세계를 표현하는 방법
    • 지금까지 제안된 논리적 데이터 모델
      • 계층 데이터 모델(hierarchical data model) : tree형식
      • 네트워크 데이터 모델(network data model)
      • 관계형 데이터 모델(relational data model) : 가장 많이 사용 (표)
      • 객체 지향 데이터 모델(object-oriented data model)
      • 객체-관계형 데이터 모델(object-relational data model) : 최근 사용

관계

  • 개체들 사이에 존재하는 연관성이나 연결로서 두 개 이상의 개체 타입들 간의 사상(mapping)을 말한다.
  • 학생과 교수 개체 집합만으로는 별 의미를 나타내지 못하지만
  • “교수가 학생을 지도한다”라는 관계를 정의한다면 유용한 의미를 표현한다.

  • 사상 원소수 (mapping cardinality)
    • 일 대 일 (1 : 1) : 신랑과 신부
    • 일 대 다 (1 : n) : 어머니와 자식
    • 다 대 일 (n : 1) : 학생과 교수
    • 다 대 다 (n : n) : 학생과 과목

 

E-R 모델 - 개념적 데이터

  • 개체–관계 모델(Entity-Relationship model)
    • 1976년 P. Chen이 제안한 개념적 데이터 모델
  • E-R 다이어그램: E-R 모델을 그래프 방식으로 표현한 것
    • 개체 타입 (entity type)
    • 관계 (relationship)
    • 속성(attribute)
  • 개체 타입은 연관된 개체 타입들을 링크로 연결하고, 사상 원소수에 따라 레이블을 붙인다.
  • 또한 속성도 가질 수 있다.

 

개체 타입

  • 개체 타입에는 강한 개체 타입과 약한 개체 타입이 있다
  • 강한 개체 타입
    • 독자적으로 존재하며 개체 타입 내에서 자신의 속성들을 사용하여
    • 고유하게 개체들을 식별할 수 있는 타입을 의미 (지금까지 한 것)
  • 약한 개체 타입
    • 키를 형성하기에 충분한 속성들을 갖지 못한 개체 타입

 

속성의 여러 가지 유형

  • 단순 속성
    • 더 이상 다른 속성으로 나눌 수 없는 속성
    • ex. 개체 '고객'의 ID, 이름, 주소 등
  • 복합 속성
    • 두 개 이상의 속성들로 이루어진 속성
    • ex. 속성 '주소'의 시, 군, 동, 우편번호
    • 주소는 단순 속성이지만, 세분화할 필요가 있을 땐 복합 속성이 된다.
  • 다치 속성
    • 각 개체마다 여러 개의 값을 가질 수 있는 속성 (가능하면 사용 X)
    • ex. 속성 '취미'
  • 유도된 속성
    • 다른 속성의 값으로부터 얻어진 속성

 

약한 개체 타입

  • 약한 개체 타입에게 키 속성을 제공하는 개체 타입을 소유 개체 타입 또는 식별 개체 타입이라 한다.
  • E-R 다이어그램에서 약한 개체 타입은 이중선 직사각형으로 표기
  • 강한 관계는 강한 개체들 사이의 관계이다.
  • 약한 관계는 강한 개체 타입과 약한 개체 타입을 연결하는 관계이다.

 

참여 제약 조건

  • 참여 제약 조건은 전체 참여와 부분 참여가 있다.
  • 어떤 관계에 객체 타입의 모든 객체들이 참여하면 전체 참여라고 한다.
  • 일부 객체만 참여하면 부분 참여라고 한다.
  • E-R 다이어그램에서 전체 참여는 이중 실선으로 표시하고, 특히, 약한 개체 타입은 항상 관계에 전체 참여한다.

 

논리적 데이터 모델

  • 관계형 데이터 모델(relational data model)
    • 개체와 관계가 모두 테이블(릴레이션)로 표현
  • 개체와 관계에 대한 정의만 명세한 것을 릴레이션 스키마(relation schema)라 한다. 
    • 개체 릴레이션: 학생, 교수, 과목
    • 관계 릴레이션: 지도, 수강, 강의

728x90