SQLD 2

채상혁·2022년 2월 27일
0

sqld

목록 보기
2/2
관계 반정규화:
  1. 중복관계 추가

  2. 로우 체이닝

  3. 로우 마이그레이션

데이터를 처리하기 위한 여러 경로를 거쳐 조인이 가능하지만 이 떄 발생할 수 있는 성능저하 예방 추가적인 관계

로우의 길이가 너무 길어서 데이터 블록 하나에 데이터가 모두 저장되지 않고 두개 이상의 블록에 저장되는 형태

데이터 블록에서 수정이 발생하면 수정된 데이터를 해당 데이터 블록에서 저장하지 못하고 다른 블록의 빈 공간을 찾아 저장하는 방식

로우 체이닝과 로우 마이그레이션이 발생하여 데이터가 저장되면 I/O가 증가 > 성능저하 트랜젝션을 분석하여 1:1관계로 분리 성능향상을 도모

PK 테이블을 분할하는 방식 : 파티셔닝

1.Range Partition

대상 테이블이 날짜 또는 숫자값으로 분리가 가능하고 각 영역별로 트랜잭션이 분리되는 경우

2.List Partition

핵심적인 코드값으로 PK가 구성, 다량의 데이터가 있는 테이블의 경우
3.Hash Partition

지정된 HASH 조건에 따라 알고리즘이 적용되어 테이블 분리

테이블에 대한 수평/수직 분할의 절차
  1. 데이터 모델링을 완성
  2. DB 용량산정
  3. 대량 데이터가 처리되는 테이블에 대해 트랜재션 처리 패턴 분석
  4. 컬럼 단위로 집중화된 처리가 발생하는지, 로우 단위로 발생하는 분석하여 집중화된 단위로 테이블을 분리하는 것을 검토.
슈퍼/서브 타입 모델

: 업무를 구성하는 데이터의 특징을 공통과 차이점의 특징을 고려하여 효과적 표현
공통 인 부분을 슈퍼타입 공통으로부터 상속받아 다른 엔터티와 차이가 있는 속성에 대해서는 별도의 서브 엔터티.

슈퍼.서브 타입 데이터 모델의 변환기술
1. 개별로 발생되는 트랜잭션에 대해서는 개별 테이블로 구성 
2. 슈퍼타입 + 서브타입 발생되는 트랜잭션에 대해서는 슈퍼 + 서브 타입 테이블로 구성
3. 전체를 하나로 묶어 트랜잭션 발생시 하나의 테이블로 구성

인덱스 특징을 고려한 PK/FK DB 성능향상

인덱스의 특징은 여러 개의 속성이 하나의 인덱스로 구성되어 있을 떄 앞쪽에 위치한 속성의 값이 비교자로 있어야 좋은 효율을 나타낸다.
앞쪽에 위치한 속성의 값이 '=' , 'BETWEEN', '<>' 가 들어와야 효율적,

물리적인 테이블에 FK 제약을 걸었을 경우 FK 인덱스를 반드시 새엉하고
FK 제약이 걸리지 않았을 경우에는 FK 인덱스를 생성하는 것을 기본 트랜잭션에 의해 거의 활동되지 않았을때는 FK 에도 인덱스를 생성할 필요가 있다.

분산 DB 장점, 단점

장점: 지역 자치성, 신뢰성 가용성, 효용성 융통성, 빠른 응답속도, 비용절감, 각 지역 사용자 요구 수용
단점: 비용증가 ,오류의 잠재성 증가, 설계 관리의 복잡성, 불규칙한 응답속도, 통제의 어려움, 데이터 무결성위협

분산 DB 적용기법

1. 테이블 위치 분산 : 설계된 테이블을 본사와 지사단위로 분산
2. 테이블 분할 분산 : 각각의 테이블을 쪼개어 분산 수평(로우), 수직(컬럼) 분할.
3. 테이블 복제 분산 : 동일한 테이블을 다른 지역이나 서버에서 동시에 생성하여 관리하는 유형 (부분복제, 광역복제)
4. 테이블 요약 분산 : 지역 간에 서버 간에 데이터가 비슷하지만 서로 다른 유형으로 존재하는 경우
분석요약: 동일한 테이블 구조를 가지고 있으면서 분산 되어 있는 동일한 내용의 데이터를 이용하여 통합된 데이터를 산출하는 방식
통합요약 : 분산되어 있는 다른 내용의 데이터를 이용하여 통합된 데이터를 산출하는 방식.

분산 DB 설계를 고려해야 하는 이유

  • 성능이 중요한 사이트
  • 공통코드, 기준정보, 마스터 데이터의 성능향상
  • 실시간 동기화가 요구되지 않는 경우, 실시간의 업무적인 특징을 가지고 있는 경우
  • 특정 서버에 부하가 집중되어 분산
  • 백업 사이트

2과목 : SQL 기본

DB : 특정 기업이나 조직 또는 개인이 필요에 의해 데이터를 일정한 형태로 저장해 놓은 것을 의미한다.
DBMS: 효율적인 데이터 관리 뿐만 아니라 예기치 못한 사건으로 인한 데이터의 손상을 피하고,
필요시 필요한 데이터를 복구하기 위한 강력한 기능의 SW

DB의 발전: 1960(플로우차트 중심의 개발, 파일구조 ) -> 1970 ( DB관리 기법 계층-망형 DB )
-> 1980 ( 관계형 DB상용화, Oracle, Sysbase ) -> 1990 : 객체 관계형 DB

SQL : 관계형 DB에서 데이터 정의 , 조작 , 제어를 위해 사용하는 언어

DML : 데이터 조작어
( SELECT, INSERT, UPDATE, DELETE )
DDL : 데이터 정의어
( CREATE, ALTER, DROP, RENAME )
DCL : 데이터 제어어
( GRANT, REVOKE )
TCL : 트랜잭션 제어어
( COMMIT, ROLLBACK )

테이블 : 데이터를 저장하는 객체, 로우(가로, 행)와 컬럼(세로, 열)로 구성
정규화 : 데이터의 정합성 확보와 데이터 입력/수정/삭제시 발생하는 이상현상을 방지하기 위함

ERD 구성요소 : 엔터티, 관계 , 속성

0개의 댓글