DataBase - 모델링 (Partition Table)

Posted 07 19, 2010 00:17, Filed under: DataBase/Modeling

# 분할되어 있는 엔터티들에 주의하라.

- 엔터티의 분할을 파티셔닝(Pratitioning)이라고 하는데, 실제 물리적인 데이터베이스 설계에 있어서는 상당히 중요한 부분으로 애플리케이션이나 데이터베이스의 성능을 높이기 위해 자주 사용되는 기법이다.
파티셔닝은 보통 수직적(Vertical)과 수평적(Horizontal) 파티셔닝으로 나눌 수 있다.
간단히 설명하면, 수직적 파티셔닝은 엔터티를 분할하는 것이다. 예를 들어 엔터티에 에트리뷰트가 30개 있다면 검색 용도로 자주 사용되는 엔터티 1-1에 애트리뷰트 10개를 놓고 업데이트 용으로 자주 사용되는 엔터티 1-2에 애트리뷰트 20개를 놓도록 엔터티 1을 분리하는 것이다(이를 테이블 구조로 놓고 보았을때 정확히 세로로 칼을 대는 것인 만큼 수직적 파티셔닝이라고 이야기 한다.)

- 반대로 수평적 파티셔닝은 엔터티의 인스턴스를 기준으로 자르는 것이다. 해당 연도별로 데이타가 쌍이는 경우 1999년 엔터티, 2000년 엔터티, 2001년 엔터티와 같이 들어있는 데이터를 기준으로 엔터티를 나누는 것으로 하나의 엔터티가 가지는 인스턴스의 양을 줄여서 나중에 테이블 검색 속도를 빠르게 할 수 있다.

- 연기서 논의가 되는 파티셔닝은 수직적 파티셔닝으로 엔터티의 구조를 분리해 놓은 것에 주의하자.
실제 예를 들어보자. 엔터티 후보들을 찾다 보면 고객에 대한 일반적인 데이터들을 다루는 것과 고객에 대한 상세적인 데이터들을 다루는 것들이 분리되어 있는 경우가 있다.

- 이러한 경우 앞의 것을 '고객 일반정보'라는 엔터티 후보로, 뒤의 것을 '고객 상세정보'라는 엔터티 후보로 도출할 수 있다. 이 경우 언뜻 보면, 유형이 중복된 것이 아닌가 하고 이 두 엔터티를 살펴볼 수 있다. 하지만 두 엔터티 간에는 중복 관계도, 포함 관계도 없다.

하지만 아래 그림처럼 고객이라는 하나의 엔터티를 두 엔터티로 분리 시켜 놓은 것이므로 그럴 수 밖에 없을 것이다. 이렇게 파티셔닝 된 엔터티들은 모두 일대일 릴레이션쉽(One to One Relationship)을 맺게 된다. 그럴 수 밖에 없다. 나를 낳아준 조상이 있는 것이 아니라 잘 있는 나한테 칼을 대서 생이별을 시켜놓았으니 나머지 나의 반쪽(혹은 그 이사의 파티셔닝이 일어난 경우에는 여러 반쪽들)과 나를 합치면, 원래의 나로 돌아가게 된다.
사용자 삽입 이미지











- 엔터티 후보들을 조사하다가 이렇게 서브 타입이나 중복 관계가 아니면서 일대일 관계가 나타나면 이것이 하나의 엔터티가 쪼개어진 파티셔닝 엔터티가 아닌지 의심해 봐야 한다.
만일 그렇다면 이렇게 쪼개어진 엔터티들을 합쳐서 원래의 나로 돌아가게 하자. 절대로 논리적인 모델링에서 엔터티들을 파티셔닝 하지 말자. 파티셔닝은 오로지 물리적인 모델링에서 필요한 기술이다.



참고자료 : 소설처럼 읽는 DB 모델링 이야기(영진닷컴)
07 19, 2010 00:17 07 19, 2010 00:17

Trackback URL : http://develop.sunshiny.co.kr/trackback/524

Leave a comment

« Previous : 1 : ... 83 : 84 : 85 : 86 : 87 : 88 : 89 : 90 : 91 : ... 381 : Next »

Recent Posts

  1. Oracle - 바인드 변수에 대하여(테스트)
  2. Oracle - 디폴트 롤, DBA, CONNECT,...
  3. Oracle - 권한 및 롤 관리
  4. Oracle - SQL*PLUS의 SYSDBA 접근 제어
  5. Oracle - PFILE, SPFILE 에 관하여

Recent Comments

  1. 네 답글 고맙습니다. 좋은 한주 보... sunshiny 05 14,
  2. 좋은 정보 잘 살펴보고 갑니다. ememoho 05 12,
  3. 네. 고맙습니다^^ 행복한 한해 보... sunshiny 01 16,
  4. sunshiny님. 안녕하세요... 올려 주... yihans 01 16,
  5. 답글 주셔서 고맙습니다^^ 소스 복... sunshiny 01 11,

Recent Trackbacks

  1. 윈도우 cmd 명령어 팁 월풍도원(月風道院) - Delight on th... %M
  2. 파일 압축 Like RadioHead %M
  3. Mysql - mysql 설치후 Character set... 멀고 가까움이 다르기 때문 %M

Calendar

«   05 2012   »
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    

Bookmarks

  1. 위키피디아
  2. MysqlKorea
  3. Oracle All Documentation
  4. 엑셈
  5. 오라클 클럽
  6. 네이버개발자센터
  7. API - Java
  8. API - Spring
  9. Java Community
  10. Reference - Spring
  11. 스프링사용자
  12. 자바소스
  13. 자바지기
  14. Ready System
  15. Solaris Freeware
  16. Linux-Site
  17. RedHat Korea
  18. 윈디하나의 솔라나라

Site Stats

TOTAL 245428 HIT
TODAY 134 HIT
YESTERDAY 139 HIT