티스토리 뷰

반응형


제 1장. 데이터 모델링의 이해



ㅇ 엔티티

- 유무형 

1. 유형 : 물리적 형태 (사원, 물품)

2. 사건 : 업무 수행에 따라 발생 (주문, 창구)

3. 개념 : 관리해야할 개념적 정보 (조직, 장소)

- 발생 시점

1. 기본/키 : 원래 존재하는 정보 (사원, 부서)

2. 중심 : 업무에 있어 중요한 역할 (접수, 계약)

3. 행위 : 두 개 이상의 부모 엔티티로부터 발생 (주문내역, 계약진행)


ㅇ 엔티티 특징

- 필요로 해야하는 정보

- 유일한 식별자에 의해 식별 가능

- 인스턴스의 집합 (두 개 이상)

- 업무 프로세스에 의해 이용되어야 함

- 속성이 있어야 함 (두 개 이상) -> 한 개의 속성은 한 개의 속성값

- 다른 엔티티와 최소 한 개 이상의 관계


ㅇ 엔티티 이름 부여

- 협업 용어

- 약어 사용 X

- 단수명사

- 고유어

- 생성의미

- 서술식 X




ㅇ 속성

- 기본 속성 : 업무로부터 추출한 모든 속성 (제품이름, 제조년월, 제조원가, 원금, 예치기간, 이자율 등)

- 설계 속성 : 데이터 모델링, 업무 규칙화를 위해 속성을 새로 만들거나 변형하여 정의 (일련번호, 코드 등)

- 파생 속성 : 다른 속성에 영향을 받아 발생하는 속성, 계산된 값들 (계산값, 이자)


ㅇ 속성의 도메인

: 각 속성이 가질 수 있는 값의 범위

- 엔티티 내에서 속성에 대한 데이터 타입, 크기, 제약 사항을 지정




ㅇ 데이터 모델링

: 정보시스템 구축을 위한 데이터 관심의 업무 분석 기법

1. 현실 데이터에 대해 약속된 표기법에 의해 표현

2. DB구축을 위한 분석/설계의 과정


ㅇ 유의점

- 중복 : 중복성 최소화

- 비유연성 : Data 정의 / Data 사용 프로세스 간 분리

- 비일관성 : Data 간의 상호 연관관계 정의


ㅇ 개념

- 개념적 데이터 모델링 : 업무 중심적, 포괄정

- 논리적 데이터 모델링 : Key, 속성, 관계 등을 정확히 표현

- 물리적 데이터 모델링 : 성능, 저장 등 물리적인 성격




ㅇ DB 스키마 구조

- 외부 스키마 : 개인적 (사용자에게 어떻게 보여줄지)

- 개념 스키마 : 통합 관점 (전체적인 뷰)

- 내부 스키마 : 물리적 장치 입장



ㅇERD 표기법(출처)


ㅇ ERD 작성 순서

1. 엔티티 그리기

2. 배치

3. 관계 설정

4. 관계명 기술

5. 관계 참여도

6. 관계 필수 여부




ㅇ 관계

(단일화된 표기법 사용)

- 존재에 대한 관계 : 사원이 부서에 항상 속해있다.

- 행위에 대한 관계 : 주문은 고객이 주문을 할 때 발생


ㅇ 관계의 표기법

- 관계명 : 관계의 이름

- 관계 치수  : 1:N, 1:M, N:M

- 관계 선택사양 : 필수관계, 선택관계


ㅇ UML 클래스 다이어그램 관계(출처)

- 연결관계 : 하나의 클래스에 변화가 있으면 다른 클래스에도 변화 (점선 화살표)

- 의존관계 : 특정 클래스의 인스턴스가 작업 수행을 위해 다른 클래스를 알아야 함 (실선)

*     :     0, 1, 또는 그 이상

1     :     정확히 1개

2..4  :     2~4개

3..*  :     3개 이상


ㅇ 두 개의 엔티티 사이 관계 도출

- 연관규칙이 존재하는가?

- 정보의 조합이 발생하는가?

- 업무 기술서, 장표의 관계연결에 대한 규칙이 서술되어있는가?

업무 기술서, 장표의 관계연결을 가능하게 하는 동사가 있는가?




ㅇ 주식별자

- 유일성 : 주식별자에 의해 엔티티 내의 모든 인스턴스들이 유일하게 구분

- 최소성 : 주식별자를 구성하는 속성의 수는 유일성을 만족하는 최소의 수

- 불변성 : 자주 변하지 않는 것

- 존재성 : 반드시 값을 가짐


ㅇ 식별자와 비별자관계(출처)


ㅇ 식별자의 분류체계(출처)




제 2장. 데이터 모델과 성능



ㅇ 성능 데이터 모델링

: 데이터베이스 성능향상을 목적으로 설계단계의 데이터 모델링 때부터

 성능과 관련된 사항이 데이터 모델링에 반영될 수 있도록 하는 것


ㅇ 성능 데이터 모델링 순서

1. 데이터 모델링을 할 때 정규화를 정확하게 수행

2. DB 용량산정 수행

3. DB에 발생되는 트랜잭션 유형 파악

4. 용량과 트랜잭션의 유형에 따라 반정규화 수행

5. 이력모델의 조정, PK/FK조정, 슈퍼타입/서브타입 조정 등 수행

6. 성능관점에서 데이터 모델 검증




ㅇ 정규화

: 중복 정보 정의를 최소화하여 논리 데이터 모델링의 목적인 정확성, 일관성, 단순성, 비 중복성, 안정성을 만족시키는 최적의

  개념적 데이터

- 1차 정규화 : 같은 성격과 내용의 컬럼이 연속적으로 나타나는 컬럼이 존재할 때, 

      해당 컬럼을 제거하고 기본테이블의 PK를 추가해 새로운 테이블을 생성하고, 기존의 테이블과 1:N 관계를 형성하는 것

- 2차 정규화 : PK가 여러 키로 구성된 복합키로 구성된 경우가 2차 정규화의 대상이 되며, 

      복합키 전체에 의존하지 않고 복합키의 일부분에만 종속되는 속성들이 존재할 경우(즉, 부분적 함수 종속 관계) 

      이를 분리하는 것

- 3차 정규화 : PK에 의존하지 않고 일반컬럼에 의존하는 컬럼들을 분리


ㅇ 정규형

- 1차 정규형 : 각 로우마다 컬럼의 값이 1개씩만(원자값) 있어야 함

- 2차 정규형 : 테이블의 모든 컬럼이 완전 함수적 종속을 만족, 

   기본키중에 특정 컬럼에만 종속된 컬럼(부분적 종속)이 없어야 함

- 3차 정규형 : 기본키를 제외한 속성들 간의 이행적 함수 종속이 없는 것

    기본키 이외의 다른 컬럼이 그외 다른 컬럼을 결정할 수 없는 것




ㅇ 반정규화

- 정규화된 엔티티, 속성, 관계에 대해 시스템의 성능향상과 

  개발, 운영의 단순화를 위해 중복, 통합, 분리 등을 수행하는 데이터 모델링의 기법

- 데이터를 중복하여 성능을 향상시키기 위한 기법

- 성능을 향상시키기 위해 정규화된 데이터 모델에서 중복, 통합, 분리 등을 수행하는 모든 과정

- 데이터 조회 시 디스크 I/O량이 많아서 성능이 저하되거나 경로가 너무 멀어 조인으로 인한 성능저하가 예상되거나 

  컬럼을 계산하여 읽을 때 성능이 저화도리 것이 예상되는 경우 반정규화 수행


ㅇ 반정규화 절차

1. 반정규화 대상 조사

- 범위처리빈도수 조사

- 대량의 범위 처리 조사

- 통계성 프로세스 조사

- 테이블 조인 개수

2. 다른 방법유도 검토

- 뷰 테이블

- 클러스터링 적용

- 인덱스 조정

- 응용애플리케이션

3. 반정규화 적용

- 테이블 반정규화

- 속성의 반정규화

- 관계의 반정규화


ㅇ 반정규화의 대상에 대해 다른 방법으로 처리

- 지나치게 많은 조인이 걸려 데이터를 조회하는 작업이 어려울 경우 뷰를 사용

- 대량의 데이터 처리나 부분처리에 의해 성능 저하가 될 경우 클러스터링을 적용하거나 인덱스를 조정

- 대량의 데이터는 Primary Key의 성격에 따라 부분적인 테이블로 분리할 수 있음 (파티셔닝 기법 적용)

- 응용애플리케이션에서 로직을 구하사는 방법을 변경


- 테이블의 반정규화

- 컬럼의 반정규화

- 관계의 반정규화




ㅇ 슈퍼/서브 타입 데이터 모델의 변환 기술

- 개별로 발생되는 트랜잭션에 대해서 개별 테이블로 구성

- 슈퍼타입+서브타입에 대해 발생되는 트랜잭션에 대해서 슈퍼타입+서브타입 테이블로 구성

- 전체를 하나로 묶어 트랜잭션이 발생할 때는 하나의 테이블로 구성




ㅇ PK순서 경정 기준 (인덱스를 효율적으로 이용)

- 여러개의 속성이 하나의 인덱스로 구성되어 있을 때 앞쪽에 위치한 속성의 값이 비교자로 있어야 인덱스가 좋은 효율

- 앞쪽에 위치한 속상 값이 가급적 '=' 아니면 최소한 범위 'BETWEEN', '<>' 가 들어와야 인덱스를 이용할 수 있음




ㅇ 분산 데이터베이스 장단점

- 장점

- 지역 자치성, 점증적 시스템 용량 확장

- 신뢰성과 가용성

- 효용성과 융통성

- 빠른 응답 속도와 통신비용 절감

- 데이터의 가용성과 신뢰성 증가

- 시스템 규모의 적절한 조절

- 각 지역 사용자의 요구 수용 증대

- 단점

- 소프트웨어 개발 비용

- 오류의 잠재성 증대

- 처리 비용의 증대

- 설계, 관리의 복잡성과 비용

- 불규칙한 응답 속도

- 통제의 어려움

- 데이터 무결성에 대한 위협


반응형
댓글
최근에 올라온 글
최근에 달린 댓글
링크
Total
Today
Yesterday