DBMS/개념

10_ 설계의 3단계

seungwon-1 2025. 9. 27. 19:08

데이터베이스 설계는 단순히 테이블을 만드는 작업이 아니라, 사용자의 요구를 분석하고, 데이터 구조를 체계화하며, 성능까지 고려하는 과정이다.

이 설계는 세 가지 단계로 나누어 진행된다:

  1. 개념적 설계
  2. 논리적 설계
  3. 물리적 설계

1. 개념적 설계 (Conceptual Design)

개념적 설계는 사용자 요구사항을 기반으로, 어떤 데이터를 관리할지 추상적으로 모델링하는 단계이다.
즉, 현실 세계의 개체(Entity)와 관계(Relationship)를 식별하여 ER 다이어그램 형태로 표현한다.

목표

  • 주요 개체(Entity) 식별
  • 개체 간의 관계(Relationship) 정의
  • ERD(Entity-Relationship Diagram) 작성

키(Key) 개념

  • 기본키(Primary Key, PK)
    각 레코드를 유일하게 식별하는 키
    NULL 불가, 중복 불가
    예: 학생 테이블의 학번
  • 외래키(Foreign Key, FK)
    다른 테이블의 기본키를 참조하는 키
    테이블 간 참조 무결성 유지
    예: 주문 테이블의 고객ID (→ 고객 테이블의 PK 참조)

예시: 개념적 모델링

(1) 학교 관리 시스템

  • 학생(학번PK, 이름, 학년, 전공)
  • 과목(과목코드PK, 과목명, 담당교수, 학점)
  • 수강(학번FK, 과목코드FK)
    → 학생과 과목: 다대다 관계 (중간 테이블 수강 필요)

(2) 온라인 쇼핑몰

  • 고객(고객IDPK, 이름, 이메일, 주소)
  • 주문(주문번호PK, 주문일자, 총액, 고객IDFK)
    → 고객 1명 : 여러 주문 (일대다 관계)

(3) 도서관 관리 시스템

  • 도서(ISBNPK, 제목, 저자, 출판사, 출판년도)
  • 대출(대출번호PK, ISBNFK, 회원IDFK, 대출일, 반납예정일)
    → 도서 1권 : 여러 대출 가능 (일대다)

(4) 병원 관리 시스템 (복잡한 구조)

  • 환자, 의사, 진료, 예약, 처방전, 약품 등 여러 개체
    → 다대다/일대다 복합 관계
    → 예: 진료 1건당 여러 약품 처방 가능 → 처방약품 중간 테이블 필요

핵심 포인트

  • 사용자의 요구를 반영한 현실 세계 모델링
  • 비즈니스 규칙과 데이터 관계를 명확히 정의
  • 결과물: ER 다이어그램

2. 논리적 설계 (Logical Design)

논리적 설계는 개념적 설계의 ERD를 기반으로
관계형 데이터베이스(RDBMS)가 이해할 수 있는 테이블 구조로 변환하는 단계이다.
즉, **스키마(Schema)**를 정의하고, **정규화(Normalization)**를 적용한다.

목표

  • ER 모델 → 릴레이션(테이블) 변환
  • 정규화를 통한 중복 제거
  • 무결성 제약 조건 설정

무결성 제약 조건

  1. 개체 무결성: 기본키는 NULL/중복 불가
  2. 참조 무결성: 외래키는 참조 대상 존재해야 함
  3. 도메인 무결성: 속성 값은 정의된 타입/범위 준수
  4. 사용자 정의 무결성: 비즈니스 규칙 기반 제약

정규화 (Normalization)

정규화는 데이터 구조를 체계화하여 **이상 현상(Anomaly)**을 방지하고
데이터의 일관성과 무결성을 유지하는 과정이다.

이상 현상

  • 삽입 이상: 새로운 데이터 삽입 시 불필요한 데이터 필요
  • 수정 이상: 한 데이터 수정 시 여러 곳 수정 필요
  • 삭제 이상: 불필요하게 다른 정보까지 삭제됨

정규화 단계

단계조건설명
1NF 원자성 컬럼은 더 이상 나눌 수 없는 값으로 구성
2NF 부분 종속 제거 기본키 일부에만 종속된 속성 제거
3NF 이행 종속 제거 비키 간 종속성 제거
BCNF 결정자 → 후보키 모든 결정자는 후보키여야 함

용어 정리

  • 결정자(Determinant): 다른 속성을 결정하는 속성
  • 후보키(Candidate Key): 유일성과 최소성을 만족하는 키

예시

  • 주문 테이블: 주문번호(PK), 주문일자, 고객ID(FK)
  • 고객 테이블: 고객ID(PK), 이름, 주소
    → 정규화를 통해 중복 최소화, 무결성 유지

3. 물리적 설계 (Physical Design)

논리적 설계를 기반으로 실제 DBMS에 데이터를 효율적으로 저장할 수 있도록 구체화하는 단계이다.
성능 향상, 저장 효율성, 접근 속도 등을 고려한다.

목표

  • 물리적 저장 구조 설계
  • 성능 최적화(인덱스, 파티셔닝, 클러스터링 등)

주요 요소

  • 인덱스(Index)
    자주 조회되는 컬럼에 인덱스 설정
    검색 속도 향상
  • 파티셔닝(Partitioning)
    대용량 테이블을 분할 저장하여 관리 효율성 증대
  • 스토리지 구성
    RAID, 압축, 버퍼 관리 등 고려
  • 뷰(View), 클러스터(Cluster) 활용 가능

예시

  • 주문 테이블의 주문일자에 인덱스 생성
  • 매출 테이블을 월별로 파티셔닝하여 관리
  • 자주 조회되는 데이터 캐싱

정리

단계핵심 내용결과물
개념적 설계 개체·관계 식별, ER 다이어그램 작성 ERD
논리적 설계 테이블 스키마 설계, 정규화, 제약조건 설정 관계형 모델
물리적 설계 인덱스·파티셔닝 등 성능 최적화 실제 저장 구조

 

'DBMS > 개념' 카테고리의 다른 글

12_ ALTER문  (0) 2025.10.01
11_ 제약 조건  (0) 2025.09.29
09_ 날짜와 시간 함수  (0) 2025.09.25
08_ DBMS 형변환  (0) 2025.09.23
07_ DML의 심화  (0) 2025.09.21