본문 바로가기

컴퓨터 공학/데이터베이스

(9)
SQLD) 내가 보려고 정리한 사소한 포인트 정리 반정규화 데이터 조회시 디스크 입출력 양이 많아서 성능이 저하되거나 조인으로 인한 성능저하가 예상되는 경우 반정규화 수행 반정규화 수행 전, 통계/중복/이력/부분 테이블 추가를 통해 반정규화를 회피하려고 함 반정규화 검토 대상 한 테이블의 일정 범위만 자주 조회하는 경우 대량의 데이터가 있고 대량의 데이터 범위를 자주 처리하는 경우 통계성 정보를 자주 필요로 하는 경우 통계 테이블을 추가 테이블이 지나치게 많은 조인이 필요한 경우 데이터 성능 로우 체이닝 : 로우 길이가 너무 길어서 두 개 이상의 데이터 블록에 걸쳐서 하나의 로우가 저장되는 경우 로우 마이그레이션 : 데이터 블록에서 수정이 발생하면 수정된 데이터를 해당 데이터 블록에서 저장하지 못하고 다른 블록의 빈 공간을 찾아 저장하는 방식으로 디스크..
SQLD) 데이터베이스 구조와 성능 1. 대용량 데이터에 따른 성능 테이블 반정규화 중 테이블 분할 관련 내용 블록 : 테이블의 데이터 저장 단위 대량 데이터 발생으로 인해 발생하는 현상 블록 입출력 횟수가 증가 → 디스크 입출력 횟수 증가 → 성능 저하 row chaining : 행 길이가 너무 길어 여러 블록에 걸쳐 저장되는 형상 row migration : 수정된 데이터가 해당 블록이 아닌 다른 블록의 빈 공간에 저장되는 현상 테이블 분할은 블록, 디스크 입출력을 감소시킴 Partitioning 테이블 수평 분할 기법 (레코드, 행 기준) 논리적으로는 하나의 테이블이지만 물리적으로 여러 데이터 파일에 분산 저장 데이터 조회 범위를 줄여 성능을 향상시킴 종류 range partition : 데이터 값의 범위를 기준으로 분할 list p..
반정규화 De-normalization 1. 반정규화 기본 개념 데이터 무결성을 희생하고, 데이터 중복을 허용하여 조인을 줄여 조회 성능을 향상시키는 방법 시스템 성능 향상, 개발 및 운영의 편의성 등을 위해 정규화된 데이터모델을 통합, 중복, 분리하여 의도적으로 정규화 원칙을 위배하는 행위 절차 반정규화 대상 조사 뷰, 클러스터링, 인덱스, 애플리케이션 등 다른 성능 향상 방법 검토 반정규화 적용 2. 테이블 병합 자주 조인되는 두 개의 테이블을 하나로 합치는 것 특징 데이터 조회 성능은 향상 중복 데이터가 생겨 처리량이 증가 not null, default,check 등 제약 조건 설계가 어려움 종류 1:1 관계 테이블 병합 : 병합했을 때 이행적 종속이 발생하더라도 자주 변경되는 정보가 아니고 조회시 조인이 자주되는 경우가 많은 경우 병..
정규화 Normalization 1. 성능 데이터 모델링 DB 성능 향상을 위한 사항을 데이터 모델링에 반영하는 것 분석, 설계 시점에 수행해야 하고 이 시점이 늦어질수록 재업무 비용 증가 정규화는 반드시 수행해야 하고 DB용량 산정, 트랜잭션 유형 파악을 통한 반정규화를 수행할 수도 있음 2. 함수적 종속성 정규화 데이터 분해 과정 이상현상 anomaly 제거 목표 : 테이블 간 중복된 데이터를 제거 → 무결성 Integrity 유지, 용량 축소 함수적 종속성 Functional Dependency;FD 테이블(릴레이션)에 속성 X, Y가 있다고 가정 X 값을 알면 Y값을 식별할 수 있고, X값에 따라 Y값이 달라지는 경우; Y는 X에 함수적으로 종속된다고 함 ex) 학번 → 이름, 학번 → 나이, 학번 → 성별 (학번으로 모든 학생..
ERD (Entity Relationship Diagram) 기초 1. 기본 개념 데이터 모델링의 3요소 엔티티 - 사각형 관계 - 마름모 속성 - 타원형 ERD 그리기 절차 엔티티 도출 엔티티 배치 엔티티 간 관계 설정 관계명 기술 관계 차수 표현 : 1:1, 1:N, M:N 관계선택사양 표현 : 필수, 선택 2. 엔티티 업무에서 관리해야 하는 데이터의 집합, 명사형, 인스턴스의 집합 특징 업무에서 필요로함 유일한 식별자를 가짐 2개 이상의 인스턴스를 포함함 속성을 가지고 있음 다른 엔티티와의 관계를 가지고 있음 종류 유무형에 따른 분류 유형 엔티티 : 물리적 형태가 있고, 지속적으로 활용되는 것 개념 엔티티 : 물리적 형태가 없는 것 발생 시점에 따른 분류 기본 엔티티 Key Entity : 독립적으로 생성되는 엔티티 중심 엔티티 Main Entity: 기본 엔티티..
데이터 모델링의 이해 1. 모델링 현실 세계를 단순화하여 표현하는 것 특징 추상화 : 일정한 형식에 맞춰 표현 단순화 : 제한된 표기법이나 언어로 표현 명확성 : 이해하기 쉽게 표현 관점 데이터 관점 : 업무와 데이터 사이의 관계 프로세스 관점 : 진행되고 있거나 진행되어야 하는 업무 상관 관점 : 데이터에 대한 업무 처리 방식의 영향 2. 데이터 모델링 정보 시스템 구축을 위한 데이터 관점의 업무 분석 기법 목적 정보 표기법을 통일하여 업무 내용 분석 정확도 증대 데이터 모델을 기초로 DB 생성 기능 가시화, 명세화, 구조화된 데이터 틀 제공 문서화 다양한 관점 제공 구체화 중요성 파급효과 leverage 간결한 표현 conciseness : 정보 요구사항과 한계를 간결하게 표현하는 도구 데이터 품직 향상 유일성 : 데이터..
ELK) Logstash 기본 개념 1. Logstash 개념 ELK의 L을 의미하는 Logstash는 무료 오픈 소스 서버 데이터 처리 실시간 파이프라인 다양한 소스에서 데이터를 수집하여 변환한 후 자주 사용하는 저장소 (ELK 스택에서는 elasticsearch)로 전달한다. 데이터의 형식이나 복잡성과 관계 없이 데이터를 동적으로 수집, 전환, 전송한다. 즉, 서로 다른 소스의 데이터일지라도 동적으로 통합하여 원하는 대상으로 데이터를 정규화할 수 있다. 2. Logstash 작업 입력 : 다양한 형태, 크기, 소스의 데이터를 수집한다. ㅛ소 필터 : 소스에서 데이터로 변환하여 저장소로 이동하는 과정에서 각 이벤트를 구문 분석하고 명명된 필드(column)을 식별하여 구조를 구축하며, 이를 공통 형식으로 변환 통합한다. grok를 통해서..
ELK) Elasticsearch 기본 개념 이 글은 아래 블로그 글을 토대로 공부하면서 모르는 내용에 살을 붙여 정리한 글입니다. [Elasticsearch] 기본 개념잡기 1. Elasticsearch란? Elasticsearch는 Apache Lucene( 아파치 루씬 ) 기반의 Java 오픈소스 분산 검색 엔진입니다. Elasticsearch를 통해 루씬 라이브러리를 단독으로 사용할 수 있게 되었으며, 방대한 양의 데이.. victorydntmd.tistory.com 1. Elasticsearch란? Apache Lucene(아파치 루씬) 기반의 Java 오픈소스 분산 검색 엔진 방대한 양의 데이터를 거의 실시간 (NRT, Near Real Time)으로 저장, 검색, 분석할 수 있다. 데이터 분석 도구인 ELK 스택에서 데이터 분석 및 저..