Database ‐ 설계의 중요성 - dnwls16071/Backend_Summary GitHub Wiki

📚 설계의 중요성 정리

나쁜 설계의 3대 문제점

  • 데이터 무결성이란 데이터가 항상 정확하고 일관된 상태를 유지하는 것을 의미한다. 나쁜 설계는 이 무결성을 쉽게 깨뜨린다.
  • 데이터 중복 - 대량의 데이터가 불필요하게 중복되어 저장 공간이 낭비된다. 이는 결국 이상 현상을 유발한다.

1단계: 개념적 설계(Conceptual Design)

  • 비즈니스 아이디어나 요구사항을 이해하고 현실 세계 정보들을 컴퓨터 언어로 번역하기 위한 밑그림을 그리는 단계
  • 우리가 다루어야 할 데이터가 무엇이며 그 데이터들은 서로 어떤 관계를 맺고 있는가?

2단계: 논리적 설계(Logical Design)

  • 개념적 설계에서 만든 밑그림을 우리가 사용하려는 데이터베이스 기술인 관계형 데이터베이스의 원리에 맞게 구체적인 구조로 다듬는 단계
  • 개념 모델 각 요소들을 어떤 테이블 구조로 표현할 것인지? 데이터 중복을 막고 관계를 명확히 하기 위해 어떤 규칙을 적용해여 하는가?

3단계: 물리적 설계(Physical Design)

  • 논리적 설계에서 만든 테이블 스키마를 실제 우리가 사용할 특정 RDBMS의 특성에 맞게 최적화하여 구현하는 마지막 단계
  • 각 컬럼에 어떤 데이터 타입을 할당해야 효율적인지? 어떤 컬럼에 인덱스를 걸어야 조회 속도가 개선될까?