데이터베이스 모델링

김규원·2025년 12월 9일

DB

목록 보기
13/22
post-thumbnail

데이터의 구분

  • 데이터가 속한 세계와 데이터의 특징
  • 같은 대상을 관찰하더라도, 시각이나 그 대상이 속하는 세계에 따라 요소들이 달라질 수 있음

데이터 모델링 개요

  • 현실 세계의 데이터를 데이터베이스(DB)에 표현하기 위한 모델을 개발하는 과정을 나타냅니다.
  • 즉, 개념적 구조와 논리적 구조를 통해 실제 디스크에 저장 가능한 물리적 구조로 변환하는 일련의 데이터베이스 설계 과정을 의미합니다.

개념적 모델링

  • 이는 현실 세계에서 수집한 데이터를 추상화하여 개념 세계의 추상적인 관점으로 표현하는 과정입니다.
  • 이 과정을 개념적 스키마 설계(conceptual schema design) 또는 정보 모델링(information modeling)이라고도 합니다.

개념적 모델링의 방법

  • 일반적으로 '개체 타입'으로 구성된 속성과 개체 타입 간의 '관계'라는 추상적 개념을 바탕으로 모델링을 진행
  • 보통 개체-관계 모델(Entity-Relationship model, ER model)을 이용하며, 모델링 결과는 ER 다이어그램(diagram)으로 시각화
  • 추상화(Abstraction)
    : 모든 내용을 자세히 설명하지 않고, 필수적인 부분만을 나타내는 것.

논리적 모델링

  • 이는 개념적 모델링의 산출물인 개념적 구조를 데이터베이스 관리 시스템(DBMS)이 이해할 수 있는 논리적 형태, 즉 데이터 모델로 변환하는 과정
  • 변환 절차
    • 이 과정은 논리적 스키마 모델링(logical schema modeling)이라고도 불림
  • 논리적 모델링의 방법
    • ER 다이어그램으로 표현된 개념적 구조를 DBMS가 지원하는 데이터 모델로 변환하는 방식
  • 데이터 모델의 종류에 따라 변환 방법이 다름
  • 데이터 모델의 유형에는 관계형, 네트워크형, 계층형 데이터 모델 등

물리적 모델링

  • 데이터가 디스크에 저장될 수 있도록 논리적 구조를 물리적 구조로 변환하는 과정
  • 물리적 스키마 모델링(physical schema modeling)
  • 또는 데이터 구조화(data structuring)라고도 부름
  • 저장 레코드 형식(각 필드의 이름, 데이터 유형, 크기 등)을 정의하고 인덱스(index)를 설계

데이터모델 개요

데이터 모델(data model) 정의

  • 현실 세계의 복잡한 데이터를 이해하기 쉽게 설명하는 개념적도구
  • 다시 말해, 데이터베이스에 저장할 데이터를 정의하고, 데이터 간의 관계를 설정하며, 데이터의 의미와 관련된 제약조건을 나타내는 도구

데이터 모델의 종류

1. 개념적 데이터 모델

  • ‘개체’와 ‘관계’라는 추상적 개념으로 구성된 데이터 모델입니다.
  • 대표적인 모델: ER(Entity-Relationship: 개체-관계) 모델입니다.

2. 논리적 데이터 모델

  • ‘레코드’와 ‘관계’라는 논리적 개념으로 구성된 데이터 모델입니다.
  • 대표적인 모델: 관계형 데이터 모델입니다.

데이터 모델(Data Model, DM)의 구성

1. 구조 (Structure)

데이터가 어떤 형태로 저장되고, 어떤 관계를 가지는지를 정의하는 요소

  • 예: 개체(Entity), 속성(Attribute), 관계(Relationship)
  • ER(Entity-Relationship) 다이어그램에서 개체와 개체 간의 관계를 표현하는 것과 관련

2. 연산 (Operation)

데이터에 대해 수행할 수 있는 조작 및 연산을 정의

  • 예: 삽입(INSERT), 삭제(DELETE), 갱신(UPDATE), 검색(SELECT)
  • 관계형 데이터 모델에서는 SQL의 기본 연산이 이에 해당

3. 제약 조건 (Constraint)

데이터의 일관성과 무결성을 유지하기 위해 설정

  • 예: 기본키(Primary Key), 외래키(Foreign Key), 유일성(Unique), 도메인 제약(Domain Constraints)
-- 구조적 제약: 데이터 타입, 길이 등
CREATE TABLE 도서 (
ISBN CHAR(13),                       → 구조적 제약: 13자리 고정 제목 VARCHAR(100),
출판년도 NUMBER(4),               → 구조적 제약: 숫자 4자리 가격 NUMBER(6),
...
-- 의미상 제약: 가격은 0 이상이어야 함 CONSTRAINT 가격_check CHECK (가격 >= 0)
);

개념적 데이터 모델

  • 개념적 모델링을 통해 생성된 추상적인 데이터 구조로,
  • 속성으로 구성된 '개체 타입'과 이들 간의 '관계'라는 다소 추상적인 개념을 바탕으로 표현된 데이터 모델
  • 이는 데이터베이스 설계자가 이해할 수 있도록 돕기 위한 것이며, DBMS는 이러한 개념적 데이터 모델을 인식하지 못함

논리적 데이터 모델

  • 논리적 모델링을 통해 형성되는 데이터베이스 내부의 데이터 구조
  • 데이터 필드(field)로 구성된 '레코드 타입'과 이들 간의 '관계'라는 구체적인 개념으로 나타나는 데이터 모델
  • 데이터베이스 관리 시스템(DBMS)은 하나의 논리적 데이터 모델을 기반으로 설계되므로, 논리적 데이터 모델에 대한 이해가 필수적

논리적 데이터 모델의 종류

  • 관계 데이터 모델(relational data model)
  • 계층 데이터 모델(hierarchical data model) - 네트워크 데이터 모델(network data model)
  • 객체 지향 데이터 모델(object-oriented data model)
  • 객체-관계 데이터 모델(object-relational data model)

데이터베이스 구축 6단계

  • ISO/IEC 24744 및 여러 데이터베이스 설계 방법론에서도 유사한 단계를 제시

트랜잭션(transaction) 정의

  • 특정한 논리적 기능을 수행하기 위한 작업의 단위로, 데이터의 일관된 변환을 위해 하나 이상의 데이터 조작 명령으로 구성
  • 즉, 데이터베이스의 무결성을 보장하면서 요청된 작업을 수행하기 위한 기본적인 작업 단위를 의미

예) 은행 계좌 이체(A통장에서 B통장으로의 이체) 트랜잭션
1. A 통장의 잔액을 이체 금액만큼 감소시킴
2. B 통장의 잔액을 이체 금액만큼 증가시킴
-> 이 두 데이터 변경 작업이 모두 성공해야만 데이터베이스의 값이 실제로 변경됩니다.

DB의 라이프사이클

DB 의 라이프 사이클은1회성이 아닌 지속적으로 움직이는 살아있는 구조

DB 설계 방법

데이터 중심 (data-driven) DB 설계 (데이터 요구 분석 명세서)

  • 데이터베이스의 내용과 구조에 중점을 두고 설계하는 방식

처리 중심 (processing-driven) DB 설계 (트랜잭션 요구 분석 명세서)

  • 데이터의 처리 및 응용에 중점을 두고 설계하는 방식

두 방법은 상호 보완적이므로 함께 진행하는 것이 이상적

profile
행복한 하루 보내세요

0개의 댓글