데이터 분석 준전문가(adsp) - 최신 빅데이터 상식
1.DBMS와 SQL
가.DBMS
1) DBMS란 무엇인가
- DBMS 는 Data Base Management System의 약자로서 데이터베이스를 관리하여 응용 프로그램들이 데이터베이스를 공유하며 사용할 수 있는 환경을 제공하는 소프트웨어다.
- 데이터베이스를 구축하는 틀을 제공하며 , 효율적인 데이터 검색 , 저장 기능 등을 제공한다.
- 대표적인 데이터베이스 관리시스템에는 오라클 , 인포믹스 , 액세스 등이 있다.
2) 데이터베이스 관리시스템 종류
가) 관계형 DBMS
- 이 모델은 데이터를 컬럼 ( column ) 과 로우 ( row ) 를 이루는 하나 이상의 테이블로 정리하며, 고유키 ( Primary key ) 가 각 로우를 식별한다. 로우는 레코드나 튜플로 부르며 , 일반적으로 각 테이블/관계는 하나의 엔티티 타입 ( 고객이나 제품과 같은 ) 을 대표한다.
로우는 그 엔티티 종류의 인스턴스를 대표하며 컬럼은 그 인스턴스의 속성이 되는 값들을 대표한다.
나) 객체지향 DBMS
- 객체지향 DB는 일반적으로 사용되는 테이블 기반의 관계형 DB와 다르게 정보를 '객체' 형태로 표현하는 데이터베이스 모델이다.
관계형 DBMS : 테이블 ( 행의 집합 ) , 행 ( row ) , 테이블 정의 ( 사용자 정의 데이터 타입 ) , 비적용 ( 내장프로시저 ) , 인덱스 , 비적용 ( 내장프로시저 ) , 인덱스 , 비적용 ( 내장프로시저 ) , 비적용 ( 배열 Array ) , 내장 프로시저를 갖는 SQL ( Embedded SQL ) , SQL을 통한 상호 호환성 , 이식성 , 수학적 모델에 기초
객체지향 DBMS : 클래스 , 객체 , 타입 , 메소드 , 인덱스 , 객체 식별자 , 콜렉션 , 상속성 , 캡슐화 , 계산 완전성
다) 네트워크 DBMS
- 레코드들이 노드로 , 레코드들 사이의 관계가 간선으로 표현되는 그래프를 기반으로 하는 데이터베이스 모델이다.
라) 계층형 DBMS
- 트리 구조를 기반으로 하는 계층 데이터베이스 모델이다.
나.SQL
1) SQL이란 무엇인가?
- SQL은 Structured Query Language의 약자로 , 데이터베이스를 사용할 때 데이터베이스에 접근할 수 있는 데이터 베이스의 하부 언어로, 단순한 질의 기능 뿐만 아니라 완전한 데이터의 정의와 조작 기능을 갖추고 있다.
- 테이블을 단위로 연산을 수행하며 , 영어 문장과 비슷한 구문으로 초보자들도 비교적 쉽게 사용할 수 있다.
2)SQL 집계함수
AVG : 지정한 열의 평균 값을 반환 ( 수치형 )
COUNT : 테이블의 특정 조건이 맞는 것의 개수를 반환 ( 수치형 , 문자형 )
SUM : 지정한 열의 총합을 반환 ( 수치형 )
STDDEV : 지정한 열의 분산을 반환 ( 수치형 )
MIN : 지정한 열의 가장 작은 값을 반환 ( 수치형 )
MAX : 지정한 열의 가장 큰 값을 반환 ( 수치형 )
- AVG , SUM , STDDEV는 각 열은 수치 데이터만 포함이 가능하고 , COUNT는 어떠한 데이터타입에서도 사용 가능하다.
2.Data에 관련한 기술
가.개인정보 비식별 기술
- 비식별 기술이란 데이터 셋에서 개인을 식별할 수 있는 요소를 전부 또는 일부를 삭제하거나 다른 값으로 대체하는 등의 방법으로 개인을 알아볼 수 없도록 하는 기술을 일컫는다.
데이터 마스킹 : 데이터의 길이,유형,형식과 같은 속성을 유지한채 , 새롭고 일기 쉬운 데이터를 익명으로 생성하는 기술
가명처리 : 개인정보 주체의 이름을 다른 이름으로 변경하는 기술, 다른 값으로 대체할 시 일정한 규칙이 노출되지 않도록 주의해야 한다.
가명처리 : 개인정보 주체의 이름을 다른 이름으로 변경하는 기술 , 다른 값으로 대체할 시 일정한 규칙이 노출되지 않도록 주의해야 한다.
총계처리 : 데이터의 총합 값을 보임으로서 개별 데이터의 값을 보이지 않도록 함. 단, 특정 속성을 지닌 개인으로 구성된 단체의 속성 정보를 공개하는 것은 개인 정보를 공개하는 것과 마찬가지의 결과임으로 주의해야 한다.
데이터값 삭제 : 데이터 공유, 개방 목적에 따라 데이터 셋에 구성된 값 중에 필요 없는 값 또는 개인식별에 중요한 값을 삭제. 개인과 관련된 날짜 정보 ( 자격취득일자, 합격일 등 ) 은 연단위로 처리
데이터 범주화 : 데이터의 값을 범주의 값으로 변환하여 값을 숨긴다.
나. 무결성과 레이크
1) 데이터 무결성 ( Data integrity )
- 데이터베이스 내의 데이터에 대한 정확한 일관성 , 유효성 , 신뢰성을 보장하기 위해 데이터 변경 / 수정 시 여러 가지 제한을 두어 데이터의 정확성을 보증하는 것을 말한다. 무결성제한의 유형은 개체 무결성 ( Entity integrity ) , 참조 무결성 ( Referential integrity ) , 범위 무결성 ( Domain in-tegrity )이 있다.
2) 데이터 레이크 ( Data Lake )
- 수 많은 정보 속에서 의미있는 내용을 찾기 위해 방식에 상관없이 데이터를 저장하는 시스템으로 대용량의 정형 및 비정형 데이터를 저장할 뿐만 아니라 접근도 쉽게 할 수 있는 대규모의 저장소를 의미한다. Apache Hadoop, Teradata Integrated Big Data Platform 1700 등과 같은 플랫폼으로 구성된 솔루션을 제공하고 있다.
3.빅데이터 분석 기술
가.하둡 (Hadoop)
- 하둡은 여러 개의 컴퓨터를 하나인 것처럼 묶어 대용량 데이터를 처리하는 기술이다. 분산파일 시스템 ( HDFS ) 을 통해 수 천대의 장비에 대용량 파일을 저장할 수 있는 기능을 제공하고 맵리듀스로 HDFS에 저장된 대용량의 데이터들을 대상으로 SQL을 이용해 사용자의 질의를 실시간으로 처리하는 기술로 이루어져 있다.
- 하둡의 부족한 기능을 서로 보완하는 '하둡 에코시스템'이 등장하여 다양한 솔루션을 제공한다.
나.Apache Spark
- 실시간 분산형 컴퓨팅 플랫폼으로써 스칼라로 작성이 되어 있지만 스칼라,자바,R,파이썬,API를 지원한다. In-memory 방식으로 처리를 하기 때문에 하둡에 비해 처리ㅗㄱ도가 빠른 것이 특징이다.
다.Smart Factory
- 공장 내 설비와 기계에 사물인터넷이 설치되어 , 공정 데이터가 실시간으로 수집되고 데이터에 기반한 의사결정이 이뤄짐으로써 생산성을 극대화 할 수 있는 기술이다.
라.Machine Learning & Deep Learning
- 머신 러닝은 인공지능의 연구 분야 중 하나로 , 인간의 학습 능력과 같은 기능을 컴퓨터에서 실현하고자 하는 기술 및 기법이다.
- 딥 러닝은 컴퓨터가 많은 데이터를 이용해 사람처럼 스스로 학습할 수 있게 하기 위하여 인공신경망 ( ANN ) 등의 기술을 기반하여 구축한 기계 학습 기술 중 하나이다.
4.기타
가.데이터양의 단위
바이트 (B) : 1byte
킬로바이트 ( KB ) : 1024B
메가바이트 ( MB ) :1024KB
기가바이트 ( GB ) : 1024MG
테라바이트 ( TB ) : 1024GB
페타바이트 ( PB ) : 1024TB
엑사바이트 ( EB ) : 1024PB
제타바이트 ( ZB ) : 1024EB
요타바이트 ( YB ) : 1024ZB
나. B2B 와 B2C
1) B2B
- 기업과 기업 사이의 거래를 기반으로 한 비즈니스 모델을 의미하며 , 기업이 필요로 하는 장비, 재료나 공사입찰 등이 있다.
2) B2C
- 기업과 고객사이의 거래를 기반으로 한 비즈니스 모델을 의미하여 , 이동통신사 , 여행회사 , 신용 카드회사 , 옥션 , 지마켓 등이 있다
다.블록체인
- 블록체인 ( Block chain ) : 거래정보를 하나의 덩어리로 보고 이를 차례로 연결한 거래장부다.
- 기존의 금융회사의 경우 중아 집중형 서버에 거래 기록을 보관하는 반면 , 블록체인은 거래에 참여하는 모든 사용자에게 거래 내역을 보내 주며 거래 때마다 이를 대조해 데이터 위조를 막는 방식을 사용한다.
라.데이터의 유형
- 정형데이터 : 형태 ( 고정된 필드 ) 가 있으며 , 연산이 가능함. 주로 관계형 데이터 베이스 ( RDBMS ) 에 저장된다 . 데이터 수집 난이도가 낮고 형식이 정해져 있어 처리가 쉬운 편이다.
- 반정형데이터 : 형태 ( 스키마 , 메타데이터 ) 가 있으며 연산이 불가능. 주로 파일로 저장된다.데이터 수집 난이도가 중간. 보통 API 형태로 제공되기 때문에 데이터처리 기술 ( 파싱 ) 이 요구된다.
- 비정형데이터 : 형태가 없으며 , 연산이 불가능 . 주로 NoSQL에 저장된다. 데이터 수집 난이도가 높으며 텍스트 마이닝 혹은 파일일 경우 파일을 데이터 형태로 파싱해야 하기 때문에 수집 데이터 처리가 어렵다.