제 8장: 비관계형 데이터 작업 - JSON, XML 및 배열
PostgreSQL는 관계형 데이터베이스로서 데이터를 테이블 구조로 구성하는 것이 주력입니다. 하지만 현대의 데이터베이스 요구에서 비정형 데이터의 관리도 점차 중요해지고 있습니다. 이 장에서는 비관계형 데이터를 PostgreSQL에서 관리하는 방법, 특히 JSON, XML, 그리고 배열(array) 데이터를 다루는 방법을 살펴보겠습니다.
JSON 데이터
JSON(JavaScript Object Notation)은 데이터 교환 형식이며, 인간과 기계가 쉽게 읽고 쓸 수 있도록 설계되었습니다. PostgreSQL은 JSON 데이터를 손쉽게 저장하고 질의할 수 있는 강력한 기능을 제공합니다.
JSON 데이터 타입: PostgreSQL에서는 두 가지 JSON 데이터 타입을 제공합니다:
json
과jsonb
.jsonb
는 바이너리 형식으로 저장되어 더 효율적인 검색 및 처리를 제공합니다.JSON 데이터 삽입:
INSERT INTO my_table (json_data) VALUES ('{"key": "value"}');
JSON 데이터 질의:
SELECT json_data ->> 'key' AS value FROM my_table;
XML 데이터
PostgreSQL는 XML 데이터를 지원하며, XML 데이터 타입 역시 제공됩니다. XML 데이터는 특정 애플리케이션 영역에서 많이 사용되며, PostgreSQL에서는 기본적인 삽입 및 검색 기능을 제공합니다.
XML 데이터 삽입:
INSERT INTO my_table (xml_data) VALUES ('<note><to>Tove</to><from>Jani</from></note>');
배열 데이터
PostgreSQL는 배열형 데이터 타입도 기본적으로 지원하며, 이는 한 필드에 여러 값을 저장해야 할 때 유용합니다.
배열 데이터 삽입:
INSERT INTO my_table (array_data) VALUES ('{1,2,3}');
배열 데이터 검색 및 작업:
SELECT array_data[1] AS first_element FROM my_table;
JSON, XML, 배열 데이터를 잘 활용하면 관계형 데이터베이스에서 비정형 데이터 요구사항도 충족할 수 있는 유연한 솔루션을 설계할 수 있습니다.