설계의 중요성
설계의 중요성
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 라이센스를 따릅니다.