Skip to main content

NoSQL คืออิหยังวะ ?

Developer Team
BorntoDev Co., Ltd.

ทำไมต้อง NoSQL ?

ถ้าพูดถึงฐานข้อมูลหรือ Database เทคโนโลยีที่จะได้รู้จักกันเป็นอย่างแรกๆก็คงจะเป็น SQL (Structured Query Language) ที่ใช้ในโปรแกรมจำพวก RDBMS (Relational Database Management System) ซึ่งใช้จัดการกับฐานข้อแบบแบบตาราง โดย RDBMS หลายยี่ห้อก็มีการพัฒนาอย่างต่อเนื่อง ให้รองรับรับกับการใช้งานที่หลากหลายกับยุคปัจจุบัน แต่เทคโนโลยีใหม่ๆก็มีเกิดขึ้นอยู่ตลอดทำให้ความต้องการในด้านเทคโนโลยีฐานข้อมูลแบบเดิมไม่สามารถตอบโจทย์ได้ทั้งหมด จึงมี NoSQL เกิดขึ้นมาเพื่อใช้แทนฐานข้อมูลแบบเก่าๆ

NoSQL นั้นจริงๆเป็นคำที่ใช้เรียกรวมเทคโนโลยีฐานข้อมูลที่ไม่ใช่ SQL ทั้งหมด นั่นจึงทำให้ NoSQL มีความหลากหลาย ไม่ได้ยึดตัวไหนเป็นมาตรฐานกลาง  NoSQL โดยจะเก็บข้อมูลอยู่ในรูปแบบอื่นๆที่ไม่ใช่ตาราง แต่นั่นไม่ได้หมายความว่า NoSQL จะเก็บข้อมูลที่มีความสัมพันธ์กันไม่ได้ แต่ NoSQL จะเก็บต่างจาก RDB เพราะข้อมูลที่สัมพันธ์กันจะไม่ถูกเก็บแยกคนละตาราง ทำให้ในบางกรณี NoSQL ก็จัดการกับข้อมูลที่มีความสัมพันธ์กันได้ง่ายกว่า RDB ซะอีก

ถ้าจะสรุปว่าทำไมถึงต้องใช้ NoSQL ก็ต้องไปดูจากข้อดีกันว่า อะไรที่เป็นจุดเเด่นเมื่อเทียบกับ RDB บ้าง

  • NoSQL ถูกออกแบบมาให้รองรับกับการอ่านข้อมูลจำนวนมากๆ ได้เร็วกว่า RDB
  • รองรับข้อมูลที่เป็น unstructured หรือ semi-structured data อย่างพวก json และ XML
  • รองรับการขยายขนาดเพื่อรับการใช้ใช้งานที่เพิ่มขึ้นได้ง่ายกว่า RDB

NoSQL มีกี่ประเภท ?

จากความหลากหลายของ NoSQL เราสามารถจัดประเภทใหญ่ๆได้เป็น 4 ประเภท

  1. Document เป็นประเภทที่เก็บข้อมูลจาก object ในโปรแกรม อย่างตอนที่เราเขียนโค้ดแล้วมีการสร้าง object ข้อมูลต่างๆ เช่น json ทำให้ NoSQL ประเภทนี้เป็นมิตรต่อ developer อย่างมากจากการที่เก็บและใช้งายได้ง่าย เพราะไม่ต้องแปลงข้อมูลไปมานั่นเอง โดยประเภทข้อมูลที่เหมาะสมเช่น ข้อมูลโปรไฟล์ผู้ใช้งานและข้อมูลแคตตาล็อก เนื่องจากข้อมูลจะมีการเพิ่มขึ้นอย่างต่อเนื่องนั่นเอง
  2. Key-value จะเก็บข้อมูลด้วย key และ value ทำให้มีความง่ายในการใช้งาน ส่งผลให้เกิดข้อดีคือความเร็วในการดึงข้อมุลมาใช้งานที่เพียงเรียกใช้จาก key ก็ได้ค่าต้องการ ข้อมูลที่จะเก็บใน NoSQL ประเภทนี้ก็คือข้อมูลที่ต้องการความเร็วและง่ายแม้มีเป็นจำนวนมาก เช่นข้อมูลเกม เป็นต้น
  3. Wide-column stores สำหรับประเภทนี้จะเป็นฐานข้อมูลที่เก็บข้อูลในรูปแบบตารางแต่ว่าจะยืดหยึ่นกว่า RBD ตรงที่แต่ละ row นั้นไม่จำเป็นจำต้องมี column ที่เท่ากันก็ได้ โดยเหมาะกับการเก็บข้อมูลข้อมูลขนาดใหญ่อย่างเช่นจาก IoT ต่างๆ 
  4. Graph ประเภทนี้จะเก็บข้อมูลในรูปแบบของ node และ edge โดย node จะเก็บข้อมูลต่างๆเช่นข้อมูลบุคคล ข้อมูลสถานที่ ในขณะที่ edge จะเก็บความสัมพันธ์ระหว่าง node ต่างๆ ประเภทนี้จะเหมาะกับข้อมูลที่มีความสัมพันธ์เกี่ยวเนื่องกันจำนวนมากๆ เช่นข้อมูลจาก social network

ตัวอย่างการใช้งาน NoSQL ?

เรามาลองดูการใช้งาน NoSQL กันดีกว่า โดยจะยกตัวอย่างประเภท Key-value มาให้ดูกันในการใช้งานจริงนั้นเป็นอย่างไร โดยจะยกตัวอย่างผ่าน redis ที่เป็น in-memory data store ที่จะทำการเก็บข้อมูลไว้ใน memmory นั่นเอง โดย redis นั้นมีเมื่อติดตั้งเรียบร้อยแล้ว คำสั่งที่ใช้ในการเก็บและเรียกข้อมูลก็คือ SET กับ GET  ลองเข้าไปเล่นได้ที่ http://try.redis.io/

คำสั่งเก็บข้อมูล “HELLO WORLD” ไว้ใน key ที่ขื่อว่า say

SET say “HELLO WORLD”
OK

คำสั่งเรียกข้อมูลจาก key ชื่อ say

GET say
"hello world"

จะเห็นว่าการเก็บข้อมูลและเรียกข้อมูลพื้นฐานนั้นทำได้ง่ายมากๆ ซึ่งก็ถือเป็นจุดเด่นหนึ่งของ Key-value database ซึ่ง NoSQL ประเภทอื่นๆก็มีวิธีการใช้งานและจุดเด่นต่างกันไปอย่างที่เขียนไว้คร่าวๆในหัวข้อด้านบน ดังนั้นแล้วการจะเลือกใช้ database อะไรก็ต้องดูประเภทของงานและความต้องการให้เหมาะสม จะได้เกิดประโยชน์จากเทคโนโลยีที่เอามาใช้อย่างสูงสุดนั่นเอง

ข้อมูลอ้างอิงบางส่วน

https://www.mongodb.com/nosql-explained

https://aws.amazon.com/nosql/?nc1=h_ls

หากคุณสนใจพัฒนา สตาร์ทอัพ แอปพลิเคชัน และ เทคโนโลยีของตัวเอง ?

อย่ารอช้า ! เรียนรู้ทักษะด้านดิจิทัลเพื่ออัพเกรดความสามารถของคุณ
เริ่มตั้งแต่พื้นฐาน พร้อมปฏิบัติจริงในรูปแบบหลักสูตรออนไลน์วันนี้

Developer

Author Developer

More posts by Developer

เราใช้คุกกี้เพื่อพัฒนาประสิทธิภาพ และประสบการณ์ที่ดีในการใช้เว็บไซต์ของคุณ คุณสามารถศึกษารายละเอียดได้ที่ นโยบายความเป็นส่วนตัว และสามารถจัดการความเป็นส่วนตัวเองได้ของคุณได้เองโดยคลิกที่ ตั้งค่า

ตั้งค่าความเป็นส่วนตัว

คุณสามารถเลือกการตั้งค่าคุกกี้โดยเปิด/ปิด คุกกี้ในแต่ละประเภทได้ตามความต้องการ ยกเว้น คุกกี้ที่จำเป็น

ยอมรับทั้งหมด
จัดการความเป็นส่วนตัว
  • คุกกี้ที่จำเป็น
    เปิดใช้งานตลอด

    ประเภทของคุกกี้มีความจำเป็นสำหรับการทำงานของเว็บไซต์ เพื่อให้คุณสามารถใช้ได้อย่างเป็นปกติ และเข้าชมเว็บไซต์ คุณไม่สามารถปิดการทำงานของคุกกี้นี้ในระบบเว็บไซต์ของเราได้
    รายละเอียดคุกกี้

  • คุกกี้สำหรับการติดตามทางการตลาด

    ประเภทของคุกกี้ที่มีความจำเป็นในการใช้งานเพื่อการวิเคราะห์ และ นำเสนอโปรโมชัน สินค้า รวมถึงหลักสูตรฟรี และ สิทธิพิเศษต่าง ๆ คุณสามารถเลือกปิดคุกกี้ประเภทนี้ได้โดยไม่ส่งผลต่อการทำงานหลัก เว้นแต่การนำเสนอโปรโมชันที่อาจไม่ตรงกับความต้องการ
    รายละเอียดคุกกี้

บันทึกการตั้งค่า