SQLD/1과목 데이터 모델링의 이해

    [SQLD]Ⅰ- 2장 데이터 모델링과 성능 - 6절 분산 DB 데이터에 따른 성능

    1. 분산 DB 정의 여러 곳으로 분산되어 있는 데이터베이스를 하나의 가상 시스템으로 사용할 수 있도록 한 데이터베이스 논리적으로 동일한 시스템에 속하지만, 컴퓨터 네트워크를 통해 물리적으로 분산되어 있는 데이터들의 모임 과거에는 위치 중심이었으나 현재는 업무 필요에 따라 분산 설계 설계 방식 상향식 : 지역 스키마 작성 후 전역 스키마 작성 하향식 : 전역 스키마 작성 후 지역사상 스키마 작성 장단점 2. 분산 DB의 투명성 - 분위지중장병행 분할 투명성 : 하나의 논리적 관계가 분할되어 각 다년의 사본이 여러 사이트에 저장됨 위치 투명성: 사용하려는 데이터 저장 장소가 명시되지 않아도 됨 지역사상 투명성: 지역 DBMS와 물리적 DB 사이의 사상이 보장됨 중복 투명성: DB 객체 중복 여부를 몰라도 ..

    [SQLD]Ⅰ- 2장 데이터 모델링과 성능 - 5절 데이터베이스 구조와 성능

    1. 슈퍼타입/서브타입 모델의 성능 고려 방법 슈퍼/서브타입 데이터 모델 속성을 할당하여 배치하는 수평 분할된 형태의 모델 공통 속성은 슈퍼타입으로 모델링하고 차이가 있는 속성은 서브타입으로 구분함 변환을 통해 정확하게 업무를 표현할 수 있고 물리적 모델링 시 선택의 폭을 넓힐 수 있음 슈퍼/서브타입 데이터 모델의 변환 변환 기준 : 데이터 양, 트랜잭션 양 슈퍼/서브타입 데이터 모델의 변환 기술 2. 그 외 성능 향상 PK/FK 칼럼 순서 조절을 통한 성능 향상 등호 조건이나 BETWEEN 조건이 걸리는 칼럼을 앞으로 이동 여러 조건이 있을 경우 등호 조건이 걸리는 칼럼을 선두로 이동 인덱스 특성을 고려한 PK/FK DB 성능 향상 물리적인 테이블에 FK 제약을 걸어 인덱스를 생성

    [SQLD]Ⅰ- 2장 데이터 모델링과 성능 - 4절 대량 데이터에 따른 성능

    - 테이블 반정규화 중 테이블 분할 관련 - 블록 : 테이블의 데이터 저장 단위 1. 대량 데이터 발생으로 인한 현상 블록 I/O횟수 증가 -> 디스트 I/O 가능성 상승(디스크 I/O 시 성능 저하) 로우 체이닝(Row Chaining) : 행 길이가 너무 길어 여러 블록에 걸쳐 저장되는 현상 로우 마이그레이션(Row Migration) : 수정된 데이터가 해당 블록이 아닌 다른 블록의 빈 공간에 저장되는 현상 2. 테이블 분할 - 반정규화 기법 수직분할 : 칼럼 단위로 테이블을 분할하여 I/O를 감소시킴. 너무 많은 수의 칼럼이 있는 경우 사용 수평분할 : 행 단위로 테이블을 분할하여 I/O를 감소시킴 3. 파티셔닝(Pratitioning) - 테이블 수평분할 기법 - 논리적으로는 하나의 테이블이지만..

    [SQLD]Ⅰ- 2장 데이터 모델링과 성능 - 3절 반정규화와 성능

    1. 반정규화의 정의 정규화된 엔터티, 속성, 관계에 대해 시스템의 성능향상과 개발과 운영의 단순화를 위해 중복, 통합, 분리 등을 수행하는 데이터 모델링의 기법 데이터 중복을 허용하여 조인을 줄이는 DB 성능 향상 방법 데이터 무결성을 희생하고 조회 성능 향상 2. 반정규화의 절차 반정규화 대상조사 범위처리빈도수 조사 대량의 범위 처리 조사 통계성 프로세스 조사 테이블 조인 개수 다른 방법유도 검토 뷰(VIEW) 테이블 클러스터링 적용 인덱스의 조정 응용 애플리케이션 반정규화 적용 테이블 반정규화 속성의 반정규화 관계의 반정규화 3. 반정규화의 기법 테이블 반정규화 칼럼 반정규화 관계 반정규화

    [SQLD]Ⅰ- 2장 데이터 모델링과 성능 - 2절 정규화와 성능

    1. 정규화 기본적으로 데이터에 대한 중복성을 제거하여 주고 데이터가 관심사별로 처리되는 경우가 많기 때문에 성능이 향상되는 특징을 가지고 있다. 정규화 : 데이터 분해 과정, 이상현상 제거 정규형 : 정규화로 도출된 데이터 모델이 갖춰야 할 특성 함수적 종속성 : 결정자와 종속자의 관계, 결정자의 값으로 종속자의 값을 알 수 있음 다치 종속 : 여러 칼럼이 동일한 결정자의 종속자 일 때 2. 정규화 이론 정규화 이론 1차, 2차, 3차, 보이스코드 정규화는 함수적 종속성에 근거 4차 정규화는 다치 종속을 제거 5차 정규화는 조인에 의한 이상현상을 제거하여 정규화를 수행함 1차 정규화 속성의 원자성 확보 다중값 속성을 분리함 2차 정규화 부분 함수 종속성 제거 일부 기본키에만 종속된 속성을 분리함 기본키..

    [SQLD]Ⅰ- 2장 데이터 모델링과 성능 - 1절 성능 데이터 모델링의 개요

    1. 성능 데이터 모델링 데이터베이스 성능 향상을 목적으로 설계단계에서 데이터 모델링 때부터 성능과 관련된 사항이 데이터 모델링에 반영될 수 있도록 하는 것 정규화, 반정규화, 테이블 통합, 테이블 분할, 조인 구조, PK, FK 등 여러 가지 성능과 관련된 사항이 데이터 모델링을 반영될 수 있도록 하는 것으로 정의할 수 있다. 2. 성능 데이터 모델링 수행시점 성능 향상을 위한 비용은 프로젝트 수행 중에 있어서 사전에 할수록 비용이 들지 않는다. 특히 분석/설계 단계에서 데이터 모델에 성능을 고려한 데이터 모델링을 수행할 경우 성능 저하에 따른 재업무 비용을 최소화할 수 있는 기회를 가지게 된다. 성능을 분석/설계 단계에서부터 성능에 대한 데이터 모델 설계를 하지 않으면 시간이 지날수록 성능개선의 비용..

    [SQLD]Ⅰ- 1장 데이터 모델링의 이해 - 5절 식별자

    1. 식별자 정의 하나의 엔터티에 구성되어 있는 여러 개의 속성 중에 엔터티를 대표할 수 있는 속성 엔터티 내에서 인스턴스들을 구분할 수 있는 구분자 특징 유일성 : 주식별자에 의해 엔터티 내에 모든 인스턴스들을 유일하게 구분함 최소성 : 주식별자를 구성하는 속성의 수는 유일성을 만족하는 최소의 수가 되어야 함 불변성 : 주식별자가 한 번 특정 엔터티에 지정되면 그 식별자의 값은 변하지 않아야 함 존재성 : 주식별자가 지정되면 반드시 데이터 값이 존재(NULL 안됨) 2. 식별자 분류 및 표기법 식별자의 분류 분류 식별자 설명 대표성 여부 주식별자 엔터티 내에서 각 어커런스를 구분할 수 있는 구분자이며, 타 엔터티와 참조관계를 연결할 수 있는 식별자 보조식별자 엔터티 내에서 각 어커런스를 구분할 수 있는..

    [SQLD]Ⅰ- 1장 데이터 모델링의 이해 - 4절 관계

    1. 관계(Relationship) 정의 엔터티의 인스턴스 사이의 논리적인 연관성으로서 존재의 형태로서나 행위로써 서로에게 연관성이 부여된 상태 엔터티 간의 논리적인 관련성 관계의 패어링 각각의 엔터티의 인스턴스들은 자신이 관련된 인스턴스들과 관계의 어커런스로 참여하는 형태 인스턴스 간 개별적 관계 2. 관계의 표기법 관계명(Membership) - 관계의 이름 - 애매한 동사를 피한다. - 현재형으로 표현한다. 관계차수(Degree/Cardinality) - 1:1, 1:M, M:N(관계형 DB에서 카테시안 곱 발생) - 관계 내 튜플의 전체 개수 관계선택사양(Optionality) - 필수적인(Mandatory) 관계 : 참여하는 모든 참여자가 반드시 관계를 가지는 관계 - 선택적인(Optional)..

    [SQLD]Ⅰ- 1장 데이터 모델링의 이해 - 3절 속성

    1. 속성 - 업무에서 필요로 하는 인스턴스로 관리하고자 하는 의미상 더 이상 분리되지 않는 최소의 데이터 단위 정의 업무에서 필요로 한다. 의미상 더 이상 분리되지 않는다. 엔터티를 설명하고 인스턴스의 구성요소가 된다. 특징 업무에서 필요하고 관리하고자 하는 정보이어야 한다. 주식별자에 함수적 종속성을 가져야 한다. 하나의 속성에는 한 개의 값만을 가진다. 다중 값일 경우 별도의 엔터리를 이용하여 분리한다.(1차 정규화) 2. 엔터티, 인스턴스와 속성, 속성값 엔터티-속성의 관계 한 개의 엔터티는 두 개 이상의 인스턴스의 집합이어야 한다. 한 개의 엔터티는 두 개 이상의 속성을 갖는다. 한 개의 속성은 한 개의 속성값을 가진다. 속성의 표기법 3. 속성의 분류 특성에 따른 분류 기본 속성 : 다른 속성..

    [SQLD] Ⅰ- 1장 데이터 모델링의 이해 - 2절 엔터티

    1. 엔터티 정의 사람, 장소, 물건, 사건, 개념 등의 명사에 해당한다. 업무상 관리가 필요한 관심사에 해당한다. 저장이 되기 위한 어떤 것(Thing)이다. 즉, 업무에 필요하고 유용한 정보를 저장하고 관리하기 위한 집합적인 것(Thing)이다. 특징 업무에서 필요하고 관리하고자 하는 정보이어야 한다. 유일한 식별자에 의해 식별이 가능해야 한다. 영속적으로 존재하는 인스턴스의 집합이어야 한다.('한 개'가 아니라 '두 개' 이상) 업무 프로세스에 의해 이용되어야 한다. 반드시 속성이 있어야 한다. 다른 엔터티와 최소 한 개 이상의 관계가 있어야 한다. * 단, 통계성 엔터티 도출, 코드성 엔터티 도출, 시스템 처리 시 내부 필요에 의한 엔터티 도출과 같은 경우 관계를 생략하여 표현해야 한다. 2. 엔..