논리 데이터베이스의 설계 #
논리 데이터베이스 설계란 데이터베이스를 구축하는 과정 중 하나로 실제 데이터 구조를 정의하고 모델링하는 단계를 의미합니다.
논리 데이터베이스 설계가 끝나면 물리 설계 단계로 넘어갑니다.
논리 데이터베이스 설계는 3 가지로 나뉘어집니다.
- 개념 데이터베이스 설계
- 논리 데이터베이스 설계
- 물리 데이터베이스 설계
그 중에서 논리와 물리 데이터베이스 설계에 대해 알아보겠습니다.
논리 데이터베이스 설계 #
논리 데이터베이스 설계는 데이터베이스를 구성하는 테이블, 속성, 관계등의 구조를 정의합니다. 데이터 모델을 사용해 데이터베이스의 논리적 구조를 설계합니다.
데이터 모델 #
논리 데이터베이스 설계시 사용하는 데이터 모델의 종류는 아래 4 가지로 나뉩니다.
- 관계 모델
- 가장 많이 사용됨
- 테이블의 형태로 구성되며, 각 테이블은 행(레코드)과 열(속성)로 이루어짐
- 테이블간 관계는 기본 키, 외래 키를 사용해 정의됨
- SQL을 사용해 데이터를 조작, 관리함
- 계층적 모델
- 데이터를 트리 구조로 생성하여 계층적 모델을 이룸
- 각 레벨의 데이터 항목은 상위 레벨의 단일 항목과 연결됨
- 상위-하위 관계가 명확한 경우 적합합니다.
- 네트워크 모델
- 복잡한 데이터 관계를 표현하기 위해 설계되었습니다.
- 데이터 항목 간에 망의 구조를 이루며 한 데이터 항목이 여러 상위 항목과 연결 될 수 있습니다.
- 객체-관계형 모델
- 관계 모델과 객체 지향 모델의 특성을 결합한 형태
- 데이터는 테이블로 저장되어지며 테이블의 열은 전통적인 데이터 타입뿐만 아니라 객체, 배열, 다중값을 저장 할 수 있습니다.
- 객체 지향 프로그래밍과 데이터베이스 설계의 통합을 지향함
물리 데이터베이스 설계 #
물리 데이터베이스 설계는 논리 데이터베이스 설계가 완료된 다음 설계입니다.
논리적으로 설계된 데이터 모델을 실제 시스템에서 작동 할 수 있도록 구현하는 것에 중점을 둠
물리 데이터베이스에서 중요한 점은 아래와 같습니다.
- 데이터 파일 구조: 데이터 파일은 실제로 데이터가 저장되는 방식을 결정합니다. 데이터의 저장 위치, 포맷, 액세스 방법등을 결정합니다. (인덱스를 태운다던지..)
- 인덱싱 전략: 데이터 검색을 위해 인덱스를 구축하여 조회 성능을 향상시킴
- 분할(partitioning): 큰 테이블이나 인덱스를 더 작게 나누어 관리와 성능을 향상시킴
- 클러스터링: 데이터가 저장되는 방식을 조정하여 관련 데이터가 가능한 가까운 위치에 저장되도록 함
- 캐싱 및 버퍼링: 자주 접근하는 데이터를 메모리에 캐싱해 성능을 향상시킴
정리 #
DB를 설계하는데 논리 -> 물리 순으로 설계를 진행
논리에선 테이블과 속성, 관계등의 구조를 정의하고 물리에선 이를 실제로 저장합니다.