학습 내용
- 성능 데이터 모델링 개요
- 관계 데이터 모델
- 정규화 성능
-이상현상
-함수종속 및 정규화- 반정규화와 성능
- 테이블 / 칼럼/ 관계 반정규화
-인덱스 특성을 고려한 외래,기본키 설정- 분산 데이터베이스와 성능
분석/설계 단계에서 성능모델링 수행 -> 재업무비용최소화
대충설계->성능저하->해당 부분만 SQL 튜닝(임시방편)
-정규화를 정확하게 수행
-데이터베이스 용량산정 수행
-트랜잭션 유형 파악
-용량과 트랜잭션의 유형에 따라 반정규화 수행
-이력모델 조정, 인덱스를고려한 pk,fk순서 조정
-60년대 : 파일구조, 플로우차트 중심
-70년대 : db관리 기법이 처음 출현, 계층형, 망형 제품
-80년대 : 관계형db상용화
-90년대 : 객체관계형
도메인 제약 : 속성에 대한 제약
키 제약 : 릴레이션에 대한 제약, =테이블은 pk를 가져야한다,
개체무결성제약 : 기본키에 대한 제약 = pk가 유니크하면서 not null
참조무결성제약 : 외래키에 대한 제약
-값이 잘못 들어감, 도메인에서 정의된 값, 3번은 원자성 위배, 2번은 not null이 아니면 문제없음
-릴레이션의 모든 튜플은 서로 식별 가능해야함
1번 : 4개 속성을 다해도 식별할 수 없음. 키 제약 조건 위배,그래서 인조식별자를 만듦
2번은 가능
기본키는 NOTNULL, UNIQUE이어야함.
1,4는 유니크 위배, 3번은 NOTNULL 위배
-R1의 FK는 1) null 이거나 null이 아닌 경우 R2에 실제로 존재하는 값으로 구성되어야함.
삭제 이상 : 1102학생이 A01 수강 기록을 삭제할 때, 원하지 않는 정보까지 삭제됨
삽입 이상 : 관련 없는 다른정보가 없어서 삽입이 안됨
갱신 이상 : 1101 학생의 연락처가 변경된 경우
큰 테이블을 주제별로 분할된, 독립된 테이블로 나누는거
1정규 : 모든 값이 원자값을 가짐
2정규 : 부분함수종속 제거
3정규 : 이행함수종속 제거
정규화는 입력, 수정 ,삭제, 성능에는 성능이 향상되지만,
조회성능에서는 처리조건에 따라 성능이 저하될 수 있음.
정규화된 엔터니,속성,관계에 대해서 성능 향상을 목적으로 중복,통합,분리를 수행하는 데이터모델링 기법
1) 중복칼럼추가
--> 원래 3정규형에서 2정규형에서 변경, 두 테이블 조인함
2) 파생칼럼 추가
-칼럼에 의한 파생 -> 연관엔터티...
중간에 값이 바꾸면 모든 로우 값 다시 계산, 가급적 사용x
3) 이력 테이블 칼럼 추가
차량을 조회하는 경우 최근등록여부 칼럼을 추가해서 yes or no로 입력
4) PK의 의미적 분리를 위한 칼럼 추가
5) 데이터 복구를 위한 칼럼 추가
1) 관계 병합
중복칼럼보다 많이 조회하면 ..3정규형 -> 2정규형
대부분의 경우?
2) 슈퍼/서브타입 모델의 변환
특허에관한?
3) 테이블 분할 절차
4) 테이블 수직 분할
굉장히 많은 액세스가 있는 놈들만 분할
->성능의 이슈 때문에 분할했기 때문에,테이블구조를 바꿨기 때문에
5) 테이블 수평 분할
액세스가 행단위로 많이 집중될때
-해쉬함수
6) 이력 테이블 추가(최근값의 칼럼추가)
이력테이블칼럼 추가는 최근등록여부(YES or NO)만 추가
7) 부분테이블 추가
1) 중복관계 추가
구미, 대전, 본사 등에 나눠배치
부분 복제 : 본사가 메인이 아니고 지사가 메인임. 지사에서 먼저 업데이트 후 본사에서 업뎃
광역 복제 : 본사에서 업뎃 먼저