1.4 데이터 모델과 성능

강태공·2022년 11월 3일
0

학습 내용

  • 성능 데이터 모델링 개요
  • 관계 데이터 모델
  • 정규화 성능
    -이상현상
    -함수종속 및 정규화
  • 반정규화와 성능
    - 테이블 / 칼럼/ 관계 반정규화
    -인덱스 특성을 고려한 외래,기본키 설정
  • 분산 데이터베이스와 성능

정의

  • 데이터베이스 성능을 고려하여 데이터모델링을 수행하는것
    정규화,반정규화,테이블 통합및분할, 조인구조, 등

수행시점

  • 빠를수록 좋음

분석/설계 단계에서 성능모델링 수행 -> 재업무비용최소화

  • 일반적인 경우

대충설계->성능저하->해당 부분만 SQL 튜닝(임시방편)

성능데이터모델링진행순서

-정규화를 정확하게 수행

  • 주요관심사별 테이블 분산

-데이터베이스 용량산정 수행

-트랜잭션 유형 파악

  • CRUD 매트릭스 유형 파악

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

  • 테이블, 속성,관계 변경

-이력모델 조정, 인덱스를고려한 pk,fk순서 조정

DBMS의 발전

-60년대 : 파일구조, 플로우차트 중심
-70년대 : db관리 기법이 처음 출현, 계층형, 망형 제품
-80년대 : 관계형db상용화
-90년대 : 객체관계형

RDBMS 개요

  1. 테이블 : 행과열의 2차원 구조를 가진 객체
  2. 칼럼/열 : 개별 속성,,더 이상 나눌 수 없음, =필드
  3. 로우/행 : =현장에서는 레코드,튜플

관계형데이터베이스 제약

  1. 도메인 제약 : 속성에 대한 제약

  2. 키 제약 : 릴레이션에 대한 제약, =테이블은 pk를 가져야한다,

  3. 개체무결성제약 : 기본키에 대한 제약 = pk가 유니크하면서 not null

  4. 참조무결성제약 : 외래키에 대한 제약

도메인 제약

-값이 잘못 들어감, 도메인에서 정의된 값, 3번은 원자성 위배, 2번은 not null이 아니면 문제없음

키 제약

-릴레이션의 모든 튜플은 서로 식별 가능해야함

1번 : 4개 속성을 다해도 식별할 수 없음. 키 제약 조건 위배,그래서 인조식별자를 만듦
2번은 가능

개체 무결성 제약

기본키는 NOTNULL, UNIQUE이어야함.

1,4는 유니크 위배, 3번은 NOTNULL 위배

참조 무결성 제약

  • 외래키
  • 릴레이션R1이 R2를 참조하는 경우, R2의 기본키는 R1에서 외래키로 사용됨.

-R1의 FK는 1) null 이거나 null이 아닌 경우 R2에 실제로 존재하는 값으로 구성되어야함.

이상현상

  • 삭제 이상 : 1102학생이 A01 수강 기록을 삭제할 때, 원하지 않는 정보까지 삭제됨

  • 삽입 이상 : 관련 없는 다른정보가 없어서 삽입이 안됨

  • 갱신 이상 : 1101 학생의 연락처가 변경된 경우

정규화

큰 테이블을 주제별로 분할된, 독립된 테이블로 나누는거

  • 목적 : 삽입/삭제/갱신 이상현상 방지
  • 함수적 종석성(FD)에 기반

1정규 : 모든 값이 원자값을 가짐
2정규 : 부분함수종속 제거
3정규 : 이행함수종속 제거

부분함수종속제거

이행함수종속제거

정규화는 입력, 수정 ,삭제, 성능에는 성능이 향상되지만,
조회성능에서는 처리조건에 따라 성능이 저하될 수 있음.

반정규화 = 역정규화

정규화된 엔터니,속성,관계에 대해서 성능 향상을 목적으로 중복,통합,분리를 수행하는 데이터모델링 기법

반정규화 사전절차

반정규화 기법

1. 칼럼 반정규화

1) 중복칼럼추가

--> 원래 3정규형에서 2정규형에서 변경, 두 테이블 조인함

2) 파생칼럼 추가

-칼럼에 의한 파생 -> 연관엔터티...

  • 로우에 의한 파생

중간에 값이 바꾸면 모든 로우 값 다시 계산, 가급적 사용x

3) 이력 테이블 칼럼 추가

차량을 조회하는 경우 최근등록여부 칼럼을 추가해서 yes or no로 입력

4) PK의 의미적 분리를 위한 칼럼 추가

5) 데이터 복구를 위한 칼럼 추가

2. 테이블 반정규화

1) 관계 병합

중복칼럼보다 많이 조회하면 ..3정규형 -> 2정규형
대부분의 경우?

2) 슈퍼/서브타입 모델의 변환

특허에관한?

3) 테이블 분할 절차

4) 테이블 수직 분할

굉장히 많은 액세스가 있는 놈들만 분할
->성능의 이슈 때문에 분할했기 때문에,테이블구조를 바꿨기 때문에

5) 테이블 수평 분할

액세스가 행단위로 많이 집중될때

-해쉬함수

6) 이력 테이블 추가(최근값의 칼럼추가)

이력테이블칼럼 추가는 최근등록여부(YES or NO)만 추가

7) 부분테이블 추가

-관계 반정규화

1) 중복관계 추가

분산 데이터베이스의 개념

  • 물리적으로 분산된 데이터베이스를 하나의 논리적 시스템으로 사

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

분산데이터베이스의 적용 기법

- (1) 테이블 위치 분산

구미, 대전, 본사 등에 나눠배치

- (2) 테이블 분할 분산

- (3) 테이블 복제 분산

  • 부분 복제 : 본사가 메인이 아니고 지사가 메인임. 지사에서 먼저 업데이트 후 본사에서 업뎃

  • 광역 복제 : 본사에서 업뎃 먼저

- (4) 테이블 요약 분산

분산 설계 고려사항

0개의 댓글

관련 채용 정보