맨위로가기

데이터베이스 분할

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

데이터베이스 분할은 대규모 데이터베이스를 관리하기 위한 기술로, 데이터베이스 관리 시스템에서 제공하는 다양한 기준(분할 기법)을 사용하여 데이터를 분할하는 것을 의미한다. 분할은 분할 키를 사용하며, 범위 분할, 목록 분할, 해시 분할, 합성 분할, 라운드 로빈 분할 등 여러 기법이 존재한다. 분할 방법으로는 별도의 소규모 데이터베이스를 구축하거나 단일 테이블만 분할할 수 있으며, 수평 분할과 수직 분할 방식이 있다. 수평 분할은 서로 다른 행을 서로 다른 테이블에 넣는 방식이고, 수직 분할은 열이 적은 테이블을 만들고 추가 테이블을 사용하여 나머지 열을 저장하는 방식이다.

더 읽어볼만한 페이지

  • 데이터 모델링 - 빌딩 정보 모델링
    빌딩 정보 모델링(BIM)은 건축물의 전 생애주기 동안 발생하는 정보를 디지털 모델로 통합 관리하는 프로세스이다.
  • 데이터 모델링 - 저장 프로시저
    저장 프로시저는 데이터베이스 관리 시스템에서 SQL 문들을 미리 컴파일하여 저장하고, 모듈화, 보안성, 성능 향상, 유지보수 용이성과 같은 특징을 가지며, 데이터베이스 시스템마다 구현 방식과 지원하는 언어가 다를 수 있는 코드 묶음이다.
  • 데이터베이스 관리 시스템 - 트랜잭션 처리
    트랜잭션 처리는 데이터베이스 시스템에서 데이터의 일관성과 무결성을 보장하기 위한 기술이며, ACID 속성을 통해 데이터 정확성을 유지하고 롤백, 데드락 처리 등의 기술을 활용한다.
  • 데이터베이스 관리 시스템 - 저장 프로시저
    저장 프로시저는 데이터베이스 관리 시스템에서 SQL 문들을 미리 컴파일하여 저장하고, 모듈화, 보안성, 성능 향상, 유지보수 용이성과 같은 특징을 가지며, 데이터베이스 시스템마다 구현 방식과 지원하는 언어가 다를 수 있는 코드 묶음이다.
  • 데이터베이스 - 지식 베이스
    지식 베이스는 특정 주제 정보를 체계적으로 저장 및 관리하며 규칙 기반 추론으로 새로운 지식 도출에 활용되고, 웹 콘텐츠 관리 및 지식 관리 시스템으로 확장되어 온톨로지를 이용, 인공지능 기술과 결합하여 문제 해결책을 제시하고 경험을 통해 학습하는 시스템이다.
  • 데이터베이스 - 화이트리스트
    화이트리스트는 특정 대상만 허용하고 나머지는 차단하는 접근 제어 목록으로, 정보보안, 무역, 금융 등 다양한 분야에서 활용되지만, 목록 선정 기준의 불명확성, 사회적 문제점 등의 위험성으로 투명하고 엄격한 관리가 필요하다.
데이터베이스 분할
데이터베이스 분할
개요
유형수평 분할
수직 분할
기능 기반 분할
목적성능 향상, 가용성 향상, 관리 용이성
수평 분할 (Horizontal Partitioning)
다른 이름샤딩 (Sharding)
설명테이블의 행을 여러 개의 작은 테이블로 분할
수직 분할 (Vertical Partitioning)
설명테이블의 열을 여러 개의 테이블로 분할
기능 기반 분할 (Function-Based Partitioning)
설명특정 기능 또는 모듈과 관련된 데이터를 별도의 데이터베이스 또는 테이블 그룹으로 분리
장점
성능쿼리 성능 향상 (특히 대용량 테이블)
가용성특정 파티션의 장애가 전체 시스템에 미치는 영향 감소
관리백업, 복구, 유지보수 용이
단점
복잡성설계 및 구현 복잡성 증가
데이터 일관성파티션 간 데이터 일관성 유지 어려움
쿼리여러 파티션에 걸친 쿼리 성능 저하 가능성

2. 분할 기준

데이터베이스 관리 시스템은 데이터를 효율적으로 관리하기 위해 다양한 분할 기준(분할 기법)을 제공하며, 여기에는 '분할 키(partitioning key)'가 사용된다. 분할 키는 데이터를 어떤 기준으로 나눌지 결정하는 핵심 요소이다.

자주 사용되는 분할 기준으로 범위 분할, 목록 분할, 해시 분할이 있다.


  • 범위 분할은 우편 번호처럼 분할 키 값이 특정 범위에 속하는지 여부로 데이터를 나눈다.
  • 목록 분할은 국가명과 같이 값 목록을 미리 정해놓고 분할 키 값이 이 목록에 포함되는지 확인하여 데이터를 분할한다.
  • 해시 분할해시 함수의 결과값에 따라 데이터를 분할한다.


합성 분할은 이러한 분할 기준들을 결합하는 방식이다. 예를 들어 범위 분할을 먼저 적용하고, 그 다음에 해시 분할을 적용하는 식이다. 일관성 해싱은 해시 분할과 목록 분할을 조합한 것으로 볼 수 있다.[1]

2. 1. 범위 분할 (Range Partitioning)

분할 키 값이 특정 범위 내에 있는지 여부에 따라 분할하는 방식이다. 예를 들어, 우편 번호를 분할 키로 하여 수평 분할하는 경우가 있다.[1] "우편번호" 열의 값이 70000에서 79999 사이인 모든 행에 대한 파티션을 구성할 수 있다. 이는 일부 속성의 값 간격(범위)에 따라 튜플을 분산하며, 정확히 일치하는 쿼리 외에도 범위 쿼리에 적합하다. 예를 들어, "A는 A1과 A2 사이"라는 술어를 가진 쿼리는 튜플을 포함하는 노드에서만 처리될 수 있다.

2. 2. 목록 분할 (List Partitioning)

값 목록에 파티션을 할당하고, 분할 키 값을 해당 목록과 비교하여 파티션을 선택한다. 예를 들어, `Country` 열의 값이 `Iceland`, `Norway`, `Sweden`, `Finland`, `Denmark` 중 하나인 행을 추출하면 북유럽 파티션을 구축할 수 있다.[1]

2. 3. 해시 분할 (Hash Partitioning)

해시 함수의 값에 따라 파티션에 포함할지 여부를 결정한다. 예를 들어, 4개의 파티션으로 분할하는 경우, 해시 함수는 0에서 3까지의 정수를 반환한다.[1]

2. 4. 합성 분할 (Composite Partitioning)

합성 분할은 위에 언급된 분할 기법들을 결합하는 것을 의미한다. 예를 들어, 먼저 범위 분할을 적용한 후 해시 분할을 적용하는 방식을 생각할 수 있다. 일관성 해싱은 해시 분할과 목록 분할의 합성으로 간주될 수 있는데, 키 공간을 해시로 축소함으로써 목록화할 수 있게 한다.[1]

2. 5. 라운드 로빈 분할 (Round Robin Partitioning)

라운드 로빈 분할은 가장 간단한 전략으로, 균일한 데이터 분배를 보장한다. n개의 파티션이 있는 경우, 삽입 순서의 i번째 튜플은 파티션 (i mod n)에 할당된다. 이 전략을 사용하면 관계에 대한 순차적 접근을 병렬로 수행할 수 있다. 그러나 술어를 기반으로 개별 튜플에 직접 접근하려면 전체 관계에 접근해야 한다.[1]

3. 분할 방법

데이터베이스 분할은 각각 자체 테이블, 인덱스, 트랜잭션 로그를 가진 소규모 데이터베이스를 구축하거나, 단일 테이블처럼 선택된 요소만 분할하는 방식으로 수행할 수 있다.

가장 일반적인 것은 분산 데이터베이스에서의 분할이다. 각 파티션은 여러 노드에 분산 배치되며, 사용자는 각 노드에서 로컬로 트랜잭션을 수행할 수 있다. 이는 가용성과 보안을 유지하면서 특정 뷰와 관련된 일반적인 트랜잭션의 성능을 향상시킨다.[1]

3. 1. 수평 분할 (Horizontal Partitioning)

수평 분할은 하나의 테이블의 각 행을 별도의 테이블로 분산시키는 것이다. 예를 들어, 고객 데이터 테이블을 우편번호를 기준으로 동일본과 서일본으로 나누어 CustomerEast와 CustomerWest라는 두 개의 테이블로 분할한다. 테이블은 두 개로 분할되지만, 전체 고객을 나타내기 위해 두 테이블을 결합한 뷰를 생성할 수 있다.[1]

3. 2. 수직 분할 (Vertical Partitioning)

테이블의 일부 열만 추출하는 형태로 분할을 수행한다. 관계형 정규화는 본질적으로 수직 분할과 관련된 프로세스이다.[1] 수직 분할에는 여러 저장 장치를 사용할 수도 있다. 예를 들어 자주 사용하지 않는 열이나 매우 큰 자릿수의 열을 다른 장치에 배치할 수 있다. 명시적으로 수행하는 경우도 있고 암묵적으로 수행하는 경우도 있는데, 이러한 종류의 분할을 "행 분할"이라고도 부른다. 흔한 수직 분할은 열 내용의 사용 빈도에 따라 분할하는 것이다. 분할된 테이블 그룹을 포함하는 뷰를 생성하면, 원래 경우보다 성능이 저하되지만, 사용 빈도가 높은 데이터에만 접근하는 경우에는 성능이 향상된다.


본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com