ประเภทของโครงสร้างข้อมูล
ข้อมูลหากจัดประเภทตามรูปแบบของการจัดเก็บจะแบ่งได้เป็น 3 ประเภท ได้แก่ Unstructured data, Structured data และ Semi-Structured data ความต่างของทั้งสามแบบมีการอธิบายที่หลากหลายและไม่มีมาตรฐานที่ใช้อ้างอิงได้ ฉะนั้นในบทความนี้ความต่างของทั้งสามแบบจึงเป็นการสรุปจากความเข้าใจและข้อสังเกตของผู้เขียนเอง
Unstructured data
ข้อมูลไร้โครงสร้าง (Unstructured data) คือ การจัดเก็บข้อมูลที่ไม่มีเมตาดาต้า (Metadata) ส่วนใหญ่มักจะหมายถึงข้อมูลดิบที่ยังไม่ผ่านกระบวนการ เช่น ข้อความ ภาพ วีดีโอ เสียง เป็นต้น ข้อมูลในรูปแบบนี้มักจะเอาไปใช้วิเคราะห์อะไรไม่ได้ ต้องใช้คนหรือเอไอในการแจกแจงข้อมูลให้กลายเป็น ข้อมูลมีโครงสร้าง (Structured data) หรือ ข้อมูลกึ่งโครงสร้าง (Semi-structured data) เสียก่อน จากคำอธิบายทั้งหมดอาจไม่เห็นภาพ ลองดูภาพตัวอย่างข้างล่าง มีข้อมูลมากมายอยู่ในภาพ เช่น จำนวนสุนัข พันธุ์ สีขน สีตา ความสูงและอื่นๆ แต่ไม่ได้ถูกแจกแจงออกมา ด้วยเหตุนี้ภาพนี้จึงจัดเป็น ข้อมูลไร้โครงสร้าง

Structured data
ข้อมูลโครงสร้าง (Structured data) คือ การจัดเก็บข้อมูลที่มีเมตาดาต้า มีการแจกแจงข้อมูลแยกออกมาเป็นระบบระเบียบ โดยที่เอนติตี้ทุกตัวมีแอตตริบิวต์ที่มีเมตาดาชุดเดียวกันทั้งหมด โดยมากแล้วการจัดเก็บข้อมูลแบบนี้จะเป็นการจัดเก็บข้อมูลในรูปแบบของตาราง เพราะมันรับประกันได้ว่าข้อมูลเอนติตี้จะมีแอตตริบิวต์เดียวกันหมด ยกตัวอย่างภาพสุนัขสามตัวข้างบน สามารถเขียนเป็นตารางได้ดังตารางข้างล่าง หรือ จะเขีียนในรูป CSV ก็ได้เช่นเดียวกัน การเขียนรูปแบบนี้จะทำให้มั่นใจได้ว่า ทุกเอนติตี้ (ซึ่งในที่นี้คือสุนัขสามตัว) จะมีแอตตริบิวต์ (สีขน, สีตา, พันธุ์) เหมือนกันทั้งหมด และแม้สุนัขตัวที่สามจะไม่สามารถระบุพันธุ์ได้ แต่ก็ยังมีแอตตริบิวต์ พันธุ์ ติดมากับเอนติตี้ด้วย เพียงแต่ไม่มีดาต้ามาด้วยก็เท่านั้น
| สีขน | สีตา | พันธุ์ |
|---|---|---|
| ดำ ขาว แทน | ดำ | Bernese Mountain |
| น้ำตาลทอง ขาว | ดำ | Saint Bernard |
| ดำ ขาว แทน | น้ำตาล |
CSV
สีขน,สีตา,พันธุ์
ดำ ขาว แทน,ดำ,Bernese Mountain
น้ำตาลทอง ขาว,ดำ,Saint Bernard
ดำ ขาว แทน,น้ำตาล,
Semi-structured data
ข้อมูลกึ่งโครงสร้าง (Semi-structured data) คือ การจัดเก็บข้อมูลที่มีเมตาดาต้า แต่ไม่ได้รับประกันว่า ทุกเอนติตี้จะมีแอตตริบิวต์ชุดเดียวกัน ยกตัวอย่าง เช่นกันการจัดเก็บข้อมูลในรูปแบบ JSON หากเอาข้อมูลจากตารางด้านบน มาเขียนในรูปแบบ JSON อาจเขียนได้สองแบบ โดยแบบแรก อาจจะมองว่ายังเป็นข้อมูลโครงสร้างได้ เพราะเอนติตี้ทุกตัวมีแอตตริบิวต์ชุดเดียวกัน แต่แบบที่สองจัดเป็นข้อมูลกึ่งโครงสร้าง เพราะเอนติตี้สุดท้ายมีแอตตริบิวต์แตกต่างจากเอนติตี้ตัวอื่น
แบบแรก
[{สีขน:”ดำ ขาว แทน”, สีตา:”ดำ”,พันธุ์:”Bernese Mountain”},
{สีขน:”น้ำตาลทอง ขาว”, สีตา:”ดำ”,พันธุ์:”Saint Bernard, Labrador Retriever mix”},
{สีขน:”ดำ ขาว แทน”, สีตา:”น้ำตาล”,พันธุ์:””}]
แบบสอง
[{สีขน:”ดำ ขาว แทน”, สีตา:”ดำ”,พันธุ์:”Bernese Mountain”},
{สีขน:”น้ำตาลทอง ขาว”, สีตา:”ดำ”,พันธุ์:”Saint Bernard, Labrador Retriever mix”},
{สีขน:”ดำ ขาว แทน”, สีตา:”น้ำตาล”}]
การนำไปใช้ในโลกแห่งความเป็นจริง
ทั้งสามแบบ ไม่มีแบบใดดีที่สุด ต่างก็มีข้อดีข้อเสียที่เหมาะกับในสภาพแวดล้อมที่แตกต่างกัน
ข้อมูลไร้โครงสร้าง เป็นข้อมูลที่มีลักษณะเป็นธรรมชาติและใกล้เคียงกับโลกแห่งความเป็นจริงมากที่สุด เพียงแต่เอาไปวิเคราะห์ได้ยาก ต้องใช้คนหรือเอไอในการสกัดข้อมูลจนกลายเป็น ข้อมูลกึ่งโครงสร้างหรือข้อมูลโครงสร้างเสียก่อน
ข้อมูลกึ่งโครงสร้าง ข้อดีที่สุดของรูปแบบข้อมูลแบบนี้คือ ความยืดหยุ่นการจัดเก็บ ผู้จัดการข้อมูลสามารถเพิ่มลดแอตตริบิวต์เมื่อใดก็ได้โดยไม่ส่งผลกระทบเอนติตี้ที่ได้จัดเก็บไปก่อนหน้า แต่ในแง่ของการนำไปวิเคราะห์ ยังสามารถทำได้ แต่ยังจำกัดและมีความไม่สะดวกอยู่บ้าง
ข้อมูลโครงสร้าง ด้วยความที่โครงสร้างมีความตายตัว จึงง่ายต่อการนำเอาไปวิเคราะห์ แต่ความยืดหยุ่นจะต่ำมาก เพราะหากมีการเพิ่มลดแอตตริบิวต์ เอนติตี้ทุกตัวจะโดนผลกระทบกันหมด
จากวัฎจักรของข้อมูล ข้อมูลมักจะเริ่มต้นด้วย ข้อมูลไร้โครงสร้างก่อน จากนั้นจึงนำคนหรือเอไอ มาสกัดข้อมูลจนกลายเป็น ข้อมูลกึ่งโครงสร้างหรือข้อมูลโครงสร้าง ในกรณีที่เป็นข้อมูลกึ่งโครงสร้าง ก่อนจะนำไปวิเคราะห์ช่วงสุดท้าย ก็มักจะแปลงข้อมูลให้กลายเป็นข้อมูลโครงสร้างก่อนอีกทีหนึ่ง ซึ่งอาจเขียนไดอะแกรมได้ดังนี้
graph LR; UD[Unstructured data] SSD[Semi-structured data] SD[Structured data] UD-->SSD SSD-->SD UD-->SD
