티스토리 뷰

*데이터 베이스 관련 알아두면 좋은 것!*

*계속 내용 고도화 필요....*

 

1. RAID (Redundant Array of Independent Disks)

  • 여러 개의 하드디스크를 하나처럼 묶어서 사용하는 방식
  • 목적: 속도 향상 또는 데이터 안전성 확보

내용 정리 (대표적인 RAID 종류)

RAID 특징 장점 단점
RAID 0 스트라이핑 (데이터 분산 저장) 빠른 속도 장애 시 복구 불가
RAID 1 미러링 (복제 저장) 높은 안정성 저장 공간 절반 사용
RAID 5 스트라이핑 + 패리티 (오류 복구 정보) 효율+안정성 느린 쓰기
RAID 10 RAID 1 + RAID 0 속도+안정성 많은 디스크 필요

심화 이해

  • RAID는 하드웨어 방식(전용 장비 사용)과 소프트웨어 방식(OS 기반)이 있음
  • 패리티란? 데이터 오류를 검출하고 복구하기 위한 체크 정보
  • 사용 용도: 서버, 데이터센터, NAS 등

2. Transaction Isolation (트랜잭션 격리 수준)

  • DB에서 여러 사용자가 동시에 작업할 때 데이터 일관성을 유지하기 위한 기능
  • 격리 수준이 낮을수록 속도 빠름, 높을수록 정확성 ↑

내용 정리

수준 설명 허용되는 문제
Read Uncommitted 다른 트랜잭션의 미완료 데이터 읽음 Dirty Read
Read Committed 완료된 데이터만 읽음 Non-repeatable Read
Repeatable Read 읽은 데이터는 고정됨 Phantom Read
Serializable 가장 엄격, 완전 격리 없음 (성능 낮음)

심화 이해

  • Dirty Read: 다른 트랜잭션의 변경 전 데이터 읽음
  • Non-repeatable Read: 같은 쿼리 결과가 매번 다름
  • Phantom Read: 조건에 맞는 행 개수가 달라짐

3. ETL (Extract, Transform, Load)

  • 데이터 웨어하우스에 데이터를 넣는 3단계 프로세스

내용 정리

  1. Extract: 원천 시스템에서 데이터 추출
  2. Transform: 정제/가공/형식 변환
  3. Load: 목표 시스템(DB)에 적재

심화 이해

  • 주기적으로 실행 (일일/시간별 등)
  • 성능 최적화를 위해 병렬 처리Incremental Load 사용
  • 관련 도구: Apache NiFi, Talend, Informatica, Airflow 등

4. Logical View vs Materialized View

  • View: 쿼리 결과를 저장하는 가상의 테이블

내용 정리

구분 특징 장점 단점
Logical View 쿼리 결과 즉시 계산 항상 최신 매번 실행, 느릴 수 있음
Materialized View 쿼리 결과를 저장 빠른 조회 갱신 필요, 최신 아닐 수 있음

심화 이해

  • Materialized View는 데이터를 주기적으로 리프레시 해야 함
  • 복잡한 조인이나 집계 쿼리의 성능 최적화 용도로 사용

5. Synonym

  • DB 객체(테이블, 뷰 등)의 별칭
  • 예: SELECT * FROM emp; → SELECT * FROM my_emp; (동일한 대상)

내용 정리

  • Public Synonym: 전체 사용자에게 공개
  • Private Synonym: 특정 사용자만 접근 가능

심화 이해

  • 다른 스키마의 객체에 쉽게 접근하도록 할 때 유용
  • Synonym 덕분에 구조 변경 없이도 유지보수 가능

6. DB Link

  • 다른 DB에 접속하기 위한 링크 객체
  • 서로 다른 DB를 연결해서 쿼리할 수 있음

내용 정리

  • SELECT * FROM employees@remote_db;
  • 인증 정보, DB 주소 등 포함하여 설정

심화 이해

  • 주로 분산 DB 시스템이나 데이터 통합 작업에서 사용
  • 성능 이슈, 보안 이슈 고려 필요

7. PGA (Program Global Area)

  • Oracle DB의 메모리 영역 중 하나
  • 각 세션이 사용하는 비공유 메모리

내용 정리

  • 정렬, 해시 조인, 커서 정보 등을 저장
  • 사용자의 개별 작업을 처리하는 공간

심화 이해

  • SGA (System Global Area)와 구분 필요 (공유 메모리)
  • PGA 크기 튜닝 → 쿼리 성능에 직접 영향

8. Table Partitioning

  • 큰 테이블을 논리적으로 나누는 기능
  • 예: 날짜별, 지역별로 나누기

내용 정리

유형 설명
Range 특정 범위 (날짜 등) 기준 분할
List 정해진 값으로 분할 (지역 등)
Hash 해시 함수로 분산 분할
Composite Range + Hash 등 혼합 분할

심화 이해

  • 쿼리 성능 향상, 유지보수 쉬움
  • 대용량 테이블 관리 시 매우 유용

9. Table Pruning

  • 쿼리 실행 시 필요한 파티션만 읽도록 최적화
  • "안 쓰는 파티션은 쿼리에서 자동 제외"

내용 정리

  • 예: WHERE date = '2024-04-01' → 해당 날짜 파티션만 검색

심화 이해

  • Oracle, PostgreSQL 등에서 자동으로 수행
  • 적절한 파티셔닝 전략을 세워야 효과적

10. 메모리 구조 (DB 메모리 구조)

  • DB는 작업을 빠르게 처리하기 위해 다양한 메모리 영역을 사용

내용 정리 (Oracle 기준)

  • SGA: 공유 메모리, 여러 유저가 같이 씀
  • PGA: 비공유 메모리, 세션별로 따로 씀
  • Buffer Cache: 데이터 블록 저장
  • Shared Pool: SQL 실행 계획, 라이브러리 캐시

심화 이해

  • 메모리 구조 튜닝은 DB 성능 향상의 핵심
  • 메모리 오버헤드, 경합(Contend) 등도 고려해야 함

11. Cardinality

  • 쿼리 조건에 따라 리턴되는 행의 수

내용 정리

  • 높은 Cardinality: 결과가 다양함 (ex: 주민번호)
  • 낮은 Cardinality: 값이 비슷함 (ex: 성별)

심화 이해

  • 인덱스 사용 여부에 영향
  • 옵티마이저는 Cardinality 정보를 이용해 실행 계획을 결정

12. OLAP vs OLTP

  • DB 시스템의 용도에 따른 구분

내용 정리

구분 OLTP (트랜잭션 처리) OLAP (분석 처리)
목적 빠른 INSERT/UPDATE 복잡한 조회/분석
예시 은행, 쇼핑몰 리포트, BI 도구
설계 정규화 비정규화
데이터 현재 데이터 이력 포함

심화 이해

  • OLAP에서는 ETL을 통해 데이터 적재
  • OLTP는 실시간 처리 중요, OLAP은 다차원 분석 중요
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함