데이터 과학
데이터 과학
데이터 과학(Data Science)
- 데이터의 방대한 규모와 다양한 형태, 다양해진 데이터 활용에 대한 요구 속에 등장
- 데이터를 수집한 후 분석을 통해 데이터를 정확히 이해함으로써 그 속에 숨겨진 새로운 지식을 발견하고, 이를 문제 해결에 활용하는 모든 과정의 활동을 의미
- 데이터 생성, 수집, 저장, 분석, 표현의 모든 과정과 연관
- 컴퓨터 과학, 통계학, 적용 분야에 대한 이해를 필요로 하는 복합적인 기술
DIKW 계층 구조
DIKW (Data-Information-Knowledge-Wisdom) 계층 구조
- Data: 관찰하거나 측정하여 수집한 사실이나 값
- Information: 상황에 대한 이해를 바탕으로 데이터를 목적에 맞게 가공한 것
- Knowledge: 규칙이나 패턴을 통해 찾아낸 의미 있고 유용한 정보
- Wisdom: 지식에 통찰력을 더해 새롭고 창의적인 아이디어를 도출한 것
빅데이터
빅데이터 (Big Data)
빅데이터 (Big Data)
- 기존 데이터베이스가 저장하고 관리할 수 있는 범위를 넘어서는 대규모의 다양한 데이터
- 넓은 의미에서 대규모 데이터를 저장 및 관리하는 기술과 가치 있는 정보를 만들기 위해 분석하는 기술까지 포함
빅데이터의 특징: 3V
- 데이터양(Volume)
- 테라바이트(TB) 단위 이상의 대량 데이터
- 여러 경로를 통해 계속 생성되고 있는 많은 양의 데이터를 의미
- 속도(Velocity)
- 데이터의 수집과 분석을 정해진 시간 내에 처리해야 함
- 많은 양의 데이터가 생성되고 전달되는 속도가 빠르므로 수집 및 분석 작업도 실시간으로 진행되어야 함
- 다양성(Variety)
- 형태의 다양성이 존재 - 정형, 반정형, 비정형 같은 다양한 데이터 모두 포함
👉 빅데이터를 양적 측면의 대규모 데이터를 넘어서 질적 측면의 다양한 형태를 포함하는 대규모 데이터로 이해해야 함
빅데이터 기술
- 저장 기술
- 분석 기술
- 표현 기술
빅데이터 저장 기술
하둡(Hadoop)
- 대용량 데이터를 분산 처리할 수 있는 자바 기반의 오픈 소스 프레임워크
- 분산 파일 시스템인 HDFS(Hadoop Distributed File System)에 데이터를 저장하고, 분산 처리 시스템인 맵리듀스(MapReduce)를 이용해 데이터를 처리
- 오픈 소스이기 때문에 기존 데이터베이스 시스템보다 비용이 적게 들고, 여러 대의 서버에 데이터를 분산해서 저장해두기 때문에 처리 속도가 빠름
NoSQL
- 관계 데이터 모델과 SQL을 사용하지 않는 데이터베이스 시스템
- 일관성보다는 가용성과 확장성에 중점
- 비정형 데이터의 저장을 위해 유연한 데이터 모델을 지원하고, 관계 데이터베이스와 동일한 데이터 처리가 가능하면서도 더 저렴한 비용으로 분산 처리와 병렬 처리가 가능
- ex. H베이스, 카산드라, 몽고DB, 카우치DB 등
빅데이터 분석 기술
텍스트 마이닝(text mining)
- 반정형 또는 비정형 텍스트에서 자연어 처리 기술로 정보를 추출하고 가공
오피니언 마이닝(opinion mining)
- SNS, 블로그, 게시판 등에 기록된 사용자들의 의견을 수집하고 분석하여, 제품이나 서비스에 대한 긍정, 부정, 중립 등의 선호도를 추출
소셜 네트워크 분석(social network analysis)
- 소셜 네트워크의 연결 구조나 강도 등을 바탕으로 소셜 네트워크에 나타난 영향력, 관심사, 성향, 행동 패턴 등을 추출
군집 분석(cluster analysis)
- 데이터 간의 유사도를 측정한 후 이를 바탕으로 특성이 비슷한 데이터를 합쳐가면서 최종적으로 유사 특성의 데이터 집합을 추출
빅데이터 표현 기술
R 언어
- 데이터 분석을 통해 추출한 의미와 가치를 시각적으로 표현하기 위해 사용
- 다양한 프로그래밍 언어와 연동 가능하고 다양한 운영체제를 지원하며, 하둡 환경에서 분산 처리를 지원하는 라이브러리를 제공
빅데이터 저장 기술: NoSQL
NoSQL(Not Only SQL)
NoSQL
- 빠른 속도로 생성되는 대량의 비정형 데이터를 저장하고 처리하기 위해 ACID(원자성, 일관성, 격리성, 지속성)를 위한 트랜잭션 기능을 제공하지 않는 대신 저렴한 비용으로 여러 대의 컴퓨터에 데이터를 분산∙저장∙처리하는 것이 가능한 데이터베이스
- 관계 모델보다 더 융통성 있는 데이터 모델을 사용
- 스키마 없이 동작하기 때문에 데이터 구조를 미리 정의할 필요가 없고 수시로 그 구조를 바꿀 수 있어 비정형 데이터를 저장하기에 적합
관계 데이터베이스 vs. NoSQL
- 관계 데이터베이스
- 장점: 트랜잭션을 통해 일관성을 유지하고, 외래키로 테이블 간의 관계를 표현함으로써 조인과 같은 복잡한 질의 처리가 가능
- 단점: 빠른 속도로 증가하는 대량의 비정형 데이터를 저장하는 데 확장성 측면에서 비효율적
- NoSQL
- 장점: 트랜잭션 기능을 제공하는 않고 정해진 스키마도 없기 때문에 자유롭게 구조를 바꾸며 대량의 비정형 데이터를 빠르게 저장하고 처리할 수 있음
- 단점: SQL 대신 별도의 분석 기술을 이용해 데이터 속에 숨겨진 의미를 찾아내야 함
- 관계 데이터베이스가 적합하지 않은 새로운 환경에서 선택의 폭을 넓히기 위한 대안 == NoSQL
- 저장될 데이터의 형태와 처리 목적에 더 적합한 것을 선택
구분 | 관계 데이터베이스 | NoSQL |
처리 데이터 | 정형 데이터 | 정형, 비정형, 반정형 데이터 |
대용량 데이터 | 대용량 처리 시 성능 저하 | 대용량 데이터 처리 지원 |
스키마 | 미리 정해진 스키마 존재 | 스키마가 없거나 변경이 자유로움 |
트랜잭션 | 트랜잭션을 통해 일관성 유지를 보장 | 트랜잭션을 지원하지 않아 일관성 유지를 보장하기 어려움 |
검색 기능 | 조인 등의 복잡한 검색 기능 제공 | 단순한 데이터 검색 기능 제공 |
확장성 | 클러스터 환경에 적합하지 않음 | 클러스터 환경에 적합 |
라이선스 | 고가의 라이선스 비용 | 오픈 소스 |
대표적 사례 | Oracle, MySQL, MS SQL Server | 카산드라, MongoDB, H베이스 |
NoSQL 종류
키-값(key-value) 데이터베이스
- 키와 값의 쌍으로 데이터가 저장되는 가장 단순한 형태
- 이미지와 동영상은 물론 어떠한 형태의 값도 저장 가능
- 질의 처리 속도 빠름
- 키를 이용해 값 전체를 검색할 수는 있지만, 값의 일부를 검색하거나 값의 내용을 이용한 질의는 할 수 없고 별도의 처리가 필요
- ex. 아마존의 다이나모DB(DynamoDB), 트위터 등에서 사용되는 레디스(Redis)
문서 기반(document-based) 데이터베이스
- 키와 문서의 쌍으로 데이터를 저장 - 키-값 데이터 모델이 확장된 형태
- 트리 형태의 계층적 구조가 존재하는 JSON, XML 등과 같은 반정형 형태의 문서로 데이터를 저장
- 문서는 객체지향에서 객체의 개념과 유사
- 문서 전체를 검색하는 것도 가능하지만, XQuery와 같은 특별한 문서 대상 질의 언어를 이용하면 문서 내의 일부를 검색할 수도 있음
- ex. 몽고DB(MongoDB), CouchDB
컬럼 기반(column-based) 데이터베이스
- 컬럼 패밀리(column family)와 키의 쌍으로 데이터를 저장
- 컬럼 패밀리는 관련 있는 컬럼 값들을 모아서 구성함
- 관계 데이터 모델의 테이블과의 유사성
- 컬럼 패밀리는 테이블에서 한 개의 투플(행)을 구성하는 속성들의 모임으로 볼 수 있음
- 키가 각 투플을 구분하는 것처럼 키로 각 컬럼 패밀리를 식별함
- 관계 데이터 모델의 테이블과의 차별성
- 다양한 형태의 데이터를 값으로 저장할 수 있음
- 컬럼 패밀리마다 컬럼의 구성을 다르게 할 수 있음
- ex. 구글의 빅테이블(BigTable), H베이스(HBase), 카산드라(Cassandra) 등
그래프 기반(graph-based) 데이터베이스
- 노드에 데이터를 저장하고 간선으로 데이터 간의 관계를 표현하는 그래프 형태
- 질의는 그래프 순회 과정을 통해 처리
- 연관 데이터를 추천하거나 소셜 네트워크에서 친구 찾기를 수행하는데 적합
- 트랜잭션을 통해 ACID를 지원하며, 클러스터 환경에는 적합하지 않음 👉 다른 NoSQL 데이터 모델과의 차이점
- ex. Neo4J, OrientDB 등
빅데이터 분석 기술: 데이터 마이닝
데이터 마이닝
빅데이터 분석 기술
- 기존 데이터 분석 기술 + 빅데이터의 특징: 다양한 형태의 비정형 데이터를 기반으로 엄청난 양의 데이터를 처리
- 대표 기술: 데이터 마이닝(data mining), 기계 학습(machine learning)
데이터 마이닝 vs. 기계 학습
- 분석 목적이 발견 -> 데이터 마이닝
- 수집된 데이터에서 숨겨진 규칙과 패턴을 찾아 가치 있는 유용한 정보인 지식을 발견하는 것
- 분석 목적이 예측 -> 기계 학습
- 수집된 데이터로 프로그램을 학습시켜서 유사한 상황의 새로운 데이터가 입력되었을 때 결과를 예측하는 것
데이터 마이닝
- 대량의 데이터 안에 숨겨진 지식을 발견하기 위해 규칙과 패턴을 찾아내는 기술
데이터 마이닝 분석 기법
분류 분석(classification analysis)
- 새로운 데이터가 어떤 그룹 또는 등급에 속하는지 예측하는데 주로 사용
- 미리 정의된 기준에 따라 기존 데이터의 그룹이 나뉘어 있음 👉 군집 분석과의 차이점
- 로지스틱 회귀모형, 의사결정나무, K-최근접 이웃모형, 베이즈분류모형, 인공신경망, 지지벡터기계, 유전 알고리즘 등
군집 분석(cluster analysis)
- 미리 정해진 기준이 없는 상태에서 유사한 특성을 공유하는 데이터들을 여러 개의 독립적인 군집으로 나누는 것
- 군집의 개수나 형태를 미리 가정하지 않은 상태에서 데이터간의 유사성에 기반을 두고 거리가 가까운 데이터들을 하나의 군집으로 모음
- 형성된 군집들의 특성을 파악하여 군집들 사이의 관계를 분석
- 계층적 군집 분석
- 가장 유사한 데이터를 묶어 나가는 과정을 반복하면서 원하는 개수의 군집을 형성하는 방법
- 거리를 정의하는 방법에 따라 최단 연결법, 최장 연결법, 평균 연결법, 중심 연결법, 와드 연결법 등으로 세분화 됨
- 비계층적 군집 분석
- 데이터를 군집으로 나눌 수 있는 모든 방법을 생각한 후 가장 최적화된 군집을 형성하는 방법
- 대표적으로 K-중심 군집이 사용됨
연관 분석(association analysis)
- 데이터 간의 발생 빈도를 분석하여 그 속에 숨겨진 연관 규칙(association rule)을 파악하는 방법
- 장바구니 분석(market basket analysis)이라고도 함
- ex. 동시 구매가 자주 발생하는 상품들을 파악하여 해당 상품들을 묶음으로 판매하거나 인접한 진열대에 두어 매출을 올림
- ex. Apriori 알고리즘
'CS > 데이터베이스' 카테고리의 다른 글
11. 데이터베이스 응용 기술 (0) | 2023.12.20 |
---|---|
10. 보안과 권한 관리 (1) | 2023.12.19 |
9. 회복과 동시성 제어 (1) | 2023.12.02 |
8. 정규화 (0) | 2023.11.30 |
7. 데이터베이스 설계 (1) | 2023.11.27 |