ระบบฐานข้อมูลนั้นถือเป็นระบบพื้นฐานของการเก็บข้อสนเทศ ตั้งแต่ระบบการเก็บข้อมูลแบบง่าย จนถึงระบบที่มีความซับซ้อนสูง มันถือเป็นส่วนสำคัญอย่างยิ่งในการขับเคลื่อนทุกองค์กรในปัจจุบัน
และเช่นเดียวกับเทคโนโลยีอื่นๆที่จะพัฒนาตามเวลา ที่เริ่มต้นโดย ฐานข้อมูลแบบมีโครงสร้าง แบบที่เราใช้กันอยู่ส่วนใหญ่จนถึงปัจจุบัน หลังจากนันก็มีการพัฒนาไปเป็น NoSQL และมาตอนนี้เป็น Vector database ถึงแม้แต่ละฐานข้อมูลนั้นถูกพัฒนาเพื่องานแบบเฉพาะส่วนบ้างก็ตามแต่จุดประสงค์หลักของฐานข้อมูลก็คือ การเก็บ การดึงข้อมูล และ การบริหารข้อมูล อย่างมีประสิทธิภาพ
SQL Database: ปฐมบทของระบบฐานข้อมูล
สำหรับ SQL ที่เราใช้กันนั้นถือเป็น relational database ที่ถูกพัฒนาโดย IBM เมื่อ 1970 หรือกว่า 50 ปีมาแล้ว ทฤษฏีในการสร้างมาจาก Edgar F. Codd ถูกสร้างใช้งานในระบบ System R ของ IBM โดยมีโครงสร้างสคีมา เพื่อกำหนดรูปแบบตาราง แถว และ คอลัม ในการเก็บข้อมูล
จุดแข็งของ SQL Database
- ACID compliance: เราเรียกว่ามันการันตี transaction atomicity หรือ อธิบายง่ายๆ ก็คือ ทุกคำสั่งจะต้องสมบูรณ์ในตัวมันเอง และ หากมีหลายคำสั่งในการทำงาน ทุกคำสั่งจะต้องทำงานสมบูรณ์ถึงจะถือว่า การทำงานสมบูรณ์
- Complex Querying: การที่มันเป็นโครงสร้างนี่เอง ทำให้การใช้คำสั่งนั้น สามารถออกแบบให้ซับซ้อนได้ โดยใช้ Structured Query Language (SQL) เช่นการ join table หลายๆ ตัวเข้าด้วยกัน
- สภาพแวดล้อมประกอบที่สมบูรณ์: เนื่องจาก SQL นั้นเกิดขึ้นมานาน ทำให้ทั้งเครื่องมือ ในการใช้งาน เช่น query การวิเคราะห์ ประสิทธิภาพทำได้อย่างสมบูรณ์และ ผ่านการพิสูจน์ด้วยเวลามาแล้วเป็นเวลานาน
ข้อจำกัดของ SQL Database
- การขยายค่อนข้างเป็นสิ่งท้าทาย: การขยายในแนวระนาบนั้นบางครั้งกลายเป็นเรื่องท้าทาย เพราะว่า การออกแบบระบบตั้งแต่แรกนั้นไม่ได้ถูกทำมารองรับ ส่วนใหญ่แล้วก็ ทำงานอยู่ใน server เดียว ถึงแม้ว่า SQL Server บางตัวนั้นมีการสนับสนุนแล้วก็ตาม แต่การจัดการก็ไม่ใช่เรื่องง่าย หากเทียบกับ NoSQL
- การทำสคีมา: เนื่องจากทุกอย่างอยู่บนสคีมา ทำให้การออกแบบนั้นจะอิงสคีมาเป็นหลัก และ เมื่อข้อมูลมีการเปลี่ยนแปลงในอนาคต การกลับมาแก้สคีมา บ้างครั้งไม่ใช่เรื่องง่าย
แต่อย่างไรก็ตาม หากเราจัดการกับข้อมูลที่มีโครงสร้างแน่นอน เช่น ระบบการเงิน ระบบ ERP หรือ ระบบ Inventory การใช้ SQL ก็ยังถือว่าเป็นตัวเลือกที่ดีอยู่
NoSQL ฐานข้อมูลที่ยืดหยุ่นและเปลี่ยนแปลงได้
และเพื่อเป็นการแก้ปัญหาของ SQL จึงได้มีการสร้าง NoSQL ขึ้นมาเพื่อรองรับแอพลิเคชันสมัยใหม่ โดยเฉพาะในระบบที่ต้องการจัดการกับปริมาณข้อมูลมหาศาล และ ข้อมูลแบบไร้โครงสร้าง หรือ unstructured data เช่นการโพสต์ในโซเชี่ยล ระบบการเก็บข้อมูลจาก sensor หรือ web content โดย NoSQL นั้นไม่จำเป็นต้องสร้างสคีมาก่อน ทำให้การเก็บข้อมูลนั้นยืดหยุ่นมากขึ้น
NoSQL นั้นมาในหลายรูปแบบ เช่น CouchDB หรือ ระบบการเก็บแบบคีย์แวลู เช่น etcd หรือ Cassandra และ ข้อมูลเชิงกราฟเช่น Neo4j
จุดแข็งของ NoSQL
- ขยายในแนวราบได้: ก็เรียกว่ามันถูกออกแบบให้ขยายในแนวราบได้ตั้งแต่ต้นกันเลยทีเดียว เพื่อรองรับทั้งปริมาณข้อมูลที่เยอะ และ การเข้าถึงพร้อมกันหลายเซิร์ฟเวอร์
- ยืดหยุ่นในการทำสคีมา: เพราะความยืดหยุ่นทำให้การเปลี่ยนแปลงสคีมาทำได้ง่ายๆ เช่นการใช้เก็บ JSON,XML หรือ multimedia file
- ระบบป้องกับความผิดพลาด: หรือ HA เพื่อว่าการทำ partitioning ทำให้มันมี Uptime และ availability สูงมาก
ข้อจำกัดของ NoSQL
- การเป็น eventual consistency แทน ACID หรือการเขียนแบบกระจาย ทำให้บางครั้ง consistency ของข้อมูลในทุกโหนดนั้น อาจจะไม่พร้อมกันในบางช่วงเวลา
- ไม่มีมาตรฐานกำกับ: เรียกว่าตอนนี้เป็นมาตรฐานของใครของมัน ทำให้บางครั้งการเลือกเป็นสิ่งที่สร้างความหนักในในอนาคต
อย่างไรก็ตาม NoSQL กลายเป็นระบบหลักของการเก็บข้อมูลในเว็บไปแล้วในปัจจุบัน เนื่องจากความยืดหยุ่นในการใช้งาน และ การรองรับข้อมูลเยอะ
Vector Database น้องใหม่ที่รองรับ AI
ด้วยความต้องวิเคราะห์ข้อมูลทั้งแบบมีโครงสร้าง กึ่งโครงสร้างและไม่มีโครงสร้างสูงขึ้น จึงเป็นที่มาของระบบฐานข้อมูลตัวล่าสุดนั่นคือ Vector Database โดยมันออกแบบสำหรับการค้นหาหรือคิวรีข้อมูลแบบ vector embeddings
แล้วมันคืออะไรกันแน่
แทนที่มันจะเก็บข้อมูลแบบเดิมๆ vector database ถูกออกแบบให้เก็บข้อมูล vector หรือพูดง่ายๆ แทนที่จะเก็บข้อความ หรือตัวเลข มันจะเก็บ ความหนาแน่น เก็บvector ความละเอียดสูงที่ถูกสร้างขึ้นด้วย AI Model โดย vector ที่ถูกเก็บนี้มันเป็นสิ่งสำคัญในการใช้คำนวน หรือ หาความหมายของสิ่งที่ต้องการ เพราะ มันจะบ่งถึงความใกล้เคียงของข้อมูล สำหรับตัวอย่างที่สำคัญคือ Milvus ซึ่งเป็นฐานข้อมูลแบบ vector database ที่เรียกว่าได้รับความนิยมมากใน Github
ประโยชน์ที่จะได้รับจาก Vector Database
- การขยาย: ยกตัวอย่างเช่น Milvus ถูกออกแบบให้เก็บข้อมูลเวคเตอร์จำนวนมาก และ ข้อมูลนั้นอาจจะถูกใช้สำหรับ AI ทั้งการขยายก็ทำได้แทบจะไม่จำกัด รองรับทั้ง HA และ fault tolerance
- มีประสิทธิภาพในการค้นหาแบบ high-dimensional: การใช้ SQL แบบเดิมนั้นแทบเป็นไปไม่ได้เลยในการค้นหาแบบใกล้เคียงของข้อมูล
- ผสานกับ AI: ในระบบเช่น RAG มันถูกใช้เป็นตัวสื่อสารภายนอก เพื่อเก็บฐานความรู้เฉพาะแบบ
ก็เรียกว่ามันจะเป็นระบบฐานข้อมูลสำหรับ AI ที่มาทันยุกต์มากๆ เลยตอนนี้