1. 논리 데이터 저장소 확인
중분류 | 소분류 | 키워드 |
데이터 모델 | 데이터 모델 표시 요소 | - 연산 (Operation) - 구조 (Structure) - 제약 조건 (Constraint) |
데이터 모델 절차 (요개논물) |
- 요구사항 분석 - 개념적 설계 - 논리적 설계 (정규화) - 물리적 설계 (반정규화) |
|
논리 데이터 모델 | 논리 데이터 모델링 종류 | - 관계 데이터 모델 - 계층 데이터 모델 - 네트워크 데이터 모델 |
관계 데이터 모델 | 관계 데이터 모델 구성 | - 릴레이션 (Relation) - 튜플 (Tuple) - 속성 (Attribute) - 카디널리티 (Cardinality) - 차수 (Degree) - 스키마 (Schema) - 인스턴스 (Instance) |
관계 연산 | 관계 대수와 관계 해석 | - 관계 대수 : 절차적 언어 - 관계 해석 : 비절차적 언어 |
관계 대수 연산자의 종류 | - 일반 집합 연산자 : 합집합(∪), 교집합(∩), 차집합(-), 카티션 프로덕트(X) - 순수 관계 연산자 : 셀렉트(σ), 프로젝트(π), 조인(⋈), 디비전(÷) |
|
ERD | 논리 데이터 모델링 속성 (ERD) |
- 개체 (Entity) - 속성(Attribute) - 관계 (Relationship) |
ERD 다이어그램 기호 | - 개체 집합 : □ - 관계 집합 : ◇ - 속성 : ○ - 다중 값 속성 : ◉ - 개체 집합 - 관계 집합 연결 : ─ - 개체 집합 - 속성 연결 : ─ - 관계 집합 - 속성 연결 : --- |
|
정규화와 반정규화 | 정규화 단계 (Nomalization) |
1NF : 도메인이 원자값 2NF : 부분함수 종속 제거 3NF : 이행함수 종속 제거( A→ B , B→C 이면 A→C) BCNF : 결정자 후보 키가 아닌 함수 종속 제거 4NF : 다치(다중 값) 종속 제거 5NF : 조인 종속 제거 |
함수 종속 | - 부분 함수 종속 - 완전 함수 종속 - 이행 함수 종속 |
|
반정규화, 비정규화 (De-Nomalization) |
- 정규화된 데이터 모델을 성능 개선이나 사용 편의성을 위해 다시 중복되도록 통합하거나 속성을 추가하는 과정 | |
이상현상 | 이상현상의 종류 | - 삽입 이상 - 삭제 이상 - 갱신 이상 |
1.1 데이터 모델
🤔 데이터 모델(Data Model) 이란?
현실 세계의 정보를 인간과 컴퓨터가 이해할 수 있도록 추상화하여 표현한 모델
(1) 데이터 모델 표시 요소
요소 | 설명 |
연산 (Operation) |
- 데이터베이스에 저장된 실제 데이터를 처리하는 작업에 대한 명세 - 릴레이션을 조작하기 위한 관계 연산을 나타낸다 |
구조 (Structure) |
- 데이터베이스에 논리적으로 표현될 대상으로서의 개체 타입과 개체 타입 간의 관계 - 데이터 구조 및 정적 성질을 표현하는 요소 |
제약 조건 (Constraint) |
- 데이터베이스에 저장될 수 있는 실제 데이터의 논리적인 제약 조건 - 데이터 무결성 유지를 위한 DB의 보편적 방법 - 릴레이션의 특정 컬럼에 설정하는 제약을 의미한다 |
(2) 데이터 모델 절차
단계 (요개논물) | 설명 |
요구조건 분석 | - 도출된 요구사항 간 상충을 해결하고, 범위를 파악하여 외부 환경과의 상호작용을 분석 |
개념적 설계 | - 사용자의 요구에 대한 트랜잭션을 모델링하는 단계 - 현실세계에 대한 인식을 추상적, 개념적으로 표현하여 개념적 구조를 도출하는 데이터 모델 - 개념적 데이터모델은 DB 종류와 관계가 없다 - 개체 - 관계 다이어그램 (ERD)가 주요 산출물 |
논리적 설계 | - 트랜잭션의 인터페이스를 설계 - DBMS에 맞는 논리적 스키마를 설계 - 정규화 수행 - 논리적 데이터 베이스 구조로 매핑 - 스키마의 평가 및 정제 - 관계형 데이터베이스에서 테이블 설계 |
물리적 설계 | - 논리 데이터 모델을 특정 DBMS의 특성 및 성능을 고려하여 물리적인 스키마를 만드는 단계 - DBMS의 특성을 고려하여 데이터베이스 저장구조(물리 데이터 모델)로 변환하는 모델 - 테이블, 인덱스, 뷰, 파티션 등 객체를 생성 - 응답 시간, 저장 공간의 효율화, 트랜잭션 처리를 고려하여 설계 - 성능 측면에서 반 정규화를 수행 - 레코드 집중의 분석 및 설계 - 저장 레코드 양식 설계 - 접근 경로 설계 |
1.2 논리 데이터 모델
(1) 논리데이터 모델링 종류
종류 | 설명 |
관계 데이터 모델 | - 논리적 구조가 2차원 테이블 형태로 구성된 모델 - 기본키(PK)와 이를 참조하는 외래키 (FK)로 관계 표현 - 1:1, 1:N, N:M 관계 |
계층 데이터 모델 | - 논리적 구조가 트리 형태로 구성된 모델 - 상하 관계가 존재 - 1:N 관계만 허용 |
네트워크 데이터 모델 | - 논리적 구조가 그래프 형태로 구성된 모델 - 상위와 하위 레코드 사이에 N:M 관계를 만족하는 구조 |
1.3 관계 데이터 모델
🤔 관계 데이터 모델이란?
데이터를 행과 열로 구성된 2차원 테이블 형태로 구성한 모델이다.
수학자 E.F.Codd 박사가 제안한 모델이다
(1) 관계 데이터 모델의 구성
구성요소 | 설명 |
릴레이션 (Relation) |
- 행(Row)과 열(Column)로 구성된 테이블 |
튜플 (Tuple) |
- 릴레이션의 행(Row) |
속성 (Attribute) |
- 릴레이션의 열(Column) |
카디널리티 (Cardinality) |
- 튜플(Row)의 수 |
차수 (Degree) |
- 속성(Column)의 수 |
스키마 (Schema) |
- 데이터베이스의 구조, 제약 조건 등의 정보를 담고 있는 기본적인 구조 |
인스턴스 (Instance) |
- 정의된 스키마에 따라 생성된 테이블에 실제 저장된 데이터의 집합 |
1.4 관계 연산
(1) 관계 대수와 관계 해석
구분 | 설명 |
관계 대수 | - 관계형 데이터베이스에서 원하는 정보를 어떻게 유도하는가를 기술하는 절차적 정형 언어 |
관계 해석 | - 튜플 관계 해석과 도메인 관계 해석을 하는 비절차적 언어 - 원하는 정보가 무엇인지만 선언 |
(2) 관계 대수 연산자의 종류
구분 | 연산자 | 기호 | 표현 | 설명 |
일반 집합 연산자 |
합집합 (Union) |
∪ | R ∪ S | - 두 릴레이션의 모든 튜플을 합침 |
교집합 (Intersection) |
∩ | R ∩ S | - R과 S에 속하는 모든 튜플 | |
차집합 (Difference) |
− | R − S | - R에는 있고, S에는 없는 튜플 | |
교차 곱 (CARTESIAN Product) |
× | R ÷ S | - 두 릴레이션의 모든 조합 | |
순수 관계 연산자 |
선택 (Selection) |
σ | σ조건(R) | - 조건에 맞는 튜플(행)을 선택 |
투사 (Projection) |
π | π속성리스트(R) | - 원하는 속성(열)만 추출 | |
조인 (Join) |
⋈ | R ÷ S | - 조건에 맞는 두 릴레이션의 튜플을 합침 | |
나누기 (Division) |
÷ | R ÷ S | - S의 모든 값과 관련된 R의 튜플만 선택 |
1.5 ERD
🤔ERD(Entity Relationship Diagram)란?
요구사항을 통해 얻은 정보들을 개체, 속성, 관계로 기술한 모델
(1) 논리 데이터 모델링 속성 (ERD)
구분 | 설명 |
개체 (Entity) |
- 관리할 대상이 되는 실체 - 사물 또는 사건으로 정의되며 개체라고도 한다 - 사각형으로 표시 |
속성 (Attributes) |
- 관리할 정보의 구체적 항목 - 개체가 가지고 있는 요소 또는 성질 - 타원형으로 표시 |
관계 (Relationship) |
- 개체 간의 대응 관계 - 두 개체간의 관계를 정의 ![]() |
(2) ERD 다이어그램 기호
종류 | 기호 |
개체 집합 | 사각형 (□) |
관계 집합 | 마름모 (◇) |
속성 | 원형 (○) |
다중 값 속성 | ◉ |
개체 집합 - 관계 집합 연결 | 실선 (─) |
개체 집합 - 속성 연결 | 실선 (─) |
관계 집합 - 속성 연결 | 점선 (---) |
1.6 정규화와 반정규화
🤔 정규화(Nomalization)란?
중복 데이터를 제거하고, 데이터의 일관성과 무결성을 유지하기 위해 테이블을 작은 단위로 분리하는 과정
(1) 정규화 단계
정규화 단계 | 설명 |
1정규형 (1NF) |
- 원자 값으로 구성 - 반복 속성 / 중복 제거가 필요하다 |
2정규형 (2NF) |
- 부분 함수 종속 제거 (완전 함수적 종속 관계) - 주식별자가 아닌 속성을 분리한다 |
3정규형 (3NF) |
- 이행 함수 종속 제거 - 속성에 종속적인 속성을 분리한다 |
보이스-코드 정규형 (BCNF) |
- 결정자 함수이면서 후보키가 아닌 것 제거 - 모든 결정자가 후보키이다 |
4정규형 (4NF) |
- 다치(다중 값) 종속 제거 - 특정 속성 값에 따라 선택적인 속성을 분리한다 |
5정규형 (5NF) |
- 조인 종속 제거 |
(2) 함수 종속
🤔 함수 종속(FD; Functional Dependency)이란?
릴레이션에서 속성의 의미와 속성 간 상호 관계로부터 발생하는 제약조건으로
X는 결정자(Determinant), Y는 종속자(Dependent)이다.
종류 | 설명 |
함수적 종속 (Functional Dependency) |
- X → Y일 때, X의 값이 Y를 유일하게 결정하는 경우 - 학번 → 이름 : 학번이 이름을 유일하게 결정 |
완전 함수 종속 (Full Function Dependency) |
- 기본키가 여러 속성으로 이루어져 있을 때, 모두 필요해서 Y가 결정되는 경우 - {학생 ID, 과목 ID} → 성적 : 둘 중 하나의 값 만으로는 성적을 결정할 수 없음 |
부분 함수 종속 (Partial Functional Dependency) |
- 기본키의 일부 속성만으로 Y를 결정하는 경우 - {학생 ID, 과목 ID} 중 과목 ID 만으로 과목명이 결정 |
이행 함수 종속 (Transitive Dependency) |
- X → Y이고 Y → Z이면 X → Z가 성립할 경우 - 직원ID → 부서 → 부서명 → 직원ID → 부서명 |
(3) 반정규화/비정규화
🤔 반정규화(De-Nomalization)란?
정규화된 데이터 모델을 성능 개선이나 사용 편의성을 위해 다시 중복되도록 통합하거나 속성을 추가하는 과정
1.7 이상현상
구분 | 설명 |
삽입 이상 | - 정보 저장 시 해당 정보의 세부 정보를 입력해야 하는 경우 |
삭제 이상 | - 정보 삭제 시 원치 않는 다른 정보가 같이 삭제되는 경우 |
갱신 이상 | - 중복 데이터 중에서 특정 부분만 수정되어 중복된 값이 모순을 일으키는 경우 |
2. 물리 데이터
중분류 | 소분류 | 키워드 |
무결성 | 무결성 종류 | - 개체 무결성 (Entity Integrity) - 참조 무결성 (Referential Integrity) - 도메인 무결성 (Domain Integrity) - 사용자 정의 무결성 (User-Defined Integrity) - 키 무결성 (Key Integrity) - 속성 무결성 (Attribute Integrity) - Null 무결성 - 관계 무결성 (Relationship Integrity) - 고유 무결성(Unique Integrity) |
참조 무결성 제약 조건 | - 제한 (RESTRICT) - 연쇄 (CASCADE) - 널 값 (SET NULL) |
|
키 (Key) |
키의 속성 | - 유일성 (Unique) - 최소성 (Minimality) |
키의 종류 | - 기본키 (Primary Key) - 대체키 (Alternate Key) - 후보키 (Candidate Key) - 슈퍼키 (Super Key) - 외래키 (Foreign Key) - 복잡키 |
|
인덱스, 뷰, 클러스터 | 인덱스 | - 클러스터드 인덱스 (Clustered Index) - 넌클러스터드 인덱스 (Non-Clustered Index) |
뷰 | - 가상 테이블 - CREATE : 생성, DROP : 제거 |
|
클러스터 | - 단일 테이블 클러스터링 - 다중 테이블 클러스터링 |
|
파티션 (Partition) |
파티션의 종류 | - 범위 분할 (Range Partitioning) - 해시 분할 (Hash Partitioning) - 리스트 분할 (List Partitioning) - 조합 분할 (Composite Partitioning) - 라운드-로빈 (Round-Robin) |
파티션의 장점 | - 성능 향상 - 가용성 향상 - 백업 가능 - 경합 감소 |
2.1 무결성 제약
🤔 데이터베이스 무결성이란?
데이터베이스에서 항상 일관성을 갖고 데이터의 유효성, 정확성, 안정성을 유지할 수 있도록 제약조건을 두는 특성이다
(1) 무결성 종류
구분 | 설명 |
개체 무결성 (Entity Integrity) |
- 기본 테이블의 기본키를 구성하는 어떤 속성도 Null 값이나 중복 값을 가질 수 없다 |
참조 무결성 (Referential Integrity) |
- 외래키 값은 Null 이거나 참조 릴레이션의 기본키 값과 동일해야 한다 |
도메인 무결성 (Domain Integrity) |
- 주어진 속성 값이 정의된 도메인에 속한 값이어야 한다 |
사용자 정의 무결성 (User-Defined Integrity) |
- 속성 값들이 사용자가 정의한 제약 조건에 만족해야 한다 |
키 무결성 (Key Integrity) |
- 하나의 릴레이션에는 적어도 하나의 키가 존재해야 한다 |
속성 무결성 (Attribute Integrity) |
- 속성의 값은 기본값, Null 여부, 도메인이 지정된 규칙을 준후해야 한다 |
Null 무결성 | - 릴레이션의 특정 속성 값이 Null이 될 수 없도록 한다 |
관계 무결성 (Relationship Integrity) |
- 릴레이션에 어느 한 튜플의 삽입 가능 여부 - 한 릴레이션과 다른 릴레이션의 튜플들 사이의 관계에 대한 적절성 여부 |
고유 무결성 (Unique Integrity) |
- 릴레이션의 특정 속성에 대해 각 튜플이 갖는 속성 값들이 서로 달라야 한다 |
(2) 참조 무결성 제약조건
🤔 참조 무결성 제약 조건이란?
릴레이션 간 참조의 일관성을 보장하기 위한 조건으로,
두 개의 릴레이션이 기본키, 외래키를 통해 참조 관계를 형성할 경우
참조하는 외래키 값은 항상 참조되는 릴레이션의 기본키로 존재해야한다
제약조건 | 설명 |
제한 (Restricted) |
- 참조 중인 외래키가 있을 경우, 부모 행 삭제/수정 불가 |
연쇄 (Cascade) |
- 부모 튜플을 삭제하면, 해당 부모를 참조하는 자식 튜플도 함께 삭제됨 |
널 값 (SET NULL) |
- 부모 튜플이 삭제되면, 그 부모를 참조하던 자식 튜플의 외래키를 NULL로 변경함 |
2.2 키 (Key)
🤔 키(Key)란?
데이터베이스에서 조건을 만족하는 튜플을 찾거나 순서대로 정렬할 때,
다른 튜플들과 구별할 수 있는 기준이 되는 속성
(1) 키의 속성
키의 속성 | 설명 |
유일성 (Unique) |
- 식별자로 인해 인티티 타입 내 모든 엔티티들이 유일하게 구분 |
최소성 (Minimality) |
- 최소한의 속성으로 식별자 구성 |
(2) 키의 종류
구분 | 설명 | 특징 요약 |
기본키 (Primary Key) |
- 후보키 중 하나를 선택하여 NOT NULL + 유일성을 보장한 키 | - 후보키 + NOT NULL |
대체키 (Alternate Key) |
- 기본키로 선택되지 않은 다른 후보키 - UNIQUE 제약을 통해 유일성 유지 |
- 기본 키 외 후보키, UNIQUE 제약 |
후보키 (Candidate Key) |
- 슈퍼키 중 최소성을 만족하는 속성 집합 | - 유일성 + 최소성 |
슈퍼키 (Super Key) |
- 데이터 베이스에서 튜플 검색이나 정렬의 기준이 되는 속성 | - 유일성 |
외래키 | - 다른 릴레이션의 기본키나 후보키를 참조하여 참조무결성을 보장 | - 다른 테이블 키 참조, 참조 무결성 |
복잡키 | - 둘 이상 속성의 조합으로 구성된 키 | - 여러 속성 조합으로 구성된 키 |
2.3 인덱스, 뷰, 클러스터
(1) 인덱스
🤔 인덱스(Index)란?
검색 연산의 최적화를 위해 데이터베이스 내 열에 대한 정보를 구성한 데이터 구조
구분 | 설명 |
클러스터드 인덱스 (Clustered Index) |
- 인덱스 키의 순서에 따라 데이터가 정렬되어 저장되는 방식 |
넌클러스터드 인덱스 (Non-Clustered Index) |
- 인덱스의 키만 정렬되어 있고 실제 데이터는 정렬되지 않은 방식 |
(2) 뷰
🤔 뷰(View)란?
접근이 허용된 자료만 제한적으로 보여주기 위해 기본 테이블로부터 유도된 가상의 테이블
CREATE로 생성하고, DROP으로 제거한다
(3) 클러스터
🤔 클러스터(Cluster)란?
동일한 성격의 데이터를 동일한 테이블 블록에 물리적으로 저장하여 엑세스 효율을 향상시키는 방법
데이터의 분포도가 넓은 테이블은 클러스터링을 통해 저장공간을 절약할 수 있다.
처리 범위가 넓다면 단일 테이블 클러스터링을 이용하고,
조인이 많이 발생한다면 다중 테이블 클러스터링을 이용한다.
2.4 파티션 (Partition)
🤔 파티셔닝 (Partitioning)이란?
테이블 또는 인덱스 데이터를 파티션(Partion) 단위로 나누어 저장하는 기법
(1) 파티션의 종류
종류 | 설명 |
범위 분할 (Range Partitioning) |
- 연속적인 숫자나 날짜를 기준으로 하는 파티셔닝 기법 |
해시 분할 (Hash Partitioning) |
- 파티션 키의 해시 함수 값에의한 파티션 기법 |
리스트 분할 (List Partitioning) |
- 특정 파티션에 저장될 데이터에 대한 명시적 제어가 가능한 파티셔닝 기법 |
조합 분할 (Composite Partitioning) |
- 범위 분할에 이후 해시 함수를 적용하여 재분할하는 파티셔닝 기법 |
라운드-로빈 (Round-Robin) |
- 라운드로빈 분할로 회전하면서 새로운 파티션에 할당하는 방식 |
(2) 파티션의 장점
장점 | 설명 |
성능 향상 | - 데이터 액세스 범위를 줄여 성능 향상 |
가용성 향상 | - 전체 데이터의 훼손 가능성이 감소 및 데이터 가용성 향상 |
백업 가능 | - 분할 영역을 독립적으로 백업하고 복구 가능 |
경합 감소 | - 디스크 스트라이핑으로 입출력 성능을 향상, 디스크 컨트롤러에 대한 경합의 감소 - 디스크 스트라이핑 (Disk Striping) : 성능 향상을 위해 데이터를 1개 이상의 디스크 드라이브에 저장하여 드라이브를 병렬로 사용할 수 있는 기술 |
3. 데이터 베이스 기초 활용하기
중분류 | 소분류 | 키워드 |
데이터베이스 |
데이터베이스 정의 | - 통합된 데이터 : 자료의 중복을 배제한 데이터의 모임 - 저장된 데이터 : 저장 매체에 저장된 데이터 - 운영 데이터 : 조직의 업무를 수행하는 데 필요한 데이터 - 공용 데이터 : 여러 애플리케이션, 시스템들이 공동으로 사용하는 데이터 |
데이터베이스 특성 | - 실시간 접근성 - 계속적인 변화 - 동시 공용 - 내용 참조 |
|
데이터베이스 종류 | - 관계형 데이터베이스 시스템 (RDBMS) - 계층형 데이터베이스 시스템 (HDBMS) - 네트워크 데이터베이스 관리시스템 (NDBMS) |
|
파일 시스템의 종류 | - ISAM (Indexed Sequential Access Method) - VSAM (Virtural Storage Method) |
|
DBMS (Database Management System) |
DBMS 유형 | - 키 값 DBMS - 컬럼 기반 데이터 저장 DBMS - 문서 저장 DBMS - 그래프 DBMS |
DBMS 특징 | - 데이터 무결성 - 데이터 일관성 - 데이터 회복성 - 데이터 보안성 - 데이터 효율성 |
|
빅데이터 | 빅데이터 기술 | - HDFS - 맵 리듀스 |
NoSQL | NoSQL의 특성 (BASE) |
- Basically Available (가용성) - Soft-state (독립성) - Eventually Consistency (일관성) |
NoSQL 유형 | - Key-Value Store - Column Family Data Store - Document Store - Graph Store |
|
데이터 마이닝 (Data Mining) |
데이터 마이닝 주요 기법 | - 분류 규칙(Classification) - 연관 규칙(Association) - 연속 규칙(Sequence) - 데이터 군집화(Clustering) |
응용 기술 | - 텍스트 마이닝 (Text Mining) - 웹 마이닝(Web Mining) |
|
그 외 DB 기술 | 종류 | - 온톨로지 (Onthology) - 시멘틱 웹 (Semantic Web) |
3.1 데이터베이스
🤔 데이터베이스란?
다수의 인원, 시스템 또는 프로그램이 사용할 목적으로 통합하여 관리되는 데이터의 집합으로,
데이터에 대한 효과적인 관리를 위해 자료의 중복성 제거, 무결성 확보, 일관성 유지, 유용성 보장이 중요하다
(1) 데이터베이스 정의
정의 | 설명 |
통합된 데이터 (Integrated Data) |
- 자료의 중복을 배제한 데이터의 집합 |
저장된 데이터 (Stored Data) |
- 저장 매체에 저장된 데이터 |
운영 데이터 (Operational Data) |
- 조직의 업무를 수행하는 데 필요한 데이터 |
공용 데이터 (Shared Data) |
- 여러 애플리케이션, 시스템들이 공통으로 사용하는 데이터 |
(2) 데이터베이스 특성
특성 | 설명 |
실시간 접근성 (Real-Time Accessibility) |
- 쿼리에 대해 실시간 응답이 가능하다 |
계속적인 변화 (Continuous Evolution) |
- 새로운 데이터의 삽입(Insert), 삭제(Delete), 갱신(Update)으로 항상 최신의 데이터를 유지한다 |
동시 공용 (Concurrent Sharing) |
- 다수의 사용자가 동시에 같은 내용의 데이터를 이용할 수 있다 |
내용 참조 (Content Reference) |
- 데이터베이스에 있는 데이터를 참조할 때, 사용자가 요구하는 데이터 내용으로 데이터를 찾는다 |
(3) 데이터베이스 종류
DB 종류 | 설명 |
관계형 데이터베이스 관리 시스템 (RDBMS; Relational Database Management System) |
- 관계형 모델을 기반으로 하는 데이터베이스 관리 시스템 - 데이터를 저장하는 테이블의 일부를 다른 테이블과 상하 관계로 표시 - 유연성이 좋아 유지 관리가 용이 - 종류 : Oracle, SQL Server, MySQL, Maria DB |
계층형 데이터베이스 관리 시스템 (HDBMS ; Hierarchical Database Management System) |
- 데이터를 상하 종속적인 관계로 계층화하여 관리하는 데이터베이스 - 데이터에 대한 접근속도가 빠름 - 변화하는 데이터 구조에 유연하게 대응이 어려움 |
네트워크 데이터베이스 관리 시스템 (NDBMS ; Network Database Management System) |
(4) 파일 시스템의 종류
🤔 파일시스템(File System)이란?
파일에 이름을 부여하고 저장이나 검색을 위해 논리적으로 어디에 위치시켜야 하는지 정의한 후 관리하는 데이터 관리방식
데이터베이스 전 단계이다
종류 | 설명 |
ISAM (Indexed Sequential Access Method) |
- 자료 내용은 주 저장부, 자료 색인은 자료가 기록된 위치와 함께 색인부에 기록되는 시스템 |
VSAM (Virtural Storage Method) |
- 대형 운영체제에서 사용되는 파일 관리 시스템 |
3.2 DBMS
🤔 DBMS(Database Management System)란?
데이터 관리의 복잡성을 해결하고, 데이터 추가, 변경, 검색, 삭제 및 백업, 복구, 보안 등의 기능을 지원하는 소프트웨어
(1) DBMS 유형
유형 | 설명 |
키 값 DBMS | - Unique한 키에 하나의 값을 가지고 있는 형태 |
컬럼 기반 데이터 저장 DBMS | - Key안에 (Column, Value) 조합으로 된 여러 개의 필드를 갖는 DBMS - 테이블 기반, 조인 미지원, 컬럼 기반의 구글 Bigtable 기반으로 구현 |
문서 저장 DBMS | - 값의 데이터 타입이 문서 타입인 DBMS - 문서 타입은 XML, JSON과 같은 구조화된 데이터 타입으로, 복잡한 계층 구조 표현 가능 |
그래프 DBMS | - 그래프로 데이터를 표현하는 DBMS - 시맨틱 웹과 온톨로지 분야에 사용 - 노드와 엣지로 특징되는 요소 특화 - 노드간 관계를 구조화 하여 저장 |
(2) DBMS 특징
특징 | 설명 |
데이터 무결성 | - 부적절한 자료가 입력되어 동일한 내용에 대해 서로 다른 데이터가 저장되는 것을 허용하지 않는 성질 |
데이터 일관성 | - 생성, 삽입, 갱신, 삭제 후에도 저장된 데이터가 변함없이 일정 |
데이터 회복성 | - 장애가 발생했을 때, 특정 상태로 복구되어야 하는 성질 |
데이터 보안성 | - 불법적인 노출, 변경, 손실로부터 보호되어야 하는 성질 |
데이터 효율성 | - 응답 시간, 저장 공간 활용 등이 최적화 되어 사용자, 소프트웨어, 시스템 등의 요구조건을 만족시켜야 하는 성질 |
3.3 빅데이터
🤔 빅데이터(Big Data)란?
시스템, 서비스, 조직 등에서 주어진 비용, 시간 내에 처리 가능한 데이터 범위를 넘어서는 수십 페타바이트(PB) 크기의 비정형 데이터
빅데이터 종류 | 설명 |
HDFS (Hadoop Distributed File System) |
- 대용량 데이터의 집합을 처리하는 응용 프로그램에 적합하도록 설계된 하둡 분산 파일 시스템 |
맵리듀스 (Map Reduce) |
- 구글에서 대용량 데이터 처리를 분산 병렬 컴퓨팅에서 처리하기 위한 목적으로 제작하여 2004년에 발표한 소프트웨어 프레임 워크 |
3.4 NoSQL
🤔 NoSQL(Not Only SQL)이란?
데이터 저장에 고정된 테이블 스키마가 필요하지 않고, 조인 연산을 사용할 수 없는 수평적 확장이 가능한 DBMS
(1) NoSQL 특성
특성 (BASE) | 설명 |
Basically Available | - 언제든지 데이터는 접근할 수 있어야 하는 속성 - 분산 시스템이기에 항상 가용성이 중요 |
Soft-State | - 노드의 상태는 외부에서 전송된 정보를 통해 결정되는 속성 - 특정 시점에서는 데이터의 일관성이 보장되지 않는다 |
Eventually Consistency | - 일정 시간이 지나면 데이터의 일관성이 유지되는 속성 |
(2) NoSQL 유형
유형 | 설명 |
Key-Value Store | - Unique한 Key에 하나의 Value를 가지고 있는 형태 - 키 기반 Get / Put / Delete를 제공하는 빅데이터 처리가 가능한 DB - 예 : Redis, Dynamo DB |
Column Family Data Store | - Key 안에 (Column, Value) 조합으로 된 여러 개의 필드를 갖는 DBMS - 예 : HBase, Cassandra |
Document Store | - 값의 데이터 타입이 문서 타입인 DBMS - 문서 타입은 XML, JSON과 같은 구조화된 데이터 타입으로, 복잡한 계층 구조 표현 가능 - 예 : MongoDB, Couchbase |
Graph Store | - 그래프로 데이터를 표현하는 DBMS - 시맨틱 웹과 온톨로지 분야에 사용 - 예 : Neo4j, AllegroGraph |
3.5 데이터마이닝
🤔 데이터마이닝(Data Mining)이란?
대규모로 저장된 데이터 안에서 체계적이고 자동적으로 통계적 규칙이나 패턴을 찾아내는 기술
(1) 데이터마이닝 주요 기법
주요 기법 | 설명 |
분류 규칙 (Classification) |
- 과거 데이터로부터 특성을 찾아내어 분류 모형을 만들고 이를 토대로 새로운 레코드 결과 값을 예측하는 기법 |
연관 규칙 (Association) |
- 데이터 안에 존재하는 항목들 간의 종속 관계를 찾아내는 기법 |
연속 규칙 (Sequence) |
- 연관 규칙에 시간 관련 정보가 포함된 형태의 기법 |
데이터 군집화 (Clustering) |
- 대상 레코드들을 유사한 특성을 지는 몇 개의 소그룹으로 분할하는 작업 - 분류 규칙과 유사 |
(2) 응용 기술
종류 | 설명 |
텍스트 마이닝 (Text Mining) |
- 대량의 텍스트 데이터로부터 패턴 또는 관계를 추출하여 의미있는 정보를 찾아내는 기법 |
웹 마이닝 (Web Mining) |
- 웹으로부터 얻어지는 방대한 정보를 통해 유용한 정보를 찾기 위해 분석하는 기법 |
3.6 그 외 DB 기술
종류 | 설명 |
온톨로지 (Onthology) |
- 실세계에 존재하는 모든 개념들과 개념들의 속성, 개념들 간의 관계 정보를 컴퓨터가 이해할 수 있도록 서술해 놓은 지식 베이스 |
시멘틱 웹 (Semantic Web) |
- 온톨로지를 활용하여 서비스를 기술하고, 온톨로지 의미적 상호운용성을 이용하여 서비스 검색, 조합, 중재 기능을 자동화 하는 웹 |
728x90