데이터베이스 Flashcards
데이터베이스
[정의] 한 조직의 여러 응용시스템이 공용하기 위해 최소의 중복으로 통합, 저장된 운영 데이터의 집합
[함축적 의미] 통합 데이터,저장 데이터,운영 데이터,공용 데이터
[기본요소] 속성(Attribute), 개체(Entity), 관계(Relation)
[특징]
1. 자기 기술성(self-describing) : 데이터베이스의 정의(스키마)나 설명(메타데이터)를 포함 (시스템 카탈로그)
2. 프로그램과 데이터의 격리 및 추상화 : 사용자에게 데이터에 대한 개념적인 표현을 제공
3. 다중 뷰 제공 : 각 사용자에게 자신이 관심을 가지는 데이터베이스의 일부만을 표현하는 뷰(view)를 제공
4. 동시성 제어 : 데이터 공유와 다수 사용자 트랜잭션 처리, 데이터 일관성 보장
3단계 구조
[리드] DB 독립성 확보
[정의] 사용자, 설계자, 개발자가 DB를 바라보는 관점을 기술하고 이들간의 관계를 정의한 ANSI/SPARC 표준
[ANSI/SPARC 3단계] (내용/구현방법/관점/사례)
1. 외부 단계 : 각 사용자 관점의 뷰 / 사용자 일관성 외적 사항만 표현 / 개별 사용자 관점 / 응용 프로그램 UI(로그인, 사용자 등록 등) / 외부 스키마
2. 개념 단계 : 조직 관점으로 통합 모델링된 스키마 / 데이터의 논리적 구조, 규칙 표현 / DBA,설계자 관점 / 데이터 모델(Entity, Attribute, Table, Column) / 개념 스키마
3. 내부 단계 : 물리 장치에 실제 저장되는 방법, 형식 / DB 저장구조, 물리적 구성 표현 / 개발자 관점 / 저장 장치 구성(RAID 유형, 저장 위치등) / 내부 스키마
* 계층간 추상화를 통해 단계적 독립성 확보
[논리적 데이터 독립성]
- 논리적 구조(개념 스키마)가 변경되어도 응용 프로그램(외부 스키마)에는 영향을 주지 않도록 지원
- 사용자 특성에 맞는 변경과 통합 구조 변경 가능
[물리적 데이터 독립성]
- 저장장치 구조 변경과 같이 내부 스키마가 변경되어도, 개념 스키마에 영향을 미치지 않도록 지원
* 현실적으로 3단계 스키마는 속도와 구현 복잡도 때문에 구현을 어려워 설계 가이드로 활용
데이터 독립성
[리드] 데이터베이스 변경 영향 최소화 방안
[정의] 하위 단계의 데이터 구조가 변경되어도 상위 단계에 영향을 주지 않도록 하는 속성
[데이터 독립성 보장을 위한 3단계 시스템 구조] ANSI/SPARC의 3단계 구조 제시
[구성요소]
- 데이터 독립성 요소 : 외부 스키마(각 사용자 관점 뷰), 개념 스키마(데이터의 논리적 구조,규칙 표현), 내부 스키마(물리장지 저장구조)
- 독립성 : 논리적 데이터 독립성(사용자 특성 맞는 변경 가능), 물리적 데이터 독립성(물리적 구조 영향 없이 개념 구조 변경)
- 독립적 개념 연결 : 외부/개념 사상(외부적 뷰와 개념적 뷰의 상호 관련성 정의), 개념/내부 사상(개념적 뷰와 저장된 데이터 베이스의 상화 관련성 정의)
* 단계별 추상화로 데이터의 변경시 연관된 부분의 변경 최소화 제공
분산 데이터베이스
[정의] 논리적으로 하나의 시스템으로 구성되나 물리적으로 네트워크 를 통해 분산된 형태로 관리되는 데이터베이스
[필요성] 가용성/확장성 한계 극복
[특징] (장) 지역화, 처리 속도 향상, 가용도/신뢰성 향상, (단) 개발/처리 비용증가, 오류 잠재성
[설계전략] (복수2혼) 복제, 수평분할(Row별), 수직적 분할(Column별), 혼합방식
[구축방법] Top-Down, Bottom-Up, Hybrid
[구축시 고려사항] 네트워크 속도, 보안 기술, 백업 및 복구 기술, 클러스터링 기술
[비교] 병렬 DB vs 분산 DB
- 필요성 : 성능 한계 극복 / 확장성,가용성 한계 극복
- 구현원리 : 다수의 마이크로프로세서 동시 사용 / 물리적 위지 분산, 논리적 통합
- 특징 : 동일 위치,빠른 처리 속도, 낮은 확장성 / 다른 위치, 상대적 느린 처리, 높은 확장성
분산 데이터베이스 투명성
[정의] 분산 형태로 구성되더라도 사용자에게는 하나의 시스템으로 인식되도록 투명성 제공
[투명성] (복분규 위장이 접병)
- 복제 투명성 : 통지 없이 자유롭게 복제 가능
- 분할 투명성 : 사본이 여러 SITE에 저장
- 규모 투명성 : 변경 없이 Scale-Out 가능
- 위치 투명성 : 위치 상관없이 자원 접근
- 장애 투명성 : 노드 장애가 전체 시스템에 영향 주지 않음
- 이주 투명성 : 영향 없이 자원 이동 가능
- 접근 투명성 : 원격 자원에 접근 가능
- 병행 투명성 : 다중 사용자들이 자원을 병행 처리
그래프 데이터베이스
[리드] 관계 중심 데이터 구조, Graph 데이터베이스
[정의] Vertex, Edge 기반의 수학적 그래프 이론을 활용, 관계기반의 검색/시각적 분석 용이한 NoSQL 데이터 베이스
[특징] Schema-less(객체 형태로 저장, 다양한 형태/크기 수용), 신속한 질의 처리 속도(테이블 검색, 조인 없이 관계 횡단 기반 빠른 검색), 직관적 모델링(현실 모형과 유사, 의사결정시 활용 용이)
[구성도] 정점(Vertex)와 간선(Edge)통해 Entity와 Relation표현
[구성]
- 시스템 구성요소 : Graph Storage(데이터 저장), Graph Processing Engine(데이터 실시간 처리), Graph Query Language(데이터 효율적 저장 및 처리)
- 표현 구성요소 : Vertex(Node, 개별 객체 데이터), Edge(Relation, 객체 간 관계), Label(Group 성질 유사한 객체들의 묶음)
[구성기술] (일확사가)
- 일관성 측면 : ACID보장, 무결성 기술
- 확장성 측면 : 분산저장 기술, 도메인 활용
- 사용성 측면 : REST I/F, 그래프 계산
- 가용성 측면 : 클러스터링, Fail-Over제공
[사례] SNS분석(관계정의, 영향도 분석), MDM관리 (보조DB, 메타DB), 추천 알고리즘
[종류] Neo4j, AllegroGraph, Amazon Neptune, S2 Graph DB
인메모리 데이터베이스
[정의] 전통적인 디스크에 저장하던 DB 대신 메인 메모리(Random Access Memory, RAM)에 데이터를
저장하는 DBMS
[기술요소]
- 메모리 컴퓨팅 플랫폼 : 멀티코어 아키텍처, 64bit Address Space, 클러스터
- DBMS : 행+열 기반, T 트리 구조, 압축 기술
mmdb(main memory db)
[정의] 시스템 구동 동시에 메모리 영역에 table을 load하여 cpu의 처리 속도를 향상 시킬수 있는 DBMS
임베디드 db
[정의] 제한된 메모리와 성능을 가지고 특정기능 구현을 목적으로 하는 임베디드 시스템 환경에 적합하도록 만든 DB
자기기술성
데이터베이스의 정의(스키마)나 설명(메타데이터)를 포함(시스템 카탈로그)
마이데이터 2.0
서비스 접근제한,상세한 정보 미제공,번거로운 절차,정보유출 우려,정보 확대,영업 활성화,이용자 편의성, 정보보호,금융위원회
벡터 데이터베이스
[정의] 벡터 임베딩, 인덱싱 기반 벡터 유사성 활용, 고차원 데이터의 저장 최적화 및 검색 효율성을 향상 목적 특화 데이터베이스
[파이프라인]Vectors -> Indexing -> vector database -> Querying -> Post Processing
[기술요소]
1) 벡터 인덱싱 알고리즘: 벡터 색인화를 통한 빠른 검색 지원. 양자화(PQ)/해싱(LSH)/ 그래프기반(HNSW) 등
2) 쿼리 유사성 측정 알고리즘: 인덱스 벡터와 쿼리 벡터 비교 통한 최적 정보 검색. 코사인/유클리드/내적, ANN/KNN 등
3) 후처리 Filtering: 메타데이터 기반 최근접 항목 필터링. Post-Filtering
[활용방안]
할루시네이션 제거