데이터를 저장할 때 엑셀과 같은 고정된 필드가 필요한지, 스키마 구조 형태를 가지는지 등을 기준으로, 아래와 같이 구분합니다.
✔️ 정형 데이터: 고정된 필드에 저장하고, 데이터베이스에 저장할 수 있으므로 스키마 구조 형태를 지원합니다. 행열에 의해서 속성이 구분된다는 특징이 있습니다. 가장 가까운 예로 엑셀 스프레드시트(SpreadSheet)가 있습니다.
✔️ 반정형 데이터: 정형데이터처럼 일관적인 형식이 아니므로 고정된 필드에 저장되지 않으나, 메타데이터를 포함할 수 있으며, 정형데이터와 마찬가지로 스키마 구조 형태를 지원합니다. 예시로 XML, HTML, JSON파일, 그리고 이메일 등이 있습니다. 이메일은 엑셀처럼 행열로 딱딱 나누어지는 형식은 아니지만, 보낸시간, 받은시간, 보낸이, 받은이, 내용 등으로 어느 정도 구조가 내재된 데이터입니다. 정형데이터보다 유연하게 확장 가능한 형태입니다.
✔️ 비정형 데이터: 고정된 필드에 저장할 수 없고, 메타데이터나 스키마 구조를 지원하지도 않습니다. SNS 피드글, 유튜브 영상, 오디오, 이커머스에 올린 리뷰글 등이 비정형 데이터에 해당합니다. 데이터 하나하나가 각 개체로 저장되므로 구조화나 분석이 어렵습니다. 분석을 위해서 정형 or 반정형 데이터로 변환해야 합니다. 이를 위해 자연어처리(NLP), 머신러닝 등이 필요합니다.
정형 데이터
반정형 데이터
비정형 데이터
특징
스키마구조 O 고정필드 O
스키마구조 O 메타데이터 O 고정필드 X
스키마구조 X 메타데이터 X 고정필드 X
예시
RDBMS(Oracle, MS-SQL) 스프레드시트(Excel) 등
XML, JSON, HTML, RSS 웹/시스템 로그, 이메일, 센서 데이터 등
텍스트, 이미지, 동영상, 오디오 SNS, 이진파일 등
저장 시스템
RDB
RDB, NoSQL
NoSQL, HDFS
✅ 여기서 "스키마"란? — 간단히 말해, 데이터베이스의 구조를 정의한 것입니다.
데이터베이스(Database)에서 자료의 구조, 구조를 표현하는 방법, 데이터 간의 관계 등을 형식언어로 정의한 것을 말합니다.
데이터베이스에 데이터가 어떤 식으로 저장되고 분리되는지를 정의한 것 자체입니다.
위에서 메타데이터를 언급했는데, 어떤 데이터셋에 대한 메타데이터를 표현할 수 있다면 스키마 구조 형태를 지원합니다. 아래 이미지의 정형데이터를 예로 들면, "각 행은 한 사람의 정보를 저장하며, [ID]열은 그 사람의 식별번호, [Name]열은 그 사람의 이름을 저장한다" 라는 메타데이터를 통해 DB사용자는 한 사람의 식별번호만 알면 이름을 쉽게 찾을 수 있을 것입니다. 그러나 비정형데이터의 경우라면, 어떠한 메타데이터도 가질 수 없기 때문에 스키마 형태를 지원하지 않는다고 볼 수 있습니다.