데이터모델링(data modeling): 현실세계의 데이터를 컴퓨터가 이해할 수 있는 데이터베이스 구조로 변환하는 과정

 

데이터베이스 생명주기 

  • 요구사항 수집 및 분석: 사용자와 조직의 요구사항을 수집하고 분석하여 데이터베이스 구축의 범위와 목표를 명확히 결정하는 단계. 이 과정에서 현재와 미래의 운영 목표, 제약 조건, 정적∙동적 요구를 파악함
  • 설계: 분석된 요구사항을 바탕으로 데이터베이스 구조를 설계
    • 개념적 설계: 업무 프로세스와 주요 개념 도출
    • 논리적 설계: 사용될 DBBMS에 맞게 논리적 구조로 변환
    • 물리적 설계: 실제 데이터베이스 스키마와 저장 구조를 결정
  • 구현: 설계에서 도출된 스키마를 실제 DBMS에 적용하여 테이블, 뷰, 인덱스 등 데이터베이스 객체를 생성함
  • 운영: 구현된 데이터베이스를 기반으로 소프트웨어를 구축하여 서비스를 제공함
  • 감시 및 개선: 데이터베이스 운영 중 발생하는 문제나 비효율성을 감시하고, 필요에 따라 데이터베이스 구조나 운영 방식을 개선함

 

요구사항 수집 및 분석

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

개념적 모델링: 요구사항을 수집하고 분석한 결과를 토대로 업무의 핵심적인 개념을 구분하고 전체적인 뼈대를 만드는 과정

  • 개체(entity)를 추출하고 각 개체들 간의 관계를 정의하여 ER 다이어그램을 만드는 과정

논리적 모델링: 개념적 모델링에서 만든 ER 다이어그램을 사용하려는 DBMS에 맞게 사상(매핑,mapping)하여 실제 데이터베이스로 구현하기 위한 모델을 만드는 과정

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

물리적 모델링: 작성된 논리적 모델을 실제 컴퓨터 저장 장치에 저장하기 위한 물리적 구조를 정의하고 구현하는 과정

  • DBMS 특성에 맞게 저장 구조를 정의해야 데이터베이스가 최적의 성능을 낼 수 있음
  • 물리적 모델링 시 트랜잭션, 저장 공간 설계 측면에서 고려할 사항
    1. 응답시간을 최소화해야 함
    2. 얼마나 많은 트랜잭션을 동시에 발생시킬 수 있는지 검토해야 함
    3. 데이터가 저장될 공간을 효율적으로 배치해야 함

ER모델: 세상의 사물을 개체(entity)와 개체 간 관계(relationship)로 표현함

 

핵심구성요소

  • 개체(entity): 데이터베이스에 저장하고 싶은 '객체'나 '사물'을 의미, ER 다이어그램에서는 사각형으로 표현함
  • 속성(attribute): 엔티티가 가지는 특성이나 성질, 타원형으로 표현하고 기본키가 되는 속성은 밑줄을 그어 표시함
  • 관계(relationship): 엔티티들 사이의 연관성을 나타냄, 마름모꼴로 표현함

개체(entity): 사람, 사물, 장소, 개념, 사건과 같이 유무형의 정보를 가지고 있는 독립적인 실체

  • 데이터베이스에서 개체는 낱개로 구성된 것, 낱개가 각각 데이터 값을 가지는 것, 데이터 값이 변하는 것 등이 있음
  • 비슷한 속성의 개체 타입(entity type)을 구성하며, 개체 집합(entity set)으로 묶임
  • 특징
    • 유일한 식별자에 의해 식별이 가능함
    • 꾸준한 관리를 필요로 하는 정보임
    • 두 개 이상이 영속적으로 존재함(장기 보존,관리)
    • 업무 프로세스에 이용됨
    • 반드시 자신의 특징을 나타내는 속성을 포함함
    • 다른 개체와 최소 한 개 이상의 관계를 맺고 있음
  • 개체 타입의 유형
    • 강한 개체: 다른 개체의 도움 없이 독자적으로 존재할 수 있는 개체
    • 약한 개체: 독자적으로는 존재할 수 없고 반드시 상위 개체 타입을 가짐

 

속성(attribute): 개체가 가진 성질

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

  • 속성의 유형
    • 단순 속성과 복합 속성
      • 단순 속성: 더 이상 분해가 불가능한 속성
      • 복합 속성: 독립적인 의미를 가진 속성으로 분해할 수 있는 속성
    • 단일값 속성과 다중값 속성
      • 단일값 속성: 하나의 값만을 가지는 속성
      • 다중값 속성: 여러 개의 값을 가지는 속성
    • 저장 속성과 유도 속성
      • 저장 속성: 다른 속성의 영향 없이 단독으로 저장되는 속성
      • 유도 속성: 다른 저장 속성으로부터 유도된(계산되어진) 속성

 

관계(relationship): 개체 사이의 연관성을 나타내는 개념

  • 관계타입: 개체 타입과 개체 타입 간의 연결 가능한 관계를 정의한 것
  • 관계집합: 관계로 연결된 집합

 

  • 차수에 따른 유형
    • 1진 관계: 한 개의 개체가 자기 자신과 관계를 맺음
    • 2진 관계: 두 개의 개체가 관계를 맺음
    • 3진 관계: 세 개의 개체가 관계를 맺음

  • 관계 대응수(candinaliity): 두 개체 타입의 관계에 실제로 참여하는 개별 개체 수
    • 일대일 관계: 하나의 개체가 하나의 개체에 대응
    • 일대다 관계: 하나의 개체가 여러 개체에 대응
    • 다대일 관계: 여러 개체가 하나의 개체에 대응
    • 다대다 관계: 여러 개체가 여러 개체에 대응

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

 

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

 

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

 

관계 대응수의 최솟값과 최댓값: 각 개체가 관계에 참여하는 최촛값과 최댓값을 의미

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

 

ISA관계: 데이터베이스 ER모델에서 상위 개체(슈퍼클래스)와 하위 개체(서브클래스)간의 계층적 포함 관계를 나타내는 개념

ISA를 기준으로 위가 슈퍼글래스, 아래가 서브클래스

참여 제약 조건

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

 

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

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

약한 개체 타입과 식별자

  • 약한 개체(weak entity) 타입: 상위 개체 타입이 결정되지 않으면 개별 개체를 식별할 수 없는 종속된 개체 타입
  • 식별자(discriminator)또는 부분키(partial key): 약한 개체 내부에서 같은 소유 개체에 속한 여러 약한 개체를 서로 구분할 수 있게 해주는 속성

 

IE 표기법: ER 다이어그램을 더 축양하여 쉽게 표현한 표기법(Erwin등 소프트웨어에서 사용함)

 

'2025-1 > 데이터베이스' 카테고리의 다른 글

11. 스토리지 엔진  (0) 2025.06.15
09. 이상현상, 함수 종속성, 정규화  (0) 2025.06.15
08. 트랜잭션  (0) 2025.06.14
07. 프로시저, 트리거  (0) 2025.06.14
06. 사용자 정의 함수, VIEW(뷰)  (0) 2025.06.12

+ Recent posts