데이터를 공부하거나 컴퓨터 자격증을 공부하면서 나오는 단어 중에 정형/비정형/반정형 데이터라는 것이 자주 등장하게 된다. 정형 데이터와 비정형 데이터의 차이점은 알겠지만 반정형이라는 말이 들어가면서 헷갈릴 수 있는데 반정형을 反으로 해석해버려서 반정형 = 비정형으로 인식하는 경우가 종종 있다.

정형 데이터(**Structured data)**

정형 데이터는 데이터베이스의 정해진 규칙(Rule)에 맞게 데이터를 들어간 데이터 중에 수치 만으로 의미 파악이 쉬운 데이터들을 보통 말한다.

예를 들어, Gender라는 컬럼이 있는데 여기서 male, female이라는 값이 들어간다면 누가 봐도 그 값은 남자, 여자라는 것을 쉽게 인식할 수 있고, Age에 25 혹은 40과 같은 숫자가 들어가도 사람들은 쉽게 그 값을 인식할 수 있다.

그래서 어떤 곳은 정형 데이터를 데이터베이스에 들어간 데이터라고 말하는 오류를 범하게 되는데 데이터베이스에는 모든 데이터가 들어갈 수 있는 것(음성이든, 비디오도 객체 방식으로 넣을 수 있다)이기에 이런 정의는 틀렸다고 볼 수 있다.

정형 데이터는 그 값이 의미를 파악하기 쉽고, 규칙적인 값으로 데이터가 들어갈 경우 정형 데이터라고 인식하면 될 것이다.

비정형 데이터(**Unstructured data)**

비정형 데이터는 정형 데이터와 반대되는 단어이다. 즉, 정해진 규칙이 없어서 값의 의미를 쉽게 파악하기 힘든 경우이다. 흔히, 텍스트, 음성, 영상과 같은 데이터가 비정형 데이터 범위에 속해있다. 그래서 빅데이터의 탄생에 비정형 데이터의 역할이 크게 한몫한 이유가, 그동안 의미를 분석하기 힘들었던 대용량에 속한 비정형 데이터를 분석함으로써 새로운 인사이트를 얻게 되기 때문이었다.

그렇다고 빅데이터가 비정형 데이터만 분석한다는 것은 당연히 아니다. 3V에 Velocity(속도), Volume(양), Variety(다양)가 있는 것처럼 비정형 데이터는 Variety에 속하며 대용량의 정형 데이터도 얼마든지 많기 때문이다.

사실 정형 데이터와 비정형 데이터를 분류하는 것은 어렵지 않으니 이제 문제의 반정형으로 가면...

반정형 데이터(Semi-**structured data)**

반정형 데이터의 반은 Semi를 말한다. 즉 완전한 정형이 아니라 약한 정형 데이터라는 것이다. 대표적으로 HTML이나 XML과 같은 포맷을 반정형 데이터의 범위에 넣을 수 있을 것이다.

일반적인 데이터 베이스는 아니지만 스키마를 가지고 있는 형태이다. 그런데 사실 반정형이라는 말이 참 까다로운 것이 데이터베이스의 데이터를 Dump하여 JSON이나 XML형태의 포맷으로 변경하면 이 순간 반정형 데이터가 된다는 것인데 쉽게 납득이 되질 않게 된다.

그래서 한가지를 더 이해하면 되는데, 데이터베이스의 구조와 JSON이나 XML 데이터의 구조를 한번 이해해보는 것이다. 일반적으로 데이터베이스는 데이터를 저장하는 장소와 스키마가 분리되어 있어서 테이블을 생성하고, 데이터를 저장한다는 매커니즘으로 되어 있다.

그러나 반정형은 한 텍스트 파일에 Column과 Value를 모두 출력하게 된다.

IRIS 데이터의 JSON 구조


결론은 반정형 데이터는 정형 데이터와 비정형 데이터와 완벽히 MECE(완벽 분리)로 구분이 되지 않는 녀석이라는 것이다.

데이터베이스에 있는 데이터의 일부를 Dump로 내려서 JSON구조로 내리는 순간 반정형이 되어 버린다. 그리고 이 데이터 안에는 위 아이리스 데이터와 같이 분석하기 쉬운 정형 데이터가 있을 수 있고, 분석하기 힘든 비정형 데이터가 포함이 되어 있을 수 있다.

그렇기에 한번 사례로 데이터를 구분해 보도록 하자

JSON 형태로 되어 있는 글 내용 본문

이럴 경우, 반정형 데이터 + 비정형 데이터가 합쳐진 모습이다.

데이터베이스에 저장되어 있는 성별 값

고민할 것 없이 정형 데이터이다

데이터베이스에 저장된 글의 제목

비정형 데이터이다.

이 처럼 스키마를 미리 생성해서 만드는 가, 아니면 텍스트 안에 모두 다 포함이 되어 있는가를 통해 반정형 여부를 판단 한 후, 정형과 비정형을 가리면 되는 것이다.

출처

+ Recent posts