Skip to main content

27 posts tagged with "pe/database"

기술사 데이터베이스 토픽

View All Tags

분산 데이터베이스 투명성

· 3 min read

분산 데이터베이스 개념

  • 네트워크를 통해 물리적으로 분산되어 있는 여러 개의 데이터베이스 시슽메을 논리적으로 연관시킨 통합 데이터베이스
  • 중복성, 지역독립성, 투명성

분산 데이터베이스 5가지 투명성

분할 투명성

  • 하나의 논리적 릴레이션에 단편들로 분할된 데이터가 여러 사이트에 저장
  • Bottleneck 방지, 설계 기술 필요

위치 투명성

  • 사용자나 프로그램이 데이터베이스의 물리적 위치를 알 필요 없이 데이터 접근 가능
  • 분산 데이터 딕셔너리, 디렉토리 관리 필요

복제 투명성

  • 접근할 데이터가 물리적으로 여러 사이트에 복제되었는지 알 필요가 없는 특성
  • 점진적 일관성 유지, 전파 갱신 처리 부하

장애 투명성

  • 지역 시스템, 통신에 장애가 있어도 데이터 무결성을 보존하는 성질
  • 2 Phase Commit 활용, 장애 원인 규명 복잡

병행 투명성

  • 다수 트랜잭션 동시 수행시 결과에 이상이 발생하지 않는 성질
  • 리소스 사용 극대화, 병행 제어 활용

CAP 이론과 분산 투명성의 관계

구분내용관계
Consistency데이터 일관성 보장병행투명성, 복제투명성
--네트워크 분할시 가용성 희생
Availability요청에 항상 응답분할투명성, 장애투명성
--네트워크 분할시 일관성 희생
Partition Tolerance네트워크 분할시 시스템 동작 유지장애투명성
--네트워크 분할시 C 또는 A 선택

데이터 모델링

· 4 min read

데이터 모델링 개념

  • 현실 세계 업무 프로세스를 추상화하여 물리적으로 데이터베이스화하기 위한 과정으로, 실체와 관계 중심으로 데이터 모형을 표현하는 모델링
  • 가시화, 명세화, 문서화, 추상화, 통합성, 이해성

데이터 모델링 단계, 식별/비식별 관계 비교

데이터 모델링 단계

단계설명
개념 모델링요구사항을 데이터 모델로 변환
-엔티티와 속성 정의, 엔티티 간 식별/비식별 관게 설정
논리 모델링개념스키마를 실제 DBMS 스키마로 변환
-데이터 구조와 무결성 제약 설정
-식별/비식별 관례를 기본키, 외래키로 추가
물리 모델링저장구조, 저장방법 기술, 성능 기준 충족

식별/비식별 관계 개념 비교

식별 관계

  • 하위 엔티티의 PK 구성이 상위 엔티티의 PK에 포함되는 관계

비식별 관계

  • 하위 엔티티의 일반 속성에 상위 엔티티의 PK가 포함되는 관계

식별/비식별 관계 상세 비교

구분식별 관계비식별 관계
결합도강한 연결관계약한 연결관계
표기법실선 표현점선 표현
PK하위 엔티티 PK 구성 포함미포함
관계자식 엔티티가 부모에 종속적자식 엔티티가 부모에 독립적
데이터 무결성부모 엔티티 삭제시 자식 엔티티 함께 삭제부모 엔티티 삭제시 자식 엔티티 유지, 관계 해제
예시Order 와 OrderItemCustomer 와 Order

데이터 모델링시 고려사항

비지니스 측면

  • 비지니스 요구사항
  • 엔티티 속성 정의
  • 관계 설정: 엔티티 관계, 키 설정
  • 무결성 제약조건: 개체, 참조, 속성 무결성

기술 측면

  • 성능: 정규화, 반정규화, 인덱싱, 연결함정, 파티셔닝
  • 용량관리: 데이터 양, 저장소, 확장성

CRUD 매트릭스

· 3 min read

CRUD 매트릭스 개념

  • 데이터 엔티티와 각 기능 간의 상관관계를 매트릭스 형태로 나타내어 데이터 모델링 과정을 검증하는 도구
  • 데이터와 프로세스 관계 명확화, 기능별 데이터 활용 파악, 테스트 시나리오 도출, 성능 최적화

CRUD 매트릭스 작성 절차, 표현 방법, 분석 사례

CRUD 매트릭스 작성 절차

  1. 데이터엔티티/기능정의: 시스템 관리되는 주요 엔티티, 기능 식별
  2. CRUD 관계식별 : 각 기능과 엔티티에 수행하는 작업 정의
  3. CRUD 매트릭스 작성: 엔티티/기능 매트릭스 작성, CRUD 표기
  4. 중복, 누락, 불필요 작업 파악 및 개선

CRUD 매트릭스 표현 방법

엔티티/기능고객 등록상품 조회주문 생성주문 조회
고객C, R---
상품-R--
주문-RCR, U
  • 행에는 프로세스, 열에는 엔티티, 교차점에 트랜잭션 표시

CRUD 매트릭스 분석 사례

구분사례해결방안
요구검증고객 등록, 상품 조회, 주문 생성, 주문 조회 기능 검증미비 기능 구현
무결성검증상품 엔티티는 R만 존재C, U 기능 추가
성능튜닝주문 엔티티는 트랜잭션이 몰려 부하 발생 가능파티션 추가, 테이블 분리
불필요 작업 제거주문 조회시 업데이트 발생R만 수행하도록 수정

NoSQL 모델링

· 2 min read

NoSQL 유형, 모델링 절차

NoSQL 유형

  • Key-Value: 키와 값의 쌍으로 관리, 빠른 조회, Redis, DynamoDB
  • Column Family: 열 기반 데이터 저장, 키 범위 처리 요구 개선, 유연성 극대화, HBase, Cassandra
  • Document: 문서형태 데이터 저장, 빠른 조회, MongoDB, CouchDB
  • Graph: 노드와 간선로 관계 저장, 모든 노드와 간선에 고유식별자, Neo4j
  • Vector: 데이터 간 유사도, HNSW, Milvus

NoSQL 모델링 절차

구분절차설명
탐색도메인 모델 파악데이터 개체 간 관계 분석, 도메인 파악,
ERD 작성하여 결과 도식화
설계쿼리 결과 디자인도메인 모델 기반 쿼리 결과값 정의
데이터 출력과 저장에 효율적인 구조로 디자인
-패턴 기반 데이터 모델링I/O 횟수를 최소화하기 위해 반정규화, 데이터 중복 저장
-기능 최적화필요시 Secondary Index 활용하여 전체 데이터 Scan 최소화
최적화후보 NoSQL 선정구조, 특징 분석 후 부하테스트, 안정성테스트 수행
후보쿼리 선정
-데이터모델 최적화 및 HW 튜닝선정된 쿼리에 적합한 데이터 모델 최적화,
어플리케이션 인터페이스 설계
NoSQL 설정 및 HW 튜닝
  • 쿼리 성능 최적화를 위해 중첩데이터와 반정규화된 데이터 구조로 디자인 필요

SOM, 자기조직화지도

· 3 min read

SOM 개념

  • 고차원 데이터의 위상을 보존하여 저차원 그리드로 매핑하는 비지도학습 기반 인공 신경망
  • 차원축소, 위상보존, 경쟁학습, 시각화 및 군집화

SOM 구성도, 구성요소, ANN과의 차이점

SOM 구성도

SOM

  • 경쟁층 뉴런들이 2차원 격자구조로 배열, 고차원 입력 데이터를 저차원 공간에 시각적으로 표현하는 구조

SOM 구성요소

구분구성요소설명
레이어입력층고차원 입력 특성을 받는 층
-경쟁층(출력층)2D 그리드 구조로 입력 데이터와의 거리 측정 후 가장 가까운 뉴런 선정
연결요소연결가중치입출력층 연결, 초기 무작위 가중치 설정 후 경쟁학습을 통해 업데이트
-BMV입력벡터와 가장 유사한 출력층 뉴런, 유클리드 최소 거리 계산
  • 역전파와 체인룰 없이 승자 독식 경쟁학습 알고리즘 사용

SOM과 ANN의 차이점

구분SOMANN
학습방식비지도학습비지도/지도학습
학습알고리즘경쟁학습역전파 등 오류수정기반
주요목적시각화, 군집화, 차원축소분류, 회귀, 예측
출력구조2차원 격자다층 퍼셉트론
데이터 요구사항레이블 불필요레이블 필요
활용사례데이터 시각화, 군집 분석이미지 인식, 음성 인식, 자연어 처리
해석가능성결과의 직관적 해석블랙박스, 해석 어려움

다차원 색인 구조

· 4 min read

다차원 색인구조 개념

  • 이미지나 멀티미디어 등 비정형 데이터의 효율적 검색을 위해 다차원 필드를 동시에 키로 사용한 색인 구조
  • 차원확장성, 유사성 기반 내용 검색, 다양항 데이터 처리, 저장공간 절감, RAG, Vector DB 활용

다차원 색인구조 유형

구분개념도설명
Point Access Method (PAM)PAM다차원 점 데이터 저장 및 검색
K-D 트리, K-D-B 트리, Grid File, 사분트리
Spatial Access Method (SAM)SAM선, 면 등 크기를 갖는 다차원 공간 데이터 저장 및 검색
R-Tree, R*-Tree, R+Tree, X-Tree

다차원 색인구조 상세

PAM 기반 다차원 색인구조

구분개념도설명
K-D 트리K-D Tree이진탐색트리 BST를 다차원 확장하여 K차원 점 데이터 색인
트리 레벨과 값을 번갈아 비교
Grid FileGrid File데이터포인트를 다차원 그리드 공간에 매핑하여 저장
각 차원 범위를 선형눈금계로 나눠 격자 배열 생성
사분트리Quad Tree공간을 반복적으로 4개의 하위 영역으로 분할하는 자료구조
고차원 데이터 부적합, 공간 분할로인한 비효율적 메모리 사용

SAM 기반 다차원 색인구조

구분개념도설명
R 트리R TreeMBR을 구하여 인덱스를 엔트리로 저장하는 자료구조
완전균형트리로 데이터 객체를 여러 차원의 구간들로 표현
R+ 트리R+ Tree여러 MBR과 중첩되는 데이터는 여러 노드에 중복 저장하는 자료구조
K-D 트리와 R 트리의 중간 형태
R* 트리R* TreeR 트리와 구조, 연산은 유사하나 삽입 삭제시 노드 간 MBR 중첩 최소화한 자료구조
  • X 트리는 고차원 데이터를 다루는 슈퍼노드를 사용한 R 트리 확장 구조

다차원 색인구조 활용분야

구분사례설명
지리 정보GISR트리 활용 지리 정보 저장 및 검색
-위성영상분석사분트리, 위성데이터 분할 저장
멀티미디어이미지K-D 트리, 사분 트리, 이미지 속성 저장
-비디오K-D 트리, 메타데이터 인덱싱

HNSW

Hierarchical Navigable Small Worlds

개념도개념
hnsw계층적 그래프와 Small World Network 기반의 근사 최근접 이웃 검색(ANN)을 수행하여 대규모 벡터 데이터에서 빠르고 정확한 검색 제공
  • 다층 그래프 사용 저장
  • 지역최솟값을 찾을 때까지 가까운 정점으로 Greedy 탐색
  • 메모리 기반, 빠름, 고차원 데이터 효율적 처리
  • Milvus, Pinecone 방식
  • Pinecone: Hierarchical Navigable Small Worlds

트랜잭션 격리수준

· 3 min read

트랜잭션 격리수준 개념

Isolation Levels

  • 병행 트랜잭션 실행 시 데이터를 일관성 있게 읽을 수 있도록 고립성을 유지하기 위한 데이터 허용 수준
  • Dirty Read, Non-Repeatable Read, Phantom Read 등 이상 현상 발생 가능

트랜잭션 격리 수준 상세

Read Uncommitted

  • 트랜잭션이 완료되지 않은 데이터를 다른 트랜잭션이 참조하는 것을 허용하는 격리수준

Read Committed

  • 트랜잭션이 완료된 데이터만 읽을 수 있는 격리 수준

Repeatable Read

  • 동일한 행을 여러 번 읽을 때 항상 동일한 값을 반환하도록 보장하는 격리수준

Serializable

  • 여러 트랜잭션이 순차적으로 하나씩 실행되도록 보장하는 격리수준
  • 동시성이 낮아 거의 사용되지 않음

트랜잭션 격리수준 고려사항

  • Locking, 2PL, Timestamp Ordering, 낙관적 기법 등 병행제어 필요

정적 SQL과 동적 SQL

· 3 min read

정적 SQL과 동적 SQL 개념 비교

정적 SQL동적 SQL
애플리케이션에 하드 코딩되어 런타임 시 변경되지 않는 SQL런타임 시점에 사용자로부터 SQL 문의 일부 또는 전부를 입력받아 실행되는 SQL
  • 정적 SQL은 컴파일 전 단계에서 구문분석, 유효 오브젝트 여부확인 등 체크가 가능하지만 동적 SQL은 불가

정적 SQL과 동적 SQL 상세 비교

정적 SQL과 동적 SQL 구현 비교

구분정적 SQL동적 SQL
구문컴파일 시점에 구문 및 의미 체계 체크 가능실행 시점에 구문이 확정되므로 사전 체크 불가
최적화사전 컴파일로 최적화 가능런타임 최적화가 어려움
보안주로 컴파일 타임에 보안 검토 가능사용자 입력 검증 필요, 보안 관리 복잡

정적 SQL과 동적 SQL 특징 비교

구분정적 SQL동적 SQL
유연성낮음, 고정된 쿼리 구조높음, 다양한 조건에 따라 쿼리 변경 가능
보안상대적으로 안전함SQL 인젝션 및 보안 취약점
성능빠르고 최적화 가능실행 시점에 최적화가 어려움
사용 사례고정된 데이터 조회나 트랜잭션 처리사용자 입력 기반의 동적 데이터 조회 및 처리
캐싱 효율높음낮음
장점빠른 속도, 쿼리 해석 사전 수행유연한 SQL 구조, 코딩 양 최소화
단점데이터 분포에 따른 성능 저하반복적 쿼리 파싱에 따른 성능 저하
  • 동적 SQL 사용시 WAF, Stored Procedure, Prepared Statement 등을 활용하여 보안 강화 필요

공공기관 데이터베이스 표준화지침

· 3 min read

공공기관 데이터베이스 표준화지침 개념

  • 공공기관이 생성 또는 취득하여 관리하는 데이터베이스 표준화에 필요한 세부 사항을 정립한 지침
  • 데이터 품질향상, 호환성, 공공기관 간 데이터 상호운용성, 공공데이터 신뢰성, 투명성 보장

공공기관 데이터베이스 표준화지침 구성도, 구성요소, 적용방안

공공기관 데이터베이스 표준화지침 구성도

공공기관 데이터베이스 표준화지침 구성요소

구분내용비고
표준화 관리표준화 관리체계 구축, 표준 수립, 적용, 산출물 관리데이터 표준 사전 작성, 코드 표준 준수
공통 표준용어 관리공통 표준 용어 관리 원칙, 구성요소 및 관리 항목재개정시 이해관계자 협의
메타데이터 관리기관 중앙 메타데이터 관리 시스템 구축 및 운영메타데이터 표준 관리항목 등록

공공기관 데이터베이스 표준화지침 적용방안

구분내용비고
공공기관표준화 관리체계 구축, 메타데이터 등록 및 관리기관 여건에 맞는 시행 세칙 제정
행정안전부예산확보, 지원, 지침 재,개정, 공통 표준 용어 관리표준화 협의체 운영
데이터 활용지원센터표준화 정책, 제도 조사 및 연구, 기술 개발 및 지원, 홍보 교육전담 조직 구성 및 운영

표준화지침 이행시 고려사항

  • 표준화 중요성에 대한 인식 제고 및 주기적인 교육 필요

CAP, PACELC

· 3 min read

CAP 이론 개념

  • 분산시스템이 동시에 일관성, 가용성, 분할내성을 모두 만족시킬 수 없다는 이론
  • 분산시스템의 특성을 이해하고 Trade-Off를 고려하여 데이터베이스를 설계하는 원칙

CAP 이론 개념도, 구성요소

CAP 이론 개념도

CAP 이론 구성요소

구분내용비고
C + P일부 노드 장애시에도 일관성 유지MongoDB
A + P일부 노드 장애시에도 시스템은 계속 응답DynamoDB
C + A네트워크 분할이 없을시 일관성, 가용성 보장RDBMS

PACELC 이론 개념도, 구성요소

PACELC 이론 개념도

  • CAP이론을 보완하여 네트워크 분할 여부나 정상 작동 여부에 따라 지연시간과 일관성의 Trade-Off를 고려한 이론

PACELC 이론 구성요소

구분내용비고
PA/EL장애시 가용성, 정상시 지연시간 우선 고려DynamoDB, Cassandra
PA/EC장애시 가용성, 정상시 일관성 보장MongoDB
PC/EL장애시 일관성, 정상시 지연시간 우선 고려PNUT, CosmosDB
PC/EC장애시 일관성, 정상시 일관성 보장HBase

NoSQL 데이터베이스 도입시 고려사항

  • MongoDB 등 NOSQL의 오픈소스 라이센스가 SSPL로 이동함에 따라 CSP 서비스 개발시 Fork 버전 사용 등 대안 마련