논리 데이터베이스의 설계 #

논리 데이터베이스 설계란 데이터베이스를 구축하는 과정 중 하나로 실제 데이터 구조를 정의하고 모델링하는 단계를 의미합니다.

논리 데이터베이스 설계가 끝나면 물리 설계 단계로 넘어갑니다.

논리 데이터베이스 설계는 3 가지로 나뉘어집니다.

  1. 개념 데이터베이스 설계
  2. 논리 데이터베이스 설계
    1. Relational model: 관계 모델
  3. 물리 데이터베이스 설계

그 중에서 논리와 물리 데이터베이스 설계에 대해 알아보겠습니다.

논리 데이터베이스 설계 #

논리 데이터베이스 설계는 데이터베이스를 구성하는 테이블, 속성, 관계등의 구조를 정의합니다. 데이터 모델을 사용해 데이터베이스의 논리적 구조를 설계합니다.

데이터 모델 #

논리 데이터베이스 설계시 사용하는 데이터 모델의 종류는 아래 4 가지로 나뉩니다.

  1. 관계 모델
    • 가장 많이 사용됨
    • 테이블의 형태로 구성되며, 각 테이블은 행(레코드)과 열(속성)로 이루어짐
    • 테이블간 관계는 기본 키, 외래 키를 사용해 정의됨
    • SQL을 사용해 데이터를 조작, 관리함
  2. 계층적 모델
    • 데이터를 트리 구조로 생성하여 계층적 모델을 이룸
    • 각 레벨의 데이터 항목은 상위 레벨의 단일 항목과 연결됨
    • 상위-하위 관계가 명확한 경우 적합합니다.
  3. 네트워크 모델
    • 복잡한 데이터 관계를 표현하기 위해 설계되었습니다.
    • 데이터 항목 간에 망의 구조를 이루며 한 데이터 항목이 여러 상위 항목과 연결 될 수 있습니다.
  4. 객체-관계형 모델
    • 관계 모델과 객체 지향 모델의 특성을 결합한 형태
    • 데이터는 테이블로 저장되어지며 테이블의 열은 전통적인 데이터 타입뿐만 아니라 객체, 배열, 다중값을 저장 할 수 있습니다.
    • 객체 지향 프로그래밍과 데이터베이스 설계의 통합을 지향함

물리 데이터베이스 설계 #

물리 데이터베이스 설계는 논리 데이터베이스 설계가 완료된 다음 설계입니다.

논리적으로 설계된 데이터 모델을 실제 시스템에서 작동 할 수 있도록 구현하는 것에 중점을 둠

물리 데이터베이스에서 중요한 점은 아래와 같습니다.

  1. 데이터 파일 구조: 데이터 파일은 실제로 데이터가 저장되는 방식을 결정합니다. 데이터의 저장 위치, 포맷, 액세스 방법등을 결정합니다. (인덱스를 태운다던지..)
  2. 인덱싱 전략: 데이터 검색을 위해 인덱스를 구축하여 조회 성능을 향상시킴
  3. 분할(partitioning): 큰 테이블이나 인덱스를 더 작게 나누어 관리와 성능을 향상시킴
  4. 클러스터링: 데이터가 저장되는 방식을 조정하여 관련 데이터가 가능한 가까운 위치에 저장되도록 함
  5. 캐싱 및 버퍼링: 자주 접근하는 데이터를 메모리에 캐싱해 성능을 향상시킴

정리 #

DB를 설계하는데 논리 -> 물리 순으로 설계를 진행

논리에선 테이블과 속성, 관계등의 구조를 정의하고 물리에선 이를 실제로 저장합니다.