포스트

설계의 중요성

설계의 중요성

DB 설계의 첫걸음

  • DB 설계는 집을 짓기 전 설계도를 그리는 것과 같이 시스템의 뼈대를 만드는 중요한 과정
  • 체계적인 설계 없이 DB를 구축하면 처음에는 빠를 수 있으나, 서비스가 복잡해질수록 데이터 중복, 성능 저하, 유지보수 어려움 등의 기술 부채가 쌓임
  • 좋은 DB를 만들기 위해서는 개념적, 논리적, 물리적 설계의 3단계 가정을 거챠야 함
  • 이 과정은 데이터의 중복을 제거하고 무결성을 높이는 정규화를 포함

잘못된 설계가 부르는 재앙

  • 데이터 무결성 훼손
    • 수정 이상: 하나의 정보를 바꾸기 위해 여러 데이터를 수정해야 하고, 일부가 누락되면 데이터 불일치가 발생
    • 삽입 이상: 불필요한 정보 없이는 원하는 데이터를 저장할 수 없는 모순이 발생
    • 삭제 이상: 특정 장버를 삭제하먄 유지되어야 할 다른 중요 정보까지 함께 사라짐
  • 성능 저하: 불필요한 데이터까지 한 테이블에 저장하여 테이블이 비대해지면 조회 속도가 크게 느려짐
  • 유지보수 비용 증가: 간단한 요구 사ㅏㅎㅇ을 추가할 때도 거대한 테이블 구조를 변경해야 하는 위험이 따르며, DB 문제를 해결하기위해 애플리케이션 코드가 복잡해 짐

설계의 3단계 - 개념, 논리, 물리

  • 1단계: 개념적 설계(Conceptual Design)
    • 비즈니스 요구 사항을 이해하고 핵심 데이터(엔티티)와 그들 간의 관계를 파악하는 단계
    • 주요 산츨물: ERD
  • 2단계: 논리적 설계(Logical Design)
    • 개념 모델을 관계형 DB 이론에 맞게 테이블 구조로 구체화 하는 단계
    • 데이터 중복을 제거하는 정규하 과정을 거치고 기본 키(PK), 외래 키(FK) 등을 정의
    • 특정 DB에 종속되지 않음
  • 3단계: 물리적 설계(Physical Design)
    • 논리 모델을 실제 사용할 특정 DB에 최적화하여 구현하는 단계
    • 컬럼별 데이터 타입, 인덱스 등을 결정하고 CREATE TABLE 스크립트를 작성

용어 정리

구분개념 모델논리 모델물리 모델
저장 구조엔티티(Entity)릴레이션(Relation)테이블(Table)
세부 항목속성(Attribute)속성(Attribute)열, 컬럼(Column)
데이터 단위인스턴스(Instance)튜플(Tuple)행(Row)

참고

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.