본문 바로가기

CERTIFICATION/SQLD

(12)
[SQLD/데이터 모델과 성능]2-7. 분산 데이터베이스 적용 기법 2. 데이터 모델과 성능 2-7. 분산 데이터베이스 적용 기법 (1) 테이블 위치 분산 (물리적인 분산인 듯) 테이블 구조 변경 X 테이블 다른 DB에 중복으로 생성 X 정보를 이용하는 형태가 각 위치별로 차이가 있을 경우에만 사용(이때 위치 = 서버 컴퓨터) 테이블 위치를 파악할 수 있는 도식화된 위치별 DB 문서 필요 (2) 테이블 분할 분산 - 수평분할 특정 칼럼 값 기준으로 “행”단위로 분리 (열, 컬럼은 분리X) Primary Key에 의해 중복 발생 X 데이터 수정 : 타 지사에 있는 데이터를 수정 X, 자사의 데이터만 수정 O 각 지사 테이블 통합 처리 - 조인이 발생해 성능저하 예상됨 - 통합 처리 프로세스가 많은지 검토 후 적으면 수평분할 데이터 무결성 보장 : 데이터가 지사별로 별도로 ..
[SQLD/데이터 모델과 성능]2-6. 분산 데이터베이스와 성능 2. 데이터 모델과 성능 2-6. 분산 데이터베이스와 성능 (1) 분산 데이터베이스란 빠른 네트워크 환경을 이용해 DB를 여러지역, 여러노드로 위치 ⇒ 사용성, 성능을 극대화시킨 DB 분산된 DB를 하나의 가상 시스템으로 사용할 수 있도록 한 DB “논리적”으로 동일한 하나의 시스템, 네트워크를 통해 “물리적”으로 분산된 데이터들의 모임 논리적으로 사용자 통합 및 공유 물리적 Site 분산 (2) 분산 DB의 투명성 분할 투명성(단편화) : 하나의 논리적 릴레이션을 여러 단편으로 분할, 그 사본을 여러 Site에 저장 위치 투명성 : 사용할 데이터의 저장 장소를 알 필요 X (위치정보 시스템 카탈로그에 유지) 중복 투명성 : DB 객체가 여러 Site에 중복 저장되었는지 알 필요 X 장애 투명성 : 구성..
[SQLD/데이터 모델과 성능]2-5. 데이터베이스 구조와 성능 2. 데이터 모델과 성능 2-5. 데이터베이스 구조와 성능 (1) 슈퍼/서브타입 데이터 모델 논리적 데이터 모델에서 주로 이용(= 분석 단계에서 많이 쓰임) 물리적 데이터 모델로 설계 시 문제 발생! 슈퍼타입 : 공통 부분을 슈퍼타입으로 모델링 서브타입 : 공통으로부터 상속받아 다른 엔터티와 차이가 있는 속성만 모델링 (2) 데이터베이스 성능 저하 원인 3가지 트랜잭션 : 전체를 일괄처리 테이블 : 개별로 유지 ⇒ Union 연산에 의해 성능 저하 트랜잭션 : 슈퍼+서브타입 공통 처리 테이블은 개별로 유지 ⇒ 조인에 의해 성능 저하 트랜잭션 : 서브타입만 개별로 처리 테이블은 하나로 통합 ⇒ 불필요하게 많은 데이터 집적 (3) 슈퍼/서브 타입의 변환 기준 데이터가 소량일 경우 : 데이터 처리 유연성 고려..
[SQLD/데이터 모델과 성능]2-4. 대량 데이터에 따른 성능 2. 데이터 모델과 성능 2-4. 대량 데이터에 따른 성능 (1) 성능 저하 원인 A 한 테이블에 데이터 대량 집중 : 테이블 너무 커짐 ⇒ 효율성 ↓ 디스크 I/O ↑ A 한 테이블에 여러 컬럼 존재 : 데스크 점유량 ↑ ⇒ 디스크 읽기 I/O ↑ B 대량 데이터 처리되는 테이블 : SQL문에서 데이터 처리를 위한 I/O ↑ , 인덱스 구성 B 대량 데이터가 한 테이블에 존재 : 인덱스 크기 ↑ 로 인한 성능 저하 컬럼이 많아질 경우 : 로우체이닝, 로우마이그레이션 발생 (2) 해결 방안 A 한 테이블에 많은 컬럼 ⇒ 수직분할 수직분할 : 컬럼 단위로 분할하여 I/O를 줄임 B 대량 데이터 저장 문제 ⇒ 파티셔닝 or PK에 의한 테이블을 분할 수평분할 : 로우 단위로 분할하여 I/O를 줄임 (3) 로..
[SQLD/데이터 모델과 성능]2-3. 반정규화와 성능 2. 데이터 모델과 성능 2-3. 반정규화와 성능 (1) 반정규화 중복 생성 정규화된 엔터티,속성,관계에 대해 성능향상, 단순화를 수행하기 위해 중복, 통합, 분해 등을 수행 무결성이 깨질 수도 있지만 → Disk I/O를 감소시키고, 긴 조인 쿼리문으로 인한 성능 저하 해결 → 중복성의 원리를 활용해 데이터 조회 시 성능 향상 정규화도 일부 조회 성능을 향상시키지만 → 일부 여러 개의 조인이 필요할 때, 조회에 대한 처리 성능이 확실히 중요하다고 판단되면 부분적으로 반정규화 → 정규화의 종속 관계는 위반하지 않으면서 데이터의 중복성을 증가시켜 조회 성능을 향상시킴 (2) 반정규화 적용 방법 반정규화 대상 조사 : 범위 처리 빈도수, 대량 범위처리, 통계성 프로세스, 테이블 조인 수 다른 방법 유도할 수..
[SQLD/데이터 모델과 성능]2-2. 정규화와 성능 2. 데이터 모델과 성능 2-1. 정규화와 성능 (1) 정규화 데이터 모델을 좀 더 구조화하고 개선시키는 절차 중복 제거, 무결성 성능은 “ 조회 ” // “ 삽입, 수정, 삭제 ”의 두 가지 측면 둘 다 고려해야함 정규화가 잘 되어있으면, “삽입,수정,삭제” 성능 향상 (조회 성능 저하X) 반정규화가 잘되어 있으면, “조회” 성능 향상 (조인 필요X) 결정자에 의해 함수적 종속성이 있는 일반속성을 의존자로 하여 입력/수정/삭제 이상 제거 중복속성 제거, 결정자에 의한 동일한 일반속성을 하나의 테이블로 합체 한 테이블의 데이터 용량을 최소화 (2) 함수적 종속성에 근거한 정규화 수행 필요 함수의 종속성(Dependency)는 데이터들이 어떤 기준값에 의해 종속되는 현상을 지칭 결정자 ex) 주민등록번호 ..
[SQLD/데이터 모델과 성능]2-1. 성능 데이터 모델링의 개요 2. 데이터 모델과 성능 2-1. 성능 데이터 모델링의 개요 (1)성능향상을 위한 데이터 모델링 수행 시점 사전에 미리 할수록 비용 절감 가능 분석/설계 단계에서 하는 것이 Best (2) 성능 고려한 데이터 모델링 순서 정규화 DB 용량 산정 트랜잭션 유형 파악 DB 용량, 트랜잭션 유형에 따라 반정규화 PK/FK “조정”, 슈퍼타입/서브타입 “조정” 성능관점에서 데이터모델 “검증” (3) 성능 데이터모델링 고려사항 정규화 → 중복 제거를 통해 삽입/수정/삭제 성능 향상 (조회 성능 저하X) 용량산정 → 전체적인 DB의 트랜잭션 유형과 양을 분석하는 자료가 됨 물리적 데이터 모델링 → PK/FK 칼럼 순서 조정, FK 인덱스 생성 수행 → 성능향상 이력데이터 → 시간에 따라 반복적으로 발생 → 대량 데..
[SQLD/데이터 모델링의 이해]1-5. 식별자 1. 데이터 모델링의 이해 1-5. 식별자 식별자 정의 (=키 정의) 엔터티를 구분하는 논리적인 이름 엔터티를 대표할 수 있는 속성 엔터티에는 반드시 하나의 유일한 식별자 존재 (2) 식별자 특징 유일성 : 주 식별자에 의해 엔터티 내 모든 인스턴스를 유일하게 구분 최소성 : 주 식별자를 구성하는 속성 수는 유일성을 만족하는 최소의 수 불변성 : 주 식별자가 한 번 특정 엔터티에 지정되면, 그 식별자 값은 변화 X 존재성 : 주 식별자가 지정되면, 반드시 데이터값이 존재해야 함 (Null X) (3) 식별자(키) 분류 대표성을 가지는가 : 주 식별자(=PK) / 보조 식별자 스스로 생성될 수 있나 : 내부 식별자 / 외부 식별자 하나의 속성으로 식별되나: 단일 식별자 / 복합 식별자(=복합키) 본질 식별..