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

jjinny_0609·2023년 2월 25일
0

데이터베이스

목록 보기
5/17
post-custom-banner

데이터 모델링의 개념

데이터 모델링은 데이터베이스 설계 과정에서 중요한 단계 중 하나로, 현실 세계에서 발생하는 데이터와 그들 간의 관계를 추상화하여 데이터베이스에 저장하기 위한 구조를 정의하는 과정입니다.

데이터 모델링은 크게 세 가지 유형으로 나눌 수 있습니다.

  • 개념적 데이터 모델링(Conceptual Data Modeling): 현실 세계에서 업무 프로세스가 어떻게 돌아가는지를 이해하고, 엔티티(Entity)와 엔티티 간의 관계를 파악하여 개념적 데이터 모델을 작성하는 과정입니다.
    /
    요구사항을 수집하고 분석한 결과를 토대로 업문의 핵심적인 개념을 구분하고 전체적인 뼈대를 만드는 과정
    개체(entitiy)를 추출하고 각 개체들 간의 관계를 정의하여 ER 다이어그램(ERD, Entity Relationship Diagram)을 만드는 과정까지를 말함.
  • 논리적 데이터 모델링(Logical Data Modeling): 개념적 데이터 모델링을 바탕으로 업무 프로세스와 데이터 요구사항을 분석하여 논리적 데이터 모델을 작성하는 과정입니다. 논리적 데이터 모델은 데이터베이스에 어떻게 저장될 것인지, 데이터베이스의 구조와 제약 조건 등을 정의합니다.
    /
    개념적 모델링에서 만든 ER 다이어그램을 사용하려는 DBMS에 맞게 사상(매핑 mapping)하여 실제 데이터베이스로 구현하기 위한 모델을 만드는 과정

    논리적 모델링 과정
    1. 개념적 모델링에서 추출하지 않았던 상세 속성들을 모두 추출함.
    2. 정규화 수행
    3. 데이터 표준화 수행

  • 물리적 데이터 모델링(Physical Data Modeling): 논리적 데이터 모델을 바탕으로 데이터베이스의 실제 구현 방법을 설계하는 과정입니다. 이 과정에서는 데이터베이스의 성능, 보안 등 물리적인 측면을 고려하여 데이터베이스를 구현합니다.
	■ 물리적 모델링 시
	응답시간을 최호화해야 한다.
	얼마나 많은 트랜잭션을 동시에 발생시킬 수 있는지 검토해야 한다.
	데이터가 저장될 공간을 효율적으로 배치해야 한다.

  • 데이터 모델링의 개념 그림

데이터 모델링은 데이터베이스의 구조를 잘 설계함으로써 데이터베이스의 성능과 유지보수를 개선할 수 있습니다. 또한, 데이터 모델링은 업무 프로세스와 데이터 요구사항을 분석하고 이를 추상화하여 데이터베이스에 적합한 형태로 표현하므로, 데이터베이스와 업무 프로세스 간의 원활한 연동을 도모할 수 있습니다.

데이터 모델링 과정

데이터 베이스 생명주기(database life cycle)

  1. 요구사항 수집 및 분석(Requirements) : 사용자들의 요구사항을 듣고 분석하여 데이터베이스 구축의 범위를 정하는 단계

  2. 설계(design) : 분석된 요구사항을 기초로 주요 개념과 업무 프로세스 등을 식별하고(개념적 설계), 사용하는 DBMS의 종류에 맞게 변환(논리적 설계)한 후, 데이터베이스 스키마 도출(물리적 설계)함

  3. 구현(구축_DBMS) : 설계 단계에서 생성한 스키마를 실제 DBMS에 적용하여 테이블 및 관련 객체(뷰, 인덱스 등)를 만듦.

  4. 운영(Operation) : 구현된 데이터베이스를 기반으로 소프트웨어를 구축하여 서비스를 제공함.

  5. 감시 및 개선(모니터링) : 데이터베이스 운영에 따른 시스템의 문제를 관찰하고 데이터베이스 자체의 문제점을 파악하여 개선함.

요구사항 수집 및 분석(Requirements)

  1. 실제 문서를 수집하고 분석함.
  2. 담당자와의 (인터뷰나 설문조사를 통해 요구사항을 직접 수렴함.
  3. 비슷한 업무를 처리하는 기존의 데이터베이스를 분석함.
  4. 각 업무와 연관된 모든 부분을 살펴봄.

ER(Entity Relationship) 모델

  • 개체와 개체 타입
  • 속성
  • 관계와 관계 타입
  • 약한 개체 타입과 식별자
  • (IE) 표기법

◆ ER(Entity Relationship) 모델

  • 세상의 사물을 개체(entity)와 개체 간의 관계(relationship)로 표현함.

◆ 개체

  • 독립적인 의미를 지니고 있는 유무형의 사람 또는 사물
  • 개체의 특성을 나타내는 속성(attribute)에 의해 식별됨. 개체끼리 서로 관계를 가짐.

◆ER 다이어그램
ER 모델은 개체와 개체 간의 관계를 표준화된 그림으로 나타낸것.

개체와 개체 타입

◆ 개체(entitiy)란?

  • 사람, 사물, 장소, 개념, 사건과 같이 유무형의 정보를 가지고 있는 독립적인 실체
  • 데이터베이스에서 주로 다루는 개체는 낱개로 구성된 것.
    낱개가 각각 데이터 값을 가지는 것. 데이터 값이 변하는 것 등이 있음.
  • 비슷한 속성의 개체 타입(entity type)을 구성하며, 개체 집합(entitiy set)으로 묶임.

◆ 개체 타입의 ER 다이어그램 표현

  • ER 다이어그램상 에서 개체 타입은 직사각형으로 나타냄.

◆ 개체 타입의 유형
- 강한 개체(strong entity) : 다른 개체의 도움 없이 독자적으로 존재 할 수 있는 개체
- 약한 개체(weak entity) : 독자적으로는 존재할 수 없고 반드시 상위 개체 타입을 가짐

속성(attribute)

◆ 속성의 ER 다이어그램 표현
속성은 기본적으로 타원으로 표현하며 개체 타입을 나타내는 직사각형과 실선으로 연결된다.
속성의 이름은 타원의 중앙에 표기한다.
속성이 개체를 유일하게 식별할 수 있는 키 일 경우 속성 이름에 밑줄을 긋는다.

속성의 유형(★★★★)

관계와 관계 타입

  • 관계(relationship) : 개체 사이의 연관성을 나타내는 개념.
  • 관계 타입(relationship type) : 개체 타입과 개체 타입 간의 연결 가능한 관계를 정의한 것이며, 관계 집합(relationship set)은 관계로 연결된 집합을 의미한다.

관계 타입의 ER 다이어그램 표현

◆ 차수에 따른 관계 타입의 유형

  • 차수에 따른 유형 관계 집합에 참가하는 개체 타입의 수를 관계 타입의 차수(degree) 라고 함.

관계 타입의 유형

  • 1진 관계(recursive relation ship) : 한 개의 개체가 자기 자신과 관계를 맺는 경우
  • 2진 관계(binary relationship) : 두 개의 개체가 관계를 맺는 경우
  • 3진 관계(ternary relationship) : 세개의 개체가 관계를 맺는 경우

◆ 관계 대응수(cardinality) : 두 개체 타입의 관계에 실제로 참여하는 개별 개체 수

관계 대응수에 따른 관계 타입의 유형

① 일대일(1:1) 관계
좌측 개체 타입에 포함된 개체가 우측 개체 타입에 포함된 개체와 일대일로 대응하는 관계

② 일대다(1:N), 다대일(N:1) 관계
실제 일상생활에서 가장 많이 볼수 있는 관계로, 한쪽 개체 타입의 개체 하나가 다른 쪽 개체 타입의 여러 개체와 관계를 맺음

③ 다대다(N:M) 관계(N:M) 관계
각 개체 타입의 개체들이 서로 임의의 개수의 개체들과 서로 복합적인 관계를 맺고 있는 관계를 말함.

관계 대응수의 최솟값과 최댓값

  • 관계 대응수 1:1, 1:N, M:N에 1, N, M은 각 개체가 관계에 참여하는 최댓값을 의미함.
  • 관계에 참여하는 개체의 최솟값을 표시하지 않는다는 단점을 보완하기 위해 다이어그램에서는 대응수 외에 최솟값과 최댓값을 관계실선 위에 (최솟값, 최댓값)으로 표기함.

ISA 관계

  • 상위 개체 타입의 특성에 따라 하위 개체 타입이 결정되는 형태

참여 제약 조건

  • 개체 집합 내 모든 개체가 관계에 참여하는지 유무에 따라 전체 참여와 부분 참여로 구분 가능.
  • 전체 참여는 개체집합의 모든 개체가, 부분 참여는 일부만 참여함
  • 전체 참여를 (최솟값, 최댓값)으로 표현할 경우 최솟값이 1이상으로 모두 참여한다는 뜻이고, 부분 참여는 최솟값이 0 이상이다.

역할

  • 개체 타입 간의 관계를 표현할 때 각 개체들은 고유한 역할(role)을 담당함.

순환적 관계(recursive relationship)

  • 하나의 개체 타입이 동일한 개체 타입(자기 자신)과 순환적으로 관계를 가지는 형태

약한 개체 타입과 식별자

  • 약한 개체(weak entitiy) 타입 : 상위 개체 타입이 결정되지 않으면 개별 개체를 식별할 수 없는 종속적인 개체 타입.
  • 약한 개체 타입은 독립적인 키로는 존재할 수 없지만 상위 개체 타입의 키와 결합하여 약한 개체 타입의 개별 개체를 고유하게 식별하는 속성을 식별자(Discriminator)혹은 부분키(partial key)라고 함.

IE 표기법

◆ ER 다이어그램을 더 축약하여 쉽게 표현하던 Erwin) 등 소프트웨어에서 사용함
◆ IE 표기법에서 개체 타입과 속성은 직사각형으로 표현함

◆ IE 표기법에서 관계는 실선 혹은 점선으로 표기함

◆ IE 표기법에서 관계(강한관계, 비식별자 관계)는 점선으로 표기함

ER 모델을 관계 데이터 모델로 사상

  • 개체 타입의 사상
  • 관계 타입의 사상
  • 다중 값 속성의 사상
    완성된 ER 모델은 실제 데이터베이스로 구축하기 위해 논리적 모델링 단계를 거치는데 이 단계에서 사상(mapping)이 이루어짐

개체 타입의 사상

◆ [1단계] 강한(정규) 개체 타입, 정규 개체 타입, E의 경우 대응하는 릴레이션 R을 생성함
◆ [2단계] 약한 개체 타입 역할 개체 타입에서 생성된 릴레이션은 자신의 키와 함께 강한 개체 타입의 키를 외래키로 사상하여 자신의 기본키를 구성함.

관계 타입의 사상

[방법1] 오른쪽 개체 타입 E2 를 기준으로 관계 R을 표현한다.
E1(KA1, A2)
E2(KA2, A4, KA1) KA1 : 외래키

[방법2] 왼쪽 개체 타입 E1을 기준으로 관계 R을 표현한다.
E1(KA1, A2, KA2)
E2(KA2, A4)

[방법3] 단일 릴레이션 ER로 모두 통합하여 관계 R을 표현한다.
R(KA1,KA2)

[방법4] 개체 타입 E1, E2와 관계 타입을 R을 모두 독립된 릴레이션으로 표현한다.
E1(KA1, A2)
R(KA1, KA2)
E2(KA2, A4)

[3단계] 이진 1:1 관계 타입
이진 1:1 관계 타입의 경우 [방법1]~[방법4]까지 모든 유형으로 사상 가능.
개체가 가진 정보 유형에 따라 판단.

[4단계] 이진 1:N 관계 타입
이진 1:N 관계 타입의 경우 N의 위치에 따라 [방법1] 또는 [방법2]의 유형으로 사상됨.

[5단계] 이진 M:N 관계 타입
이진 M:N 관계 타입은 [방법4]의 유형으로 사상됨.

[6단계] N진 관계 타입
ER 모델의 차수가 3이상인 다진 관계 타입의 경우 [방법4]의 유형으로 사상된다.

[7단계]
속성의 개수르 ㄹ알 수 없는 경우[방법1]을, 속성의 개수가 제한적으로 정해지는 경우 [방법2]를 사용함.

Modeling 연습문제

1 교수는 교수번호, 이름, 전공 학과를 가진다.
2 학생은 학번, 이름, 주소, 학년을 가지며, 과목은 과목번호, 과목이름, 학점을 가진다.
3 한 교수는 여러 명의 학생을 지도하며, 한 학생은 한 명의 교수로부터 지도를 받는다.
4 한 교수는 여러 개의 과목을 강의하며, 각 강의에 대해서는 시간과 장소를 가진다.
5 한 학생은 여러 개의 과목을 수강할 수 있으며, 한 과목에는 여러 명의 학생이 수강한다.
그리고 수강할 때에는 성적을 가진다.

◆ Erwin : 데이터 모델링을 하기 위한 프로그램. IE 표기법을 지원.

profile
뉴비 개발자 입니다. velog 주소 : https://velog.io/@jjinny_0609 Github 주소 :
post-custom-banner

0개의 댓글