반정형 데이터
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
반정형 데이터는 데이터베이스 모델의 일종으로, 데이터와 스키마가 분리되어 있지 않으며, 사용되는 구조의 정도는 목적에 따라 달라진다. XML, JSON, 기타 마크업 언어, 이메일, EDI 등이 반정형 데이터에 속하며, 객체-관계 임피던스 불일치 문제를 해결하고, 중첩/계층적 데이터 구조를 지원하며, 스키마 변경이 용이하다는 장점이 있다. 쿼리 성능 저하, 데이터 모델 제약 부족 등의 단점도 존재한다. 반정형 데이터 표현에는 객체 교환 모델(OEM)과 XML 등이 사용된다.
반정형 데이터의 대표적인 유형으로는 XML, JSON, 이메일, EDI 등이 있다.[5] OEM[6]은 XML 이전에 데이터 구조를 자체적으로 설명하는 데 사용되었다.
반정형 데이터는 프로그래머가 객체-관계 임피던스 불일치를 걱정할 필요 없이 객체를 직렬화할 수 있게 해주고, 중첩되거나 계층적인 데이터를 지원하여 데이터 모델을 단순화한다는 장점이 있다. 반면, 효율적인 쿼리 언어가 없어 쿼리 성능이 저하될 수 있고, 데이터 모델에 제약 조건이 없어 "쓰레기가 들어가면 쓰레기가 나온다(Garbage In, Garbage Out)"는 데이터 무결성 문제가 발생할 수 있다. 또한, 데이터 모델 제약 조건이 없어 데이터 애플리케이션 작동에 필요한 사전 고려 사항이 줄어든다는 점도 단점으로 작용한다.[1]
2. 종류
2. 1. XML
XML[5], 이메일, EDI는 모두 반정형 데이터의 형태이다. OEM[3]은 데이터 구조를 자체적으로 설명하는 수단으로 XML보다 먼저 생성되었다. XML은 SOAP 원리를 활용하여 개발된 웹 서비스에 의해 대중화되었다.
XML은 관계형 테이블 및 행과 동일한 기능 수준에서 구조적 엄격성을 가질 수 없다는 인상을 줄 수 있다. 그러나, XML을 본질적으로 반정형(이전에는 "비정형"이라고 불림)으로 보는 관점은 광범위한 데이터 중심 응용 분야에서 XML의 사용을 저해했다.
2. 1. 1. XML의 유연한 구조
XML은 매우 엄격한 요소 구조와 데이터 형식 지정을 할 수 있는 "유연한 구조"를 갖는다고 할 수 있다.[2] XML 스키마를 통해 데이터베이스 스키마와 거의 동일한 엄격성으로 설계할 수 있으며, 상용 및 사용자 지정 소프트웨어 프로그램 모두에 의해 처리되어 인간 독자의 사용성을 저하시키지 않는다.
그러나 XML을 "인간이 읽을 수 있는" 개념은 어느 정도까지만 적용될 수 있다. 예를 들어, Microsoft Word 문서의 내용에 대한 XML 표현과 같이, Office 2007 및 이후 버전에서 구현된 일부 XML 구현/방언은 특정 문제 영역을 반영하는 수십 개 또는 수백 개의 서로 다른 종류의 태그를 사용한다. Word의 경우 문자, 단락 및 문서 수준의 서식, 스타일 정의, 인용문 포함 등이 복잡한 방식으로 서로 중첩된다. 이러한 XML 문서의 일부를 읽어서 이해하고, 구조의 오류를 발견하는 것은, 사용된 XML 스키마를 이해하는 소프트웨어의 지원과 함께, 특정 XML 구현에 대한 깊은 사전 지식 없이는 불가능하다.
2. 2. JSON
JSON(JavaScript Object Notation)은 사람이 읽을 수 있는 텍스트를 사용하여 데이터 객체를 전송하는 개방형 표준 형식이다.[5] REST 원칙을 활용하여 개발된 웹 서비스에서 널리 사용된다.
MongoDB나 Couchbase와 같은 데이터베이스는 반정형 데이터 아키텍처의 장점을 활용하여 데이터를 JSON 형식으로 기본 저장한다.
2. 3. 기타 유형
3. 장점과 단점
3. 1. 장점
3. 2. 단점
반정형 데이터는 쿼리 성능과 데이터 무결성 측면에서 단점을 갖는다.
쿼리 성능: 관계형 데이터베이스의 SQL과 같이 효율적인 쿼리 언어가 부족하여, 많은 레코드에 걸친 검색 성능이 저하될 수 있다.
데이터 무결성: 데이터 모델에 제약 조건이 없어 "쓰레기가 들어가면 쓰레기가 나온다(Garbage In, Garbage Out)"는 문제가 발생할 수 있다. 데이터 모델에서 제약 조건을 제거함으로써 데이터 애플리케이션을 작동하는 데 필요한 사전 고려 사항이 줄어든다는 점도 단점으로 작용한다.[1]
4. 반정형 모델
'''반정형 모델'''은 데이터베이스 모델의 일종으로, 데이터와 스키마가 분리되어 있지 않으며, 사용되는 구조의 정도는 목적에 따라 달라진다.
이 모델의 장점은 다음과 같다.
- 스키마에 의해 제약될 수 없는 일부 데이터 소스의 정보를 표현할 수 있다.
- 다양한 유형의 데이터베이스 간에 유연한 데이터 교환 형식을 제공한다.
- 구조화된 데이터를 반정형으로 (검색 목적으로) 보는 데 도움이 될 수 있다.
- 스키마를 쉽게 변경할 수 있다.
- 데이터 전송 형식이 이식 가능할 수 있다.
반정형 데이터베이스 모델을 사용할 때 발생하는 주요 단점은 관계형 모델과 같이 더 제약된 구조에서처럼 쿼리를 효율적으로 수행할 수 없다는 것이다.
4. 1. 반정형 데이터 표현
OEM[6]은 데이터 구조 자체를 기술하는 것으로, XML보다 먼저 만들어졌다.[3] XML[5], 기타 마크업 언어, 이메일, EDI는 모두 반정형 데이터 형태를 띈다. XML은 SOAP 원리를 활용하여 개발된 웹 서비스에 의해 대중화되었다.XML은 "유연한 구조"를 가지고 있어, 인간 중심의 흐름과 계층 구조뿐만 아니라 매우 엄격한 요소 구조와 데이터 형식 지정도 가능하다. 하지만, XML을 "인간이 읽을 수 있는" 개념은 어느 정도까지만 적용된다. 예를 들어, Microsoft Word 문서의 내용에 대한 XML 표현과 같이, Office 2007 및 이후 버전에서 구현된 일부 XML 구현은 수십 개 또는 수백 개의 서로 다른 종류의 태그를 사용한다. 이러한 XML 문서의 일부를 읽고 이해하는 것은 해당 XML 구현에 대한 깊은 사전 지식 없이는 불가능하다.
JSON은 사람이 읽을 수 있는 텍스트를 사용하여 데이터 객체를 전송하는 개방형 표준 형식이다. JSON은 REST 원칙을 활용하여 개발된 웹 서비스에 의해 널리 사용되었다.
MongoDB 및 Couchbase와 같은 데이터베이스는 반정형 데이터 아키텍처의 장점을 활용하여 데이터를 JSON 형식으로 저장한다.
4. 2. 쿼리 성능 문제
일반적으로 반정형 데이터베이스의 레코드는 고유 ID와 함께 저장되며, 디스크상의 위치에 대한 포인터로 참조된다. 이러한 방식은 탐색 또는 경로 기반 쿼리를 매우 효율적으로 만들어준다. 그러나, SQL에서 전형적으로 사용되는 것과 같이 많은 레코드에 걸쳐 검색을 수행하는 경우에는 포인터를 따라 디스크를 탐색해야 하므로 비효율적이다.참조
[1]
웹사이트
Semistructured data
https://homepages.in[...]
1997
[2]
웹사이트
The Penn database group has semi-structured and XML data project
http://db.cis.upenn.[...]
[3]
웹사이트
Stanford Universities Lore DBMS
http://infolab.stanf[...]
[4]
간행물
Tutorial on semi-structured data by Peter Buneman from Symposium on Principles of Database Systems, 1997
http://www.cis.upenn[...]
[5]
웹인용
The Penn database group has semi-structured and XML data project
http://db.cis.upenn.[...]
2013-10-31
[6]
웹사이트
Stanford Universities Lore DBMS
http://infolab.stanf[...]
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com