데이터베이스 5) 데이터베이스 모델링

zh025700·2022년 12월 22일

데이터베이스

목록 보기
5/15

데이터베이스

5. 데이터베이스 모델링

데이터 모델링의 개념

데이터 모델링이란 현실에 존재하는 데이터를 컴퓨터 세계의 데이터베이스로 옮기는 변환 과정이다.
하지만 이는 어렵다.

왜??

  • 현실과 컴퓨터세계는 매우 다르다.
    • 현실의 실체 중 의미있는 데이터만 선별하기는 어렵다.

그래서 사람의 논리적 사고를 통해 중요한 데이터의 개념적 세계를 표현 -> 이를 컴퓨터에 저장 가능한 구조로 변환하는 과정으로 나눠 진행한다.

즉, 데이터 모델링은 현실세계, 개념 세계, 컴퓨터 세계 3단계로 구분하여 진행될 수 있다.

현실 ->(개념적 모델링)-> 개념 ->(논리적 데이터 모델링, 물리적 데이터 모델링)-> 컴퓨터

현실 세계(real world)

  • 사람이 감각을 통해 감지할 수 있는 실체로 되어 있는 세계

개념 세계(conceptual world)

  • 현실 세계의 실체를 개념으로 표현한 단계

컴퓨터 세계(computer world)

  • 개념세계를 컴퓨터가 처리할 수 있는 데이터로 변환한 단계

현실에서 중요 개체를 추출해 개념세계로 표현하는 과정을 개념적 데이터 모델링(conceptual data modeling)이라고 한다.

개념적 데이터 구조(conceptual data structure)

  • 개념적 데이터 모델링으로부터 얻은 결과
  • 개체 타입, 속성, 인스턴스로 표현

개체타입(entity type)

  • 현실 세계의 실체들을 추상화 시킨 것
  • ex) 학생, 교수, 과목

속성(attribute)

  • 개체 타입에 속하는 개체들의 공통적 속성
  • ex) 학번, 성명, 전화번호

인스턴스(instance)

  • 각 개체의 값
  • ex) 201520430, 김철스 01022242332

이러한 개념적 데이터 구조는 컴퓨터, 즉 DBMS가 이해하지 못하니 컴퓨터 세계의 환경에 맞게 변환시켜야한다.

어떻게? 논리적 데이터 모델링을 통해...

논리적 데이터 모델링(logical data modeling)

  • 개념적 데이터 구조로부터 사람의 논리적 개념을 이용해 논리적 데이터 구조(데이터 모델)로 표현
  • 다이어그램 -> 테이블로 변환은 개념적 데이터 구조를 논리적 데이터 구조로 변환한것

물리적 데이터 모델링(physical data modeling)

  • 논리적 데이터 구조를 컴퓨터가 접근할 수 있는 물리적 데이터 구조로 변환시키는 것
  • 컴퓨터가 인식할 수 있게 데이터베이스에 물리적으로 저장시키는 과정

물리적 데이터 구조가 얼마나 현실세계의 실체와 일치되는지에 따라 모델링의 품질이 좌우된다.

그래서 정리하자면,

현실세계(실체)-> (개념적 모델링을 통해) -> 개념세계(개념적 데이터 구조)->(논리적 데이터 모델링을 통해) -> 컴퓨터 세계(논리적데이터 구조) ->(물리적 데이터 모델링을 통해) -> 컴퓨터세계(물리적 데이터 구조,in db)

데이터 모델

데이터 베이스 설계(database design)

  • 현실 -> 개념적 데이터 구조 -> 논리적 데이터 구조 -> 물리적 데이터 구조 로 변환시키는 모든 과정

개념적 데이터 모델(conceptual data model)

  • 속성들로 기술된 개체타입과 이 개체들관의 관계를 이용해 현실세계를 표현하는 방법
  • ex) 다이어그램

논리적 데이터 모델(logical data model)

  • 데이터 필드로 기술된 레코드 타입과 이 레코드 타입간의 관계를 이용해 개념세계를 표현하는 방법
  • ex) 다이어그램을 테이블로 표현한..
  • 현재까지 제안된 논리적 데이터 모델들
    • 계층 데이터 모델
    • 네트워크 데이터 모델
    • 관계형 데이터 모델
      • 가장 많이 사용됨
    • 객체지향 데이터 모델
    • 객체 - 관계형 데이터 모델
      • 최근 제안되는 모델

그래서 모델은 뭐지???? 구조를 나타내는 방법이라고 생각하면 된다...

관계

데이터 베이스에서는 개체, 속성과 더불어 관계도 중요하다.

관계

  • 개체들 사이에 존재하는 연관성이나 연결
  • 두개 이상의 개체 타입들 간의 사상(mapping)을 뜻함.

관계에서 사상 원소 수(mapping cardinality)가 중요하다.
관계 유형은 사상 원소수에 따라 1대1, 1대다, 다대일,다대다로 구분 된다.

사상 원소 수

  • 1대1
    • 개체 타입간 1대1로만 연결될때
    • ex) 학생 - 학번
  • 1대 다
    • 개체 타입간 1대 다 연결이 될 때
    • ex) 대학 - 학생
  • 다대1
    • 개체 타입간 다대 1 연결이 될때
    • 1대다나 다대1이나..
  • 다대다
    • 개체 타입간 다 연결이 가능할 때
    • 프로그램이 복잡해지는 관계
    • ex) 책 - 저자

사상원소수에서 한 case만이라도 예외가 있으면 그 관계는 해당 case에 따라 유형이 결정된다.

E-R 모델

E-R모델(개체 관계 모델,entity relationship model)

  • 개념적 데이터 모델을 위해 가장 많이 사용되는 표현 방법

E-R 다이어그램

  • E-R 모델을 그래프 방식으로 표현한 것
  • 구성요소
    • 다이아몬드
      • 개체 타입간의 관계를 나타냄
    • 사각형
      • 개체 타입을 표현
    • 링크
      • 개체를 연결하는 선
    • 타원
      • 개체나 관계의 속성을 나타냄
  • 다이아몬드는 관계의 이름과 함께 연관된 개체 타입들을 링크로 연결
    • 사상 원소수에 따라 레이블을 붙임
    • 속성도 가질 수 있다.

강한 개체 타입

개체타입에는 강한, 약한 개체타입이 있다.

강한개체타입

  • 독자적으로 존재
  • 개체 타입 내에서 자신의 속성들을 사용하여 고유하게 개체들을 식별할 수 있는 타입

약한개체타입

  • 키를 형성하기에 충분한 속성들을 갖지 못한 개체 타입

여러가지 속성 유형

속성도 여러 유형으로 구분된다

단순 속성(simple attribute)

  • 더 이상 다른 속성으로 나눌 수 없는 속성

복합 속성(composite attribute)

  • 두개 이상의 속성들로 이루어진 속성

    • 즉, 쪼개질 수 있는 속성
  • ex) 주소 - 시 구 동

    • 근데 시 구 동 이란 속성을 안쓰면 주소는 단순속성이 될 수 있다.

다치 속성(multi-valued attribute)

  • 개체마다 여러개의 값을 가질 수 있는 속성
  • ex) 취미

유도된 속성(derived attribute)

  • 다른 속성의 값으로부터 얻어진 속성
  • ex) 평균, 합, 나이(주민번호로부터 얻어진)

약한 개체 타입

개체들이 속성에 의해 고유하게 식별되지 않는 경우가 있다.
이렇듯 자체적으로 키를 보유하지 못한 개체를 약한 개체 타입이라고 한다.

다른 개체의 속성을 개체와 결합하여 키로 설정하는 것이 해결방법이다.

약학 개체 타입에게 키 속성을 제공하는 개체 타입을 소유 개체 타입 or 식별 개체 타입이라고 한다.

관계에도 약한 관계강한 관계가 있다.

강한 관계

  • 강한 개체들 사이의 관계

약한 관계

  • 강한 개체와 약한 개체 사이의 관계

참여 제약 조건

전체참여와 부분 참여가 있다.

전체 참여

  • 어떤 관계에 객체 타입의 모든 객체들이 참여
  • 이중 실선으로 표시
  • 약한 개체 타입은 항상 관계에 전체 참여한다.

부분 참여

  • 어떤 관계의 객체 타입의 일부 객체들이 참여

논리적 데이터 모델

관계형 데이터 모델

  • 개체와 관계가 모두 테이블(릴레이션)로 표현된다
  • 개체 릴레이션
    • 개체를 나타낸다.
  • 관계 릴레이션
    • 관계를 나타낸다.
  • 개체, 관계에 대해 정의만 명세한 것을 릴레이션 스키마라고 한다.
profile
정리

0개의 댓글