ฐานข้อมูลไม่มีสคีมา (Schemaless Database) คืออะไร?
ฐานข้อมูลไม่มีสคีมา จัดการข้อมูลโดยไม่ต้องมีแผนผัง (blueprint) การเริ่มสร้าง schemaless database ไม่ได้อาศัยการปฏิบัติตามฟิลด์ ตาราง หรือโครงสร้างโมเดลข้อมูลบางอย่าง ไม่มี Relational Database Management System (RDBMS) บังคับโครงสร้างเฉพาะใดๆ กล่าวอีกนัยหนึ่ง เป็นฐานข้อมูล non-relational ที่จัดการได้ทุกประเภทของฐานข้อมูล ไม่ว่าจะเป็น key-value store, document store, in-memory, column-oriented, หรือ graph data model ความยืดหยุ่นของ NoSQL databases เป็นเหตุผลที่ทำให้ schemaless approach ได้รับความนิยม และมักถูกมองว่า user-friendly กว่าการขยาย schema หรือ SQL database
Schemaless database ทำงานอย่างไร?
ด้วย schemaless database คุณไม่ต้องมีวิสัยทัศน์ที่สมบูรณ์เกี่ยวกับโครงสร้างข้อมูลของคุณจะเป็นอย่างไร เพราะไม่ได้ผูกมัดกับ schema ข้อมูลทั้งหมดที่บันทึกใน schemaless database จะถูกเก็บรักษาไว้สมบูรณ์ (completely intact) ฐานข้อมูลเชิงสัมพันธ์ (relational database) ในทางกลับกัน จะเลือกเอาข้อมูลที่จะเก็บ ไม่ว่าจะเปลี่ยนข้อมูลให้เข้ากับ schema หรือลบทิ้งไปเลย การไป schemaless อนุญาตให้ทุกรายละเอียดของข้อมูลคงอยู่ในสภาพเดิม (unaltered) และเข้าถึงได้เต็มที่ตลอดเวลา สำหรับธุรกิจที่ดำเนินการเปลี่ยนแปลงตามข้อมูลเรียลไทม์ การมีข้อมูลที่ไม่ถูกแก้ไขเป็นสิ่งสำคัญ เพราะจุดข้อมูลใดๆ ก็ตามอาจพิสูจน์ได้ว่ามันสำคัญต่อการอัปเดตฐานข้อมูลในภายหลัง โดยไม่มีโครงสร้างข้อมูลที่แน่นอน schemaless databases สามารถเพิ่มหรือลบชนิดข้อมูล ตาราง และฟิลด์ได้โดยไม่มี repercussions สำคัญ เช่น complex schema migrations และ outages เนื่องจากทนต่อการเปลี่ยนแปลงอย่างกะทันหันและแปลงข้อมูลทุกประเภทได้ schemaless databases จึงนิยมในอุตสาหกรรมที่ทำงานด้วยข้อมูลเรียลไทม์ เช่น บริการทางการเงิน เกมมิ่ง และโซเชียลมีเดีย

การไป schemaless อนุญาตให้ทุกรายละเอียดของข้อมูลคงอยู่ในสภาพเดิมและเข้าถึงได้เต็มที่ตลอดเวลา
Schemaless vs. Schema Databases: ข้อดีและข้อเสีย
คุณรู้ข้อมูลมากน้อยเพียงไรกับการตั้งค่าฐานข้อมูลใหม่? คุณมองเห็นโครงสร้างของมันล่วงหน้าได้ดีและแน่ใจว่าไม่มีการเปลี่ยนแปลง? ถ้าใช่ คุณอาจจัดการกับสถานการションที่เหมาะกับ schema database ความเข้มงวดของมันคือพื้นฐานของความน่าสนใจ มาเปรียบเทียบข้อดีข้อเสียอย่างละเอียดกัน
| Schema Database Pros | Schema Database Cons |
|---|---|
| การทดสอบอย่างเข้มงวด (Rigorous testing) | การสร้างโมเดลและวางแผนข้อมูลต้องยืดหยุ่นและกำหนดไว้ล่วงหน้า |
| กฎที่ไม่ยอมยอม (Rules are inflexible) | ยากที่จะเร่งการเปิดตัวฐานข้อมูล |
| โค้ดอ่านเข้าใจง่ายกว่า (Code is more intelligible) | ความแข็งแกร่งทำให้การเปลี่ยนแปลง schema ในภายหลังเป็นกระบวนการที่ลำบาก |
| ลดความซับซ้อนของการย้ายข้อมูลระหว่างระบบ (Streamlines the process of migrating data between systems) | การทดลองกับฟิลด์เป็นเรื่องยากมาก |
| Schemaless Database Pros | Schemaless Database Cons |
|---|---|
| ข้อมูลทั้งหมด (และ metadata) คงอยู่ในสภาพเดิมและเข้าถึงได้ | ไม่มีภาษาสากล (universal language) สำหรับ query ข้อมูลใน non-relational database |
| ไม่มี "schema" ที่มีอยู่สำหรับข้อมูลที่จะถูกจัดโครงสร้างรอบๆ | แม้ชุมชน NoSQL จะเติบโตเร็วมาก แต่ไม่ใช่ทุกปัญหา troubleshooting ที่มีเอกสารประกอบครบถ้วน |
| สามารถเพิ่มฟิลด์เพิ่มเติมที่ SQL databases รองรับไม่ได้ | ขาดความเข้ากันได้กับคำสั่ง SQL |
| รองรับ key-value store, document store, in-memory, column-oriented, หรือ graph data models | ไม่มี ACID-level compliance เนื่องจาก data retrievals อาจมี inconsistencies จาก distributed approach |
Schemaless Database FAQs
Redis เป็น schemaless หรือไม่?ใช่ Redis เป็น NoSQL, multi-model, in-memory database ที่ใช้ modules ที่หลากหลายเพื่ออนุญาตให้มีการเชื่อมต่อและโต้ตอบเต็มรูปแบบระหว่างโมเดลต่างๆ ภายในฐานข้อมูล ไม่ต้องการ schema เพื่อจัดการ unstructured data
NoSQL databases เป็น schemaless หรือไม่?แม้ NoSQL/non-relational databases จะเรียกว่า "schemaless" แต่ไม่ได้หมายความว่า schema ไม่ได้ถูกกำหนดในที่สุด ในขณะที่ relational database ใช้ภาษาบางอย่างเพื่อ query ข้อมูลของโมเดลบางอย่าง ใน schemaless database นักพัฒนาคือคนที่ตัดสินใจเกี่ยวกับสถาปัตยกรรม ดังนั้น schema จึงมีอยู่ใน schemaless database แค่ถูกกำหนดโดยนักพัฒนา ไม่ใช่โดยฐานข้อมูล